Planner — IMDB — JOB-31A

SELECT MIN(mi.info) AS movie_budget,
       MIN(mi_idx.info) AS movie_votes,
       MIN(n.name) AS writer,
       MIN(t.title) AS violent_liongate_movie
FROM job.cast_info AS ci,
     job.company_name AS cn,
     job.info_type AS it1,
     job.info_type AS it2,
     job.keyword AS k,
     job.movie_companies AS mc,
     job.movie_info AS mi,
     job.movie_info_idx AS mi_idx,
     job.movie_keyword AS mk,
     job.name AS n,
     job.title AS t
WHERE ci.note IN ('(writer)',
                  '(head writer)',
                  '(written by)',
                  '(story)',
                  '(story editor)')
  AND cn.name LIKE 'Lionsgate%'
  AND it1.info = 'genres'
  AND it2.info = 'votes'
  AND k.keyword IN ('murder',
                    'violence',
                    'blood',
                    'gore',
                    'death',
                    'female-nudity',
                    'hospital')
  AND mi.info IN ('Horror',
                  'Thriller')
  AND n.gender = 'm'
  AND t.id = mi.movie_id
  AND t.id = mi_idx.movie_id
  AND t.id = ci.movie_id
  AND t.id = mk.movie_id
  AND t.id = mc.movie_id
  AND ci.movie_id = mi.movie_id
  AND ci.movie_id = mi_idx.movie_id
  AND ci.movie_id = mk.movie_id
  AND ci.movie_id = mc.movie_id
  AND mi.movie_id = mi_idx.movie_id
  AND mi.movie_id = mk.movie_id
  AND mi.movie_id = mc.movie_id
  AND mi_idx.movie_id = mk.movie_id
  AND mi_idx.movie_id = mc.movie_id
  AND mk.movie_id = mc.movie_id
  AND n.id = ci.person_id
  AND it1.id = mi.info_type_id
  AND it2.id = mi_idx.info_type_id
  AND k.id = mk.keyword_id
  AND cn.id = mc.company_id;

Engine Compare

Accuracy chart, rows processed ?
Scan
Scan
Seek
Seek
Join Probe
Join
Sort
Sort
Hash Build
Hash
Aggregate
Agg
Distribute
Dist
Native storage
Estimation Error
Est Err
11,042,085
11M
Rank
Estimation Error
Est Err
11,127,910
11M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
92,965
93K
Rank
Estimation Error
Est Err
1,273
1.3K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
63,995,231
64M
Rank
Estimation Error
Est Err
186,463,707
186M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
98,580,307
99M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
13,852,613
14M
Rank
Estimation Error
Est Err
11,322,373
11M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
3,785,134
3.8M
Rank
Estimation Error
Est Err
1,274
1.3K
Rank
Estimation Error
Est Err
3,269,246
3.3M
Rank
Apache Iceberg
Estimation Error
Est Err
30,307,702
30M
Rank
Estimation Error
Est Err
13,419,250
13M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
2,677,678
2.7M
Rank
Estimation Error
Est Err
1,283
1.3K
Rank
Estimation Error
Est Err
14,237,849
14M
Rank
Native storage
Estimation Error
Est Err
1,577,216
1.6M
Rank
Estimation Error
Est Err
990,066
990K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
1,686,217
1.7M
Rank
Estimation Error
Est Err
1,273
1.3K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
976,419
976K
Rank
Estimation Error
Est Err
976,419
976K
Rank
Estimation Error
Est Err
1,168,202
1.2M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
1,040,118
1M
Rank
Estimation Error
Est Err
1,273
1.3K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
3,530,656
3.5M
Rank
Estimation Error
Est Err
3,530,533
3.5M
Rank
Estimation Error
Est Err
3,600,306
3.6M
Rank
Estimation Error
Est Err
11,663
12K
Rank
Estimation Error
Est Err
3,540,277
3.5M
Rank
Estimation Error
Est Err
1,273
1.3K
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
4,400,084
4.4M
Rank
Estimation Error
Est Err
8,539
8.5K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
4,402,717
4.4M
Rank
Estimation Error
Est Err
1,289
1.3K
Rank
Estimation Error
Est Err
4,399,897
4.4M
Rank

Actual Query Plans

