PlannerIMDB — JOB-33A

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')
  AND kt2.kind IN ('tv series')
  AND lt.link IN ('sequel',
                  'follows',
                  'followed by')
  AND mi_idx2.info < '3.0'
  AND t2.production_year BETWEEN 2005 AND 2008
  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,680
9.4M
Rank
Estimation Error
Est Err
9,391,848
9.4M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
4,912
4.9K
Rank
Estimation Error
Est Err
8
8
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
10,512,321
11M
Rank
Estimation Error
Est Err
10,505,728
11M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
7,762,016
7.8M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
11,039,699
11M
Rank
Estimation Error
Est Err
11,134,767
11M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
4,074,612
4.1M
Rank
Estimation Error
Est Err
10
10
Rank
Estimation Error
Est Err
3,094,243
3.1M
Rank
Apache Iceberg
Estimation Error
Est Err
8,333,284
8.3M
Rank
Estimation Error
Est Err
6,508,940
6.5M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
796,183
796K
Rank
Estimation Error
Est Err
18
18
Rank
Estimation Error
Est Err
1,726,475
1.7M
Rank
Native storage
Estimation Error
Est Err
141,840
142K
Rank
Estimation Error
Est Err
114,002
114K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
31,240
31K
Rank
Estimation Error
Est Err
8
8
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
69,207
69K
Rank
Estimation Error
Est Err
69,204
69K
Rank
Estimation Error
Est Err
20,010
20K
Rank
Estimation Error
Est Err
6,443
6.4K
Rank
Estimation Error
Est Err
72,659
73K
Rank
Estimation Error
Est Err
8
8
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
2,622
2.6K
Rank
Estimation Error
Est Err
2,616
2.6K
Rank
Estimation Error
Est Err
381
381
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
2,648
2.6K
Rank
Estimation Error
Est Err
8
8
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
345,378
345K
Rank
Estimation Error
Est Err
74
74
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
345,398
345K
Rank
Estimation Error
Est Err
24
24
Rank
Estimation Error
Est Err
345,392
345K
Rank

Actual Query Plans

