PlannerIMDB — 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'