Planner — IMDB — JOB-25A

SELECT MIN(mi.info) AS movie_budget,
       MIN(mi_idx.info) AS movie_votes,
       MIN(n.name) AS male_writer,
       MIN(t.title) AS violent_movie_title
FROM job.cast_info AS ci,
     job.info_type AS it1,
     job.info_type AS it2,
     job.keyword AS k,
     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 it1.info = 'genres'
  AND it2.info = 'votes'
  AND k.keyword IN ('murder',
                    'blood',
                    'gore',
                    'death',
                    'female-nudity')
  AND mi.info = 'Horror'
  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 ci.movie_id = mi.movie_id
  AND ci.movie_id = mi_idx.movie_id
  AND ci.movie_id = mk.movie_id
  AND mi.movie_id = mi_idx.movie_id
  AND mi.movie_id = mk.movie_id
  AND mi_idx.movie_id = mk.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;

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
8,444,742
8.4M
Rank
Estimation Error
Est Err
8,477,441
8.5M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
173,257
173K
Rank
Estimation Error
Est Err
4,407
4.4K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
46,581,173
47M
Rank
Estimation Error
Est Err
58,768,914
59M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
22,281,901
22M
Rank
Estimation Error
Est Err
8,181,261
8.2M
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
11,423,917
11M
Rank
Estimation Error
Est Err
11,478,201
11M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
276,068
276K
Rank
Estimation Error
Est Err
4,408
4.4K
Rank
Estimation Error
Est Err
148,060
148K
Rank
Apache Iceberg
Estimation Error
Est Err
27,463,576
27M
Rank
Estimation Error
Est Err
10,311,437
10M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
1,660,717
1.7M
Rank
Estimation Error
Est Err
4,417
4.4K
Rank
Estimation Error
Est Err
11,617,464
12M
Rank
Native storage
Estimation Error
Est Err
835,453
835K
Rank
Estimation Error
Est Err
877,305
877K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
1,198,081
1.2M
Rank
Estimation Error
Est Err
4,407
4.4K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
297,137
297K
Rank
Estimation Error
Est Err
297,137
297K
Rank
Estimation Error
Est Err
449,851
450K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
347,855
348K
Rank
Estimation Error
Est Err
4,407
4.4K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
1,461,917
1.5M
Rank
Estimation Error
Est Err
1,461,799
1.5M
Rank
Estimation Error
Est Err
1,482,577
1.5M
Rank
Estimation Error
Est Err
591,810
592K
Rank
Estimation Error
Est Err
1,482,573
1.5M
Rank
Estimation Error
Est Err
4,407
4.4K
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
4,374,866
4.4M
Rank
Estimation Error
Est Err
39,907
40K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
4,385,528
4.4M
Rank
Estimation Error
Est Err
4,423
4.4K
Rank
Estimation Error
Est Err
4,371,357
4.4M
Rank

Actual Query Plans

