delayed 1.2.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,271 @@
1
+ snapshots["generates the expected postgresql query 1"] = <<-SNAP
2
+ SELECT \"delayed_jobs\".*
3
+ FROM \"delayed_jobs\"
4
+ WHERE \"delayed_jobs\".\"failed_at\" IS NULL
5
+ AND \"delayed_jobs\".\"run_at\" <= '2025-11-10 17:20:13'
6
+ AND (\"delayed_jobs\".\"locked_at\" IS NULL
7
+ OR \"delayed_jobs\".\"locked_at\" < '2025-11-10 16:59:43'
8
+ OR \"delayed_jobs\".\"locked_by\" = 'worker1'
9
+ AND \"delayed_jobs\".\"locked_at\" >= '2025-11-10 16:59:43')
10
+ ORDER BY \"delayed_jobs\".\"priority\" ASC, \"delayed_jobs\".\"run_at\" ASC
11
+ SNAP
12
+
13
+ snapshots["generates the expected postgresql query plan 1"] = <<-SNAP
14
+ Index Scan using idx_delayed_jobs_live on public.delayed_jobs (cost=...)
15
+ Output: id, priority, attempts, handler, last_error, run_at, locked_at, failed_at, locked_by, queue, created_at, updated_at, name
16
+ Index Cond: (delayed_jobs.run_at <= '2025-11-10 17:20:13'::timestamp without time zone)
17
+ Filter: ((delayed_jobs.locked_at IS NULL) OR (delayed_jobs.locked_at < '2025-11-10 16:59:43'::timestamp without time zone) OR (((delayed_jobs.locked_by)::text = 'worker1'::text) AND (delayed_jobs.locked_at >= '2025-11-10 16:59:43'::timestamp without time zone)))
18
+ SNAP
19
+
20
+ snapshots["generates the expected postgresql query for one queue 1"] = <<-SNAP
21
+ SELECT \"delayed_jobs\".*
22
+ FROM \"delayed_jobs\"
23
+ WHERE \"delayed_jobs\".\"failed_at\" IS NULL
24
+ AND \"delayed_jobs\".\"run_at\" <= '2025-11-10 17:20:13'
25
+ AND (\"delayed_jobs\".\"locked_at\" IS NULL
26
+ OR \"delayed_jobs\".\"locked_at\" < '2025-11-10 16:59:43'
27
+ OR \"delayed_jobs\".\"locked_by\" = 'worker1'
28
+ AND \"delayed_jobs\".\"locked_at\" >= '2025-11-10 16:59:43')
29
+ AND \"delayed_jobs\".\"queue\" = 'default'
30
+ ORDER BY \"delayed_jobs\".\"priority\" ASC, \"delayed_jobs\".\"run_at\" ASC
31
+ SNAP
32
+
33
+ snapshots["generates a postgresql query plan for one queue 1"] = <<-SNAP
34
+ Index Scan using idx_delayed_jobs_live on public.delayed_jobs (cost=...)
35
+ Output: id, priority, attempts, handler, last_error, run_at, locked_at, failed_at, locked_by, queue, created_at, updated_at, name
36
+ Index Cond: ((delayed_jobs.run_at <= '2025-11-10 17:20:13'::timestamp without time zone) AND ((delayed_jobs.queue)::text = 'default'::text))
37
+ Filter: ((delayed_jobs.locked_at IS NULL) OR (delayed_jobs.locked_at < '2025-11-10 16:59:43'::timestamp without time zone) OR (((delayed_jobs.locked_by)::text = 'worker1'::text) AND (delayed_jobs.locked_at >= '2025-11-10 16:59:43'::timestamp without time zone)))
38
+ SNAP
39
+
40
+ snapshots["generates the expected postgresql query for multiple queue 1"] = <<-SNAP
41
+ SELECT \"delayed_jobs\".*
42
+ FROM \"delayed_jobs\"
43
+ WHERE \"delayed_jobs\".\"failed_at\" IS NULL
44
+ AND \"delayed_jobs\".\"run_at\" <= '2025-11-10 17:20:13'
45
+ AND (\"delayed_jobs\".\"locked_at\" IS NULL
46
+ OR \"delayed_jobs\".\"locked_at\" < '2025-11-10 16:59:43'
47
+ OR \"delayed_jobs\".\"locked_by\" = 'worker1'
48
+ AND \"delayed_jobs\".\"locked_at\" >= '2025-11-10 16:59:43')
49
+ AND \"delayed_jobs\".\"queue\" IN ('default', 'mailers', 'tracking')
50
+ ORDER BY \"delayed_jobs\".\"priority\" ASC, \"delayed_jobs\".\"run_at\" ASC
51
+ SNAP
52
+
53
+ snapshots["generates a postgresql query plan for multiple queues 1"] = <<-SNAP
54
+ Index Scan using idx_delayed_jobs_live on public.delayed_jobs (cost=...)
55
+ Output: id, priority, attempts, handler, last_error, run_at, locked_at, failed_at, locked_by, queue, created_at, updated_at, name
56
+ Index Cond: (delayed_jobs.run_at <= '2025-11-10 17:20:13'::timestamp without time zone)
57
+ Filter: (((delayed_jobs.queue)::text = ANY ('{default,mailers,tracking}'::text[])) AND ((delayed_jobs.locked_at IS NULL) OR (delayed_jobs.locked_at < '2025-11-10 16:59:43'::timestamp without time zone) OR (((delayed_jobs.locked_by)::text = 'worker1'::text) AND (delayed_jobs.locked_at >= '2025-11-10 16:59:43'::timestamp without time zone))))
58
+ SNAP
59
+
60
+ snapshots["[legacy index] generates the expected postgresql query plan 1"] = <<-SNAP
61
+ Index Scan using delayed_jobs_priority on public.delayed_jobs (cost=...)
62
+ Output: id, priority, attempts, handler, last_error, run_at, locked_at, failed_at, locked_by, queue, created_at, updated_at, name
63
+ Index Cond: (delayed_jobs.run_at <= '2025-11-10 17:20:13'::timestamp without time zone)
64
+ Filter: ((delayed_jobs.failed_at IS NULL) AND ((delayed_jobs.locked_at IS NULL) OR (delayed_jobs.locked_at < '2025-11-10 16:59:43'::timestamp without time zone) OR (((delayed_jobs.locked_by)::text = 'worker1'::text) AND (delayed_jobs.locked_at >= '2025-11-10 16:59:43'::timestamp without time zone))))
65
+ SNAP
66
+
67
+ snapshots["[legacy index] generates a postgresql query plan for one queue 1"] = <<-SNAP
68
+ Index Scan using delayed_jobs_priority on public.delayed_jobs (cost=...)
69
+ Output: id, priority, attempts, handler, last_error, run_at, locked_at, failed_at, locked_by, queue, created_at, updated_at, name
70
+ Index Cond: (delayed_jobs.run_at <= '2025-11-10 17:20:13'::timestamp without time zone)
71
+ Filter: ((delayed_jobs.failed_at IS NULL) AND ((delayed_jobs.queue)::text = 'default'::text) AND ((delayed_jobs.locked_at IS NULL) OR (delayed_jobs.locked_at < '2025-11-10 16:59:43'::timestamp without time zone) OR (((delayed_jobs.locked_by)::text = 'worker1'::text) AND (delayed_jobs.locked_at >= '2025-11-10 16:59:43'::timestamp without time zone))))
72
+ SNAP
73
+
74
+ snapshots["[legacy index] generates a postgresql query plan for multiple queues 1"] = <<-SNAP
75
+ Index Scan using delayed_jobs_priority on public.delayed_jobs (cost=...)
76
+ Output: id, priority, attempts, handler, last_error, run_at, locked_at, failed_at, locked_by, queue, created_at, updated_at, name
77
+ Index Cond: (delayed_jobs.run_at <= '2025-11-10 17:20:13'::timestamp without time zone)
78
+ Filter: ((delayed_jobs.failed_at IS NULL) AND ((delayed_jobs.queue)::text = ANY ('{default,mailers,tracking}'::text[])) AND ((delayed_jobs.locked_at IS NULL) OR (delayed_jobs.locked_at < '2025-11-10 16:59:43'::timestamp without time zone) OR (((delayed_jobs.locked_by)::text = 'worker1'::text) AND (delayed_jobs.locked_at >= '2025-11-10 16:59:43'::timestamp without time zone))))
79
+ SNAP
80
+
81
+ snapshots["generates a well-scoped postgresql query 1"] = <<-SNAP
82
+ SELECT \"delayed_jobs\".\"locked_at\", \"delayed_jobs\".\"locked_by\"
83
+ FROM \"delayed_jobs\"
84
+ WHERE \"delayed_jobs\".\"locked_by\" = 'worker1'
85
+ AND \"delayed_jobs\".\"locked_at\" >= '2025-11-10 16:59:43'
86
+ AND \"delayed_jobs\".\"failed_at\" IS NULL
87
+ AND \"delayed_jobs\".\"run_at\" <= '2025-11-10 17:20:13'
88
+ SNAP
89
+
90
+ snapshots["generates an efficient postgresql query plan 1"] = <<-SNAP
91
+ Index Scan using idx_delayed_jobs_live on public.delayed_jobs (cost=...)
92
+ Output: locked_at, locked_by
93
+ Index Cond: (delayed_jobs.run_at <= '2025-11-10 17:20:13'::timestamp without time zone)
94
+ Filter: ((delayed_jobs.locked_at >= '2025-11-10 16:59:43'::timestamp without time zone) AND ((delayed_jobs.locked_by)::text = 'worker1'::text))
95
+ SNAP
96
+
97
+ snapshots["[legacy index] generates an efficient postgresql query plan 1"] = <<-SNAP
98
+ Index Scan using delayed_jobs_priority on public.delayed_jobs (cost=...)
99
+ Output: locked_at, locked_by
100
+ Index Cond: (delayed_jobs.run_at <= '2025-11-10 17:20:13'::timestamp without time zone)
101
+ Filter: ((delayed_jobs.failed_at IS NULL) AND (delayed_jobs.locked_at >= '2025-11-10 16:59:43'::timestamp without time zone) AND ((delayed_jobs.locked_by)::text = 'worker1'::text))
102
+ SNAP
103
+
104
+ snapshots["generates the expected sqlite3 query 1"] = <<-SNAP
105
+ SELECT \"delayed_jobs\".*
106
+ FROM \"delayed_jobs\"
107
+ WHERE \"delayed_jobs\".\"failed_at\" IS NULL
108
+ AND \"delayed_jobs\".\"run_at\" <= '2025-11-10 17:20:13'
109
+ AND (\"delayed_jobs\".\"locked_at\" IS NULL
110
+ OR \"delayed_jobs\".\"locked_at\" < '2025-11-10 16:59:43'
111
+ OR \"delayed_jobs\".\"locked_by\" = 'worker1'
112
+ AND \"delayed_jobs\".\"locked_at\" >= '2025-11-10 16:59:43')
113
+ ORDER BY \"delayed_jobs\".\"priority\" ASC, \"delayed_jobs\".\"run_at\" ASC
114
+ SNAP
115
+
116
+ snapshots["generates the expected sqlite3 query plan 1"] = <<-SNAP
117
+ SCAN delayed_jobs USING INDEX idx_delayed_jobs_live
118
+ SNAP
119
+
120
+ snapshots["generates the expected sqlite3 query for one queue 1"] = <<-SNAP
121
+ SELECT \"delayed_jobs\".*
122
+ FROM \"delayed_jobs\"
123
+ WHERE \"delayed_jobs\".\"failed_at\" IS NULL
124
+ AND \"delayed_jobs\".\"run_at\" <= '2025-11-10 17:20:13'
125
+ AND (\"delayed_jobs\".\"locked_at\" IS NULL
126
+ OR \"delayed_jobs\".\"locked_at\" < '2025-11-10 16:59:43'
127
+ OR \"delayed_jobs\".\"locked_by\" = 'worker1'
128
+ AND \"delayed_jobs\".\"locked_at\" >= '2025-11-10 16:59:43')
129
+ AND \"delayed_jobs\".\"queue\" = 'default'
130
+ ORDER BY \"delayed_jobs\".\"priority\" ASC, \"delayed_jobs\".\"run_at\" ASC
131
+ SNAP
132
+
133
+ snapshots["generates a sqlite3 query plan for one queue 1"] = <<-SNAP
134
+ SCAN delayed_jobs USING INDEX idx_delayed_jobs_live
135
+ SNAP
136
+
137
+ snapshots["generates the expected sqlite3 query for multiple queue 1"] = <<-SNAP
138
+ SELECT \"delayed_jobs\".*
139
+ FROM \"delayed_jobs\"
140
+ WHERE \"delayed_jobs\".\"failed_at\" IS NULL
141
+ AND \"delayed_jobs\".\"run_at\" <= '2025-11-10 17:20:13'
142
+ AND (\"delayed_jobs\".\"locked_at\" IS NULL
143
+ OR \"delayed_jobs\".\"locked_at\" < '2025-11-10 16:59:43'
144
+ OR \"delayed_jobs\".\"locked_by\" = 'worker1'
145
+ AND \"delayed_jobs\".\"locked_at\" >= '2025-11-10 16:59:43')
146
+ AND \"delayed_jobs\".\"queue\" IN ('default', 'mailers', 'tracking')
147
+ ORDER BY \"delayed_jobs\".\"priority\" ASC, \"delayed_jobs\".\"run_at\" ASC
148
+ SNAP
149
+
150
+ snapshots["generates a sqlite3 query plan for multiple queues 1"] = <<-SNAP
151
+ SCAN delayed_jobs USING INDEX idx_delayed_jobs_live
152
+ SNAP
153
+
154
+ snapshots["[legacy index] generates the expected sqlite3 query plan 1"] = <<-SNAP
155
+ SCAN delayed_jobs USING INDEX delayed_jobs_priority
156
+ SNAP
157
+
158
+ snapshots["[legacy index] generates a sqlite3 query plan for one queue 1"] = <<-SNAP
159
+ SCAN delayed_jobs USING INDEX delayed_jobs_priority
160
+ SNAP
161
+
162
+ snapshots["[legacy index] generates a sqlite3 query plan for multiple queues 1"] = <<-SNAP
163
+ SCAN delayed_jobs USING INDEX delayed_jobs_priority
164
+ SNAP
165
+
166
+ snapshots["generates a well-scoped sqlite3 query 1"] = <<-SNAP
167
+ SELECT \"delayed_jobs\".\"locked_at\", \"delayed_jobs\".\"locked_by\"
168
+ FROM \"delayed_jobs\"
169
+ WHERE \"delayed_jobs\".\"locked_by\" = 'worker1'
170
+ AND \"delayed_jobs\".\"locked_at\" >= '2025-11-10 16:59:43'
171
+ AND \"delayed_jobs\".\"failed_at\" IS NULL
172
+ AND \"delayed_jobs\".\"run_at\" <= '2025-11-10 17:20:13'
173
+ SNAP
174
+
175
+ snapshots["generates an efficient sqlite3 query plan 1"] = <<-SNAP
176
+ SCAN delayed_jobs USING INDEX idx_delayed_jobs_live
177
+ SNAP
178
+
179
+ snapshots["[legacy index] generates an efficient sqlite3 query plan 1"] = <<-SNAP
180
+ SCAN delayed_jobs
181
+ SNAP
182
+
183
+ snapshots["generates the expected mysql2 query 1"] = <<-SNAP
184
+ SELECT `delayed_jobs`.*
185
+ FROM `delayed_jobs`
186
+ WHERE `delayed_jobs`.`failed_at` IS NULL
187
+ AND `delayed_jobs`.`run_at` <= '2025-11-10 17:20:13'
188
+ AND (`delayed_jobs`.`locked_at` IS NULL
189
+ OR `delayed_jobs`.`locked_at` < '2025-11-10 16:59:43'
190
+ OR `delayed_jobs`.`locked_by` = 'worker1'
191
+ AND `delayed_jobs`.`locked_at` >= '2025-11-10 16:59:43')
192
+ ORDER BY `delayed_jobs`.`priority` ASC, `delayed_jobs`.`run_at` ASC
193
+ SNAP
194
+
195
+ snapshots["generates the expected mysql2 query plan 1"] = <<-SNAP
196
+ -> Filter: ((delayed_jobs.locked_at is null) or (delayed_jobs.locked_at < TIMESTAMP'2025-11-10 16:59:43') or ((delayed_jobs.locked_by = 'worker1') and (delayed_jobs.locked_at >= TIMESTAMP'2025-11-10 16:59:43'))) (cost=...)
197
+ -> Index lookup on delayed_jobs using idx_delayed_jobs_live (failed_at = NULL), with index condition: ((delayed_jobs.failed_at is null) and (delayed_jobs.run_at <= TIMESTAMP'2025-11-10 17:20:13') and ((delayed_jobs.locked_at is null) or (delayed_jobs.locked_at < TIMESTAMP'2025-11-10 16:59:43') or (delayed_jobs.locked_at >= TIMESTAMP'2025-11-10 16:59:43'))) (cost=...)
198
+ SNAP
199
+
200
+ snapshots["generates the expected mysql2 query for one queue 1"] = <<-SNAP
201
+ SELECT `delayed_jobs`.*
202
+ FROM `delayed_jobs`
203
+ WHERE `delayed_jobs`.`failed_at` IS NULL
204
+ AND `delayed_jobs`.`run_at` <= '2025-11-10 17:20:13'
205
+ AND (`delayed_jobs`.`locked_at` IS NULL
206
+ OR `delayed_jobs`.`locked_at` < '2025-11-10 16:59:43'
207
+ OR `delayed_jobs`.`locked_by` = 'worker1'
208
+ AND `delayed_jobs`.`locked_at` >= '2025-11-10 16:59:43')
209
+ AND `delayed_jobs`.`queue` = 'default'
210
+ ORDER BY `delayed_jobs`.`priority` ASC, `delayed_jobs`.`run_at` ASC
211
+ SNAP
212
+
213
+ snapshots["generates a mysql2 query plan for one queue 1"] = <<-SNAP
214
+ -> Filter: ((delayed_jobs.locked_at is null) or (delayed_jobs.locked_at < TIMESTAMP'2025-11-10 16:59:43') or ((delayed_jobs.locked_by = 'worker1') and (delayed_jobs.locked_at >= TIMESTAMP'2025-11-10 16:59:43'))) (cost=...)
215
+ -> Index lookup on delayed_jobs using idx_delayed_jobs_live (failed_at = NULL), with index condition: ((delayed_jobs.queue = 'default') and (delayed_jobs.failed_at is null) and (delayed_jobs.run_at <= TIMESTAMP'2025-11-10 17:20:13') and ((delayed_jobs.locked_at is null) or (delayed_jobs.locked_at < TIMESTAMP'2025-11-10 16:59:43') or (delayed_jobs.locked_at >= TIMESTAMP'2025-11-10 16:59:43'))) (cost=...)
216
+ SNAP
217
+
218
+ snapshots["generates the expected mysql2 query for multiple queue 1"] = <<-SNAP
219
+ SELECT `delayed_jobs`.*
220
+ FROM `delayed_jobs`
221
+ WHERE `delayed_jobs`.`failed_at` IS NULL
222
+ AND `delayed_jobs`.`run_at` <= '2025-11-10 17:20:13'
223
+ AND (`delayed_jobs`.`locked_at` IS NULL
224
+ OR `delayed_jobs`.`locked_at` < '2025-11-10 16:59:43'
225
+ OR `delayed_jobs`.`locked_by` = 'worker1'
226
+ AND `delayed_jobs`.`locked_at` >= '2025-11-10 16:59:43')
227
+ AND `delayed_jobs`.`queue` IN ('default', 'mailers', 'tracking')
228
+ ORDER BY `delayed_jobs`.`priority` ASC, `delayed_jobs`.`run_at` ASC
229
+ SNAP
230
+
231
+ snapshots["generates a mysql2 query plan for multiple queues 1"] = <<-SNAP
232
+ -> Filter: ((delayed_jobs.locked_at is null) or (delayed_jobs.locked_at < TIMESTAMP'2025-11-10 16:59:43') or ((delayed_jobs.locked_by = 'worker1') and (delayed_jobs.locked_at >= TIMESTAMP'2025-11-10 16:59:43'))) (cost=...)
233
+ -> Index lookup on delayed_jobs using idx_delayed_jobs_live (failed_at = NULL), with index condition: ((delayed_jobs.failed_at is null) and (delayed_jobs.run_at <= TIMESTAMP'2025-11-10 17:20:13') and ((delayed_jobs.locked_at is null) or (delayed_jobs.locked_at < TIMESTAMP'2025-11-10 16:59:43') or (delayed_jobs.locked_at >= TIMESTAMP'2025-11-10 16:59:43')) and (delayed_jobs.queue in ('default','mailers','tracking'))) (cost=...)
234
+ SNAP
235
+
236
+ snapshots["[legacy index] generates the expected mysql2 query plan 1"] = <<-SNAP
237
+ -> Sort: delayed_jobs.priority, delayed_jobs.run_at (cost=...)
238
+ -> Filter: ((delayed_jobs.failed_at is null) and (delayed_jobs.run_at <= TIMESTAMP'2025-11-10 17:20:13') and ((delayed_jobs.locked_at is null) or (delayed_jobs.locked_at < TIMESTAMP'2025-11-10 16:59:43') or ((delayed_jobs.locked_by = 'worker1') and (delayed_jobs.locked_at >= TIMESTAMP'2025-11-10 16:59:43')))) (cost=...)
239
+ -> Table scan on delayed_jobs (cost=...)
240
+ SNAP
241
+
242
+ snapshots["[legacy index] generates a mysql2 query plan for one queue 1"] = <<-SNAP
243
+ -> Sort: delayed_jobs.priority, delayed_jobs.run_at (cost=...)
244
+ -> Filter: ((delayed_jobs.queue = 'default') and (delayed_jobs.failed_at is null) and (delayed_jobs.run_at <= TIMESTAMP'2025-11-10 17:20:13') and ((delayed_jobs.locked_at is null) or (delayed_jobs.locked_at < TIMESTAMP'2025-11-10 16:59:43') or ((delayed_jobs.locked_by = 'worker1') and (delayed_jobs.locked_at >= TIMESTAMP'2025-11-10 16:59:43')))) (cost=...)
245
+ -> Table scan on delayed_jobs (cost=...)
246
+ SNAP
247
+
248
+ snapshots["[legacy index] generates a mysql2 query plan for multiple queues 1"] = <<-SNAP
249
+ -> Sort: delayed_jobs.priority, delayed_jobs.run_at (cost=...)
250
+ -> Filter: ((delayed_jobs.failed_at is null) and (delayed_jobs.run_at <= TIMESTAMP'2025-11-10 17:20:13') and ((delayed_jobs.locked_at is null) or (delayed_jobs.locked_at < TIMESTAMP'2025-11-10 16:59:43') or ((delayed_jobs.locked_by = 'worker1') and (delayed_jobs.locked_at >= TIMESTAMP'2025-11-10 16:59:43'))) and (delayed_jobs.queue in ('default','mailers','tracking'))) (cost=...)
251
+ -> Table scan on delayed_jobs (cost=...)
252
+ SNAP
253
+
254
+ snapshots["generates a well-scoped mysql2 query 1"] = <<-SNAP
255
+ SELECT `delayed_jobs`.`locked_at`, `delayed_jobs`.`locked_by`
256
+ FROM `delayed_jobs`
257
+ WHERE `delayed_jobs`.`locked_by` = 'worker1'
258
+ AND `delayed_jobs`.`locked_at` >= '2025-11-10 16:59:43'
259
+ AND `delayed_jobs`.`failed_at` IS NULL
260
+ AND `delayed_jobs`.`run_at` <= '2025-11-10 17:20:13'
261
+ SNAP
262
+
263
+ snapshots["generates an efficient mysql2 query plan 1"] = <<-SNAP
264
+ -> Filter: (delayed_jobs.locked_by = 'worker1') (cost=...)
265
+ -> Index lookup on delayed_jobs using idx_delayed_jobs_live (failed_at = NULL), with index condition: ((delayed_jobs.locked_at >= TIMESTAMP'2025-11-10 16:59:43') and (delayed_jobs.failed_at is null) and (delayed_jobs.run_at <= TIMESTAMP'2025-11-10 17:20:13')) (cost=...)
266
+ SNAP
267
+
268
+ snapshots["[legacy index] generates an efficient mysql2 query plan 1"] = <<-SNAP
269
+ -> Filter: ((delayed_jobs.locked_by = 'worker1') and (delayed_jobs.locked_at >= TIMESTAMP'2025-11-10 16:59:43') and (delayed_jobs.failed_at is null) and (delayed_jobs.run_at <= TIMESTAMP'2025-11-10 17:20:13')) (cost=...)
270
+ -> Table scan on delayed_jobs (cost=...)
271
+ SNAP