Planner — IMDB — JOB-26A

SELECT MIN(chn.name) AS character_name,
       MIN(mi_idx.info) AS rating,
       MIN(n.name) AS playing_actor,
       MIN(t.title) AS complete_hero_movie
FROM job.complete_cast AS cc,
     job.comp_cast_type AS cct1,
     job.comp_cast_type AS cct2,
     job.char_name AS chn,
     job.cast_info AS ci,
     job.info_type AS it2,
     job.keyword AS k,
     job.kind_type AS kt,
     job.movie_info_idx AS mi_idx,
     job.movie_keyword AS mk,
     job.name AS n,
     job.title AS t
WHERE cct1.kind = 'cast'
  AND cct2.kind LIKE '%complete%'
  AND chn.name IS NOT NULL
  AND (chn.name LIKE '%man%'
       OR chn.name LIKE '%Man%')
  AND it2.info = 'rating'
  AND k.keyword IN ('superhero',
                    'marvel-comics',
                    'based-on-comic',
                    'tv-special',
                    'fight',
                    'violence',
                    'magnet',
                    'web',
                    'claw',
                    'laser')
  AND kt.kind = 'movie'
  AND mi_idx.info > '7.0'
  AND t.production_year > 2000
  AND kt.id = t.kind_id
  AND t.id = mk.movie_id
  AND t.id = ci.movie_id
  AND t.id = cc.movie_id
  AND t.id = mi_idx.movie_id
  AND mk.movie_id = ci.movie_id
  AND mk.movie_id = cc.movie_id
  AND mk.movie_id = mi_idx.movie_id
  AND ci.movie_id = cc.movie_id
  AND ci.movie_id = mi_idx.movie_id
  AND cc.movie_id = mi_idx.movie_id
  AND chn.id = ci.person_role_id
  AND n.id = ci.person_id
  AND k.id = mk.keyword_id
  AND cct1.id = cc.subject_id
  AND cct2.id = cc.status_id
  AND it2.id = mi_idx.info_type_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,712,111
8.7M
Rank
Estimation Error
Est Err
8,730,073
8.7M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
108,338
108K
Rank
Estimation Error
Est Err
1,728
1.7K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
46,959,470
47M
Rank
Estimation Error
Est Err
0
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
0
Rank
Estimation Error
Est Err
0
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
27,051,895
27M
Rank
Estimation Error
Est Err
27,072,613
27M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
142,142
142K
Rank
Estimation Error
Est Err
1,730
1.7K
Rank
Estimation Error
Est Err
78,041
78K
Rank
Apache Iceberg
Estimation Error
Est Err
49,550,792
50M
Rank
Estimation Error
Est Err
46,117,998
46M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
8,673,512
8.7M
Rank
Estimation Error
Est Err
1,738
1.7K
Rank
Estimation Error
Est Err
8,804,639
8.8M
Rank
Native storage
Estimation Error
Est Err
4,047,373
4M
Rank
Estimation Error
Est Err
4,050,927
4.1M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
686,955
687K
Rank
Estimation Error
Est Err
1,728
1.7K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
230,810
231K
Rank
Estimation Error
Est Err
230,806
231K
Rank
Estimation Error
Est Err
253,466
253K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
241,828
242K
Rank
Estimation Error
Est Err
1,728
1.7K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
373,484
373K
Rank
Estimation Error
Est Err
373,469
373K
Rank
Estimation Error
Est Err
605,794
606K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
546,324
546K
Rank
Estimation Error
Est Err
1,728
1.7K
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
4,638,932
4.6M
Rank
Estimation Error
Est Err
13,129
13K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
4,643,852
4.6M
Rank
Estimation Error
Est Err
1,744
1.7K
Rank
Estimation Error
Est Err
4,638,722
4.6M
Rank

Actual Query Plans

