PlannerIMDB — JOB-26B

SELECT MIN(chn.name) AS character_name,
       MIN(mi_idx.info) AS rating,
       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',
                    'fight')
  AND kt.kind = 'movie'
  AND mi_idx.info > '8.0'
  AND t.production_year > 2005
  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,692,263
8.7M
Rank
Estimation Error
Est Err
8,693,143
8.7M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
22,547
23K
Rank
Estimation Error
Est Err
93
93
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
46,450,727
46M
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
26,884,384
27M
Rank
Estimation Error
Est Err
26,892,816
27M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
82,800
83K
Rank
Estimation Error
Est Err
94
94
Rank
Estimation Error
Est Err
48,792
49K
Rank
Apache Iceberg
Estimation Error
Est Err
49,550,792
50M
Rank
Estimation Error
Est Err
44,743,477
45M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
7,320,478
7.3M
Rank
Estimation Error
Est Err
103
103
Rank
Estimation Error
Est Err
8,632,816
8.6M
Rank
Native storage
Estimation Error
Est Err
30,900
31K
Rank
Estimation Error
Est Err
29,069
29K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
48,264
48K
Rank
Estimation Error
Est Err
93
93
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
75,751
76K
Rank
Estimation Error
Est Err
75,747
76K
Rank
Estimation Error
Est Err
82,328
82K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
78,895
79K
Rank
Estimation Error
Est Err
93
93
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
101,368
101K
Rank
Estimation Error
Est Err
101,359
101K
Rank
Estimation Error
Est Err
197,147
197K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
273,279
273K
Rank
Estimation Error
Est Err
93
93
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
4,571,227
4.6M
Rank
Estimation Error
Est Err
661
661
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
4,571,478
4.6M
Rank
Estimation Error
Est Err
109
109
Rank
Estimation Error
Est Err
4,571,239
4.6M
Rank

Actual Query Plans

Query Plan per Engine ?
Query Plan
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE min, min, min
       1        93  INNER JOIN HASH ON id83 = person_id
       1        93  │└INNER JOIN HASH ON id73 = person_role_id
       5       893   │└INNER JOIN HASH ON id41 = movie_id65
       1         6    │└INNER JOIN HASH ON id = status_id
       2         2     │└TABLE SCAN comp_cast_type WHERE kind LIKE '%complete%'
       1         6     INNER JOIN HASH ON id6 = subject_id
       1         1     │└TABLE SCAN comp_cast_type WHERE kind = cast
       1        10     INNER JOIN HASH ON movie_id57 = id41
       1        31     │└INNER JOIN HASH ON id11 = kind_id
       1         1      │└TABLE SCAN kind_type WHERE kind = movie
       2        42      INNER JOIN HASH ON id41 = movie_id34
       5       313      │└INNER JOIN HASH ON id16 = info_type_id
       1         1       │└TABLE SCAN info_type WHERE info = rating
      11       313       INNER JOIN HASH ON movie_id = movie_id34
     129      9984       │└INNER JOIN HASH ON id21 = keyword_id
       4         4        │└TABLE SCAN keyword WHERE keyword IN(based - on - comic,fight,marvel - comics,superhero)
 4523930   4523930        TABLE SCAN movie_keyword
   53907       287       TABLE SCAN movie_info_idx WHERE info > 8.0
 1049348        31      TABLE SCAN title WHERE production_year >= 2006
  135086         6     TABLE SCAN complete_cast