Query Plan per Engine ?
Query Plan
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE min, min, min, min
       2      1273  INNER JOIN HASH ON id = info_type_id88
       1         1  │└TABLE SCAN info_type WHERE info = votes
       4      3885  INNER JOIN HASH ON movie_id87 = movie_id51
       2      1274  │└INNER JOIN HASH ON id6 = info_type_id
       1         1  │ │└TABLE SCAN info_type WHERE info = genres
       2      1334  │ INNER JOIN HASH ON id71 = movie_id51
       2      1334  │ │└INNER JOIN HASH ON id59 = person_id
       4      1617  │ │ │└INNER JOIN HASH ON movie_id51 = movie_id42
       7      1620  │ │ │ │└INNER JOIN HASH ON movie_id42 = movie_id36
      24      1551  │ │ │ │ │└INNER JOIN HASH ON movie_id36 = movie_id
    1680      1814  │ │ │ │ │ │└INNER JOIN HASH ON id11 = company_id
     159        10  │ │ │ │ │ │ │└TABLE SCAN company_name WHERE name) Lionsgate
 2609129   2609129  │ │ │ │ │ │ TABLE SCAN movie_companies
    4236     76714  │ │ │ │ │ INNER JOIN HASH ON id29 = keyword_id
     131         7  │ │ │ │ │ │└TABLE SCAN keyword WHERE keyword BETWEEN blood AND violence AND keyword IN(blood,death,female - nudity,gore,hospital,murder,violence)
 4523930   4523930  │ │ │ │ │ TABLE SCAN movie_keyword
  144880       323  │ │ │ │ TABLE SCAN movie_info WHERE info44 IN(Horror,Thriller)
 1274215       204  │ │ │ TABLE SCAN cast_info WHERE note BETWEEN (head writer) AND (written by) AND note53 IN((head writer),(story editor),story,writer,(written by))
 1778509       133  │ │ TABLE SCAN name WHERE gender = m
 2528312   2528312  │ TABLE SCAN title
 1380035   1380035  TABLE SCAN movie_info_idx