Query Plan per Engine ?
Query Plan
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE min, min, min, min
       1      1728  INNER JOIN HASH ON id83 = person_id
       1      1728  │└INNER JOIN HASH ON id73 = person_role_id
      18     22972  │ │└INNER JOIN HASH ON movie_id49 = movie_id65
       2       326  │ │ │└INNER JOIN HASH ON id = status_id
       2         2  │ │ │ │└TABLE SCAN comp_cast_type WHERE kind LIKE '%complete%'
       1       326  │ │ │ INNER JOIN HASH ON id6 = subject_id
       1         1  │ │ │ │└TABLE SCAN comp_cast_type WHERE kind = cast
       2       401  │ │ │ INNER JOIN HASH ON movie_id57 = movie_id49
       8       884  │ │ │ │└INNER JOIN HASH ON id11 = info_type_id
       1         1  │ │ │ │ │└TABLE SCAN info_type WHERE info = rating
       3       884  │ │ │ │ INNER JOIN HASH ON id33 = movie_id49
      45      5032  │ │ │ │ │└INNER JOIN HASH ON id16 = kind_id
       1         1  │ │ │ │ │ │└TABLE SCAN kind_type WHERE kind = movie
     178      5528  │ │ │ │ │ INNER JOIN HASH ON id33 = movie_id
     308     24091  │ │ │ │ │ │└INNER JOIN HASH ON id21 = keyword_id
      10        10  │ │ │ │ │ │ │└TABLE SCAN keyword WHERE keyword BETWEEN based - on - comic AND web AND keyword IN(based - on - comic,claw,fight,laser,magnet,marvel - comics,superhero,tv - special,violence,web)
 4523930   4523930  │ │ │ │ │ │ TABLE SCAN movie_keyword
 1402423      4555  │ │ │ │ │ TABLE SCAN title WHERE production_year >= 2001
  184633       669  │ │ │ │ TABLE SCAN movie_info_idx WHERE info > 7.0
  135086       278  │ │ │ TABLE SCAN complete_cast
17485064     14363  │ │ TABLE SCAN cast_info
  196271       810  │ TABLE SCAN char_name WHERE name LIKE '%man%' OR name LIKE '%Man%'
 4167491   4167491  TABLE SCAN name
Native storage
Estimate    Actual  Operator
       -         ∞  PROJECT a1 AS character_name, a2 AS rating, a3 AS playing_actor, a4 AS complete_hero_movie
       -         ∞  AGGREGATE MIN(name_left) AS a1, MIN(info) AS a2, MIN(name_right) AS a3, MIN(title) AS a4
       -         ∞  PROJECT name_left, info, name_right, title
       -         ∞  PROJECT name_left, info, name_right, title
       -         ∞  INNER JOIN HASH ON tuple(PROJECTION_3065.movie_id,PROJECTION_3065.movie_id,PROJECTION_3065.movie_id,PROJECTION_3065.movie_id,PROJECTION_3065.movie_id,PROJECTION_3065.movie_id) = tuple(PROJECTION_3044.movie_id,PROJECTION_3044.movie_id,PROJECTION_3044.movie_id,PROJECTION_3044.id,PROJECTION_3044.id,PROJECTION_3044.id)
       -         ∞  │└PROJECT movie_id AS movie_id_right, id, title
       -         ∞  │ PROJECT movie_id, title, id
       -         ∞  │ INNER JOIN HASH ON PROJECTION_3050.kind_id = PROJECTION_3047.id
       -         1  │ │└PROJECT id AS id_right
       -         1  │ │ FILTER (1 AND kind = 'movie'_String) AS a53
       -         1  │ │ TABLE SCAN kind_type WHERE kind = 'movie'
       -         ∞  │ PROJECT kind_id, movie_id, title, id_left
       -         ∞  │ PROJECT movie_id, title, id, kind_id
       -         ∞  │ INNER JOIN HASH ON PROJECTION_3056.keyword_id = PROJECTION_3053.id
       -         ∞  │ │└PROJECT id AS id_right
       -         ∞  │ │ FILTER (1 AND in(keyword,__set_String_2587091148504359415_16236450900976866144)) AS a49
       -    134170  │ │ TABLE SCAN keyword WHERE TRUE
       -   1970380  │ PROJECT keyword_id, movie_id, title, id AS id_left, kind_id
       -   1970380  │ PROJECT movie_id, keyword_id, title, id, kind_id
       -   1970380  │ INNER JOIN HASH ON PROJECTION_3062.movie_id = PROJECTION_3059.id
       -   1381453  │ │└PROJECT id, title, kind_id
       -   1381453  │ │ FILTER (1 AND production_year > 2000_UInt16) AS a45
       -   1381453  │ │ TABLE SCAN title WHERE production_year > 2000
       -   4523930  │ PROJECT movie_id, keyword_id
       -   4523930  │ PROJECT movie_id, keyword_id
       -   4523930  │ TABLE SCAN movie_keyword
       -         ∞  PROJECT movie_id AS movie_id_left, movie_id AS movie_id_left_2, movie_id AS movie_id_left_3, name_left, info, name_right
       -         ∞  PROJECT movie_id, movie_id, name_left, info, movie_id, name_right
       -         ∞  INNER JOIN HASH ON tuple(PROJECTION_3077.movie_id,PROJECTION_3077.movie_id) = tuple(PROJECTION_3068.movie_id,PROJECTION_3068.movie_id)
       -    121572  │└PROJECT movie_id AS movie_id_right, info
       -    121572  │ PROJECT info, movie_id
       -    121572  │ INNER JOIN HASH ON PROJECTION_3074.info_type_id = PROJECTION_3071.id
       -         1  │ │└PROJECT id
       -         1  │ │ FILTER (1 AND info = 'rating'_String) AS a38
       -         1  │ │ TABLE SCAN info_type WHERE info = 'rating'
       -    192839  │ PROJECT info_type_id, info, movie_id
       -    192839  │ FILTER (1 AND info > '7.0'_String) AS a34
       -    192839  │ TABLE SCAN movie_info_idx WHERE info > '7.0'
       -         ∞  PROJECT movie_id_left, movie_id AS movie_id_left_2, name, name
       -         ∞  PROJECT movie_id, movie_id, name, name
       -         ∞  INNER JOIN HASH ON PROJECTION_3083.person_id = PROJECTION_3080.id
       -   4167491  │└PROJECT id, name AS name_right
       -   4167491  │ PROJECT name, id
       -   4167491  │ TABLE SCAN name
       -         ∞  PROJECT person_id, movie_id, movie_id, name AS name_left
       -         ∞  PROJECT movie_id, movie_id, person_id, name
       -         ∞  INNER JOIN HASH ON PROJECTION_3089.person_role_id = PROJECTION_3086.id
       -         ∞  │└PROJECT id, name
       -         ∞  │ FILTER (1 AND  OR ( LIKE (name,'%man%'_String), LIKE (name,'%Man%'_String))) AS a25
       -    180152  │ TABLE SCAN char_name WHERE name LIKE '%man%' OR name LIKE '%Man%'
       -         ∞  PROJECT person_role_id, movie_id, movie_id, person_id
       -         ∞  PROJECT movie_id, movie_id, person_role_id, person_id
       -         ∞  INNER JOIN HASH ON PROJECTION_3095.movie_id = PROJECTION_3092.movie_id
       -  36244344  │└PROJECT movie_id AS movie_id_right, person_role_id, person_id
       -  36244344  │ PROJECT movie_id, person_role_id, person_id
       -  36244344  │ TABLE SCAN cast_info
       -         ∞  PROJECT movie_id AS movie_id_left
       -         ∞  PROJECT movie_id
       -         ∞  INNER JOIN HASH ON PROJECTION_3107.id = PROJECTION_3098.status_id
       -     85941  │└PROJECT status_id, movie_id
       -     85941  │ PROJECT status_id, movie_id
       -     85941  │ INNER JOIN HASH ON PROJECTION_3104.subject_id = PROJECTION_3101.id
       -         1  │ │└PROJECT id
       -         1  │ │ FILTER (1 AND kind = 'cast'_String) AS a21
       -         1  │ │ TABLE SCAN comp_cast_type WHERE kind = 'cast'
       -    135086  │ PROJECT subject_id, status_id, movie_id
       -    135086  │ PROJECT subject_id, status_id, movie_id
       -    135086  │ TABLE SCAN complete_cast
       -         ∞  PROJECT id
       -         ∞  FILTER ( LIKE (kind,'%complete%'_String) AND 1) AS a16
       -         2  TABLE SCAN comp_cast_type WHERE kind LIKE '%complete%'