17485064       471    TABLE SCAN cast_info
  196271        38   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 complete_hero_movie
       -         ∞  AGGREGATE MIN(name) AS a1, MIN(info) AS a2, MIN(title) AS a3
       -         ∞  PROJECT name, info, title
       -         ∞  PROJECT name, info, title
       -         ∞  INNER JOIN HASH ON tuple(PROJECTION_3136.movie_id,PROJECTION_3136.movie_id,PROJECTION_3136.movie_id,PROJECTION_3136.movie_id,PROJECTION_3136.movie_id,PROJECTION_3136.movie_id) = tuple(PROJECTION_3115.movie_id,PROJECTION_3115.movie_id,PROJECTION_3115.movie_id,PROJECTION_3115.id,PROJECTION_3115.id,PROJECTION_3115.id)
       -         ∞  │└PROJECT movie_id AS movie_id_right, id, title
       -         ∞   PROJECT movie_id, title, id
       -         ∞   INNER JOIN HASH ON PROJECTION_3121.kind_id = PROJECTION_3118.id
       -         1   │└PROJECT id AS id_right
       -         1    FILTER (1 AND kind = 'movie'_String) AS a52
       -         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_3127.keyword_id = PROJECTION_3124.id
       -         ∞   │└PROJECT id AS id_right
       -         ∞    FILTER (1 AND in(keyword,__set_String_11543845376371189880_2001234896452537763)) AS a48
       -    134170    TABLE SCAN keyword WHERE TRUE
       -   1253091   PROJECT keyword_id, movie_id, title, id AS id_left, kind_id
       -   1253091   PROJECT movie_id, keyword_id, title, id, kind_id
       -   1253091   INNER JOIN HASH ON PROJECTION_3133.movie_id = PROJECTION_3130.id
       -   1012920   │└PROJECT id, title, kind_id
       -   1012920    FILTER (1 AND production_year > 2005_UInt16) AS a44
       -   1012920    TABLE SCAN title WHERE production_year > 2005
       -   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, info
       -         ∞  PROJECT movie_id, movie_id, name, info, movie_id
       -         ∞  INNER JOIN HASH ON tuple(PROJECTION_3148.movie_id,PROJECTION_3148.movie_id) = tuple(PROJECTION_3139.movie_id,PROJECTION_3139.movie_id)
       -     15849  │└PROJECT movie_id AS movie_id_right, info
       -     15849   PROJECT info, movie_id
       -     15849   INNER JOIN HASH ON PROJECTION_3145.info_type_id = PROJECTION_3142.id
       -         1   │└PROJECT id
       -         1    FILTER (1 AND info = 'rating'_String) AS a37
       -         1    TABLE SCAN info_type WHERE info = 'rating'
       -     52629   PROJECT info_type_id, info, movie_id
       -     52629   FILTER (1 AND info > '8.0'_String) AS a33
       -     52629   TABLE SCAN movie_info_idx WHERE info > '8.0'
       -         ∞  PROJECT movie_id_left, movie_id AS movie_id_left_2, name
       -         ∞  PROJECT movie_id, movie_id, name
       -         ∞  INNER JOIN HASH ON PROJECTION_3154.person_id = PROJECTION_3151.id
       -   4167491  │└PROJECT id
       -   4167491   PROJECT id
       -   4167491   TABLE SCAN name
       -         ∞  PROJECT person_id, movie_id, movie_id, name
       -         ∞  PROJECT movie_id, movie_id, person_id, name
       -         ∞  INNER JOIN HASH ON PROJECTION_3160.person_role_id = PROJECTION_3157.id
       -         ∞  │└PROJECT id, name
       -         ∞   FILTER (1 AND  OR ( LIKE (name,'%man%'_String), LIKE (name,'%Man%'_String))) AS a24
       -    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_3166.movie_id = PROJECTION_3163.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_3178.id = PROJECTION_3169.status_id
       -     85941  │└PROJECT status_id, movie_id
       -     85941   PROJECT status_id, movie_id
       -     85941   INNER JOIN HASH ON PROJECTION_3175.subject_id = PROJECTION_3172.id
       -         1   │└PROJECT id
       -         1    FILTER (1 AND kind = 'cast'_String) AS a20
       -         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 a15
       -         2  TABLE SCAN comp_cast_type WHERE kind LIKE '%complete%'
