PlannerIMDB — JOB-33C

SELECT MIN(cn1.name) AS first_company,
       MIN(cn2.name) AS second_company,
       MIN(mi_idx1.info) AS first_rating,
       MIN(mi_idx2.info) AS second_rating,
       MIN(t1.title) AS first_movie,
       MIN(t2.title) AS second_movie
FROM job.company_name AS cn1,
     job.company_name AS cn2,
     job.info_type AS it1,
     job.info_type AS it2,
     job.kind_type AS kt1,
     job.kind_type AS kt2,
     job.link_type AS lt,
     job.movie_companies AS mc1,
     job.movie_companies AS mc2,
     job.movie_info_idx AS mi_idx1,
     job.movie_info_idx AS mi_idx2,
     job.movie_link AS ml,
     job.title AS t1,
     job.title AS t2
WHERE cn1.country_code != '[us]'
  AND it1.info = 'rating'
  AND it2.info = 'rating'
  AND kt1.kind IN ('tv series',
                   'episode')
  AND kt2.kind IN ('tv series',
                   'episode')
  AND lt.link IN ('sequel',
                  'follows',
                  'followed by')
  AND mi_idx2.info < '3.5'
  AND t2.production_year BETWEEN 2000 AND 2010
  AND lt.id = ml.link_type_id
  AND t1.id = ml.movie_id
  AND t2.id = ml.linked_movie_id
  AND it1.id = mi_idx1.info_type_id
  AND t1.id = mi_idx1.movie_id
  AND kt1.id = t1.kind_id
  AND cn1.id = mc1.company_id
  AND t1.id = mc1.movie_id
  AND ml.movie_id = mi_idx1.movie_id
  AND ml.movie_id = mc1.movie_id
  AND mi_idx1.movie_id = mc1.movie_id
  AND it2.id = mi_idx2.info_type_id
  AND t2.id = mi_idx2.movie_id
  AND kt2.id = t2.kind_id
  AND cn2.id = mc2.company_id
  AND t2.id = mc2.movie_id
  AND ml.linked_movie_id = mi_idx2.movie_id
  AND ml.linked_movie_id = mc2.movie_id
  AND mi_idx2.movie_id = mc2.movie_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
9,391,683
9.4M
Rank
Estimation Error
Est Err
9,391,861
9.4M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
5,193
5.2K
Rank
Estimation Error
Est Err
114
114
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
11,332,773
11M
Rank
Estimation Error
Est Err
12,212,088
12M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
10,357,029
10M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
12,326,882
12M
Rank
Estimation Error
Est Err
13,655,962
14M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
6,666,482
6.7M
Rank
Estimation Error
Est Err
136
136
Rank
Estimation Error
Est Err
6,164,088
6.2M
Rank
Apache Iceberg
Estimation Error
Est Err
8,333,284
8.3M
Rank
Estimation Error
Est Err
7,045,385
7M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
947,466
947K
Rank
Estimation Error
Est Err
124
124
Rank
Estimation Error
Est Err
1,831,119
1.8M
Rank
Native storage
Estimation Error
Est Err
68,660
69K
Rank
Estimation Error
Est Err
41,849
42K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
32,099
32K
Rank
Estimation Error
Est Err
114
114
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
144,549
145K
Rank
Estimation Error
Est Err
144,545
145K
Rank
Estimation Error
Est Err
94,248
94K
Rank
Estimation Error
Est Err
6,443
6.4K
Rank
Estimation Error
Est Err
167,481
167K
Rank
Estimation Error
Est Err
114
114
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
3,158
3.2K
Rank
Estimation Error
Est Err
3,150
3.2K
Rank
Estimation Error
Est Err
1,002
1K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
3,256
3.3K
Rank
Estimation Error
Est Err
114
114
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
2,969,691
3M
Rank
Estimation Error
Est Err
1,981
2K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
2,970,378
3M
Rank
Estimation Error
Est Err
130
130
Rank
Estimation Error
Est Err
2,969,645
3M
Rank

Actual Query Plans