Query Plan per Engine ?
Query Plan
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE min, min, min, min
       5      4407  INNER JOIN HASH ON id = info_type_id70
       1         1  │└TABLE SCAN info_type WHERE info = votes
      11     13233  INNER JOIN HASH ON movie_id24 = movie_id69
       8      4690  │└INNER JOIN HASH ON id6 = info_type_id
       1         1  │ │└TABLE SCAN info_type WHERE info = genres
       8      5196  │ INNER JOIN HASH ON id53 = movie_id24
       8      5196  │ │└INNER JOIN HASH ON id41 = person_id
      16      8230  │ │ │└INNER JOIN HASH ON movie_id33 = movie_id24
      29     13309  │ │ │ │└INNER JOIN HASH ON movie_id24 = movie_id
     119     62096  │ │ │ │ │└INNER JOIN HASH ON id11 = keyword_id
       4         5  │ │ │ │ │ │└TABLE SCAN keyword WHERE keyword BETWEEN blood AND murder AND keyword IN(blood,death,female - nudity,gore,murder)
 4523930   4523930  │ │ │ │ │ TABLE SCAN movie_keyword
   57952      6870  │ │ │ │ TABLE SCAN movie_info WHERE info = Horror
 1274215      3854  │ │ │ TABLE SCAN cast_info WHERE note BETWEEN (head writer) AND (written by) AND note35 IN((head writer),(story editor),story,writer,(written by))
 1778509      1734  │ │ 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 male_writer, a4 AS violent_movie_title
       -         1  AGGREGATE MIN(info_right) AS a1, MIN(info_left) AS a2, MIN(name) AS a3, MIN(title) AS a4
       -   8181261  PROJECT info, info, name, title
       -   8181261  PROJECT info, info, name, title
       -   8181261  INNER JOIN HASH ON tuple(PROJECTION_2906.movie_id,PROJECTION_2906.movie_id,PROJECTION_2906.movie_id,PROJECTION_2906.movie_id,PROJECTION_2906.id,PROJECTION_2906.id) = tuple(PROJECTION_2885.movie_id,PROJECTION_2885.movie_id,PROJECTION_2885.movie_id,PROJECTION_2885.movie_id,PROJECTION_2885.movie_id,PROJECTION_2885.movie_id)
       -    384814  │└PROJECT movie_id_right, movie_id AS movie_id_right_2, info AS info_right, name
       -    384814  │ PROJECT movie_id, info, movie_id, name
       -    384814  │ INNER JOIN HASH ON PROJECTION_2891.person_id = PROJECTION_2888.id
       -   1739579  │ │└PROJECT id, name
       -   1739579  │ │ PROJECT id, name
       -   1739579  │ │ TABLE SCAN name WHERE gender = 'm'
       -    746153  │ PROJECT person_id, movie_id, info, movie_id
       -    746153  │ PROJECT movie_id, person_id, info, movie_id
       -    746153  │ INNER JOIN HASH ON PROJECTION_2897.info_type_id = PROJECTION_2894.id
       -         1  │ │└PROJECT id
       -         1  │ │ PROJECT id
       -         1  │ │ TABLE SCAN info_type WHERE info = 'genres'
       -    769607  │ PROJECT info_type_id, movie_id, person_id, info, movie_id
       -    769607  │ PROJECT movie_id, person_id, info, movie_id, info_type_id
       -    769607  │ INNER JOIN HASH ON PROJECTION_2903.movie_id = PROJECTION_2900.movie_id
       -     30801  │ │└PROJECT movie_id AS movie_id_right, info, info_type_id
       -     30801  │ │ PROJECT movie_id, info, info_type_id
       -     30801  │ │ TABLE SCAN movie_info WHERE info = 'Horror'
       -  36244344  │ PROJECT movie_id AS movie_id_left, person_id
       -  36244344  │ PROJECT movie_id, person_id
       -  36244344  │ TABLE SCAN cast_info WHERE TRUE
       -   3461792  PROJECT movie_id AS movie_id_left, movie_id AS movie_id_left_2, id, info AS info_left, title
       -   3461792  PROJECT info, movie_id, movie_id, title, id
       -   3461792  INNER JOIN HASH ON tuple(PROJECTION_2930.id,PROJECTION_2930.id) = tuple(PROJECTION_2909.movie_id,PROJECTION_2909.movie_id)
       -   3461792  │└PROJECT movie_id, movie_id, info
       -   3461792  │ PROJECT info, movie_id, movie_id
       -   3461792  │ INNER JOIN HASH ON PROJECTION_2927.id = PROJECTION_2912.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_2924.movie_id = PROJECTION_2915.movie_id
       -    459925  │ │ │└PROJECT movie_id AS movie_id_right, info
       -    459925  │ │ │ PROJECT info, movie_id
       -    459925  │ │ │ INNER JOIN HASH ON PROJECTION_2921.info_type_id = PROJECTION_2918.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
       -   2528312  PROJECT id, title
       -   2528312  PROJECT title, id
       -   2528312  TABLE SCAN title
