1#include "benchmark_runner.hpp"
2#include "compare_result.hpp"
3#include "duckdb_benchmark_macro.hpp"
4#include "imdb.hpp"
5
6using namespace duckdb;
7using namespace std;
8
9#define IMDB_QUERY_BODY(QNR) \
10 virtual void Load(DuckDBBenchmarkState *state) { \
11 imdb::dbgen(state->db); \
12 } \
13 virtual string GetQuery() { \
14 return imdb::get_query(QNR); \
15 } \
16 virtual string VerifyResult(QueryResult *result) { \
17 if (!result->success) { \
18 return result->error; \
19 } /* FIXME */ \
20 return ""; /*return compare_csv(*result, tpch::get_answer(SF, QNR), \
21 true); */ \
22 } \
23 virtual string BenchmarkInfo() { \
24 return StringUtil::Format("IMDB (JOB) Q%d: %s", QNR, imdb::get_query(QNR).c_str()); \
25 }
26
27DUCKDB_BENCHMARK(IMDBQ001, "[imdb]")
28IMDB_QUERY_BODY(1);
29FINISH_BENCHMARK(IMDBQ001);
30
31DUCKDB_BENCHMARK(IMDBQ002, "[imdb]")
32IMDB_QUERY_BODY(2);
33FINISH_BENCHMARK(IMDBQ002);
34
35DUCKDB_BENCHMARK(IMDBQ003, "[imdb]")
36IMDB_QUERY_BODY(3);
37FINISH_BENCHMARK(IMDBQ003);
38
39DUCKDB_BENCHMARK(IMDBQ004, "[imdb]")
40IMDB_QUERY_BODY(4);
41FINISH_BENCHMARK(IMDBQ004);
42
43DUCKDB_BENCHMARK(IMDBQ005, "[imdb]")
44IMDB_QUERY_BODY(5);
45FINISH_BENCHMARK(IMDBQ005);
46
47DUCKDB_BENCHMARK(IMDBQ006, "[imdb]")
48IMDB_QUERY_BODY(6);
49FINISH_BENCHMARK(IMDBQ006);
50
51DUCKDB_BENCHMARK(IMDBQ007, "[imdb]")
52IMDB_QUERY_BODY(7);
53FINISH_BENCHMARK(IMDBQ007);
54
55DUCKDB_BENCHMARK(IMDBQ008, "[imdb]")
56IMDB_QUERY_BODY(8);
57FINISH_BENCHMARK(IMDBQ008);
58
59DUCKDB_BENCHMARK(IMDBQ009, "[imdb]")
60IMDB_QUERY_BODY(9);
61FINISH_BENCHMARK(IMDBQ009);
62
63DUCKDB_BENCHMARK(IMDBQ010, "[imdb]")
64IMDB_QUERY_BODY(10);
65FINISH_BENCHMARK(IMDBQ010);
66
67DUCKDB_BENCHMARK(IMDBQ011, "[imdb]")
68IMDB_QUERY_BODY(11);
69FINISH_BENCHMARK(IMDBQ011);
70
71DUCKDB_BENCHMARK(IMDBQ012, "[imdb]")
72IMDB_QUERY_BODY(12);
73FINISH_BENCHMARK(IMDBQ012);
74
75DUCKDB_BENCHMARK(IMDBQ013, "[imdb]")
76IMDB_QUERY_BODY(13);
77FINISH_BENCHMARK(IMDBQ013);
78
79DUCKDB_BENCHMARK(IMDBQ014, "[imdb]")
80IMDB_QUERY_BODY(14);
81FINISH_BENCHMARK(IMDBQ014);
82
83DUCKDB_BENCHMARK(IMDBQ015, "[imdb]")
84IMDB_QUERY_BODY(15);
85FINISH_BENCHMARK(IMDBQ015);
86
87DUCKDB_BENCHMARK(IMDBQ016, "[imdb]")
88IMDB_QUERY_BODY(16);
89FINISH_BENCHMARK(IMDBQ016);
90
91DUCKDB_BENCHMARK(IMDBQ017, "[imdb]")
92IMDB_QUERY_BODY(17);
93FINISH_BENCHMARK(IMDBQ017);
94
95DUCKDB_BENCHMARK(IMDBQ018, "[imdb]")
96IMDB_QUERY_BODY(18);
97FINISH_BENCHMARK(IMDBQ018);
98
99DUCKDB_BENCHMARK(IMDBQ019, "[imdb]")
100IMDB_QUERY_BODY(19);
101FINISH_BENCHMARK(IMDBQ019);
102
103DUCKDB_BENCHMARK(IMDBQ020, "[imdb]")
104IMDB_QUERY_BODY(20);
105FINISH_BENCHMARK(IMDBQ020);
106
107DUCKDB_BENCHMARK(IMDBQ021, "[imdb]")
108IMDB_QUERY_BODY(21);
109FINISH_BENCHMARK(IMDBQ021);
110
111DUCKDB_BENCHMARK(IMDBQ022, "[imdb]")
112IMDB_QUERY_BODY(22);
113FINISH_BENCHMARK(IMDBQ022);
114
115DUCKDB_BENCHMARK(IMDBQ023, "[imdb]")
116IMDB_QUERY_BODY(23);
117FINISH_BENCHMARK(IMDBQ023);
118
119DUCKDB_BENCHMARK(IMDBQ024, "[imdb]")
120IMDB_QUERY_BODY(24);
121FINISH_BENCHMARK(IMDBQ024);
122
123DUCKDB_BENCHMARK(IMDBQ025, "[imdb]")
124IMDB_QUERY_BODY(25);
125FINISH_BENCHMARK(IMDBQ025);
126
127DUCKDB_BENCHMARK(IMDBQ026, "[imdb]")
128IMDB_QUERY_BODY(26);
129FINISH_BENCHMARK(IMDBQ026);
130
131DUCKDB_BENCHMARK(IMDBQ027, "[imdb]")
132IMDB_QUERY_BODY(27);
133FINISH_BENCHMARK(IMDBQ027);
134
135DUCKDB_BENCHMARK(IMDBQ028, "[imdb]")
136IMDB_QUERY_BODY(28);
137FINISH_BENCHMARK(IMDBQ028);
138
139DUCKDB_BENCHMARK(IMDBQ029, "[imdb]")
140IMDB_QUERY_BODY(29);
141FINISH_BENCHMARK(IMDBQ029);
142
143DUCKDB_BENCHMARK(IMDBQ030, "[imdb]")
144IMDB_QUERY_BODY(30);
145FINISH_BENCHMARK(IMDBQ030);
146
147DUCKDB_BENCHMARK(IMDBQ031, "[imdb]")
148IMDB_QUERY_BODY(31);
149FINISH_BENCHMARK(IMDBQ031);
150
151DUCKDB_BENCHMARK(IMDBQ032, "[imdb]")
152IMDB_QUERY_BODY(32);
153FINISH_BENCHMARK(IMDBQ032);
154
155DUCKDB_BENCHMARK(IMDBQ033, "[imdb]")
156IMDB_QUERY_BODY(33);
157FINISH_BENCHMARK(IMDBQ033);
158
159DUCKDB_BENCHMARK(IMDBQ034, "[imdb]")
160IMDB_QUERY_BODY(34);
161FINISH_BENCHMARK(IMDBQ034);
162
163DUCKDB_BENCHMARK(IMDBQ035, "[imdb]")
164IMDB_QUERY_BODY(35);
165FINISH_BENCHMARK(IMDBQ035);
166
167DUCKDB_BENCHMARK(IMDBQ036, "[imdb]")
168IMDB_QUERY_BODY(36);
169FINISH_BENCHMARK(IMDBQ036);
170
171DUCKDB_BENCHMARK(IMDBQ037, "[imdb]")
172IMDB_QUERY_BODY(37);
173FINISH_BENCHMARK(IMDBQ037);
174
175DUCKDB_BENCHMARK(IMDBQ038, "[imdb]")
176IMDB_QUERY_BODY(38);
177FINISH_BENCHMARK(IMDBQ038);
178
179DUCKDB_BENCHMARK(IMDBQ039, "[imdb]")
180IMDB_QUERY_BODY(39);
181FINISH_BENCHMARK(IMDBQ039);
182
183DUCKDB_BENCHMARK(IMDBQ040, "[imdb]")
184IMDB_QUERY_BODY(40);
185FINISH_BENCHMARK(IMDBQ040);
186
187DUCKDB_BENCHMARK(IMDBQ041, "[imdb]")
188IMDB_QUERY_BODY(41);
189FINISH_BENCHMARK(IMDBQ041);
190
191DUCKDB_BENCHMARK(IMDBQ042, "[imdb]")
192IMDB_QUERY_BODY(42);
193FINISH_BENCHMARK(IMDBQ042);
194
195DUCKDB_BENCHMARK(IMDBQ043, "[imdb]")
196IMDB_QUERY_BODY(43);
197FINISH_BENCHMARK(IMDBQ043);
198
199DUCKDB_BENCHMARK(IMDBQ044, "[imdb]")
200IMDB_QUERY_BODY(44);
201FINISH_BENCHMARK(IMDBQ044);
202
203DUCKDB_BENCHMARK(IMDBQ045, "[imdb]")
204IMDB_QUERY_BODY(45);
205FINISH_BENCHMARK(IMDBQ045);
206
207DUCKDB_BENCHMARK(IMDBQ046, "[imdb]")
208IMDB_QUERY_BODY(46);
209FINISH_BENCHMARK(IMDBQ046);
210
211DUCKDB_BENCHMARK(IMDBQ047, "[imdb]")
212IMDB_QUERY_BODY(47);
213FINISH_BENCHMARK(IMDBQ047);
214
215DUCKDB_BENCHMARK(IMDBQ048, "[imdb]")
216IMDB_QUERY_BODY(48);
217FINISH_BENCHMARK(IMDBQ048);
218
219DUCKDB_BENCHMARK(IMDBQ049, "[imdb]")
220IMDB_QUERY_BODY(49);
221FINISH_BENCHMARK(IMDBQ049);
222
223DUCKDB_BENCHMARK(IMDBQ050, "[imdb]")
224IMDB_QUERY_BODY(50);
225FINISH_BENCHMARK(IMDBQ050);
226
227DUCKDB_BENCHMARK(IMDBQ051, "[imdb]")
228IMDB_QUERY_BODY(51);
229FINISH_BENCHMARK(IMDBQ051);
230
231DUCKDB_BENCHMARK(IMDBQ052, "[imdb]")
232IMDB_QUERY_BODY(52);
233FINISH_BENCHMARK(IMDBQ052);
234
235DUCKDB_BENCHMARK(IMDBQ053, "[imdb]")
236IMDB_QUERY_BODY(53);
237FINISH_BENCHMARK(IMDBQ053);
238
239DUCKDB_BENCHMARK(IMDBQ054, "[imdb]")
240IMDB_QUERY_BODY(54);
241FINISH_BENCHMARK(IMDBQ054);
242
243DUCKDB_BENCHMARK(IMDBQ055, "[imdb]")
244IMDB_QUERY_BODY(55);
245FINISH_BENCHMARK(IMDBQ055);
246
247DUCKDB_BENCHMARK(IMDBQ056, "[imdb]")
248IMDB_QUERY_BODY(56);
249FINISH_BENCHMARK(IMDBQ056);
250
251DUCKDB_BENCHMARK(IMDBQ057, "[imdb]")
252IMDB_QUERY_BODY(57);
253FINISH_BENCHMARK(IMDBQ057);
254
255DUCKDB_BENCHMARK(IMDBQ058, "[imdb]")
256IMDB_QUERY_BODY(58);
257FINISH_BENCHMARK(IMDBQ058);
258
259DUCKDB_BENCHMARK(IMDBQ059, "[imdb]")
260IMDB_QUERY_BODY(59);
261FINISH_BENCHMARK(IMDBQ059);
262
263DUCKDB_BENCHMARK(IMDBQ060, "[imdb]")
264IMDB_QUERY_BODY(60);
265FINISH_BENCHMARK(IMDBQ060);
266
267DUCKDB_BENCHMARK(IMDBQ061, "[imdb]")
268IMDB_QUERY_BODY(61);
269FINISH_BENCHMARK(IMDBQ061);
270
271DUCKDB_BENCHMARK(IMDBQ062, "[imdb]")
272IMDB_QUERY_BODY(62);
273FINISH_BENCHMARK(IMDBQ062);
274
275DUCKDB_BENCHMARK(IMDBQ063, "[imdb]")
276IMDB_QUERY_BODY(63);
277FINISH_BENCHMARK(IMDBQ063);
278
279DUCKDB_BENCHMARK(IMDBQ064, "[imdb]")
280IMDB_QUERY_BODY(64);
281FINISH_BENCHMARK(IMDBQ064);
282
283DUCKDB_BENCHMARK(IMDBQ065, "[imdb]")
284IMDB_QUERY_BODY(65);
285FINISH_BENCHMARK(IMDBQ065);
286
287DUCKDB_BENCHMARK(IMDBQ066, "[imdb]")
288IMDB_QUERY_BODY(66);
289FINISH_BENCHMARK(IMDBQ066);
290
291DUCKDB_BENCHMARK(IMDBQ067, "[imdb]")
292IMDB_QUERY_BODY(67);
293FINISH_BENCHMARK(IMDBQ067);
294
295DUCKDB_BENCHMARK(IMDBQ068, "[imdb]")
296IMDB_QUERY_BODY(68);
297FINISH_BENCHMARK(IMDBQ068);
298
299DUCKDB_BENCHMARK(IMDBQ069, "[imdb]")
300IMDB_QUERY_BODY(69);
301FINISH_BENCHMARK(IMDBQ069);
302
303DUCKDB_BENCHMARK(IMDBQ070, "[imdb]")
304IMDB_QUERY_BODY(70);
305FINISH_BENCHMARK(IMDBQ070);
306
307DUCKDB_BENCHMARK(IMDBQ071, "[imdb]")
308IMDB_QUERY_BODY(71);
309FINISH_BENCHMARK(IMDBQ071);
310
311DUCKDB_BENCHMARK(IMDBQ072, "[imdb]")
312IMDB_QUERY_BODY(72);
313FINISH_BENCHMARK(IMDBQ072);
314
315DUCKDB_BENCHMARK(IMDBQ073, "[imdb]")
316IMDB_QUERY_BODY(73);
317FINISH_BENCHMARK(IMDBQ073);
318
319DUCKDB_BENCHMARK(IMDBQ074, "[imdb]")
320IMDB_QUERY_BODY(74);
321FINISH_BENCHMARK(IMDBQ074);
322
323DUCKDB_BENCHMARK(IMDBQ075, "[imdb]")
324IMDB_QUERY_BODY(75);
325FINISH_BENCHMARK(IMDBQ075);
326
327DUCKDB_BENCHMARK(IMDBQ076, "[imdb]")
328IMDB_QUERY_BODY(76);
329FINISH_BENCHMARK(IMDBQ076);
330
331DUCKDB_BENCHMARK(IMDBQ077, "[imdb]")
332IMDB_QUERY_BODY(77);
333FINISH_BENCHMARK(IMDBQ077);
334
335DUCKDB_BENCHMARK(IMDBQ078, "[imdb]")
336IMDB_QUERY_BODY(78);
337FINISH_BENCHMARK(IMDBQ078);
338
339DUCKDB_BENCHMARK(IMDBQ079, "[imdb]")
340IMDB_QUERY_BODY(79);
341FINISH_BENCHMARK(IMDBQ079);
342
343DUCKDB_BENCHMARK(IMDBQ080, "[imdb]")
344IMDB_QUERY_BODY(80);
345FINISH_BENCHMARK(IMDBQ080);
346
347DUCKDB_BENCHMARK(IMDBQ081, "[imdb]")
348IMDB_QUERY_BODY(81);
349FINISH_BENCHMARK(IMDBQ081);
350
351DUCKDB_BENCHMARK(IMDBQ082, "[imdb]")
352IMDB_QUERY_BODY(82);
353FINISH_BENCHMARK(IMDBQ082);
354
355DUCKDB_BENCHMARK(IMDBQ083, "[imdb]")
356IMDB_QUERY_BODY(83);
357FINISH_BENCHMARK(IMDBQ083);
358
359DUCKDB_BENCHMARK(IMDBQ084, "[imdb]")
360IMDB_QUERY_BODY(84);
361FINISH_BENCHMARK(IMDBQ084);
362
363DUCKDB_BENCHMARK(IMDBQ085, "[imdb]")
364IMDB_QUERY_BODY(85);
365FINISH_BENCHMARK(IMDBQ085);
366
367DUCKDB_BENCHMARK(IMDBQ086, "[imdb]")
368IMDB_QUERY_BODY(86);
369FINISH_BENCHMARK(IMDBQ086);
370
371DUCKDB_BENCHMARK(IMDBQ087, "[imdb]")
372IMDB_QUERY_BODY(87);
373FINISH_BENCHMARK(IMDBQ087);
374
375DUCKDB_BENCHMARK(IMDBQ088, "[imdb]")
376IMDB_QUERY_BODY(88);
377FINISH_BENCHMARK(IMDBQ088);
378
379DUCKDB_BENCHMARK(IMDBQ089, "[imdb]")
380IMDB_QUERY_BODY(89);
381FINISH_BENCHMARK(IMDBQ089);
382
383DUCKDB_BENCHMARK(IMDBQ090, "[imdb]")
384IMDB_QUERY_BODY(90);
385FINISH_BENCHMARK(IMDBQ090);
386
387DUCKDB_BENCHMARK(IMDBQ091, "[imdb]")
388IMDB_QUERY_BODY(91);
389FINISH_BENCHMARK(IMDBQ091);
390
391DUCKDB_BENCHMARK(IMDBQ092, "[imdb]")
392IMDB_QUERY_BODY(92);
393FINISH_BENCHMARK(IMDBQ092);
394
395DUCKDB_BENCHMARK(IMDBQ093, "[imdb]")
396IMDB_QUERY_BODY(93);
397FINISH_BENCHMARK(IMDBQ093);
398
399DUCKDB_BENCHMARK(IMDBQ094, "[imdb]")
400IMDB_QUERY_BODY(94);
401FINISH_BENCHMARK(IMDBQ094);
402
403DUCKDB_BENCHMARK(IMDBQ095, "[imdb]")
404IMDB_QUERY_BODY(95);
405FINISH_BENCHMARK(IMDBQ095);
406
407DUCKDB_BENCHMARK(IMDBQ096, "[imdb]")
408IMDB_QUERY_BODY(96);
409FINISH_BENCHMARK(IMDBQ096);
410
411DUCKDB_BENCHMARK(IMDBQ097, "[imdb]")
412IMDB_QUERY_BODY(97);
413FINISH_BENCHMARK(IMDBQ097);
414
415DUCKDB_BENCHMARK(IMDBQ098, "[imdb]")
416IMDB_QUERY_BODY(98);
417FINISH_BENCHMARK(IMDBQ098);
418
419DUCKDB_BENCHMARK(IMDBQ099, "[imdb]")
420IMDB_QUERY_BODY(99);
421FINISH_BENCHMARK(IMDBQ099);
422
423DUCKDB_BENCHMARK(IMDBQ100, "[imdb]")
424IMDB_QUERY_BODY(100);
425FINISH_BENCHMARK(IMDBQ100);
426
427DUCKDB_BENCHMARK(IMDBQ101, "[imdb]")
428IMDB_QUERY_BODY(101);
429FINISH_BENCHMARK(IMDBQ101);
430
431DUCKDB_BENCHMARK(IMDBQ102, "[imdb]")
432IMDB_QUERY_BODY(102);
433FINISH_BENCHMARK(IMDBQ102);
434
435DUCKDB_BENCHMARK(IMDBQ103, "[imdb]")
436IMDB_QUERY_BODY(103);
437FINISH_BENCHMARK(IMDBQ103);
438
439DUCKDB_BENCHMARK(IMDBQ104, "[imdb]")
440IMDB_QUERY_BODY(104);
441FINISH_BENCHMARK(IMDBQ104);
442
443DUCKDB_BENCHMARK(IMDBQ105, "[imdb]")
444IMDB_QUERY_BODY(105);
445FINISH_BENCHMARK(IMDBQ105);
446
447DUCKDB_BENCHMARK(IMDBQ106, "[imdb]")
448IMDB_QUERY_BODY(106);
449FINISH_BENCHMARK(IMDBQ106);
450
451DUCKDB_BENCHMARK(IMDBQ107, "[imdb]")
452IMDB_QUERY_BODY(107);
453FINISH_BENCHMARK(IMDBQ107);
454
455DUCKDB_BENCHMARK(IMDBQ108, "[imdb]")
456IMDB_QUERY_BODY(108);
457FINISH_BENCHMARK(IMDBQ108);
458
459DUCKDB_BENCHMARK(IMDBQ109, "[imdb]")
460IMDB_QUERY_BODY(109);
461FINISH_BENCHMARK(IMDBQ109);
462
463DUCKDB_BENCHMARK(IMDBQ110, "[imdb]")
464IMDB_QUERY_BODY(110);
465FINISH_BENCHMARK(IMDBQ110);
466
467DUCKDB_BENCHMARK(IMDBQ111, "[imdb]")
468IMDB_QUERY_BODY(111);
469FINISH_BENCHMARK(IMDBQ111);
470
471DUCKDB_BENCHMARK(IMDBQ112, "[imdb]")
472IMDB_QUERY_BODY(112);
473FINISH_BENCHMARK(IMDBQ112);
474
475DUCKDB_BENCHMARK(IMDBQ113, "[imdb]")
476IMDB_QUERY_BODY(113);
477FINISH_BENCHMARK(IMDBQ113);
478
479DUCKDB_BENCHMARK(IMDBQ114, "[imdb]")
480IMDB_QUERY_BODY(114);
481FINISH_BENCHMARK(IMDBQ114);
482