Query Plan per Engine ?
Query Plan
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE min, min, min, min, min, min
     794       114  INNER JOIN HASH ON id105 = company_id99
     834       114  │└INNER JOIN HASH ON movie_id34 = movie_id98
     283        46   │└INNER JOIN HASH ON id87 = company_id
      57        51    │└INNER JOIN HASH ON movie_id72 = movie_id80
      19        19     │└INNER JOIN HASH ON id = info_type_id73
       1         1      │└TABLE SCAN info_type WHERE info = rating
      90        57      INNER JOIN HASH ON movie_id = movie_id72
      27        21      │└INNER JOIN HASH ON id6 = kind_id59
       2         2       │└TABLE SCAN kind_type WHERE kind IN(episode,tv series)
      84        21       INNER JOIN HASH ON id56 = movie_id
      70        21       │└INNER JOIN HASH ON id11 = kind_id
       2         2        │└TABLE SCAN kind_type WHERE kind12 IN(episode,tv series)
     219        22        INNER JOIN HASH ON id41 = movie_id34
     492        47        │└INNER JOIN HASH ON id16 = info_type_id
       1         1         │└TABLE SCAN info_type WHERE info = rating
    5068        47         INNER JOIN HASH ON linked_movie_id = movie_id34
    3524      2315         │└INNER JOIN HASH ON id21 = link_type_id
       2         2          │└TABLE SCAN link_type WHERE link IN(followed by,follows,sequel)
   29997     29997          TABLE SCAN movie_link
  681931        36         TABLE SCAN movie_info_idx WHERE info < 3.5
 1081445        17        TABLE SCAN title WHERE production_year BETWEEN 2000 AND 2010
 2528312   2528312       TABLE SCAN title
 1380035   1380035      TABLE SCAN movie_info_idx
 2609129   2609129     TABLE SCAN movie_companies
  120711        23    TABLE SCAN company_name WHERE country_code <> us
 2609129   2609129   TABLE SCAN movie_companies
  234997    234997  TABLE SCAN company_name