Query Plan per Engine ?
Query Plan
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE min, min, min, min, min, min
      56         8  INNER JOIN HASH ON id105 = company_id99
      59         8  │└INNER JOIN HASH ON movie_id49 = movie_id98
      20         2   │└INNER JOIN HASH ON id87 = company_id
       1        14    │└INNER JOIN HASH ON id56 = movie_id80
       1         5     │└INNER JOIN HASH ON id = info_type_id73
       1         1      │└TABLE SCAN info_type WHERE info = rating
       3        15      INNER JOIN HASH ON id56 = movie_id72
       5         6      │└INNER JOIN HASH ON id6 = kind_id59
       1         1       │└TABLE SCAN kind_type WHERE kind = tv series
      31         6       INNER JOIN HASH ON id56 = movie_id
      25         6       │└INNER JOIN HASH ON id11 = info_type_id
       1         1        │└TABLE SCAN info_type WHERE info = rating
     676         6        INNER JOIN HASH ON linked_movie_id = movie_id49
     475       100        │└INNER JOIN HASH ON id16 = kind_id
       1         1         │└TABLE SCAN kind_type WHERE kind = tv series
    2990       107         INNER JOIN HASH ON id33 = linked_movie_id
    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
  501218        69         TABLE SCAN title WHERE production_year BETWEEN 2005 AND 2008
  675192         4        TABLE SCAN movie_info_idx WHERE info < 3.0
 2528312   2528312       TABLE SCAN title
 1380035   1380035      TABLE SCAN movie_info_idx
 2609129   2609129     TABLE SCAN movie_companies
   90648         2    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_4670.linked_movie_id,PROJECTION_4670.movie_id,PROJECTION_4670.movie_id,PROJECTION_4670.linked_movie_id) = tuple(PROJECTION_4649.movie_id,PROJECTION_4649.movie_id,PROJECTION_4649.id,PROJECTION_4649.id)
       -    392556  │└PROJECT movie_id AS movie_id_right, id, name AS name_right, title AS title_right
       -    392556   PROJECT movie_id, name, title, id
       -    392556   INNER JOIN HASH ON PROJECTION_4655.kind_id = PROJECTION_4652.id
       -         7   │└PROJECT id AS id_right
       -         7    PROJECT id
       -         7    TABLE SCAN kind_type WHERE TRUE
       -    392556   PROJECT kind_id, movie_id, name, title, id_left
       -    392556   PROJECT movie_id, name, title, id, kind_id
       -    392556   INNER JOIN HASH ON PROJECTION_4661.company_id = PROJECTION_4658.id
       -    234997   │└PROJECT id AS id_right, name
       -    234997    PROJECT name, id
       -    234997    TABLE SCAN company_name
       -    392556   PROJECT company_id, movie_id, title, id AS id_left, kind_id
       -    392556   PROJECT movie_id, company_id, title, id, kind_id
       -    392556   INNER JOIN HASH ON PROJECTION_4667.movie_id = PROJECTION_4664.id
       -    445860   │└PROJECT id, title, kind_id
       -    445860    PROJECT id, title, kind_id
       -    445860    TABLE SCAN title WHERE (production_year >= 2005) AND (production_year <= 2008)
       -   2609129   PROJECT movie_id, company_id
       -   2609129   PROJECT movie_id, company_id
       -   2609129   TABLE SCAN movie_companies
       -         0  PROJECT linked_movie_id, movie_id AS movie_id_left, name AS name_left, info, info, title AS title_left
       -         0  PROJECT name, info, linked_movie_id, info, movie_id, title
       -         0  INNER JOIN HASH ON PROJECTION_4682.linked_movie_id = PROJECTION_4673.movie_id
       -     25591  │└PROJECT movie_id, info AS info_right
       -     25591   PROJECT info, movie_id
       -     25591   INNER JOIN HASH ON PROJECTION_4679.info_type_id = PROJECTION_4676.id
       -         1   │└PROJECT id
       -         1    PROJECT id
       -         1    TABLE SCAN info_type WHERE info = 'rating'
       -    674828   PROJECT info_type_id, info, movie_id
       -    674828   PROJECT movie_id, info, info_type_id
       -    674828   TABLE SCAN movie_info_idx WHERE info < '3.0'
       -         0  PROJECT linked_movie_id, name, info AS info_left, title
       -         0  PROJECT name, info, linked_movie_id, title
       -         0  INNER JOIN HASH ON tuple(PROJECTION_4718.id,PROJECTION_4718.id,PROJECTION_4718.id) = tuple(PROJECTION_4685.movie_id,PROJECTION_4685.movie_id,PROJECTION_4685.movie_id)
       -         0  │└PROJECT movie_id, movie_id, movie_id, name, info, linked_movie_id
       -         0   PROJECT name, movie_id, info, movie_id, movie_id, linked_movie_id
       -         0   INNER JOIN HASH ON PROJECTION_4691.link_type_id = PROJECTION_4688.id
       -        18   │└PROJECT id
       -        18    PROJECT id
       -        18    TABLE SCAN link_type WHERE TRUE
       -         0   PROJECT link_type_id, name, movie_id, info, movie_id, movie_id, linked_movie_id
       -         0   PROJECT name, movie_id, info, movie_id, movie_id, link_type_id, linked_movie_id
       -         0   INNER JOIN HASH ON tuple(PROJECTION_4703.movie_id,PROJECTION_4703.movie_id) = tuple(PROJECTION_4694.movie_id,PROJECTION_4694.movie_id)
       -    459925   │└PROJECT movie_id AS movie_id_right, info
       -    459925    PROJECT info, movie_id
       -    459925    INNER JOIN HASH ON PROJECTION_4700.info_type_id = PROJECTION_4697.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
       -         0   PROJECT movie_id_left, movie_id AS movie_id_left_2, name, link_type_id, linked_movie_id
       -         0   PROJECT name, movie_id, movie_id, link_type_id, linked_movie_id
       -         0   INNER JOIN HASH ON PROJECTION_4709.movie_id = PROJECTION_4706.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
       -         0   PROJECT movie_id AS movie_id_left, name
       -         0   PROJECT name, movie_id
       -         0   INNER JOIN HASH ON PROJECTION_4715.id = PROJECTION_4712.company_id
       -   2609129   │└PROJECT company_id, movie_id
       -   2609129    PROJECT company_id, movie_id
       -   2609129    TABLE SCAN movie_companies
       -         0   PROJECT id, name
       -         0   PROJECT id, name
       -         0   TABLE SCAN company_name WHERE country_code = 'us'
       -   2528312  PROJECT id, title
       -   2528312  PROJECT title, id
       -   2528312  INNER JOIN HASH ON PROJECTION_4724.kind_id = PROJECTION_4721.id
       -         7  │└PROJECT id AS id_right
       -         7   PROJECT id
       -         7   TABLE SCAN kind_type WHERE TRUE
       -   2528312  PROJECT kind_id, title, id AS id_left
       -   2528312  PROJECT title, id, kind_id
       -   2528312  TABLE SCAN title