Native storage
Estimate    Actual  Operator
       -         1  PROJECT a1 AS movie_budget, a2 AS movie_votes, a3 AS writer, a4 AS violent_liongate_movie
       -         1  AGGREGATE MIN(info_left) AS a1, MIN(info_right) AS a2, MIN(name) AS a3, MIN(title) AS a4
       -         0  PROJECT info, info, name, title
       -         0  PROJECT info, info, name, title
       -         0  INNER JOIN HASH ON tuple(PROJECTION_4405.movie_id,PROJECTION_4405.movie_id,PROJECTION_4405.movie_id,PROJECTION_4405.movie_id,PROJECTION_4405.movie_id,PROJECTION_4405.movie_id,PROJECTION_4405.id,PROJECTION_4405.id) = tuple(PROJECTION_4384.movie_id,PROJECTION_4384.movie_id,PROJECTION_4384.movie_id,PROJECTION_4384.movie_id,PROJECTION_4384.movie_id,PROJECTION_4384.movie_id,PROJECTION_4384.movie_id,PROJECTION_4384.movie_id)
       -   3461792  │└PROJECT movie_id_right, movie_id AS movie_id_right_2, info AS info_right
       -   3461792  │ PROJECT info, movie_id, movie_id
       -   3461792  │ INNER JOIN HASH ON PROJECTION_4402.id = PROJECTION_4387.keyword_id
       -   3461792  │ │└PROJECT keyword_id, info, movie_id, movie_id
       -   3461792  │ │ PROJECT info, movie_id, movie_id, keyword_id
       -   3461792  │ │ INNER JOIN HASH ON PROJECTION_4399.movie_id = PROJECTION_4390.movie_id
       -    459925  │ │ │└PROJECT movie_id AS movie_id_right, info
       -    459925  │ │ │ PROJECT info, movie_id
       -    459925  │ │ │ INNER JOIN HASH ON PROJECTION_4396.info_type_id = PROJECTION_4393.id
       -         1  │ │ │ │└PROJECT id
       -         1  │ │ │ │ PROJECT id
       -         1  │ │ │ │ TABLE SCAN info_type WHERE info = 'votes'
       -   1380035  │ │ │ PROJECT info_type_id, info, movie_id
       -   1380035  │ │ │ PROJECT info, movie_id, info_type_id
       -   1380035  │ │ │ TABLE SCAN movie_info_idx
       -   4523930  │ │ PROJECT movie_id AS movie_id_left, keyword_id
       -   4523930  │ │ PROJECT movie_id, keyword_id
       -   4523930  │ │ TABLE SCAN movie_keyword
       -    134170  │ PROJECT id
       -    134170  │ PROJECT id
       -    134170  │ TABLE SCAN keyword WHERE TRUE
       -         0  PROJECT movie_id AS movie_id_left, movie_id AS movie_id_left_2, movie_id AS movie_id_left_3, id, info AS info_left, name, title
       -         0  PROJECT movie_id, movie_id, info, movie_id, name, title, id
       -         0  INNER JOIN HASH ON tuple(PROJECTION_4423.movie_id,PROJECTION_4423.movie_id,PROJECTION_4423.movie_id,PROJECTION_4423.movie_id) = tuple(PROJECTION_4408.movie_id,PROJECTION_4408.movie_id,PROJECTION_4408.id,PROJECTION_4408.id)
       -   1533909  │└PROJECT movie_id AS movie_id_right, id, info, title
       -   1533909  │ PROJECT info, movie_id, title, id
       -   1533909  │ INNER JOIN HASH ON PROJECTION_4414.movie_id = PROJECTION_4411.id
       -   2528312  │ │└PROJECT id, title
       -   2528312  │ │ PROJECT title, id
       -   2528312  │ │ TABLE SCAN title
       -   1533909  │ PROJECT movie_id, info
       -   1533909  │ PROJECT info, movie_id
       -   1533909  │ INNER JOIN HASH ON PROJECTION_4420.info_type_id = PROJECTION_4417.id
       -         1  │ │└PROJECT id
       -         1  │ │ PROJECT id
       -         1  │ │ TABLE SCAN info_type WHERE info = 'genres'
       -  14835720  │ PROJECT info_type_id, info, movie_id
       -  14835720  │ PROJECT movie_id, info, info_type_id
       -  14835720  │ TABLE SCAN movie_info WHERE TRUE
       -     54783  PROJECT movie_id_left, movie_id AS movie_id_left_2, name
       -     54783  PROJECT movie_id, movie_id, name
       -     54783  INNER JOIN HASH ON PROJECTION_4429.person_id = PROJECTION_4426.id
       -   1739579  │└PROJECT id, name
       -   1739579  │ PROJECT id, name
       -   1739579  │ TABLE SCAN name WHERE gender = 'm'
       -    125056  PROJECT person_id, movie_id, movie_id
       -    125056  PROJECT movie_id, person_id, movie_id
       -    125056  INNER JOIN HASH ON PROJECTION_4435.company_id = PROJECTION_4432.id
       -        10  │└PROJECT id
       -        10  │ PROJECT id
       -        10  │ TABLE SCAN company_name WHERE startsWith(name,'Lionsgate')
       -  80274241  PROJECT company_id, movie_id, person_id, movie_id
       -  80274241  PROJECT movie_id, person_id, movie_id, company_id
       -  80274241  INNER JOIN HASH ON PROJECTION_4441.movie_id = PROJECTION_4438.movie_id
       -   2609129  │└PROJECT movie_id AS movie_id_right, company_id
       -   2609129  │ PROJECT movie_id, company_id
       -   2609129  │ TABLE SCAN movie_companies
       -  36244344  PROJECT movie_id AS movie_id_left, person_id
       -  36244344  PROJECT movie_id, person_id
       -  36244344  TABLE SCAN cast_info WHERE TRUE