Native storage
Estimate    Actual  Operator
       -         1  PROJECT a1 AS first_company, a2 AS second_company, a3 AS first_rating, a4 AS second_rating, a5 AS first_movie, a6 AS second_movie
       -         1  AGGREGATE MIN(name_left) AS a1, MIN(name_right) AS a2, MIN(info_left) AS a3, MIN(info_right) AS a4, MIN(title_left) AS a5, MIN(title_right) AS a6
       -         0  PROJECT name, name, info_left, info_right, title, title
       -         0  PROJECT name, info_left, name, info_right, title, title
       -         0  INNER JOIN HASH ON tuple(PROJECTION_4836.linked_movie_id,PROJECTION_4836.movie_id,PROJECTION_4836.movie_id,PROJECTION_4836.linked_movie_id) = tuple(PROJECTION_4815.movie_id,PROJECTION_4815.movie_id,PROJECTION_4815.id,PROJECTION_4815.id)
       -    922445  │└PROJECT movie_id AS movie_id_right, id, name AS name_right, title AS title_right
       -    922445   PROJECT movie_id, name, title, id
       -    922445   INNER JOIN HASH ON PROJECTION_4821.kind_id = PROJECTION_4818.id
       -         7   │└PROJECT id AS id_right
       -         7    PROJECT id
       -         7    TABLE SCAN kind_type WHERE TRUE
       -    922445   PROJECT kind_id, movie_id, name, title, id_left
       -    922445   PROJECT movie_id, name, title, id, kind_id
       -    922445   INNER JOIN HASH ON PROJECTION_4827.company_id = PROJECTION_4824.id
       -    234997   │└PROJECT id AS id_right, name
       -    234997    PROJECT name, id
       -    234997    TABLE SCAN company_name
       -    922445   PROJECT company_id, movie_id, title, id AS id_left, kind_id
       -    922445   PROJECT movie_id, company_id, title, id, kind_id
       -    922445   INNER JOIN HASH ON PROJECTION_4833.movie_id = PROJECTION_4830.id
       -   1042800   │└PROJECT id, title, kind_id
       -   1042800    PROJECT id, title, kind_id
       -   1042800    TABLE SCAN title WHERE (production_year >= 2000) AND (production_year <= 2010)
       -   2609129   PROJECT movie_id, company_id
       -   2609129   PROJECT movie_id, company_id
       -   2609129   TABLE SCAN movie_companies
       -      5626  PROJECT linked_movie_id, movie_id AS movie_id_left, name AS name_left, info, info, title AS title_left
       -      5626  PROJECT name, info, linked_movie_id, info, movie_id, title
       -      5626  INNER JOIN HASH ON PROJECTION_4848.linked_movie_id = PROJECTION_4839.movie_id
       -     36749  │└PROJECT movie_id, info AS info_right
       -     36749   PROJECT info, movie_id
       -     36749   INNER JOIN HASH ON PROJECTION_4845.info_type_id = PROJECTION_4842.id
       -         1   │└PROJECT id
       -         1    PROJECT id
       -         1    TABLE SCAN info_type WHERE info = 'rating'
       -    687267   PROJECT info_type_id, info, movie_id
       -    687267   PROJECT movie_id, info, info_type_id
       -    687267   TABLE SCAN movie_info_idx WHERE info < '3.5'
       -    136784  PROJECT linked_movie_id, name, info AS info_left, title
       -    136784  PROJECT name, info, linked_movie_id, title
       -    136784  INNER JOIN HASH ON PROJECTION_4854.kind_id = PROJECTION_4851.id
       -         7  │└PROJECT id
       -         7   PROJECT id
       -         7   TABLE SCAN kind_type WHERE TRUE
       -    136784  PROJECT kind_id, name, info, linked_movie_id, title
       -    136784  PROJECT name, info, linked_movie_id, title, kind_id
       -    136784  INNER JOIN HASH ON tuple(PROJECTION_4860.movie_id,PROJECTION_4860.movie_id,PROJECTION_4860.movie_id) = tuple(PROJECTION_4857.id,PROJECTION_4857.id,PROJECTION_4857.id)
       -   2528312  │└PROJECT id, title, kind_id
       -   2528312   PROJECT title, id, kind_id
       -   2528312   TABLE SCAN title
       -    136784  PROJECT movie_id, movie_id, movie_id, name, info, linked_movie_id
       -    136784  PROJECT name, movie_id, info, movie_id, movie_id, linked_movie_id
       -    136784  INNER JOIN HASH ON PROJECTION_4866.link_type_id = PROJECTION_4863.id
       -        18  │└PROJECT id
       -        18   PROJECT id
       -        18   TABLE SCAN link_type WHERE TRUE
       -    136784  PROJECT link_type_id, name, movie_id, info, movie_id, movie_id, linked_movie_id
       -    136784  PROJECT name, movie_id, info, movie_id, movie_id, link_type_id, linked_movie_id
       -    136784  INNER JOIN HASH ON tuple(PROJECTION_4878.movie_id,PROJECTION_4878.movie_id) = tuple(PROJECTION_4869.movie_id,PROJECTION_4869.movie_id)
       -    459925  │└PROJECT movie_id AS movie_id_right, info
       -    459925   PROJECT info, movie_id
       -    459925   INNER JOIN HASH ON PROJECTION_4875.info_type_id = PROJECTION_4872.id
       -         1   │└PROJECT id
       -         1    PROJECT id
       -         1    TABLE SCAN info_type WHERE info = 'rating'
       -   1380035   PROJECT info_type_id, info, movie_id
       -   1380035   PROJECT info, movie_id, info_type_id
       -   1380035   TABLE SCAN movie_info_idx
       -    142537  PROJECT movie_id_left, movie_id AS movie_id_left_2, name, link_type_id, linked_movie_id
       -    142537  PROJECT name, movie_id, movie_id, link_type_id, linked_movie_id
       -    142537  INNER JOIN HASH ON PROJECTION_4884.movie_id = PROJECTION_4881.movie_id
       -     29997  │└PROJECT movie_id AS movie_id_right, link_type_id, linked_movie_id
       -     29997   PROJECT movie_id, link_type_id, linked_movie_id
       -     29997   TABLE SCAN movie_link
       -   2497734  PROJECT movie_id AS movie_id_left, name
       -   2497734  PROJECT name, movie_id
       -   2497734  INNER JOIN HASH ON PROJECTION_4890.id = PROJECTION_4887.company_id
       -   2609129  │└PROJECT company_id, movie_id
       -   2609129   PROJECT company_id, movie_id
       -   2609129   TABLE SCAN movie_companies
       -    211073  PROJECT id, name
       -    211073  PROJECT id, name
       -    211073  TABLE SCAN company_name WHERE country_code <> 'us'