Native storage
Estimate    Actual  Operator
       -         1  AGGREGATE MIN(#0), MIN(#1), MIN(#2), MIN(#3), MIN(#4), MIN(#5)
       0         8  PROJECT name, name, info, info, title, title
       0         8  INNER JOIN HASH ON id = company_id
       0         8  │└INNER JOIN HASH ON movie_id = id
       0         2   │└INNER JOIN HASH ON id = company_id
       0        14    │└INNER JOIN HASH ON movie_id = id
       0         5     │└INNER JOIN HASH ON id = kind_id
       0         5      │└INNER JOIN HASH ON id = movie_id
       0         5       │└INNER JOIN HASH ON id = info_type_id
       0        15        │└INNER JOIN HASH ON movie_id = movie_id
       0         6         │└INNER JOIN HASH ON kind_id = id
       1         1          │└TABLE SCAN kind_type WHERE kind = 'tv series'
       2         6          INNER JOIN HASH ON id = linked_movie_id
       9        34          │└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      1085           INNER JOIN HASH ON info_type_id = id
       2         1           │└FILTER id >= 99
       2         1            TABLE SCAN info_type WHERE info = 'rating'
    3333      1085           INNER JOIN HASH ON movie_id = linked_movie_id
   29997     29997           │└TABLE SCAN movie_link
  276007     25576           FILTER movie_id BETWEEN 284 AND 2524994
  276007     25589           TABLE SCAN movie_info_idx WHERE info < '3.0'
  505662        45          FILTER id BETWEEN 284 AND 2524994
  505662        45          TABLE SCAN title WHERE production_year >= 2005 AND production_year <= 2008
 1380035     30360         TABLE SCAN movie_info_idx WHERE movie_id <= 186175
       2         1        FILTER id >= 99
       2         1        TABLE SCAN info_type WHERE info = 'rating'
 2528312         5       TABLE SCAN title WHERE id >= 2 AND id <= 186175
       1         1      TABLE SCAN kind_type WHERE kind = 'tv series'
 2609129     55800     TABLE SCAN movie_companies WHERE movie_id <= 186175
    1644        14    TABLE SCAN company_name WHERE country_code = 'us'
 2609129         4   TABLE SCAN movie_companies WHERE movie_id >= 284 AND movie_id <= 2524994
  234997         4  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         8  PROJECT name, name, info, info, title, title
     595         8  INNER JOIN HASH ON id = kind_id
       2         1  │└DISTRIBUTE GATHER
       2         1   FILTER kind = 'tv series'
       7         7   DISTRIBUTE ROUND ROBIN
       7         7   TABLE SCAN kind_type WHERE kind = 'tv series'
    2083         8  INNER JOIN HASH ON linked_movie_id = id AND movie_id = id AND movie_id = id
    2083        35  │└DISTRIBUTE GATHER
    2083        35   INNER JOIN HASH ON id = kind_id
       2         1   │└DISTRIBUTE GATHER
       2         1    FILTER kind = 'tv series'
       7         7    DISTRIBUTE ROUND ROBIN
       7         7    TABLE SCAN kind_type WHERE kind = 'tv series'
    7291        38   INNER JOIN HASH ON movie_id = id AND movie_id = id AND movie_id = id
    7291        38   │└DISTRIBUTE GATHER
    7291        38    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     18004    INNER JOIN HASH ON linked_movie_id = movie_id AND movie_id = movie_id
    7291     12014    │└DISTRIBUTE GATHER
    7291     12014     INNER JOIN HASH ON company_id = id
    7291     12014     │└DISTRIBUTE GATHER
    7291     12014      INNER JOIN HASH ON linked_movie_id = movie_id
    7058      2083      │└DISTRIBUTE GATHER
    7058      2083       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     57514       PROJECT name, movie_id, movie_id, info, movie_id, linked_movie_id, link_type_id
   29997     57514       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    114757       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    344504       INNER JOIN HASH ON movie_id = movie_id
  521832    235139       │└DISTRIBUTE HASH ON movie_id
  521832    235139        INNER JOIN HASH ON id = company_id
   47000     84843        │└DISTRIBUTE GATHER
   47000     84843         FILTER country_code = 'us'
  234997    234997         TABLE SCAN company_name WHERE country_code = 'us'
 2609129    494814        TABLE SCAN movie_companies WHERE (((company_id >= 1) AND (company_id <= 234997)) 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 <= 2524728)) AND TRUE) WHEN 1 THEN (((movie_id >= 45) AND (movie_id <= 2525670)) AND TRUE) WHEN 2 THEN (((movie_id >= 24) AND (movie_id <= 2524907)) AND TRUE) WHEN 3 THEN (((movie_id >= 2) AND (movie_id <= 2525010)) AND TRUE) WHEN 4 THEN (((movie_id >= 55) AND (movie_id <= 2525611)) 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    674828    FILTER info < '3.0'
 1380035   1380035    TABLE SCAN movie_info_idx WHERE ((info < '3.0') 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 >= 22690) AND (id <= 162276)) AND ((id >= 22690) AND (id <= 162276))) AND ((id >= 22690) AND (id <= 162276))) 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 > ,...
   72238    334552  FILTER (production_year >= 2005) AND (production_year <= 2008)
 2528312   1723262  TABLE SCAN title WHERE (((production_year >= 2005) AND (production_year <= 2008)) AND (((((id >= 27907) AND (id <= 1732977)) AND ((id >= 27907) AND (id <= 1732977))) AND ((id >= 27907) AND (id <= 1732977))) 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         2  DISTRIBUTE GATHER
       1         2  AGGREGATE MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title)
   42700         8  INNER JOIN HASH ON t2.kind_id = kt2.id
   42700    445860  │└DISTRIBUTE HASH
  235000    445860   DISTRIBUTE HASH
  235000    445860   TABLE SCAN title WHERE (t2.production_year IS NOT NULL) AND (t2.production_year >= 2005L) AND (t2.production_year <= 2008L)
   40600         8  INNER JOIN HASH ON ml.linked_movie_id = t2.id
   40600    445860  │└DISTRIBUTE GATHER
 2610000    445860   TABLE SCAN title WHERE (t2.production_year IS NOT NULL) AND (t2.production_year >= 2005L) AND (t2.production_year <= 2008L)
   38600        35  INNER JOIN HASH ON ml.movie_id = t1.id
   38600        38  │└DISTRIBUTE GATHER
   12400        38   INNER JOIN HASH ON mc2.movie_id = mi_idx2.movie_id
   12400     12014   │└DISTRIBUTE GATHER
   37600     12014    INNER JOIN HASH ON mc2.company_id = cn2.id
   37600     12014    │└DISTRIBUTE GATHER
   37600     12014     INNER JOIN HASH ON ml.linked_movie_id = mc2.movie_id
   37600      2083     │└DISTRIBUTE GATHER
   12100      2083      INNER JOIN HASH ON ml.link_type_id = lt.id
   12100         2      │└DISTRIBUTE GATHER
 1380000         2       TABLE SCAN link_type WHERE lt.link IN('sequel','follows','followed by')
  276000     57514      INNER JOIN HASH ON mi_idx1.movie_id = ml.movie_id
  276000     29997      │└DISTRIBUTE GATHER
     113     29997       TABLE SCAN movie_link
  276000    580109      INNER JOIN HASH ON mc1.movie_id = mi_idx1.movie_id
  276000   1153798      │└DISTRIBUTE GATHER
   54600   1153798       INNER JOIN HASH ON cn1.id = mc1.company_id
   54600     84843       │└DISTRIBUTE GATHER
       7     84843        TABLE SCAN company_name WHERE (cn1.country_code IS NOT NULL) AND (cn1.country_code = 'us')
       7   2606542       TABLE SCAN movie_companies
  421000    459319      INNER JOIN HASH ON mi_idx1.info_type_id = it1.id
  421000         1      │└DISTRIBUTE GATHER
 2530000         1       TABLE SCAN info_type WHERE it1.info = 'rating'
 2530000   1376698      TABLE SCAN movie_info_idx
  235000   2605097     TABLE SCAN movie_companies
      18    230935    TABLE SCAN company_name
    4700     25427   INNER JOIN HASH ON mi_idx2.info_type_id = it2.id
    4700    230935   │└DISTRIBUTE HASH
 2610000    230935    DISTRIBUTE HASH
 2610000    230935    TABLE SCAN company_name
     113    669103   TABLE SCAN movie_info_idx WHERE mi_idx2.info < '3.0'
   12000     89365  INNER JOIN HASH ON t1.kind_id = kt1.id
   12000         1  │└DISTRIBUTE GATHER
   30000         1   TABLE SCAN kind_type WHERE kt1.kind = 'tv series'
 1380000   2313825  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
      54         8  INNER JOIN HASH ON mi_idx1.info_type_id = it1.id
       1         1  │└TABLE SCAN info_type AS it1 WHERE info as info = 'rating'
      27         8  INNER JOIN HASH ON t2.kind_id = kt2.id
       1         1  │└TABLE SCAN kind_type AS kt2 WHERE kind as kind = 'tv series'
      16         8  INNER JOIN HASH ON t1.kind_id = kt1.id
       1         1  │└TABLE SCAN kind_type AS kt1 WHERE kind as kind = 'tv series'
       9         8  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'
       7         8  INNER JOIN LOOP ON Bmk1002 = Bmk1002
       1         8  │└TABLE SEEK company_name AS cn2
       7         8  INNER JOIN LOOP ON mc2.company_id = cn2.id
       1         8  │└TABLE SEEK company_name AS cn2
       7         8  FILTER country_code as country_code = 'us'
      21        28  INNER JOIN LOOP ON Bmk1000 = Bmk1000
       1        28  │└TABLE SEEK company_name AS cn1
      21        28  INNER JOIN LOOP ON mc1.company_id = cn1.id
       1        28  │└TABLE SEEK company_name AS cn1
      21        28  INNER JOIN LOOP ON Bmk1016 = Bmk1016
       1        28  │└TABLE SEEK movie_companies AS mc2
      21        28  PROJECT BmkToPage Bmk1016 AS Expr1247
      21        28  INNER JOIN LOOP ON t2.id = mc2.movie_id
       9        28  │└TABLE SEEK movie_companies AS mc2
       2        14  INNER JOIN LOOP ON Bmk1014 = Bmk1014
       1        14  │└TABLE SEEK movie_companies AS mc1
       2        14  PROJECT BmkToPage Bmk1014 AS Expr1244
       2        14  INNER JOIN LOOP ON t1.id = mc1.movie_id
       9        14  │└TABLE SEEK movie_companies AS mc1
       1         5  INNER JOIN LOOP ON t1.id = mi_idx1.movie_id
       2         5  │└TABLE SEEK movie_info_idx AS mi_idx1 WHERE BLOOM(info_type_id as info_type_id)
       1         6  FILTER production_year as production_year >= 2005 AND production_year as production_year <= 2008
       6        21  INNER JOIN LOOP ON Bmk1026 = Bmk1026
       1        21  │└TABLE SEEK title AS t2 WHERE BLOOM(kind_id as kind_id)
      65        30  PROJECT BmkToPage Bmk1026 AS Expr1240
      65        30  INNER JOIN LOOP ON ml.linked_movie_id = t2.id
       1        30  │└TABLE SEEK title AS t2
      65        30  INNER JOIN LOOP ON Bmk1024 = Bmk1024
       1        30  │└TABLE SEEK title AS t1 WHERE BLOOM(kind_id as kind_id)
     652        34  PROJECT BmkToPage Bmk1024 AS Expr1237
     652        34  INNER JOIN LOOP ON ml.movie_id = t1.id
       1        34  │└TABLE SEEK title AS t1
     652        34  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)
     135        25  INNER JOIN HASH ON mi_idx2.info_type_id = it2.id
       1         1  │└TABLE SCAN info_type AS it2 WHERE info as info = 'rating'
      67        25  TABLE SEEK movie_info_idx AS mi_idx2 WHERE info as info < '3.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 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
       -         8  INNER JOIN HASH ON kind_id_73 = id_23
       7         1  │└DISTRIBUTE GATHER
       7         1   PROJECT id AS id_23
       7         1   FILTER kind = 'tv series'
       7         1   TABLE SCAN kind_type
       -         8  INNER JOIN HASH ON linked_movie_id = id_70
   53012     15807  │└DISTRIBUTE HASH ON id_70
   53012     15807   PROJECT id AS id_70, title AS title_71, kind_id AS kind_id_73
   53012     15807   FILTER production_year BETWEEN 2005 AND 2008
   53012     15807   TABLE SCAN title
       -         8  INNER JOIN HASH ON kind_id = id_19
       7         1  │└DISTRIBUTE GATHER
       7         1   PROJECT id AS id_19
       7         1   FILTER kind = 'tv series'
       7         1   TABLE SCAN kind_type
       -         8  INNER JOIN HASH ON movie_id = id_64
 2528312     90852  │└DISTRIBUTE HASH ON id_64
 2528312     90852   PROJECT id AS id_64, title, kind_id
 2528312     90852   TABLE SCAN title
       -         8  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
       -         8  INNER JOIN HASH ON linked_movie_id = movie_id_52
 1380035      1182  │└DISTRIBUTE HASH ON movie_id_52
 1380035      1182   PROJECT movie_id AS movie_id_52, info_type_id AS info_type_id_53, info AS info_54
 1380035      1182   FILTER info < '3.0'
 1380035      1182   TABLE SCAN movie_info_idx
       -         8  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
       -         8  INNER JOIN HASH ON linked_movie_id = movie_id_37
 2609129      2507  │└DISTRIBUTE HASH ON movie_id_37
 2609129      2507   PROJECT movie_id AS movie_id_37, company_id AS company_id_38
 2609129      2507   TABLE SCAN movie_companies
       -         2  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
       -         2  INNER JOIN HASH ON movie_id = movie_id_60
   29997         6  │└DISTRIBUTE GATHER
   29997         6   PROJECT movie_id AS movie_id_60, linked_movie_id, link_type_id
   29997         6   TABLE SCAN movie_link
       -         2  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
       -         2  INNER JOIN HASH ON movie_id = movie_id_45
 1380035         5  │└DISTRIBUTE HASH ON movie_id_45
 1380035         5   PROJECT movie_id AS movie_id_45, info_type_id, info AS info_46
 1380035         5   TABLE SCAN movie_info_idx
       -         2  INNER JOIN HASH ON id = company_id
 2609129        14  │└DISTRIBUTE HASH ON company_id
 2609129        14   TABLE SCAN movie_companies
  211497         2  FILTER country_code = 'us'
  211497         2  TABLE SCAN company_name