Native storage
Estimate    Actual  Operator
       -         1  AGGREGATE MIN(#0), MIN(#1), MIN(#2), MIN(#3)
      70      1273  PROJECT info, info, name, title
      70      1273  INNER JOIN HASH ON id = person_id
     120      1556  │└INNER JOIN HASH ON movie_id = id
      41      1524  │ │└INNER JOIN HASH ON id = movie_id
      40      1524  │ │ │└INNER JOIN HASH ON id = keyword_id
     197     54461  │ │ │ │└INNER JOIN HASH ON movie_id = movie_id
     108       661  │ │ │ │ │└INNER JOIN HASH ON id = company_id
     542    229623  │ │ │ │ │ │└INNER JOIN HASH ON movie_id = movie_id
     516     39064  │ │ │ │ │ │ │└INNER JOIN HASH ON info_type_id = id
       2         1  │ │ │ │ │ │ │ │└FILTER id <= 110
       2         1  │ │ │ │ │ │ │ │ TABLE SCAN info_type WHERE info = 'genres'
   29178     39064  │ │ │ │ │ │ │ INNER JOIN HASH ON movie_id = movie_id
   24425    459917  │ │ │ │ │ │ │ │└INNER JOIN HASH ON info_type_id = id
       2         1  │ │ │ │ │ │ │ │ │└FILTER id >= 99
       2         1  │ │ │ │ │ │ │ │ │ TABLE SCAN info_type WHERE info = 'votes'
 1380035    459917  │ │ │ │ │ │ │ │ TABLE SCAN movie_info_idx WHERE movie_id <= 2525745
14835720     45948  │ │ │ │ │ │ │ FILTER (movie_id BETWEEN 2 AND 2525745) AND ((info = 'Horror') OR (info = 'Thriller'))
14835720    723622  │ │ │ │ │ │ │ TABLE SCAN movie_info WHERE info IN('Horror','Thriller')
 2609129    210731  │ │ │ │ │ │ TABLE SCAN movie_companies
   46999        10  │ │ │ │ │ TABLE SCAN company_name WHERE name >= 'Lionsgate' AND name < 'Lionsgatf'
 4523930     28006  │ │ │ │ TABLE SCAN movie_keyword WHERE movie_id <= 2525745
   26834         7  │ │ │ FILTER IN ...
  134170    133568  │ │ │ INNER JOIN HASH ON keyword = #0
       0         7  │ │ │ │└SCAN MATERIALISED
  134170    133568  │ │ │ TABLE SCAN keyword WHERE keyword IN('murder','violence','blood','gore','death','female-nudity','hospital')
 2528312       244  │ │ TABLE SCAN title WHERE id >= 2 AND id <= 2525745
 7248868       210  │ FILTER movie_id BETWEEN 2 AND 2525745
 7248868       210  │ FILTER IN ...
36244344     20947  │ INNER JOIN HASH ON note = #0
       0         5  │ │└SCAN MATERIALISED
36244344     20947  │ TABLE SCAN cast_info WHERE note IN('(writer)','(head writer)','(written by)','(story)','(story editor)')
 2083746       157  FILTER id <= 4061926
 2083746       157  TABLE SCAN "name" WHERE gender = 'm'
Apache Iceberg
Estimate    Actual  Operator
       1         1  PROJECT movie_budget, movie_votes, writer, violent_liongate_movie
       1         1  AGGREGATE MIN(info), MIN(info), MIN(name), MIN(title)
  131721        10  DISTRIBUTE GATHER
  131721        10  AGGREGATE MIN(info), MIN(info), MIN(name), MIN(title)
  131721      1273  INNER JOIN HASH ON movie_id = id AND movie_id = id AND movie_id = id AND movie_id = id AND movie_id = id
  131721      1273  │└DISTRIBUTE HASH ON movie_id, movie_id, movie_id, movie_id, movie_id
  131721      1273  │ INNER JOIN HASH ON person_id = id
  131721      1556  │ │└DISTRIBUTE HASH ON person_id
  131721      1556  │ │ INNER JOIN HASH ON id = keyword_id
   26834         7  │ │ │└DISTRIBUTE GATHER
   26834         7  │ │ │ FILTER keyword IN('murder','violence','blood','gore','death','female-nudity','hospital')
  134170    134170  │ │ │ DISTRIBUTE ROUND ROBIN
  134170    134170  │ │ │ TABLE SCAN keyword WHERE keyword IN('murder','violence','blood','gore','death','female-nudity','hospital')
  658606     58294  │ │ INNER JOIN HASH ON movie_id = movie_id AND movie_id = movie_id AND movie_id = movie_id AND movie_id = movie_id
  367738       588  │ │ │└DISTRIBUTE HASH ON movie_id, movie_id, movie_id, movie_id
  367738       588  │ │ │ INNER JOIN HASH ON id = info_type_id
      23         1  │ │ │ │└DISTRIBUTE GATHER
      23         1  │ │ │ │ FILTER info = 'votes'
     113       113  │ │ │ │ DISTRIBUTE ROUND ROBIN
     113       113  │ │ │ │ TABLE SCAN info_type WHERE info = 'votes'
  367738      1780  │ │ │ INNER JOIN HASH ON movie_id = movie_id AND movie_id = movie_id AND movie_id = movie_id
  367738       594  │ │ │ │└DISTRIBUTE HASH ON movie_id, movie_id, movie_id
  367738       594  │ │ │ │ INNER JOIN HASH ON id = info_type_id
      23         1  │ │ │ │ │└DISTRIBUTE GATHER
      23         1  │ │ │ │ │ FILTER info = 'genres'
     113       113  │ │ │ │ │ DISTRIBUTE ROUND ROBIN
     113       113  │ │ │ │ │ TABLE SCAN info_type WHERE info = 'genres'
 1758747       594  │ │ │ │ INNER JOIN HASH ON movie_id = movie_id AND movie_id = movie_id
 1497518      1454  │ │ │ │ │└DISTRIBUTE HASH ON movie_id, movie_id
 1497518      1454  │ │ │ │ │ INNER JOIN HASH ON id = company_id
   47000        10  │ │ │ │ │ │└DISTRIBUTE GATHER
   47000        10  │ │ │ │ │ │ FILTER name LIKE 'Lionsgate%'
  234997    234997  │ │ │ │ │ │ TABLE SCAN company_name WHERE name LIKE 'Lionsgate%'
 7487498   1557234  │ │ │ │ │ PROJECT person_id, movie_id, movie_id, company_id
 7487498   1557234  │ │ │ │ │ INNER JOIN HASH ON movie_id = movie_id
 2609129   2609129  │ │ │ │ │ │└DISTRIBUTE HASH ON movie_id
 2609129   2609129  │ │ │ │ │ │ TABLE SCAN movie_companies WHERE ((company_id >= 2653) AND (company_id <= 194377)) AND company_id IN(9863,2653,39981,65153,7253,7435,57326,3016,6473,194377)
 7248869   1244716  │ │ │ │ │ DISTRIBUTE HASH ON movie_id
 7248869   1244716  │ │ │ │ │ FILTER note IN('(writer)','(head writer)','(written by)','(story)','(story editor)')
36244344  15326137  │ │ │ │ │ TABLE SCAN cast_info WHERE note IN('(writer)','(head writer)','(written by)','(story)','(story editor)') AND CASE MOD(HASH_REPARTITION movie_id,10) WHEN 0 THEN (((movie_id >= 67) AND (movie_id <= 2525735)) AND TRUE) WHEN 1 THEN (((movie_id >= 45) AND (movie_id <= 2525732)) AND TRUE) WHEN 2 THEN (((movie_id >= 24) AND (movie_id <= 2525742)) AND TRUE) WHEN 3 THEN (((movie_id >= 2) AND (movie_id <= 2525729)) AND TRUE) WHEN 4 THEN (((movie_id >= 55) AND (mo...
 2967144     72258  │ │ │ │ DISTRIBUTE HASH ON movie_id, movie_id
 2967144     72258  │ │ │ │ FILTER (info = 'Horror') OR (info = 'Thriller')
14835720   1724005  │ │ │ │ TABLE SCAN movie_info WHERE (((info = 'Horror') OR (info = 'Thriller')) AND CASE MOD(HASH_REPARTITION(movie_id,movie_id),10) WHEN 1 THEN ((((movie_id >= 166565) AND (movie_id <= 2513880)) AND ((movie_id >= 166565) AND (movie_id <= 2513880))) AND TRUE) WHEN 3 THEN ((((movie_id >= 161117) AND (movie_id <= 2499999)) AND ((movie_id >= 161117) AND (movie_id <= 2499999))) AND struct(movie_id,movie_id) IN( < expr > , < expr > , < expr > , < expr > , < expr > , < e...
 1380035   1380035  │ │ │ DISTRIBUTE HASH ON movie_id, movie_id, movie_id
 1380035   1380035  │ │ │ TABLE SCAN movie_info_idx WHERE CASE MOD(HASH_REPARTITION(movie_id,movie_id,movie_id),10) WHEN 0 THEN (((((movie_id >= 1646919) AND (movie_id <= 2447527)) AND ((movie_id >= 1646919) AND (movie_id <= 2447527))) AND ((movie_id >= 1646919) AND (movie_id <= 2447527))) AND struct(movie_id,movie_id,movie_id) IN( < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < e...
 4523930   4523930  │ │ DISTRIBUTE HASH ON movie_id, movie_id, movie_id, movie_id
 4523930   4523930  │ │ TABLE SCAN movie_keyword WHERE CASE MOD(HASH_REPARTITION(movie_id,movie_id,movie_id,movie_id),10) WHEN 1 THEN ((((((movie_id >= 1732019) AND (movie_id <= 2452149)) AND ((movie_id >= 1732019) AND (movie_id <= 2452149))) AND ((movie_id >= 1732019) AND (movie_id <= 2452149))) AND ((movie_id >= 1732019) AND (movie_id <= 2452149))) AND TRUE) WHEN 3 THEN ((((((movie_id >= 1662524) AND (movie_id <= 2466397)) AND ((movie_id >= 1662524) AND (movie_id <= 2466397))) AND ((mov...
  833499   1739579  │ DISTRIBUTE HASH ON id
  833499   1739579  │ FILTER gender = 'm'
 4167491   1846761  │ TABLE SCAN name WHERE (gender = 'm') AND CASE MOD(HASH_REPARTITION id,10) WHEN 0 THEN (((id >= 58789) AND (id <= 3155640)) AND id IN(1555410,1555410,924360,924360,924360,924360,924360,924360,924360,924360,924360,924360,924360,924360,775657,775657,775657,775657,775657,775657,775657,775657,775657,775657,775657,775657,426776,426776,426776,426776,426776,426776,426776,426776,426776,426776,426776,426776,426776,426776,426776,426776,426776,426776,426776,426776,426776,426776,42...
 2528312   2528312  DISTRIBUTE HASH ON id, id, id, id, id
 2528312   2528312  TABLE SCAN title WHERE CASE MOD(HASH_REPARTITION(id,id,id,id,id),10) WHEN 0 THEN (((((((id >= 1754704) AND (id <= 2233385)) AND ((id >= 1754704) AND (id <= 2233385))) AND ((id >= 1754704) AND (id <= 2233385))) AND ((id >= 1754704) AND (id <= 2233385))) AND ((id >= 1754704) AND (id <= 2233385))) AND TRUE) WHEN 1 THEN (((((((id >= 1703833) AND (id <= 2446060)) AND ((id >= 1703833) AND (id <= 2446060))) AND ((id >= 1703833) AND (id <= 2446060))) AND ((id >= 1703833) AND (id <...
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)
       1         1  DISTRIBUTE GATHER
       1         1  AGGREGATE MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)
    2230      1273  INNER JOIN HASH ON ci.movie_id = mi_idx.movie_id
    2230     63701  │└DISTRIBUTE GATHER
  705000     63701  │ INNER JOIN HASH ON mi_idx.info_type_id = it2.id
  705000         1  │ │└DISTRIBUTE GATHER
 1380000         1  │ │ TABLE SCAN info_type WHERE it2.info = 'votes'
 1890000    191657  │ INNER JOIN HASH ON mk.movie_id = mi_idx.movie_id
 1890000     76714  │ │└DISTRIBUTE GATHER
     207     76714  │ │ INNER JOIN HASH ON mk.keyword_id = k.id
     207         7  │ │ │└DISTRIBUTE GATHER
 2530000         7  │ │ │ TABLE SCAN keyword WHERE k.keyword IN('murder','violence','blood','gore','death','female-nudity','hospital')
  134000   4519852  │ │ TABLE SCAN movie_keyword
 2610000   1375949  │ TABLE SCAN movie_info_idx
    2230       444  INNER JOIN HASH ON ci.person_id = n.id
    2230   1739579  │└DISTRIBUTE GATHER
  235000   1739579  │ TABLE SCAN name WHERE (n.gender IS NOT NULL) AND (n.gender = 'm')
 3530000       594  INNER JOIN HASH ON mc.movie_id = ci.movie_id
 3530000   1244716  │└DISTRIBUTE GATHER
     113   1244716  │ TABLE SCAN cast_info WHERE ci.note IN('(writer)','(head writer)','(written by)','(story)','(story editor)')
     281       724  INNER JOIN HASH ON mc.company_id = cn.id
     281        10  │└DISTRIBUTE GATHER
14800000        10  │ TABLE SCAN company_name WHERE startswith(cn.name,'Lionsgate')
     207    259826  INNER JOIN HASH ON mi.movie_id = mc.movie_id
     207     72258  │└DISTRIBUTE GATHER
      13     72258  │ INNER JOIN HASH ON mi.movie_id = t.id
      13     72258  │ │└DISTRIBUTE GATHER
      12     72258  │ │ INNER JOIN HASH ON mi.info_type_id = it1.id
      12         1  │ │ │└DISTRIBUTE GATHER
 4170000         1  │ │ │ TABLE SCAN info_type WHERE it1.info = 'genres'
36200000     72258  │ │ TABLE SCAN movie_info WHERE mi.info IN('Horror','Thriller')
     113   2520486  │ TABLE SCAN title
 4520000   2379754  TABLE SCAN movie_companies
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(info as info) AS Expr1022, MIN(info as info) AS Expr1023, MIN(name as name) AS Expr1024, MIN(title as title) AS Expr1025
       1      1273  FILTER keyword as keyword = 'blood' OR keyword as keyword = 'death' OR keyword as keyword = 'female-nudity' OR keyword as keyword = 'gore' OR keyword as keyword = 'hospital' OR keyword as keyword = 'murder' OR keyword as keyword = 'violence'
      18     47262  INNER JOIN LOOP ON Bmk1008 = Bmk1008
       1     47262  │└TABLE SEEK keyword AS k
      18     47262  INNER JOIN LOOP ON mk.keyword_id = k.id
       1     47262  │└TABLE SEEK keyword AS k
      18     47262  INNER JOIN LOOP ON Bmk1016 = Bmk1016
       1     47262  │└TABLE SEEK movie_keyword AS mk
      18     47262  INNER JOIN LOOP ON t.id = mk.movie_id
      18     47262  │└TABLE SEEK movie_keyword AS mk
       1       439  INNER JOIN HASH ON mc.company_id = cn.id
       8        10  │└TABLE SCAN company_name AS cn WHERE name as name LIKE 'Lionsgate%'
       1       439  INNER JOIN LOOP ON Bmk1010 = Bmk1010
       1       439  │└TABLE SEEK movie_companies AS mc WHERE BLOOM(company_id as company_id)
    1602     93660  PROJECT BmkToPage Bmk1010 AS Expr1637
    1602     93660  INNER JOIN LOOP ON t.id = mc.movie_id
       9     93660  │└TABLE SEEK movie_companies AS mc
     161     11663  INNER JOIN LOOP ON Bmk1020 = Bmk1020
       1     11663  │└TABLE SEEK title AS t
     161     11663  SORT Expr1181
     161     11663  PROJECT BmkToPage Bmk1020 AS Expr1181
     161     11663  INNER JOIN LOOP ON mi_idx.movie_id = t.id
       1     11663  │└TABLE SEEK title AS t
     161     11663  FILTER gender as gender = 'm'
     388     21787  INNER JOIN LOOP ON Bmk1018 = Bmk1018
       1     21787  │└TABLE SEEK name AS n
     388     21787  PROJECT BmkToPage Bmk1018 AS Expr1632
     388     21787  INNER JOIN LOOP ON ci.person_id = n.id
       1     21787  │└TABLE SEEK name AS n
     388     21787  INNER JOIN HASH ON mi_idx.info_type_id = it2.id
       1         1  │└FILTER info as info = 'votes'
     113       113  │ TABLE SCAN info_type AS it2
     193     21787  INNER JOIN HASH ON mi.info_type_id = it1.id
       1         1  │└FILTER info as info = 'genres'
     113       113  │ INNER JOIN LOOP ON Bmk1004 = Bmk1004
       1       113  │ │└TABLE SEEK info_type AS it1
     113       113  │ TABLE SEEK info_type AS it1
     135     21787  FILTER note as note = '(head writer)' OR note as note = '(story editor)' OR note as note = '(story)' OR note as note = '(writer)' OR note as note = '(written by)'
    4947   1536923  INNER JOIN LOOP ON Bmk1000 = Bmk1000
       1   1536923  │└TABLE SEEK cast_info AS ci
    4947   1536923  PROJECT BmkToPage Bmk1000 AS Expr1629
    4947   1536923  INNER JOIN LOOP ON mi_idx.movie_id = ci.movie_id
      30   1536923  │└TABLE SEEK cast_info AS ci
     163     39066  INNER JOIN HASH ON mi_idx.movie_id = mi.movie_id
     730     72258  │└TABLE SEEK movie_info AS mi WHERE (info as info = 'Horror' OR info as info = 'Thriller') AND BLOOM(info_type_id as info_type_id)
  138004     34156  TABLE SEEK movie_info_idx AS mi_idx WHERE BLOOM(movie_id as movie_id) AND BLOOM(info_type_id as info_type_id)
Apache Iceberg
Estimate    Actual  Operator
       1         ∞  PROJECT min AS movie_budget, min_59 AS movie_votes, min_60 AS writer, min_61 AS violent_liongate_movie
       1         1  AGGREGATE MIN(min_62) AS min, MIN(min_63) AS min_59, MIN(min_64) AS min_60, MIN(min_65) AS min_61
       -        16  DISTRIBUTE GATHER
       -        16  AGGREGATE MIN(info_25) AS min_62, MIN(info_33) AS min_63, MIN(name_44) AS min_64, MIN(title) AS min_65
       -      1273  INNER JOIN HASH ON movie_id = id_51
 2528312   2528312  │└DISTRIBUTE HASH ON id_51
 2528312   2528312  │ PROJECT id AS id_51, title
 2528312   2528312  │ TABLE SCAN title
       -      1273  INNER JOIN HASH ON person_id = id_43
 4167491   1739579  │└DISTRIBUTE HASH ON id_43
 4167491   1739579  │ PROJECT id AS id_43, name AS name_44
 4167491   1739579  │ FILTER gender = 'm'
 4167491   1739579  │ TABLE SCAN name
       -      1556  INNER JOIN HASH ON keyword_id = id_13
  134170         7  │└DISTRIBUTE GATHER
  134170         7  │ PROJECT id AS id_13
  134170         7  │ FILTER keyword IN('blood','death','female-nudity','gore','hospital','murder','violence')
  134170         7  │ TABLE SCAN keyword
       -      1556  INNER JOIN HASH ON movie_id = movie_id_39
 4523930     76714  │└DISTRIBUTE HASH ON movie_id_39
 4523930     76714  │ PROJECT movie_id AS movie_id_39, keyword_id
 4523930     76714  │ TABLE SCAN movie_keyword
       -       477  INNER JOIN HASH ON info_type_id_32 = id_8
     113         1  │└DISTRIBUTE GATHER
     113         1  │ PROJECT id AS id_8
     113         1  │ FILTER info = 'votes'
     113         1  │ TABLE SCAN info_type
       -       477  INNER JOIN HASH ON movie_id = movie_id_31
 1380035     40111  │└DISTRIBUTE HASH ON movie_id_31
 1380035     40111  │ PROJECT movie_id AS movie_id_31, info_type_id AS info_type_id_32, info AS info_33
 1380035     40111  │ TABLE SCAN movie_info_idx
       -       477  INNER JOIN HASH ON info_type_id = id_4
     113         1  │└DISTRIBUTE GATHER
     113         1  │ PROJECT id AS id_4
     113         1  │ FILTER info = 'genres'
     113         1  │ TABLE SCAN info_type
       -       477  INNER JOIN HASH ON movie_id = movie_id_24
13352148     14781  │└DISTRIBUTE HASH ON movie_id_24
13352148     14781  │ PROJECT movie_id AS movie_id_24, info_type_id, info AS info_25
13352148     14781  │ FILTER info IN('Horror','Thriller')
13352148     14781  │ TABLE SCAN movie_info
       -       345  INNER JOIN HASH ON company_id = id_0
  211497        10  │└DISTRIBUTE GATHER
  211497        10  │ PROJECT id AS id_0
  211497        10  │ FILTER (name >= 'Lionsgate') AND (name < 'Lionsgatf') AND (name LIKE 'Lionsgate%')
  211497        10  │ TABLE SCAN company_name
       -       345  INNER JOIN HASH ON movie_id = movie_id_18
 2609129       365  │└DISTRIBUTE HASH ON movie_id_18
 2609129       365  │ PROJECT movie_id AS movie_id_18, company_id
 2609129       365  │ TABLE SCAN movie_companies
32619910       203  FILTER note IN('(head writer)','(story editor)','(story)','(writer)','(written by)')
32619910       203  TABLE SCAN cast_info
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(info), MIN(info), MIN(name), MIN(title)
       1      1273  INNER JOIN LOOP ON id = person_id
       1      1556  │└INNER JOIN LOOP ON id = company_id
       1    278364  │ │└INNER JOIN LOOP ON movie_id = id
       1     21209  │ │ │└INNER JOIN LOOP ON id = movie_id AND movie_id = id AND (movie_id = id)
       1     21209  │ │ │ │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = movie_id AND (movie_id = movie_id)
       1     31514  │ │ │ │ │└INNER JOIN LOOP ON id = info_type_id
       1     33306  │ │ │ │ │ │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = movie_id AND (movie_id = movie_id)
       6     63701  │ │ │ │ │ │ │└INNER JOIN HASH ON info_type_id = id
       1         1  │ │ │ │ │ │ │ │└TABLE SEEK info_type AS it2
     686    191689  │ │ │ │ │ │ │ INNER JOIN LOOP ON movie_id = movie_id
     236     76714  │ │ │ │ │ │ │ │└INNER JOIN LOOP ON keyword_id = id
       7         7  │ │ │ │ │ │ │ │ │└TABLE SEEK keyword AS k
    2135     76713  │ │ │ │ │ │ │ │ TABLE SEEK movie_keyword AS mk
  230142    191785  │ │ │ │ │ │ │ TABLE SEEK movie_info_idx AS mi_idx
   63701     63701  │ │ │ │ │ │ TABLE SEEK movie_info AS mi WHERE mi.info IN('Horror','Thriller')
   33306     33306  │ │ │ │ │ TABLE SEEK info_type AS it1 WHERE it1.info = 'genres'
   31514     31514  │ │ │ │ TABLE SEEK cast_info AS ci WHERE ci.note IN('(writer)','(head writer)','(written by)','(story)','(story editor)')
   21209     21209  │ │ │ TABLE SEEK title AS t
  106045    278262  │ │ TABLE SEEK movie_companies AS mc
  278364    278364  │ TABLE SEEK company_name AS cn WHERE cn.name LIKE 'Lionsgate%'
    1556      1556  TABLE SEEK name AS n WHERE n.gender = 'm'