PlannerIMDB — JOB-25A

SELECT MIN(mi.info) AS movie_budget,
       MIN(mi_idx.info) AS movie_votes,
       MIN(n.name) AS male_writer,
       MIN(t.title) AS violent_movie_title
FROM job.cast_info AS ci,
     job.info_type AS it1,
     job.info_type AS it2,
     job.keyword AS k,
     job.movie_info AS mi,
     job.movie_info_idx AS mi_idx,
     job.movie_keyword AS mk,
     job.name AS n,
     job.title AS t
WHERE ci.note IN ('(writer)',
                  '(head writer)',
                  '(written by)',
                  '(story)',
                  '(story editor)')
  AND it1.info = 'genres'
  AND it2.info = 'votes'
  AND k.keyword IN ('murder',
                    'blood',
                    'gore',
                    'death',
                    'female-nudity')
  AND mi.info = 'Horror'
  AND n.gender = 'm'
  AND t.id = mi.movie_id
  AND t.id = mi_idx.movie_id
  AND t.id = ci.movie_id
  AND t.id = mk.movie_id
  AND ci.movie_id = mi.movie_id
  AND ci.movie_id = mi_idx.movie_id
  AND ci.movie_id = mk.movie_id
  AND mi.movie_id = mi_idx.movie_id
  AND mi.movie_id = mk.movie_id
  AND mi_idx.movie_id = mk.movie_id
  AND n.id = ci.person_id
  AND it1.id = mi.info_type_id
  AND it2.id = mi_idx.info_type_id
  AND k.id = mk.keyword_id;

Engine Compare

Accuracy chart, rows processed ?
Scan
Scan
Seek
Seek
Join Probe
Join
Sort
Sort
Hash Build
Hash
Aggregate
Agg
Distribute
Dist
Native storage
Estimation Error
Est Err
8,444,742
8.4M
Rank
Estimation Error
Est Err
8,477,441
8.5M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
173,257
173K
Rank
Estimation Error
Est Err
4,407
4.4K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
46,581,173
47M
Rank
Estimation Error
Est Err
58,768,914
59M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
22,281,901
22M
Rank
Estimation Error
Est Err
8,181,261
8.2M
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
11,423,917
11M
Rank
Estimation Error
Est Err
11,478,201
11M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
276,068
276K
Rank
Estimation Error
Est Err
4,408
4.4K
Rank
Estimation Error
Est Err
148,060
148K
Rank
Apache Iceberg
Estimation Error
Est Err
27,463,576
27M
Rank
Estimation Error
Est Err
10,311,437
10M
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
1,660,717
1.7M
Rank
Estimation Error
Est Err
4,417
4.4K
Rank
Estimation Error
Est Err
11,617,464
12M
Rank
Native storage
Estimation Error
Est Err
835,453
835K
Rank
Estimation Error
Est Err
877,305
877K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
1,198,081
1.2M
Rank
Estimation Error
Est Err
4,407
4.4K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
297,137
297K
Rank
Estimation Error
Est Err
297,137
297K
Rank
Estimation Error
Est Err
449,851
450K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
347,855
348K
Rank
Estimation Error
Est Err
4,407
4.4K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
1,461,917
1.5M
Rank
Estimation Error
Est Err
1,461,799
1.5M
Rank
Estimation Error
Est Err
1,482,577
1.5M
Rank
Estimation Error
Est Err
591,810
592K
Rank
Estimation Error
Est Err
1,482,573
1.5M
Rank
Estimation Error
Est Err
4,407
4.4K
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
4,374,866
4.4M
Rank
Estimation Error
Est Err
39,907
40K
Rank
Estimation Error
Est Err
0
0
Rank
Estimation Error
Est Err
4,385,528
4.4M
Rank
Estimation Error
Est Err
4,423
4.4K
Rank
Estimation Error
Est Err
4,371,357
4.4M
Rank

Actual Query Plans

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