Native storage
Estimate    Actual  Operator
       1         1  AGGREGATE MIN(name), MIN(name), MIN(info), MIN(info), MIN(title), MIN(title)
       1         8  INNER JOIN LOOP ON id = company_id
       1        28  │└INNER JOIN LOOP ON movie_id = id
       1        10   │└INNER JOIN LOOP ON id = movie_id AND (movie_id = id) AND (id = kind_id) AND ((movie_id = id) AND (id = kind_id))
       1        10    │└INNER JOIN LOOP ON link_type_id = id AND id = kind_id AND (id = kind_id)
       1         1     │└CROSS JOIN LOOP
       1         1      │└TABLE SEEK kind_type AS kt1 WHERE kt1.kind = 'tv series'
       1         1      TABLE SCAN kind_type AS kt2 WHERE kt2.kind = 'tv series'
       2        10     INNER JOIN LOOP ON id = movie_id AND linked_movie_id = id AND (linked_movie_id = id)
      10        58     │└INNER JOIN LOOP ON id = company_id
      10        58      │└INNER JOIN LOOP ON movie_id = movie_id AND movie_id = linked_movie_id AND (movie_id = linked_movie_id)
       2        30       │└INNER JOIN LOOP ON movie_id = linked_movie_id AND id = info_type_id AND (id = info_type_id)
     129      2064        │└INNER JOIN LOOP ON link_type_id = id
       1         1         │└TABLE SEEK info_type AS it2 WHERE it2.info = 'rating'
     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      2745        TABLE SEEK movie_info_idx AS mi_idx2 WHERE mi_idx2.info < '3.0'
     150        57       TABLE SEEK movie_companies AS mc2
      58        58      TABLE SEEK company_name AS cn2
      58        58     TABLE SEEK title AS t2 WHERE (t2.production_year >= 2005) AND (t2.production_year <= 2008)
      10        10    TABLE SEEK title AS t1
      50        28   TABLE SEEK movie_companies AS mc1
      28        28  TABLE SEEK company_name AS cn1 WHERE cn1.country_code = 'us'