Native storage
Estimate    Actual  Operator
       -         1  AGGREGATE MIN(#0), MIN(#1), MIN(#2), MIN(#3)
       0      1728  PROJECT name, info, name, title
       0      1728  INNER JOIN HASH ON id = person_id
       0      1728  │└INNER JOIN HASH ON id = person_role_id
       2     58947  │ │└INNER JOIN HASH ON movie_id = id
       0       326  │ │ │└INNER JOIN HASH ON id = keyword_id
       0     79039  │ │ │ │└INNER JOIN HASH ON movie_id = id
       0       647  │ │ │ │ │└INNER JOIN HASH ON status_id = id
       1         2  │ │ │ │ │ │└FILTER id >= 3
       1         2  │ │ │ │ │ │ TABLE SCAN comp_cast_type WHERE contains(kind,'complete')
       1       647  │ │ │ │ │ INNER JOIN HASH ON subject_id = id
       1         1  │ │ │ │ │ │└FILTER id <= 2
       1         1  │ │ │ │ │ │ TABLE SCAN comp_cast_type WHERE kind = 'cast'
       7       863  │ │ │ │ │ INNER JOIN HASH ON kind_id = id
       1         1  │ │ │ │ │ │└TABLE SCAN kind_type WHERE kind = 'movie'
      54       863  │ │ │ │ │ INNER JOIN HASH ON id = movie_id
     265     29914  │ │ │ │ │ │└INNER JOIN HASH ON movie_id = movie_id
    4885    121570  │ │ │ │ │ │ │└INNER JOIN HASH ON info_type_id = id
       2         1  │ │ │ │ │ │ │ │└FILTER id >= 99
       2         1  │ │ │ │ │ │ │ │ TABLE SCAN info_type WHERE info = 'rating'
  276007    121570  │ │ │ │ │ │ │ FILTER movie_id >= 285
  276007    121572  │ │ │ │ │ │ │ TABLE SCAN movie_info_idx WHERE info > '7.0'
  135086     30326  │ │ │ │ │ │ TABLE SCAN complete_cast WHERE movie_id <= 2525793
  505662       994  │ │ │ │ │ FILTER id BETWEEN 285 AND 2525793
  505662       994  │ │ │ │ │ TABLE SCAN title WHERE production_year > 2000
 4523930   3677736  │ │ │ │ TABLE SCAN movie_keyword WHERE movie_id >= 285 AND movie_id <= 2525793
   26834        10  │ │ │ FILTER IN ...
  134170    134044  │ │ │ INNER JOIN HASH ON keyword = #0
       0        10  │ │ │ │└SCAN MATERIALISED
  134170    134044  │ │ │ TABLE SCAN keyword WHERE keyword IN('superhero','marvel-comics','based-on-comic','tv-special','fight','violence','magnet','web','claw','laser')
36244344     78529  │ │ TABLE SCAN cast_info WHERE movie_id >= 285 AND movie_id <= 2525793
  628067       856  │ TABLE SCAN char_name WHERE (name IS NOT NULL) AND (contains(name,'man') OR contains(name,'Man'))
 4167491      3301  TABLE SCAN "name" WHERE id <= 4061926
Apache Iceberg
Estimate    Actual  Operator
       1         1  PROJECT character_name, rating, playing_actor, complete_hero_movie
       1         1  AGGREGATE MIN(name), MIN(info), MIN(name), MIN(title)
   28246        10  DISTRIBUTE GATHER
   28246        10  AGGREGATE MIN(name), MIN(info), MIN(name), MIN(title)
   28246      1728  INNER JOIN HASH ON id = kind_id
       2         1  │└DISTRIBUTE GATHER
       2         1  │ FILTER kind = 'movie'
       7         7  │ DISTRIBUTE ROUND ROBIN
       7         7  │ TABLE SCAN kind_type WHERE kind = 'movie'
   98863      1787  INNER JOIN HASH ON movie_id = id AND movie_id = id AND movie_id = id AND movie_id = id
   98863      5264  │└DISTRIBUTE GATHER
   98863      5264  │ INNER JOIN HASH ON person_id = id
   98863      5264  │ │└DISTRIBUTE GATHER
   98863      5264  │ │ INNER JOIN HASH ON id = keyword_id
   26834        10  │ │ │└DISTRIBUTE GATHER
   26834        10  │ │ │ FILTER keyword IN('superhero','marvel-comics','based-on-comic','tv-special','fight','violence','magnet','web','claw','laser')
  134170    134170  │ │ │ DISTRIBUTE ROUND ROBIN
  134170    134170  │ │ │ TABLE SCAN keyword WHERE keyword IN('superhero','marvel-comics','based-on-comic','tv-special','fight','violence','magnet','web','claw','laser')
  494319   1446489  │ │ INNER JOIN HASH ON movie_id = movie_id AND movie_id = movie_id AND movie_id = movie_id
  276007     25644  │ │ │└DISTRIBUTE HASH ON movie_id, movie_id, movie_id
  276007     25644  │ │ │ INNER JOIN HASH ON id = info_type_id
      23         1  │ │ │ │└DISTRIBUTE GATHER
      23         1  │ │ │ │ FILTER info = 'rating'
     113       113  │ │ │ │ DISTRIBUTE ROUND ROBIN
     113       113  │ │ │ │ TABLE SCAN info_type WHERE info = 'rating'
  276007     41047  │ │ │ PROJECT movie_id, person_id, movie_id, name, movie_id, info_type_id, info
  276007     41047  │ │ │ INNER JOIN HASH ON movie_id = movie_id AND movie_id = movie_id
  276007    192839  │ │ │ │└DISTRIBUTE HASH ON movie_id, movie_id
  276007    192839  │ │ │ │ FILTER info > '7.0'
 1380035   1380035  │ │ │ │ TABLE SCAN movie_info_idx WHERE (info > '7.0') AND (((info_type_id >= 101) AND (info_type_id <= 101)) AND info_type_id IN 101)
  484568    118833  │ │ │ DISTRIBUTE HASH ON movie_id, movie_id
  484568    118833  │ │ │ INNER JOIN HASH ON person_role_id = id
  484568   3409569  │ │ │ │└DISTRIBUTE HASH ON person_role_id
  484568   3409569  │ │ │ │ INNER JOIN HASH ON movie_id = movie_id
   33771     85941  │ │ │ │ │└DISTRIBUTE GATHER
   33771     85941  │ │ │ │ │ INNER JOIN HASH ON id = status_id
       1         2  │ │ │ │ │ │└DISTRIBUTE GATHER
       1         2  │ │ │ │ │ │ FILTER kind LIKE '%complete%'
       4         4  │ │ │ │ │ │ DISTRIBUTE ROUND ROBIN
       4         4  │ │ │ │ │ │ TABLE SCAN comp_cast_type WHERE kind LIKE '%complete%'
   67543     85941  │ │ │ │ │ INNER JOIN HASH ON id = subject_id
       1         1  │ │ │ │ │ │└DISTRIBUTE GATHER
       1         1  │ │ │ │ │ │ FILTER kind = 'cast'
       4         4  │ │ │ │ │ │ DISTRIBUTE ROUND ROBIN
       4         4  │ │ │ │ │ │ TABLE SCAN comp_cast_type WHERE kind = 'cast'
  135086    122880  │ │ │ │ │ DISTRIBUTE ROUND ROBIN
  135086    122880  │ │ │ │ │ TABLE SCAN complete_cast WHERE ((((subject_id >= 1) AND (subject_id <= 1)) AND subject_id IN 1) AND (((status_id >= 3) AND (status_id <= 4)) AND status_id IN(3,4))) AND CASE MOD(HASH_REPARTITION(movie_id,movie_id),10) WHEN 1 THEN ((((movie_id >= 228) AND (movie_id <= 2525782)) AND ((movie_id >= 228) AND (movie_id <= 2525782))) AND TRUE) WHEN 3 THEN ((((movie_id >= 284) AND (movie_id <= 2525784)) AND ((movie_id >= 284) AND (movie_id <= 2525784))) AND TRU...
36244344  36244344  │ │ │ │ TABLE SCAN cast_info WHERE ((movie_id >= 285) AND (movie_id <= 2528181)) AND TRUE
  628068    180152  │ │ │ DISTRIBUTE HASH ON id
  628068    180152  │ │ │ FILTER name IS NOT NULL AND (name LIKE '%man%' OR name LIKE '%Man%')
 3140339   3140339  │ │ │ TABLE SCAN char_name WHERE (name IS NOT NULL AND (name LIKE '%man%' OR name LIKE '%Man%')) AND CASE MOD(HASH_REPARTITION id,10) WHEN 0 THEN (((id >= 5) AND (id <= 3140184)) AND TRUE) WHEN 1 THEN (((id >= 15) AND (id <= 3140113)) AND TRUE) WHEN 2 THEN (((id >= 10) AND (id <= 3140201)) AND TRUE) WHEN 3 THEN (((id >= 1) AND (id <= 3139991)) AND TRUE) WHEN 4 THEN (((id >= 21) AND (id <= 3140267)) AND TRUE) WHEN 5 THEN (((id >= 20) AND (id <= 3140246)) AND TRUE) WHE...
 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 >= 286) AND (movie_id <= 2523213)) AND ((movie_id >= 286) AND (movie_id <= 2523213))) AND ((movie_id >= 286) AND (movie_id <= 2523213))) AND TRUE) WHEN 1 THEN (((((movie_id >= 301) AND (movie_id <= 2525058)) AND ((movie_id >= 301) AND (movie_id <= 2525058))) AND ((movie_id >= 301) AND (movie_id <= 2525058))) AND TRUE) WHEN 2 THEN (((((movie_id >= 289) ...
 4167491   2707517  │ TABLE SCAN name WHERE ((id >= 339) AND (id <= 2700410)) AND TRUE
  343129    645078  FILTER production_year > 2000
 2528312   1297449  TABLE SCAN title WHERE ((production_year > 2000) AND ((((((id >= 96295) AND (id <= 2522052)) AND ((id >= 96295) AND (id <= 2522052))) AND ((id >= 96295) AND (id <= 2522052))) AND ((id >= 96295) AND (id <= 2522052))) AND TRUE)) AND (((kind_id >= 1) AND (kind_id <= 1)) AND kind_id IN 1)
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(chn.name), MIN(mi_idx.info), MIN(n.name), MIN(t.title)
       1         2  DISTRIBUTE GATHER
       1         2  AGGREGATE MIN(chn.name), MIN(mi_idx.info), MIN(n.name), MIN(t.title)
   30700      1728  INNER JOIN HASH ON ci.person_role_id = chn.id
   30700     22972  │└DISTRIBUTE GATHER
   30700     22972  │ INNER JOIN HASH ON ci.person_id = n.id
   30700     22972  │ │└DISTRIBUTE GATHER
   30700     22972  │ │ INNER JOIN HASH ON cc.movie_id = ci.movie_id
   30700       326  │ │ │└DISTRIBUTE GATHER
    1860       326  │ │ │ INNER JOIN HASH ON mi_idx.info_type_id = it2.id
    1860         1  │ │ │ │└DISTRIBUTE GATHER
       4         1  │ │ │ │ TABLE SCAN info_type WHERE it2.info = 'rating'
    1860       503  │ │ │ INNER JOIN HASH ON cc.movie_id = mi_idx.movie_id
    1860      1267  │ │ │ │└DISTRIBUTE GATHER
     599      1267  │ │ │ │ INNER JOIN HASH ON t.kind_id = kt.id
     599         1  │ │ │ │ │└DISTRIBUTE GATHER
 2530000         1  │ │ │ │ │ TABLE SCAN kind_type WHERE kt.kind = 'movie'
     599      1446  │ │ │ │ INNER JOIN HASH ON cc.movie_id = t.id
     599      6396  │ │ │ │ │└DISTRIBUTE GATHER
     569      6396  │ │ │ │ │ INNER JOIN HASH ON cc.subject_id = cct1.id
     569         1  │ │ │ │ │ │└DISTRIBUTE GATHER
 1380000         1  │ │ │ │ │ │ TABLE SCAN comp_cast_type WHERE cct1.kind = 'cast'
     569      9392  │ │ │ │ │ INNER JOIN HASH ON cc.status_id = cct2.id
     569         2  │ │ │ │ │ │└DISTRIBUTE GATHER
36200000         2  │ │ │ │ │ │ TABLE SCAN comp_cast_type WHERE contains(cct2.kind,'complete')
     569      9392  │ │ │ │ │ INNER JOIN HASH ON mk.movie_id = cc.movie_id
     569     24091  │ │ │ │ │ │└DISTRIBUTE GATHER
     387     24091  │ │ │ │ │ │ INNER JOIN HASH ON mk.keyword_id = k.id
     387        10  │ │ │ │ │ │ │└DISTRIBUTE GATHER
 3140000        10  │ │ │ │ │ │ │ TABLE SCAN keyword WHERE k.keyword IN('superhero','marvel-comics','based-on-comic','tv-special','fight','violence','magnet','web','claw','laser')
 4170000   4519841  │ │ │ │ │ │ TABLE SCAN movie_keyword
     113    131210  │ │ │ │ │ TABLE SCAN complete_cast WHERE cc.movie_id IS NOT NULL
       7    428605  │ │ │ │ TABLE SCAN title WHERE (t.production_year IS NOT NULL) AND (t.production_year > 2000L)
       4     79989  │ │ │ TABLE SCAN movie_info_idx WHERE mi_idx.info > '7.0'
  135000  17553587  │ │ TABLE SCAN cast_info WHERE ci.person_role_id IS NOT NULL
  134000   4159316  │ TABLE SCAN name
 4520000    179332  TABLE SCAN char_name WHERE contains(chn.name,'man') OR contains(chn.name,'Man')
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(name as name) AS Expr1024, MIN(info as info) AS Expr1025, MIN(name as name) AS Expr1026, MIN(title as title) AS Expr1027
       2      1728  INNER JOIN LOOP ON Bmk1020 = Bmk1020
       1      1728  │└TABLE SEEK name AS n
       2      1728  PROJECT BmkToPage Bmk1020 AS Expr1368
       2      1728  INNER JOIN LOOP ON ci.person_id = n.id
       1      1728  │└TABLE SEEK name AS n
       2      1728  FILTER name as name LIKE '%man%' OR name as name LIKE '%Man%'
      49     22972  INNER JOIN LOOP ON Bmk1006 = Bmk1006
       1     22972  │└TABLE SEEK char_name AS chn
      49     22972  PROJECT BmkToPage Bmk1006 AS Expr1366
      49     22972  INNER JOIN LOOP ON ci.person_role_id = chn.id
       1     22972  │└TABLE SEEK char_name AS chn
     110     58947  INNER JOIN LOOP ON Bmk1008 = Bmk1008
       1     58947  │└TABLE SEEK cast_info AS ci
     110     58947  PROJECT BmkToPage Bmk1008 AS Expr1363
     110     58947  INNER JOIN LOOP ON t.id = ci.movie_id
      30     58947  │└TABLE SEEK cast_info AS ci
       3       326  INNER JOIN HASH ON mk.keyword_id = k.id
      10        10  │└TABLE SCAN keyword AS k WHERE keyword as keyword = 'based-on-comic' OR keyword as keyword = 'claw' OR keyword as keyword = 'fight' OR keyword as keyword = 'laser' OR keyword as keyword = 'magnet' OR keyword as keyword = 'marvel-comics' OR keyword as keyword = 'superhero' OR keyword as keyword = 'tv-special' OR keyword as keyword = 'violence' OR keyword as keyword = 'web'
       1       326  INNER JOIN LOOP ON Bmk1018 = Bmk1018
       1       326  │└TABLE SEEK movie_keyword AS mk WHERE BLOOM(keyword_id as keyword_id)
   18278     79039  INNER JOIN LOOP ON t.id = mk.movie_id
      49     79039  │└TABLE SEEK movie_keyword AS mk
     369       647  INNER JOIN HASH ON t.kind_id = kt.id
       1         1  │└TABLE SCAN kind_type AS kt WHERE kind as kind = 'movie'
     221       647  FILTER production_year as production_year > 2000
     408      5073  INNER JOIN LOOP ON Bmk1022 = Bmk1022
       1      5073  │└TABLE SEEK title AS t WHERE BLOOM(kind_id as kind_id)
    4085     17898  PROJECT BmkToPage Bmk1022 AS Expr1359
    4085     17898  INNER JOIN LOOP ON mi_idx.movie_id = t.id
       1     17898  │└TABLE SEEK title AS t
    4085     17898  INNER JOIN HASH ON mi_idx.info_type_id = it2.id
       1         1  │└TABLE SCAN info_type AS it2 WHERE info as info = 'rating'
    2042     17898  INNER JOIN HASH ON movie_id as movie_id = movie_id as movie_id
   67543     85941  │└INNER JOIN HASH ON cc.status_id = cct2.id
       2         2  │ │└TABLE SCAN comp_cast_type AS cct2 WHERE kind as kind LIKE '%complete%'
   67543     85941  │ INNER JOIN HASH ON cc.subject_id = cct1.id
       1         1  │ │└TABLE SCAN comp_cast_type AS cct1 WHERE kind as kind = 'cast'
  135086     85941  │ TABLE SEEK complete_cast AS cc WHERE BLOOM(subject_id as subject_id)
    1896     17898  TABLE SEEK movie_info_idx AS mi_idx WHERE info as info > '7.0' AND BLOOM(movie_id as movie_id) AND BLOOM(info_type_id as info_type_id)
Apache Iceberg
Estimate    Actual  Operator
       1         ∞  PROJECT min AS character_name, min_61 AS rating, min_62 AS playing_actor, min_63 AS complete_hero_movie
       1         1  AGGREGATE MIN(min_64) AS min, MIN(min_65) AS min_61, MIN(min_66) AS min_62, MIN(min_67) AS min_63
       -        16  DISTRIBUTE GATHER
       -        16  AGGREGATE MIN(name) AS min_64, MIN(info_33) AS min_65, MIN(name_44) AS min_66, MIN(title) AS min_67
       -      1728  INNER JOIN HASH ON kind_id = id_26
       7         1  │└DISTRIBUTE GATHER
       7         1  │ PROJECT id AS id_26
       7         1  │ FILTER kind = 'movie'
       7         1  │ TABLE SCAN kind_type
       -      1728  INNER JOIN HASH ON movie_id = id_53
  335742    283091  │└DISTRIBUTE HASH ON id_53
  335742    283091  │ PROJECT id AS id_53, title, kind_id
  335742    283091  │ FILTER production_year > 2000
  335742    283091  │ TABLE SCAN title
       -      1728  INNER JOIN HASH ON person_id = id_43
 4167491   4167491  │└DISTRIBUTE HASH ON id_43
 4167491   4167491  │ PROJECT id AS id_43, name AS name_44
 4167491   4167491  │ TABLE SCAN name
       -      1728  INNER JOIN HASH ON keyword_id = id_22
  134170        10  │└DISTRIBUTE GATHER
  134170        10  │ PROJECT id AS id_22
  134170        10  │ FILTER keyword IN('based-on-comic','claw','fight','laser','magnet','marvel-comics','superhero','tv-special','violence','web')
  134170        10  │ TABLE SCAN keyword
       -      1728  INNER JOIN HASH ON movie_id = movie_id_39
 4523930      5444  │└DISTRIBUTE HASH ON movie_id_39
 4523930      5444  │ PROJECT movie_id AS movie_id_39, keyword_id
 4523930      5444  │ TABLE SCAN movie_keyword
       -      1019  INNER JOIN HASH ON info_type_id = id_18
     113         1  │└DISTRIBUTE GATHER
     113         1  │ PROJECT id AS id_18
     113         1  │ FILTER info = 'rating'
     113         1  │ TABLE SCAN info_type
       -      1019  INNER JOIN HASH ON movie_id = movie_id_32
 1380035       707  │└DISTRIBUTE HASH ON movie_id_32
 1380035       707  │ PROJECT movie_id AS movie_id_32, info_type_id, info AS info_33
 1380035       707  │ FILTER info > '7.0'
 1380035       707  │ TABLE SCAN movie_info_idx
       -      1019  INNER JOIN HASH ON person_role_id = id_9
 2826305    180152  │└DISTRIBUTE HASH ON id_9
 2826305    180152  │ PROJECT id AS id_9, name
 2826305    180152  │ FILTER  NOT (name IS NULL) AND ((name LIKE '%man%') OR (name LIKE '%Man%'))
 2826305    180152  │ TABLE SCAN char_name
       -      1019  INNER JOIN HASH ON movie_id = movie_id_14
36244344      1806  │└DISTRIBUTE HASH ON movie_id_14
36244344      1806  │ PROJECT person_id, movie_id AS movie_id_14, person_role_id
36244344      1806  │ TABLE SCAN cast_info
       -       187  INNER JOIN HASH ON status_id = id_4
       4         2  │└DISTRIBUTE GATHER
       4         2  │ PROJECT id AS id_4
       4         2  │ FILTER kind LIKE '%complete%'
       4         2  │ TABLE SCAN comp_cast_type
       -       187  INNER JOIN HASH ON subject_id = id_0
       4         1  │└DISTRIBUTE GATHER
       4         1  │ PROJECT id AS id_0
       4         1  │ FILTER kind = 'cast'
       4         1  │ TABLE SCAN comp_cast_type
  135086       226  TABLE SCAN complete_cast
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(name), MIN(info), MIN(name), MIN(title)
       1      1728  INNER JOIN LOOP ON id = person_id
       1      1728  │└INNER JOIN LOOP ON id = person_role_id
      14     58947  │ │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = id AND (movie_id = id)
       1       326  │ │ │└INNER JOIN LOOP ON keyword IN('superhero','marvel-comics','based-on-comic','tv-special','fight','violence','magnet','web','claw','laser') AND id = status_id AND (id = status_id)
       1         2  │ │ │ │└TABLE SCAN comp_cast_type AS cct2 WHERE cct2.kind LIKE '%complete%'
       2       652  │ │ │ INNER JOIN LOOP ON keyword IN('superhero','marvel-comics','based-on-comic','tv-special','fight','violence','magnet','web','claw','laser') AND id = subject_id AND (id = subject_id)
       1         1  │ │ │ │└TABLE SCAN comp_cast_type AS cct1 WHERE cct1.kind = 'cast'
       2       802  │ │ │ INNER JOIN LOOP ON movie_id = id
       2      1768  │ │ │ │└INNER JOIN LOOP ON id = info_type_id
       4      2968  │ │ │ │ │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = id AND (movie_id = id)
      52     10064  │ │ │ │ │ │└INNER JOIN LOOP ON keyword IN('superhero','marvel-comics','based-on-comic','tv-special','fight','violence','magnet','web','claw','laser') AND id = kind_id AND (id = kind_id)
       1         1  │ │ │ │ │ │ │└TABLE SCAN kind_type AS kt WHERE kt.kind = 'movie'
     366     21226  │ │ │ │ │ │ INNER JOIN LOOP ON id = movie_id
     674     48182  │ │ │ │ │ │ │└INNER JOIN LOOP ON keyword_id = id
      20        20  │ │ │ │ │ │ │ │└TABLE SEEK keyword AS k
    6100     48182  │ │ │ │ │ │ │ TABLE SEEK movie_keyword AS mk
   48182     48182  │ │ │ │ │ │ TABLE SEEK title AS t WHERE t.production_year > 2000
   10064     10064  │ │ │ │ │ TABLE SEEK movie_info_idx AS mi_idx WHERE mi_idx.info > '7.0'
    2968      2968  │ │ │ │ TABLE SEEK info_type AS it2 WHERE it2.info = 'rating'
    3536      1768  │ │ │ TABLE SEEK complete_cast AS cc
   12714     58947  │ │ TABLE SEEK cast_info AS ci
   58947     58947  │ TABLE SEEK char_name AS chn WHERE (chn.name LIKE '%man%') OR (chn.name LIKE '%Man%')
    1728      1728  TABLE SEEK name AS n