Native storage
Estimate    Actual  Operator
       -         1  AGGREGATE MIN(#0), MIN(#1), MIN(#2)
       0        93  PROJECT name, info, title
       0        93  INNER JOIN HASH ON id = person_id
       0        93  │└INNER JOIN HASH ON id = person_role_id
       2      2300   │└INNER JOIN HASH ON movie_id = id
       0         6    │└INNER JOIN HASH ON id = keyword_id
       0      3891     │└INNER JOIN HASH ON movie_id = id
       0        32      │└INNER JOIN HASH ON status_id = id
       1         2       │└FILTER id >= 3
       1         2        TABLE SCAN comp_cast_type WHERE contains(kind,'complete')
       1        32       INNER JOIN HASH ON subject_id = id
       1         1       │└FILTER id <= 2
       1         1        TABLE SCAN comp_cast_type WHERE kind = 'cast'
       7        48       INNER JOIN HASH ON kind_id = id
       1         1       │└TABLE SCAN kind_type WHERE kind = 'movie'
      54        48       INNER JOIN HASH ON id = movie_id
     265      3981       │└INNER JOIN HASH ON movie_id = movie_id
    4885     15848        │└INNER JOIN HASH ON info_type_id = id
       2         1         │└FILTER id >= 99
       2         1          TABLE SCAN info_type WHERE info = 'rating'
  276007     15848         FILTER movie_id >= 285
  276007     15849         TABLE SCAN movie_info_idx WHERE info > '8.0'
  135086      4597        TABLE SCAN complete_cast WHERE movie_id <= 2525793
  505662       318       FILTER id BETWEEN 285 AND 2525793
  505662       318       TABLE SCAN title WHERE production_year > 2005
 4523930      3891      TABLE SCAN movie_keyword WHERE movie_id >= 285 AND movie_id <= 2525793
   26834         3     FILTER (keyword = 'superhero') OR (keyword = 'marvel-comics') OR (keyword = 'based-on-comic') OR (keyword = 'fight')
  134170      2925     TABLE SCAN keyword WHERE keyword IN('superhero','marvel-comics','based-on-comic','fight')
36244344      1334    TABLE SCAN cast_info WHERE movie_id >= 285 AND movie_id <= 2525793
  628067        93   TABLE SCAN char_name WHERE (name IS NOT NULL) AND (contains(name,'man') OR contains(name,'Man'))
 4167491      1888  TABLE SCAN "name" WHERE id <= 4061926
Apache Iceberg
Estimate    Actual  Operator
       1         1  PROJECT character_name, rating, complete_hero_movie
       1         1  AGGREGATE MIN(name), MIN(info), MIN(title)
   28246        10  DISTRIBUTE GATHER
   28246        10  AGGREGATE MIN(name), MIN(info), MIN(title)
   28246        93  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        95  INNER JOIN HASH ON movie_id = id AND movie_id = id AND movie_id = id AND movie_id = id
   98863       365  │└DISTRIBUTE GATHER
   98863       365   INNER JOIN HASH ON person_id = id
   98863       365   │└DISTRIBUTE GATHER
   98863       365    INNER JOIN HASH ON id = keyword_id
   26834         4    │└DISTRIBUTE GATHER
   26834         4     FILTER keyword IN('superhero','marvel-comics','based-on-comic','fight')
  134170    134170     DISTRIBUTE ROUND ROBIN
  134170    134170     TABLE SCAN keyword WHERE keyword IN('superhero','marvel-comics','based-on-comic','fight')
  494319    271806    INNER JOIN HASH ON movie_id = movie_id AND movie_id = movie_id AND movie_id = movie_id
  276007      3835    │└DISTRIBUTE HASH ON movie_id, movie_id, movie_id
  276007      3835     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     12968     PROJECT movie_id, person_id, movie_id, name, movie_id, info_type_id, info
  276007     12968     INNER JOIN HASH ON movie_id = movie_id AND movie_id = movie_id
  276007     52629     │└DISTRIBUTE HASH ON movie_id, movie_id
  276007     52629      FILTER info > '8.0'
 1380035   1380035      TABLE SCAN movie_info_idx WHERE (info > '8.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 >= 300) AND (movie_id <= 2525569)) AND ((movie_id >= 300) AND (movie_id <= 2525569))) AND TRUE) WHEN 3 THEN ((((movie_id >= 284) AND (movie_id <= 2525726)) AND ((movie_id >= 284) AND (movie_id <= 2525726))) 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 >= 8966) AND (movie_id <= 2476804)) AND ((movie_id >= 8966) AND (movie_id <= 2476804))) AND ((movie_id >= 8966) AND (movie_id <= 2476804))) AND struct(movie_id,movie_id,movie_id) IN( < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr...
 4167491   2707517   TABLE SCAN name WHERE ((id >= 2034) AND (id <= 2693151)) AND TRUE
  252832    475011  FILTER production_year > 2005
 2528312   1297449  TABLE SCAN title WHERE ((production_year > 2005) AND ((((((id >= 190345) AND (id <= 2516589)) AND ((id >= 190345) AND (id <= 2516589))) AND ((id >= 190345) AND (id <= 2516589))) AND ((id >= 190345) AND (id <= 2516589))) AND struct(id,id,id,id) IN( < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > ...
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(chn.name), MIN(mi_idx.info), MIN(t.title)
       1         1  DISTRIBUTE GATHER
       1         1  AGGREGATE MIN(chn.name), MIN(mi_idx.info), MIN(t.title)
   14000        93  INNER JOIN HASH ON mi_idx.info_type_id = it2.id
   14000         1  │└DISTRIBUTE GATHER
 4520000         1   TABLE SCAN info_type WHERE it2.info = 'rating'
   14000       201  INNER JOIN HASH ON cc.movie_id = mi_idx.movie_id
   14000      1262  │└DISTRIBUTE GATHER
    4500      1262   INNER JOIN HASH ON ci.person_role_id = chn.id
    4500     17300   │└DISTRIBUTE GATHER
    4500     17300    INNER JOIN HASH ON ci.person_id = n.id
    4500     17300    │└DISTRIBUTE GATHER
    4500     17300     INNER JOIN HASH ON cc.movie_id = ci.movie_id
    4500       269     │└DISTRIBUTE GATHER
     273       269      INNER JOIN HASH ON t.kind_id = kt.id
     273         1      │└DISTRIBUTE GATHER
 2530000         1       TABLE SCAN kind_type WHERE kt.kind = 'movie'
     273       292      INNER JOIN HASH ON cc.movie_id = t.id
     273      2667      │└DISTRIBUTE GATHER
     259      2667       INNER JOIN HASH ON cc.subject_id = cct1.id
     259         1       │└DISTRIBUTE GATHER
36200000         1        TABLE SCAN comp_cast_type WHERE cct1.kind = 'cast'
     259      3974       INNER JOIN HASH ON cc.status_id = cct2.id
     259         2       │└DISTRIBUTE GATHER
 3140000         2        TABLE SCAN comp_cast_type WHERE contains(cct2.kind,'complete')
     259      3974       INNER JOIN HASH ON mk.movie_id = cc.movie_id
     259      9984       │└DISTRIBUTE GATHER
     176      9984        INNER JOIN HASH ON mk.keyword_id = k.id
     176         4        │└DISTRIBUTE GATHER
     113         4         TABLE SCAN keyword WHERE k.keyword IN('superhero','marvel-comics','based-on-comic','fight')
 1380000   4519837        TABLE SCAN movie_keyword
 4170000    131093       TABLE SCAN complete_cast WHERE cc.movie_id IS NOT NULL
       7    314183      TABLE SCAN title WHERE (t.production_year IS NOT NULL) AND (t.production_year > 2005L)
       4  17563862     TABLE SCAN cast_info WHERE ci.person_role_id IS NOT NULL
       4   4159328    TABLE SCAN name
  135000    179515   TABLE SCAN char_name WHERE contains(chn.name,'man') OR contains(chn.name,'Man')
  134000     16557  TABLE SCAN movie_info_idx WHERE mi_idx.info > '8.0'
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(name as name) AS Expr1024, MIN(info as info) AS Expr1025, MIN(title as title) AS Expr1026
       1        93  FILTER name as name LIKE '%man%' OR name as name LIKE '%Man%'
      13       893  INNER JOIN LOOP ON Bmk1006 = Bmk1006
       1       893  │└TABLE SEEK char_name AS chn
      13       893  PROJECT BmkToPage Bmk1006 AS Expr1203
      13       893  INNER JOIN LOOP ON ci.person_role_id = chn.id
       1       893  │└TABLE SEEK char_name AS chn
      30      2300  INNER JOIN LOOP ON Bmk1008 = Bmk1008
       1      2300  │└TABLE SEEK cast_info AS ci
      30      2300  PROJECT BmkToPage Bmk1008 AS Expr1200
      30      2300  INNER JOIN LOOP ON t.id = ci.movie_id
      30      2300  │└TABLE SEEK cast_info AS ci
       1         6  INNER JOIN HASH ON mk.keyword_id = k.id
       4         4  │└TABLE SCAN keyword AS k WHERE keyword as keyword = 'based-on-comic' OR keyword as keyword = 'fight' OR keyword as keyword = 'marvel-comics' OR keyword as keyword = 'superhero'
       1         6  INNER JOIN LOOP ON Bmk1018 = Bmk1018
       1         6  │└TABLE SEEK movie_keyword AS mk WHERE BLOOM(keyword_id as keyword_id)
    3788      3891  INNER JOIN LOOP ON t.id = mk.movie_id
      49      3891  │└TABLE SEEK movie_keyword AS mk
      76        32  INNER JOIN HASH ON t.kind_id = kt.id
       1         1  │└TABLE SCAN kind_type AS kt WHERE kind as kind = 'movie'
      46        32  FILTER production_year as production_year > 2005
     115       309  INNER JOIN LOOP ON Bmk1022 = Bmk1022
       1       309  │└TABLE SEEK title AS t WHERE BLOOM(kind_id as kind_id)
    1155      2413  PROJECT BmkToPage Bmk1022 AS Expr1196
    1155      2413  INNER JOIN LOOP ON mi_idx.movie_id = t.id
       1      2413  │└TABLE SEEK title AS t
    1155      2413  INNER JOIN HASH ON mi_idx.info_type_id = it2.id
       1         1  │└TABLE SCAN info_type AS it2 WHERE info as info = 'rating'
     577      2413  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)
     536      2413  TABLE SEEK movie_info_idx AS mi_idx WHERE info as info > '8.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 complete_hero_movie
       1         1  AGGREGATE MIN(min_63) AS min, MIN(min_64) AS min_61, MIN(min_65) AS min_62
       -        16  DISTRIBUTE GATHER
       -        16  AGGREGATE MIN(name) AS min_63, MIN(info_33) AS min_64, MIN(title) AS min_65
       -        93  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
       -        93  INNER JOIN HASH ON movie_id = id_53
  247389    221971  │└DISTRIBUTE HASH ON id_53
  247389    221971   PROJECT id AS id_53, title, kind_id
  247389    221971   FILTER production_year > 2005
  247389    221971   TABLE SCAN title
       -        93  INNER JOIN HASH ON person_id = id_43
 4167491   4167491  │└DISTRIBUTE HASH ON id_43
 4167491   4167491   PROJECT id AS id_43
 4167491   4167491   TABLE SCAN name
       -        93  INNER JOIN HASH ON keyword_id = id_22
  134170         4  │└DISTRIBUTE GATHER
  134170         4   PROJECT id AS id_22
  134170         4   FILTER keyword IN('based-on-comic','fight','marvel-comics','superhero')
  134170         4   TABLE SCAN keyword
       -        93  INNER JOIN HASH ON movie_id = movie_id_39
 4523930      1483  │└DISTRIBUTE HASH ON movie_id_39
 4523930      1483   PROJECT movie_id AS movie_id_39, keyword_id
 4523930      1483   TABLE SCAN movie_keyword
       -        47  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
       -        47  INNER JOIN HASH ON movie_id = movie_id_32
 1380035        24  │└DISTRIBUTE HASH ON movie_id_32
 1380035        24   PROJECT movie_id AS movie_id_32, info_type_id, info AS info_33
 1380035        24   FILTER info > '8.0'
 1380035        24   TABLE SCAN movie_info_idx
       -        47  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
       -        47  INNER JOIN HASH ON movie_id = movie_id_14
36244344        93  │└DISTRIBUTE HASH ON movie_id_14
36244344        93   PROJECT person_id, movie_id AS movie_id_14, person_role_id
36244344        93   TABLE SCAN cast_info
       -         4  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
       -         4  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         4  TABLE SCAN complete_cast
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(name), MIN(info), MIN(title)
       1        93  INNER JOIN LOOP ON keyword IN('superhero','marvel-comics','based-on-comic','fight') AND id = subject_id AND (id = subject_id)
       1         1  │└TABLE SCAN comp_cast_type AS cct1 WHERE cct1.kind = 'cast'
       1       180  INNER JOIN LOOP ON keyword IN('superhero','marvel-comics','based-on-comic','fight') AND id = status_id AND (id = status_id)
       1         2  │└TABLE SCAN comp_cast_type AS cct2 WHERE cct2.kind LIKE '%complete%'
       2       360  INNER JOIN LOOP ON movie_id = id
       2       382  │└INNER JOIN LOOP ON id = person_id
       2       382   │└INNER JOIN LOOP ON id = person_role_id
      28     15962    │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = id AND (movie_id = id)
       2        62     │└INNER JOIN LOOP ON id = info_type_id
       2       234      │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = id AND (movie_id = id)
      16      2882       │└INNER JOIN LOOP ON keyword IN('superhero','marvel-comics','based-on-comic','fight') AND id = kind_id AND (id = kind_id)
       1         1        │└TABLE SCAN kind_type AS kt WHERE kt.kind = 'movie'
     106      6048        INNER JOIN LOOP ON id = movie_id
     270     19968        │└INNER JOIN LOOP ON keyword_id = id
       8         8         │└TABLE SEEK keyword AS k
    2440     19968         TABLE SEEK movie_keyword AS mk
   19968     19968        TABLE SEEK title AS t WHERE t.production_year > 2005
    2882      2882       TABLE SEEK movie_info_idx AS mi_idx WHERE mi_idx.info > '8.0'
     234       234      TABLE SEEK info_type AS it2 WHERE it2.info = 'rating'
    2418     15961     TABLE SEEK cast_info AS ci
   15962     15962    TABLE SEEK char_name AS chn WHERE (chn.name LIKE '%man%') OR (chn.name LIKE '%Man%')
     382       382   TABLE SEEK name AS n
     764       382  TABLE SEEK complete_cast AS cc