Native storage
Estimate    Actual  Operator
       -         1  AGGREGATE MIN(#0), MIN(#1), MIN(#2), MIN(#3)
       0      4407  PROJECT info, info, name, title
       0      4407  INNER JOIN HASH ON id = person_id
       0      7112  │└INNER JOIN HASH ON movie_id = id
       0     11389  │ │└INNER JOIN HASH ON id = movie_id
       0     11389  │ │ │└INNER JOIN HASH ON id = keyword_id
       0    319480  │ │ │ │└INNER JOIN HASH ON movie_id = movie_id
       0     16480  │ │ │ │ │└INNER JOIN HASH ON id = info_type_id
       0     49452  │ │ │ │ │ │└INNER JOIN HASH ON movie_id = movie_id
       0     30413  │ │ │ │ │ │ │└INNER JOIN HASH ON info_type_id = id
       2         1  │ │ │ │ │ │ │ │└FILTER id <= 110
       2         1  │ │ │ │ │ │ │ │ TABLE SCAN info_type WHERE info = 'genres'
      15     30413  │ │ │ │ │ │ │ FILTER movie_id BETWEEN 2 AND 2525793
      15     30413  │ │ │ │ │ │ │ TABLE SCAN movie_info WHERE info = 'Horror'
 1380035     54819  │ │ │ │ │ │ TABLE SCAN movie_info_idx
       2         1  │ │ │ │ │ FILTER id >= 99
       2         1  │ │ │ │ │ TABLE SCAN info_type WHERE info = 'votes'
 4523930    341382  │ │ │ │ TABLE SCAN movie_keyword WHERE movie_id <= 2525793
   26834         5  │ │ │ FILTER IN ...
  134170    134156  │ │ │ INNER JOIN HASH ON keyword = #0
       0         5  │ │ │ │└SCAN MATERIALISED
  134170    134156  │ │ │ TABLE SCAN keyword WHERE keyword IN('murder','blood','gore','death','female-nudity')
 2528312      6697  │ │ TABLE SCAN title WHERE id >= 2 AND id <= 2525793
 7248868      3952  │ FILTER movie_id BETWEEN 2 AND 2525793
 7248868      3952  │ FILTER IN ...
36244344    265758  │ INNER JOIN HASH ON note = #0
       0         5  │ │└SCAN MATERIALISED
36244344    265758  │ TABLE SCAN cast_info WHERE note IN('(writer)','(head writer)','(written by)','(story)','(story editor)')
 2083746      2216  FILTER id <= 4061926
 2083746      2216  TABLE SCAN "name" WHERE gender = 'm'
Apache Iceberg
Estimate    Actual  Operator
       1         1  PROJECT movie_budget, movie_votes, male_writer, violent_movie_title
       1         1  AGGREGATE MIN(info), MIN(info), MIN(name), MIN(title)
  494319        10  DISTRIBUTE GATHER
  494319        10  AGGREGATE MIN(info), MIN(info), MIN(name), MIN(title)
  494319      4407  INNER JOIN HASH ON movie_id = id AND movie_id = id AND movie_id = id AND movie_id = id
  494319      4407  │└DISTRIBUTE HASH ON movie_id, movie_id, movie_id, movie_id
  494319      4407  │ INNER JOIN HASH ON person_id = id
  494319      7112  │ │└DISTRIBUTE HASH ON person_id
  494319      7112  │ │ INNER JOIN HASH ON id = keyword_id
   26834         5  │ │ │└DISTRIBUTE GATHER
   26834         5  │ │ │ FILTER keyword IN('murder','blood','gore','death','female-nudity')
  134170    134170  │ │ │ DISTRIBUTE ROUND ROBIN
  134170    134170  │ │ │ TABLE SCAN keyword WHERE keyword IN('murder','blood','gore','death','female-nudity')
 2471597    207091  │ │ INNER JOIN HASH ON movie_id = movie_id AND movie_id = movie_id AND movie_id = movie_id
 1380035      8650  │ │ │└DISTRIBUTE HASH ON movie_id, movie_id, movie_id
 1380035      8650  │ │ │ 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'
 1380035     25956  │ │ │ PROJECT person_id, movie_id, movie_id, info, movie_id, info_type_id, info
 1380035     25956  │ │ │ INNER JOIN HASH ON movie_id = movie_id AND movie_id = movie_id
 1380035   1380035  │ │ │ │└DISTRIBUTE HASH ON movie_id, movie_id
 1380035   1380035  │ │ │ │ TABLE SCAN movie_info_idx WHERE ((info_type_id >= 100) AND (info_type_id <= 100)) AND info_type_id IN 100
 1780068     15897  │ │ │ DISTRIBUTE HASH ON movie_id, movie_id
 1780068     15897  │ │ │ 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'
 8513371     15897  │ │ │ PROJECT person_id, movie_id, movie_id, info_type_id, info
 8513371     15897  │ │ │ INNER JOIN HASH ON movie_id = movie_id
 2967144     30413  │ │ │ │└DISTRIBUTE HASH ON movie_id
 2967144     30413  │ │ │ │ FILTER info = 'Horror'
14835720   1724005  │ │ │ │ TABLE SCAN movie_info WHERE ((info = 'Horror') AND (((info_type_id >= 3) AND (info_type_id <= 3)) AND info_type_id IN 3)) AND CASE MOD(HASH_REPARTITION(movie_id,movie_id),10) WHEN 1 THEN ((((movie_id >= 57) AND (movie_id <= 2525790)) AND ((movie_id >= 57) AND (movie_id <= 2525790))) AND TRUE) WHEN 3 THEN ((((movie_id >= 11) AND (movie_id <= 2525784)) AND ((movie_id >= 11) AND (movie_id <= 2525784))) AND TRUE) WHEN 5 THEN ((((movie_id >= 52) AND (movie_id <=...
 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 >= 11530) AND (movie_id <= 2525631)) AND TRUE) WHEN 1 THEN (((movie_id >= 31537) AND (movie_id <= 2525625)) AND TRUE) WHEN 2 THEN (((movie_id >= 4665) AND (movie_id <= 2524996)) AND TRUE) WHEN 3 THEN (((movie_id >= 679) AND (movie_id <= 2525793)) AND TRUE) WHEN 4 THEN (((movie_id >= 34054) AN...
 4523930   4523930  │ │ DISTRIBUTE HASH ON movie_id, movie_id, movie_id
 4523930   4523930  │ │ TABLE SCAN movie_keyword WHERE CASE MOD(HASH_REPARTITION(movie_id,movie_id,movie_id),10) WHEN 0 THEN (((((movie_id >= 188281) AND (movie_id <= 2521028)) AND ((movie_id >= 188281) AND (movie_id <= 2521028))) AND ((movie_id >= 188281) AND (movie_id <= 2521028))) AND TRUE) WHEN 1 THEN (((((movie_id >= 96537) AND (movie_id <= 2524953)) AND ((movie_id >= 96537) AND (movie_id <= 2524953))) AND ((movie_id >= 96537) AND (movie_id <= 2524953))) AND TRUE) WHEN 2 THEN (((((mo...
  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 >= 2281) AND (id <= 3858670)) AND TRUE) WHEN 1 THEN (((id >= 28576) AND (id <= 3225587)) AND TRUE) WHEN 2 THEN (((id >= 3656) AND (id <= 3227769)) AND TRUE) WHEN 3 THEN (((id >= 10782) AND (id <= 3221761)) AND TRUE) WHEN 4 THEN (((id >= 15326) AND (id <= 3227684)) AND TRUE) WHEN 5 THEN (((id >= 13047) AND (id <= 3222478)) AND TRUE) WHEN 6 THEN (((id >= 3168) AND (id <= 3704202))...
 2528312   2528312  DISTRIBUTE HASH ON id, id, id, id
 2528312   2528312  TABLE SCAN title WHERE CASE MOD(HASH_REPARTITION(id,id,id,id),10) WHEN 1 THEN ((((((id >= 506304) AND (id <= 2520945)) AND ((id >= 506304) AND (id <= 2520945))) AND ((id >= 506304) AND (id <= 2520945))) AND ((id >= 506304) AND (id <= 2520945))) AND TRUE) WHEN 3 THEN ((((((id >= 560970) AND (id <= 2521126)) AND ((id >= 560970) AND (id <= 2521126))) AND ((id >= 560970) AND (id <= 2521126))) AND ((id >= 560970) AND (id <= 2521126))) AND TRUE) WHEN 5 THEN ((((((id >= 560960) A...
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)
     254      4407  INNER JOIN HASH ON ci.movie_id = mk.movie_id
     254     62096  │└DISTRIBUTE GATHER
     254     62096  │ INNER JOIN HASH ON mk.keyword_id = k.id
     254         5  │ │└DISTRIBUTE GATHER
 1380000         5  │ │ TABLE SCAN keyword WHERE k.keyword IN('murder','blood','gore','death','female-nudity')
14800000   4519847  │ TABLE SCAN movie_keyword
     254      4851  INNER JOIN HASH ON ci.person_id = n.id
     254      8650  │└DISTRIBUTE GATHER
      19      8650  │ INNER JOIN HASH ON mi.movie_id = ci.movie_id
      19     16480  │ │└DISTRIBUTE GATHER
      19     16480  │ │ INNER JOIN HASH ON mi_idx.info_type_id = it2.id
      19         1  │ │ │└DISTRIBUTE GATHER
 4170000         1  │ │ │ TABLE SCAN info_type WHERE it2.info = 'votes'
       6     49440  │ │ INNER JOIN HASH ON mi.movie_id = mi_idx.movie_id
       6     30413  │ │ │└DISTRIBUTE GATHER
     222     30413  │ │ │ INNER JOIN HASH ON mi.movie_id = t.id
     222     30413  │ │ │ │└DISTRIBUTE GATHER
     211     30413  │ │ │ │ INNER JOIN HASH ON mi.info_type_id = it1.id
     211         1  │ │ │ │ │└DISTRIBUTE GATHER
 2530000         1  │ │ │ │ │ TABLE SCAN info_type WHERE it1.info = 'genres'
  134000     30413  │ │ │ │ TABLE SCAN movie_info WHERE mi.info = 'Horror'
 4520000   2520303  │ │ │ TABLE SCAN title
36200000   1375945  │ │ TABLE SCAN movie_info_idx
     113   1241916  │ TABLE SCAN cast_info WHERE ci.note IN('(writer)','(head writer)','(written by)','(story)','(story editor)')
     113   1735486  TABLE SCAN name WHERE (n.gender IS NOT NULL) AND (n.gender = 'm')
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(info as info) AS Expr1018, MIN(info as info) AS Expr1019, MIN(name as name) AS Expr1020, MIN(title as title) AS Expr1021
       1      4407  INNER JOIN MERGE ON id as id = keyword_id as keyword_id
       5         5  │└SORT id
       5         5  │ TABLE SCAN keyword AS k WHERE keyword as keyword = 'blood' OR keyword as keyword = 'death' OR keyword as keyword = 'female-nudity' OR keyword as keyword = 'gore' OR keyword as keyword = 'murder'
    1168      4407  SORT keyword_id
    1168    128590  INNER JOIN LOOP ON Bmk1012 = Bmk1012
       1    128590  │└TABLE SEEK movie_keyword AS mk
    1168    128590  INNER JOIN LOOP ON t.id = mk.movie_id
      18    128590  │└TABLE SEEK movie_keyword AS mk
      63      4851  INNER JOIN LOOP ON Bmk1016 = Bmk1016
       1      4851  │└TABLE SEEK title AS t
      64      4851  INNER JOIN LOOP ON ci.movie_id = t.id
       1      4851  │└TABLE SEEK title AS t
      63      4851  SORT movie_id
      63      4851  FILTER gender as gender = 'm'
     154      8650  INNER JOIN LOOP ON Bmk1014 = Bmk1014
       1      8650  │└TABLE SEEK name AS n
     154      8650  SORT Expr1060
     154      8650  PROJECT BmkToPage Bmk1014 AS Expr1060
     154      8650  INNER JOIN LOOP ON ci.person_id = n.id
       1      8650  │└TABLE SEEK name AS n
     154      8650  SORT person_id
     154      8650  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)'
    5614    548763  INNER JOIN LOOP ON Bmk1000 = Bmk1000
       1    548763  │└TABLE SEEK cast_info AS ci
    5614    548763  SORT Expr1059
    5614    548763  PROJECT BmkToPage Bmk1000 AS Expr1059
    5614    548763  INNER JOIN LOOP ON mi_idx.movie_id = ci.movie_id
      30    548763  │└TABLE SEEK cast_info AS ci
     185     16480  INNER JOIN MERGE ON id as id = info_type_id as info_type_id
       1         1  │└FILTER info as info = 'votes'
     113       113  │ INNER JOIN LOOP ON Bmk1004 = Bmk1004
       1       113  │ │└TABLE SEEK info_type AS it2
     113       113  │ TABLE SEEK info_type AS it2
     929     16484  SORT info_type_id
     929     49452  INNER JOIN LOOP ON mi.movie_id = mi_idx.movie_id
       2     49452  │└TABLE SEEK movie_info_idx AS mi_idx
     414     30413  INNER JOIN HASH ON mi.info_type_id = it1.id
       1         1  │└FILTER info as info = 'genres'
     113       113  │ TABLE SCAN info_type AS it1
   29003     30413  TABLE SEEK movie_info AS mi WHERE (PROBE(Bitmap1066,info_type_id as info_type_id,N'IN ROW')) AND (info as info = 'Horror')
Apache Iceberg
Estimate    Actual  Operator
       1         ∞  PROJECT min AS movie_budget, min_45 AS movie_votes, min_46 AS male_writer, min_47 AS violent_movie_title
       1         1  AGGREGATE MIN(min_48) AS min, MIN(min_49) AS min_45, MIN(min_50) AS min_46, MIN(min_51) AS min_47
       -        16  DISTRIBUTE GATHER
       -        16  AGGREGATE MIN(info_15) AS min_48, MIN(info_23) AS min_49, MIN(name) AS min_50, MIN(title) AS min_51
       -      4407  INNER JOIN HASH ON movie_id = id_37
 2528312   2528312  │└DISTRIBUTE HASH ON id_37
 2528312   2528312  │ PROJECT id AS id_37, title
 2528312   2528312  │ TABLE SCAN title
       -      4407  INNER JOIN HASH ON person_id = id_33
 4167491   1739579  │└DISTRIBUTE HASH ON id_33
 4167491   1739579  │ PROJECT id AS id_33, name
 4167491   1739579  │ FILTER gender = 'm'
 4167491   1739579  │ TABLE SCAN name
       -      7112  INNER JOIN HASH ON keyword_id = id_9
  134170         5  │└DISTRIBUTE GATHER
  134170         5  │ PROJECT id AS id_9
  134170         5  │ FILTER keyword IN('blood','death','female-nudity','gore','murder')
  134170         5  │ TABLE SCAN keyword
       -      7112  INNER JOIN HASH ON movie_id = movie_id_29
 4523930     62096  │└DISTRIBUTE HASH ON movie_id_29
 4523930     62096  │ PROJECT movie_id AS movie_id_29, keyword_id
 4523930     62096  │ TABLE SCAN movie_keyword
       -      3541  INNER JOIN HASH ON info_type_id_22 = id_4
     113         1  │└DISTRIBUTE GATHER
     113         1  │ PROJECT id AS id_4
     113         1  │ FILTER info = 'votes'
     113         1  │ TABLE SCAN info_type
       -      3541  INNER JOIN HASH ON movie_id = movie_id_21
 1380035     35510  │└DISTRIBUTE HASH ON movie_id_21
 1380035     35510  │ PROJECT movie_id AS movie_id_21, info_type_id AS info_type_id_22, info AS info_23
 1380035     35510  │ TABLE SCAN movie_info_idx
       -      3541  INNER JOIN HASH ON info_type_id = id_0
     113         1  │└DISTRIBUTE GATHER
     113         1  │ PROJECT id AS id_0
     113         1  │ FILTER info = 'genres'
     113         1  │ TABLE SCAN info_type
       -      3541  INNER JOIN HASH ON movie_id = movie_id_14
13352148      5837  │└DISTRIBUTE HASH ON movie_id_14
13352148      5837  │ PROJECT movie_id AS movie_id_14, info_type_id, info AS info_15
13352148      5837  │ FILTER info = 'Horror'
13352148      5837  │ TABLE SCAN movie_info
32619910      3525  FILTER note IN('(head writer)','(story editor)','(story)','(writer)','(written by)')
32619910      3525  TABLE SCAN cast_info
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(info), MIN(info), MIN(name), MIN(title)
       1      4407  INNER JOIN LOOP ON id = movie_id AND movie_id = id AND (movie_id = id)
       1      4407  │└INNER JOIN LOOP ON id = person_id
       1      7112  │ │└INNER JOIN LOOP ON id = info_type_id
       1      7740  │ │ │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = movie_id AND (movie_id = movie_id)
       1     12260  │ │ │ │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = movie_id AND (movie_id = movie_id)
       4     50760  │ │ │ │ │└INNER JOIN HASH ON info_type_id = id
       1         1  │ │ │ │ │ │└TABLE SEEK info_type AS it2
     491    152720  │ │ │ │ │ INNER JOIN LOOP ON movie_id = movie_id
     169     62096  │ │ │ │ │ │└INNER JOIN LOOP ON keyword_id = id
       5         5  │ │ │ │ │ │ │└TABLE SEEK keyword AS k
    1525     62096  │ │ │ │ │ │ TABLE SEEK movie_keyword AS mk
  186288    152756  │ │ │ │ │ TABLE SEEK movie_info_idx AS mi_idx
   50760     50760  │ │ │ │ TABLE SEEK movie_info AS mi WHERE mi.info = 'Horror'
   12260     12260  │ │ │ TABLE SEEK cast_info AS ci WHERE ci.note IN('(writer)','(head writer)','(written by)','(story)','(story editor)')
    7740      7740  │ │ TABLE SEEK info_type AS it1 WHERE it1.info = 'genres'
    7112      7112  │ TABLE SEEK name AS n WHERE n.gender = 'm'
    4407      4407  TABLE SEEK title AS t