Native storage
Estimate    Actual  Operator
       -         1  AGGREGATE MIN(#0), MIN(#1), MIN(#2), MIN(#3), MIN(#4), MIN(#5)
       0       114  PROJECT name, name, info, info, title, title
       0       114  INNER JOIN HASH ON id = company_id
       0       114  │└INNER JOIN HASH ON movie_id = id
       0        46   │└INNER JOIN HASH ON id = company_id
       0        51    │└INNER JOIN HASH ON movie_id = id
       0        19     │└INNER JOIN HASH ON id = kind_id
       0        19      │└INNER JOIN HASH ON id = movie_id
       0        19       │└INNER JOIN HASH ON id = info_type_id
       0        57        │└INNER JOIN HASH ON movie_id = movie_id
       0        21         │└INNER JOIN HASH ON kind_id = id
       1         2          │└FILTER (kind = 'tv series') OR (kind = 'episode')
       7         7           TABLE SCAN kind_type WHERE kind IN('tv series','episode')
       2        29          INNER JOIN HASH ON id = linked_movie_id
       9        47          │└INNER JOIN HASH ON link_type_id = id
       3         2           │└FILTER id <= 17
       3         2            FILTER (link = 'sequel') OR (link = 'follows') OR (link = 'followed by')
      18        18            TABLE SCAN link_type WHERE link IN('sequel','follows','followed by')
      58      1505           INNER JOIN HASH ON info_type_id = id
       2         1           │└FILTER id >= 99
       2         1            TABLE SCAN info_type WHERE info = 'rating'
    3333      1505           INNER JOIN HASH ON movie_id = linked_movie_id
   29997     29997           │└TABLE SCAN movie_link
  276007     36724           FILTER movie_id BETWEEN 284 AND 2524994
  276007     36728           TABLE SCAN movie_info_idx WHERE info < '3.5'
  505662      1619          FILTER id BETWEEN 284 AND 2524994
  505662      1619          TABLE SCAN title WHERE production_year >= 2000 AND production_year <= 2010
 1380035        69         TABLE SCAN movie_info_idx WHERE movie_id <= 186175
       2         1        FILTER id >= 99
       2         1        TABLE SCAN info_type WHERE info = 'rating'
 2528312        15       TABLE SCAN title WHERE id >= 2 AND id <= 186175
       1         1      FILTER (kind = 'tv series') OR (kind = 'episode')
       7         1      TABLE SCAN kind_type WHERE kind IN('tv series','episode')
 2609129        67     TABLE SCAN movie_companies WHERE movie_id <= 186175
   46999        45    TABLE SCAN company_name WHERE country_code != 'us'
 2609129        66   TABLE SCAN movie_companies WHERE movie_id >= 284 AND movie_id <= 2524994
  234997        26  TABLE SCAN company_name
Apache Iceberg
Estimate    Actual  Operator
       1         1  PROJECT first_company, second_company, first_rating, second_rating, first_movie, second_movie
       1         1  AGGREGATE MIN(name), MIN(name), MIN(info), MIN(info), MIN(title), MIN(title)
     595        10  DISTRIBUTE GATHER
     595        10  AGGREGATE MIN(name), MIN(name), MIN(info), MIN(info), MIN(title), MIN(title)
     595       114  PROJECT name, name, info, info, title, title
     595       114  INNER JOIN HASH ON id = kind_id
       2         2  │└DISTRIBUTE GATHER
       2         2   FILTER (kind = 'tv series') OR (kind = 'episode')
       7         7   DISTRIBUTE ROUND ROBIN
       7         7   TABLE SCAN kind_type WHERE (kind = 'tv series') OR (kind = 'episode')
    2083       117  INNER JOIN HASH ON linked_movie_id = id AND movie_id = id AND movie_id = id
    2083       218  │└DISTRIBUTE GATHER
    2083       218   INNER JOIN HASH ON id = kind_id
       2         2   │└DISTRIBUTE GATHER
       2         2    FILTER (kind = 'tv series') OR (kind = 'episode')
       7         7    DISTRIBUTE ROUND ROBIN
       7         7    TABLE SCAN kind_type WHERE (kind = 'tv series') OR (kind = 'episode')
    7291       218   INNER JOIN HASH ON movie_id = id AND movie_id = id AND movie_id = id
    7291       218   │└DISTRIBUTE GATHER
    7291       218    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'
    7291     49123    INNER JOIN HASH ON linked_movie_id = movie_id AND movie_id = movie_id
    7291     36156    │└DISTRIBUTE GATHER
    7291     36156     INNER JOIN HASH ON company_id = id
    7291     36156     │└DISTRIBUTE GATHER
    7291     36156      INNER JOIN HASH ON linked_movie_id = movie_id
    7058      7279      │└DISTRIBUTE GATHER
    7058      7279       INNER JOIN HASH ON id = link_type_id
       4         2       │└DISTRIBUTE GATHER
       4         2        FILTER ((link = 'sequel') OR (link = 'follows')) OR (link = 'followed by')
      18        18        DISTRIBUTE ROUND ROBIN
      18        18        TABLE SCAN link_type WHERE ((link = 'sequel') OR (link = 'follows')) OR (link = 'followed by')
   29997     79270       PROJECT name, movie_id, movie_id, info, movie_id, linked_movie_id, link_type_id
   29997     79270       INNER JOIN HASH ON movie_id = movie_id AND movie_id = movie_id
   29997     29997       │└TABLE SCAN movie_link WHERE ((link_type_id >= 1) AND (link_type_id <= 2)) AND link_type_id IN(1,2)
  521832    123342       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'
  521832    370603       INNER JOIN HASH ON movie_id = movie_id
  521832    244551       │└DISTRIBUTE HASH ON movie_id
  521832    244551        INNER JOIN HASH ON id = company_id
   47000    126230        │└DISTRIBUTE GATHER
   47000    126230         FILTER country_code <> 'us'
  234997    234997         TABLE SCAN company_name WHERE country_code <> 'us'
 2609129    494814        TABLE SCAN movie_companies WHERE (((company_id >= 4) AND (company_id <= 234995)) AND TRUE) AND ((((movie_id >= 2) AND (movie_id <= 186175)) AND ((movie_id >= 2) AND (movie_id <= 186175))) AND TRUE)
 1380035   1380035       DISTRIBUTE HASH ON movie_id
 1380035   1380035       TABLE SCAN movie_info_idx WHERE CASE MOD(HASH_REPARTITION movie_id,10) WHEN 0 THEN (((movie_id >= 67) AND (movie_id <= 2525674)) AND TRUE) WHEN 1 THEN (((movie_id >= 63) AND (movie_id <= 2525504)) AND TRUE) WHEN 2 THEN (((movie_id >= 51) AND (movie_id <= 2525595)) AND TRUE) WHEN 3 THEN (((movie_id >= 11) AND (movie_id <= 2525673)) AND TRUE) WHEN 4 THEN (((movie_id >= 55) AND (movie_id <= 2525610)) AND TRUE) WHEN 5 THEN (((movie_id >= 54) AND (movie_id <...
 2609129   2609129      TABLE SCAN movie_companies WHERE ((movie_id >= 907) AND (movie_id <= 2506546)) AND TRUE
  234997    234997     TABLE SCAN company_name WHERE ((id >= 5) AND (id <= 231071)) AND TRUE
  276007    687267    FILTER info < '3.5'
 1380035   1380035    TABLE SCAN movie_info_idx WHERE ((info < '3.5') AND ((((movie_id >= 907) AND (movie_id <= 2506546)) AND ((movie_id >= 907) AND (movie_id <= 2506546))) AND TRUE)) AND (((info_type_id >= 101) AND (info_type_id <= 101)) AND info_type_id IN 101)
 2528312    245760   TABLE SCAN title WHERE (((((id >= 18401) AND (id <= 162694)) AND ((id >= 18401) AND (id <= 162694))) AND ((id >= 18401) AND (id <= 162694))) AND struct(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 > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > , < expr > ,...
  198654    770710  FILTER (production_year >= 2000) AND (production_year <= 2010)
 2528312   1723262  TABLE SCAN title WHERE (((production_year >= 2000) AND (production_year <= 2010)) AND (((((id >= 22690) AND (id <= 2247679)) AND ((id >= 22690) AND (id <= 2247679))) AND ((id >= 22690) AND (id <= 2247679))) AND struct(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 > , < expr > , < e...
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title)
       1        22  DISTRIBUTE GATHER
       1        22  AGGREGATE MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title)
  257000       114  INNER JOIN HASH ON t2.kind_id = kt2.id
  257000   1042800  │└DISTRIBUTE HASH
  235000   1042800   DISTRIBUTE HASH
  235000   1042800   TABLE SCAN title WHERE (t2.production_year IS NOT NULL) AND (t2.production_year >= 2000L) AND (t2.production_year <= 2010L)
  257000       133  INNER JOIN HASH ON ml.linked_movie_id = t2.id
  257000   1042800  │└DISTRIBUTE GATHER
 2610000   1042800   TABLE SCAN title WHERE (t2.production_year IS NOT NULL) AND (t2.production_year >= 2000L) AND (t2.production_year <= 2010L)
  245000       218  INNER JOIN HASH ON ml.movie_id = t1.id
  245000       218  │└DISTRIBUTE GATHER
   78700       218   INNER JOIN HASH ON mc2.movie_id = mi_idx2.movie_id
   78700     36749   │└DISTRIBUTE GATHER
  238000     36749    INNER JOIN HASH ON mi_idx2.info_type_id = it2.id
  238000    234997    │└DISTRIBUTE HASH
  235000    234997     DISTRIBUTE HASH
  235000    234997     TABLE SCAN company_name
     113    685431    TABLE SCAN movie_info_idx WHERE mi_idx2.info < '3.5'
   29800     36156   INNER JOIN HASH ON mc2.company_id = cn2.id
   29800     36156   │└DISTRIBUTE GATHER
  705000     36156    INNER JOIN HASH ON ml.linked_movie_id = mc2.movie_id
  705000      7279    │└DISTRIBUTE GATHER
 2410000      7279     INNER JOIN HASH ON ml.link_type_id = lt.id
 2410000         2     │└DISTRIBUTE GATHER
 1380000         2      TABLE SCAN link_type WHERE lt.link IN('sequel','follows','followed by')
  276000     79270     INNER JOIN HASH ON mi_idx1.movie_id = ml.movie_id
  276000     29997     │└DISTRIBUTE GATHER
     113     29997      TABLE SCAN movie_link
  276000    712851     INNER JOIN HASH ON mc1.movie_id = mi_idx1.movie_id
  276000    459925     │└DISTRIBUTE GATHER
  182000    459925      INNER JOIN HASH ON mi_idx1.info_type_id = it1.id
  182000         1      │└DISTRIBUTE GATHER
       7         1       TABLE SCAN info_type WHERE it1.info = 'rating'
       7   1377304      TABLE SCAN movie_info_idx
  843000   1343165     INNER JOIN HASH ON cn1.id = mc1.company_id
  843000    126230     │└DISTRIBUTE GATHER
 2530000    126230      TABLE SCAN company_name WHERE (cn1.country_code IS NOT NULL) AND ( NOT (cn1.country_code = 'us'))
 2530000   2606813     TABLE SCAN movie_companies
 2610000   2605116    TABLE SCAN movie_companies
   29800    234997   DISTRIBUTE HASH ON cn2.id
   30000    234997   TABLE SCAN company_name
  245000   1634116  DISTRIBUTE HASH ON t1.id, t1.id, t1.id
   76200   1634116  INNER JOIN HASH ON t1.kind_id = kt1.id
   76200         2  │└DISTRIBUTE GATHER
      18         2   TABLE SCAN kind_type WHERE kt1.kind IN('tv series','episode')
 1380000   2340392  TABLE SCAN title
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(name as name) AS Expr1028, MIN(name as name) AS Expr1029, MIN(info as info) AS Expr1030, MIN(info as info) AS Expr1031, MIN(title as title) AS Expr1032, MIN(title as title) AS Expr1033
     786       114  INNER JOIN LOOP ON Bmk1002 = Bmk1002
       1       114  │└TABLE SEEK company_name AS cn2
     786       114  INNER JOIN LOOP ON mc2.company_id = cn2.id
       1       114  │└TABLE SEEK company_name AS cn2
     741       114  INNER JOIN LOOP ON Bmk1016 = Bmk1016
       1       114  │└TABLE SEEK movie_companies AS mc2
     741       114  PROJECT BmkToPage Bmk1016 AS Expr1131
     741       114  INNER JOIN LOOP ON t2.id = mc2.movie_id
       9       114  │└TABLE SEEK movie_companies AS mc2
      74        46  FILTER country_code as country_code <> 'us'
     138        51  INNER JOIN LOOP ON Bmk1000 = Bmk1000
       1        51  │└TABLE SEEK company_name AS cn1
     138        51  INNER JOIN LOOP ON mc1.company_id = cn1.id
       1        51  │└TABLE SEEK company_name AS cn1
     138        51  INNER JOIN LOOP ON Bmk1014 = Bmk1014
       1        51  │└TABLE SEEK movie_companies AS mc1
     138        51  PROJECT BmkToPage Bmk1014 AS Expr1126
     138        51  INNER JOIN LOOP ON t1.id = mc1.movie_id
       9        51  │└TABLE SEEK movie_companies AS mc1
      14        19  INNER JOIN HASH ON t1.kind_id = kt1.id
       2         2  │└TABLE SCAN kind_type AS kt1 WHERE kind as kind = 'episode' OR kind as kind = 'tv series'
      43        19  INNER JOIN LOOP ON Bmk1024 = Bmk1024
       1        19  │└TABLE SEEK title AS t1 WHERE BLOOM(kind_id as kind_id)
      43        19  PROJECT BmkToPage Bmk1024 AS Expr1124
      43        19  INNER JOIN LOOP ON ml.movie_id = t1.id
       1        19  │└TABLE SEEK title AS t1
      43        19  INNER JOIN HASH ON mi_idx1.info_type_id = it1.id
       1         1  │└TABLE SCAN info_type AS it1 WHERE info as info = 'rating'
      21        19  INNER JOIN LOOP ON ml.movie_id = mi_idx1.movie_id
       1        19  │└TABLE SEEK movie_info_idx AS mi_idx1 WHERE BLOOM(info_type_id as info_type_id)
     113        21  INNER JOIN HASH ON t2.kind_id = kt2.id
       2         2  │└TABLE SCAN kind_type AS kt2 WHERE kind as kind = 'episode' OR kind as kind = 'tv series'
     341        21  FILTER production_year as production_year >= 2000 AND production_year as production_year <= 2010
     831        35  INNER JOIN LOOP ON Bmk1026 = Bmk1026
       1        35  │└TABLE SEEK title AS t2 WHERE BLOOM(kind_id as kind_id)
     831        47  PROJECT BmkToPage Bmk1026 AS Expr1120
     831        47  INNER JOIN LOOP ON ml.linked_movie_id = t2.id
       1        47  │└TABLE SEEK title AS t2
     831        47  INNER JOIN HASH ON ml.link_type_id = lt.id
       2         2  │└TABLE SCAN link_type AS lt WHERE link as link = 'followed by' OR link as link = 'follows' OR link as link = 'sequel'
     665        47  INNER JOIN HASH ON mi_idx2.movie_id = ml.linked_movie_id
    2999      2315  │└TABLE SEEK movie_link AS ml WHERE BLOOM(link_type_id as link_type_id)
     138        36  INNER JOIN HASH ON mi_idx2.info_type_id = it2.id
       1         1  │└TABLE SCAN info_type AS it2 WHERE info as info = 'rating'
      69        36  TABLE SEEK movie_info_idx AS mi_idx2 WHERE info as info < '3.5' 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 first_company, min_85 AS second_company, min_86 AS first_rating, min_87 AS second_rating, min_88 AS first_movie, min_89 AS second_movie
       1         1  AGGREGATE MIN(min_90) AS min, MIN(min_91) AS min_85, MIN(min_92) AS min_86, MIN(min_93) AS min_87, MIN(min_94) AS min_88, MIN(min_95) AS min_89
       -        16  DISTRIBUTE GATHER
       -        16  AGGREGATE MIN(name) AS min_90, MIN(name_1) AS min_91, MIN(info_46) AS min_92, MIN(info_54) AS min_93, MIN(title) AS min_94, MIN(title_71) AS min_95
       -       114  INNER JOIN HASH ON kind_id_73 = id_23
       7         2  │└DISTRIBUTE GATHER
       7         2   PROJECT id AS id_23
       7         2   FILTER kind IN('episode','tv series')
       7         2   TABLE SCAN kind_type
       -       117  INNER JOIN HASH ON linked_movie_id = id_70
  176706    770732  │└DISTRIBUTE HASH ON id_70
  176706    770732   PROJECT id AS id_70, title AS title_71, kind_id AS kind_id_73
  176706    770732   FILTER production_year BETWEEN 2000 AND 2010
  176706    770732   TABLE SCAN title
       -       218  INNER JOIN HASH ON kind_id = id_19
       7         2  │└DISTRIBUTE GATHER
       7         2   PROJECT id AS id_19
       7         2   FILTER kind IN('episode','tv series')
       7         2   TABLE SCAN kind_type
       -       218  INNER JOIN HASH ON movie_id = id_64
 2528312   1724531  │└DISTRIBUTE HASH ON id_64
 2528312   1724531   PROJECT id AS id_64, title, kind_id
 2528312   1724531   TABLE SCAN title
       -       218  INNER JOIN HASH ON info_type_id_53 = id_14
     113         1  │└DISTRIBUTE GATHER
     113         1   PROJECT id AS id_14
     113         1   FILTER info = 'rating'
     113         1   TABLE SCAN info_type
       -       218  INNER JOIN HASH ON linked_movie_id = movie_id_52
 1380035     36749  │└DISTRIBUTE HASH ON movie_id_52
 1380035     36749   PROJECT movie_id AS movie_id_52, info_type_id AS info_type_id_53, info AS info_54
 1380035     36749   FILTER info < '3.5'
 1380035     36749   TABLE SCAN movie_info_idx
       -       218  INNER JOIN HASH ON company_id_38 = id_0
  234997    234997  │└DISTRIBUTE GATHER
  234997    234997   PROJECT id AS id_0, name AS name_1
  234997    234997   TABLE SCAN company_name
       -       218  INNER JOIN HASH ON linked_movie_id = movie_id_37
 2609129     76313  │└DISTRIBUTE HASH ON movie_id_37
 2609129     76313   PROJECT movie_id AS movie_id_37, company_id AS company_id_38
 2609129     76313   TABLE SCAN movie_companies
       -        76  INNER JOIN HASH ON link_type_id = id_28
      18         2  │└DISTRIBUTE GATHER
      18         2   PROJECT id AS id_28
      18         2   FILTER link IN('followed by','follows','sequel')
      18         2   TABLE SCAN link_type
       -        76  INNER JOIN HASH ON movie_id = movie_id_60
   29997        40  │└DISTRIBUTE GATHER
   29997        40   PROJECT movie_id AS movie_id_60, linked_movie_id, link_type_id
   29997        40   TABLE SCAN movie_link
       -        62  INNER JOIN HASH ON info_type_id = id_10
     113         1  │└DISTRIBUTE GATHER
     113         1   PROJECT id AS id_10
     113         1   FILTER info = 'rating'
     113         1   TABLE SCAN info_type
       -        62  INNER JOIN HASH ON movie_id = movie_id_45
 1380035        29  │└DISTRIBUTE HASH ON movie_id_45
 1380035        29   PROJECT movie_id AS movie_id_45, info_type_id, info AS info_46
 1380035        29   TABLE SCAN movie_info_idx
       -        62  INNER JOIN HASH ON company_id = id
  105537    126230  │└DISTRIBUTE GATHER
  105537    126230   FILTER country_code <> 'us'
  105537    126230   TABLE SCAN company_name
 2609129        62  TABLE SCAN movie_companies
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(name), MIN(name), MIN(info), MIN(info), MIN(title), MIN(title)
       1       114  INNER JOIN LOOP ON id = kind_id
       1       114  │└INNER JOIN LOOP ON id = info_type_id
      11     20134   │└INNER JOIN LOOP ON id = movie_id AND movie_id = id AND (movie_id = id)
      11     20134    │└INNER JOIN LOOP ON id = company_id
      20     23163     │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = movie_id AND (movie_id = movie_id)
       4      4314      │└INNER JOIN LOOP ON id = company_id
       4      4314       │└INNER JOIN LOOP ON movie_id = id
       4      1064        │└INNER JOIN LOOP ON movie_id = id
      15       737         │└INNER JOIN HASH ON kind_id = id
       2         2          │└TABLE SCAN kind_type AS kt2 WHERE kt2.kind IN('tv series','episode')
      53       851          INNER JOIN LOOP ON id = linked_movie_id
     129      2064          │└INNER JOIN HASH ON info_type_id = id
       1         1           │└TABLE SEEK info_type AS it1
   14524      6192           INNER JOIN MERGE ON movie_id = movie_id
 1380035     63901           │└TABLE SEEK movie_info_idx AS mi_idx1
    5000      6443           SORT movie_id
    5000      2315           INNER JOIN LOOP ON link_type_id = id
       3         2           │└TABLE SCAN link_type AS lt WHERE lt.link IN('sequel','follows','followed by')
    3750      2315           TABLE SEEK movie_link AS ml
    2064      2064          TABLE SEEK title AS t2 WHERE (t2.production_year >= 2000) AND (t2.production_year <= 2010)
     737      1061         TABLE SEEK movie_info_idx AS mi_idx2 WHERE mi_idx2.info < '3.5'
    5320      4309        TABLE SEEK movie_companies AS mc2
    4314      4314       TABLE SEEK company_name AS cn2
   21570     23166      TABLE SEEK movie_companies AS mc1
   23163     23163     TABLE SEEK company_name AS cn1 WHERE cn1.country_code <> 'us'
   20134     20134    TABLE SEEK title AS t1
       3         3   TABLE SEEK info_type AS it2 WHERE it2.info = 'rating'
     114       114  TABLE SEEK kind_type AS kt1 WHERE kt1.kind IN('tv series','episode')