PlannerTPC-H — TPCH-Q02

/* TPC-H Q02 */
SELECT s_acctbal,
       s_name,
       n_name,
       p_partkey,
       p_mfgr,
       s_address,
       s_phone,
       s_comment
FROM tpch_sf1.partsupp
INNER JOIN tpch_sf1.part
    ON ps_partkey = p_partkey
INNER JOIN tpch_sf1.supplier
    ON ps_suppkey = s_suppkey
INNER JOIN tpch_sf1.nation
    ON s_nationkey = n_nationkey
INNER JOIN tpch_sf1.region
    ON n_regionkey = r_regionkey
WHERE p_size = 25
  AND p_type LIKE '%BRASS'
  AND r_name = 'EUROPE'
  AND ps_supplycost = (SELECT MIN(ps_supplycost) AS min_cost
                       FROM tpch_sf1.partsupp AS ps_min
                       INNER JOIN tpch_sf1.supplier AS s_min
                           ON ps_suppkey = s_suppkey
                       INNER JOIN tpch_sf1.nation AS n_min
                           ON s_nationkey = n_nationkey
                       INNER JOIN tpch_sf1.region AS r_min
                           ON n_regionkey = r_regionkey
                       WHERE ps_partkey = p_partkey
                         AND r_name = 'EUROPE')
ORDER BY s_acctbal DESC,
         n_name,
         s_name,
         p_partkey


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
822,437
822K
Rank
Estimation Error
Est Err
822,618
823K
Rank
Estimation Error
Est Err
495
495
Rank
Estimation Error
Est Err
6,267
6.3K
Rank
Estimation Error
Est Err
689
689
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
1,620,855
1.6M
Rank
Estimation Error
Est Err
1,090,392
1.1M
Rank
Estimation Error
Est Err
495
495
Rank
Estimation Error
Est Err
2,404,787
2.4M
Rank
Estimation Error
Est Err
158,960
159K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
2,406,089
2.4M
Rank
Estimation Error
Est Err
2,404,653
2.4M
Rank
Estimation Error
Est Err
495
495
Rank
Estimation Error
Est Err
296,778
297K
Rank
Estimation Error
Est Err
276,382
276K
Rank
Estimation Error
Est Err
248,657
249K
Rank
Apache Iceberg
Estimation Error
Est Err
1,820,060
1.8M
Rank
Estimation Error
Est Err
1,776,762
1.8M
Rank
Estimation Error
Est Err
990
990
Rank
Estimation Error
Est Err
3,327,058
3.3M
Rank
Estimation Error
Est Err
276,382
276K
Rank
Estimation Error
Est Err
318,926
319K
Rank
Native storage
Estimation Error
Est Err
1,614,732
1.6M
Rank
Estimation Error
Est Err
1,619,803
1.6M
Rank
Estimation Error
Est Err
495
495
Rank
Estimation Error
Est Err
14,329
14K
Rank
Estimation Error
Est Err
689
689
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
177,353
177K
Rank
Estimation Error
Est Err
176,523
177K
Rank
Estimation Error
Est Err
177,351
177K
Rank
Estimation Error
Est Err
495
495
Rank
Estimation Error
Est Err
331,671
332K
Rank
Estimation Error
Est Err
1,375
1.4K
Rank
Estimation Error
Est Err
0
Rank
Native storage
Estimation Error
Est Err
4,427
4.4K
Rank
Estimation Error
Est Err
5,156
5.2K
Rank
Estimation Error
Est Err
495
495
Rank
Estimation Error
Est Err
6,762
6.8K
Rank
Estimation Error
Est Err
689
689
Rank
Estimation Error
Est Err
0
Rank
Apache Iceberg
Estimation Error
Est Err
164,438
164K
Rank
Estimation Error
Est Err
481,014
481K
Rank
Estimation Error
Est Err
495
495
Rank
Estimation Error
Est Err
599,159
599K
Rank
Estimation Error
Est Err
234,845
235K
Rank
Estimation Error
Est Err
122,212
122K
Rank

Actual Query Plans

Query Plan per Engine ?
Query Plan
Native storage
Estimate    Actual  Operator
     168       495  SORT s_acctbal62, n_name15, s_name58, p_partkey
     168       495  INNER JOIN HASH ON s_nationkey60 = n_nationkey14
       5         5  │└INNER JOIN HASH ON n_regionkey = r_regionkey
       1         1   │└TABLE SCAN region WHERE r_name = EUROPE
      25        25   TABLE SCAN nation
     846       495  INNER JOIN HASH ON ps_suppkey50 = s_suppkey57
     837       495  │└INNER JOIN HASH ON ps_partkey49 = p_partkey AND ps_supplycost52 = MIN(ps_supplycost)
       5       495   │└INNER JOIN HASH ON p_partkey = ps_partkey47
    1367       803    │└TABLE SCAN part WHERE p_size = 25 AND p_type LIKE '%BRASS'
     834       495    AGGREGATE min GROUP BY HASH ps_partkey
     927       689    INNER JOIN HASH ON ps_suppkey = s_suppkey
    1987      1987    │└INNER JOIN HASH ON s_nationkey = n_nationkey28
       5         5     │└TABLE SCAN  < temp > 
   10000     10000     TABLE SCAN supplier
    4612      1603    TABLE SCAN partsupp
  800000    800000   TABLE SCAN partsupp
   10000     10000  TABLE SCAN supplier
Native storage
Estimate    Actual  Operator
       -       495  PROJECT s_acctbal, s_name, n_name, p_partkey_right AS p_partkey, p_mfgr, s_address, s_phone, s_comment
       -       495  SORT s_acctbal, n_name, s_name, p_partkey_right
       -       495  PROJECT s_acctbal, n_name, s_name, p_partkey_right, p_mfgr, s_address, s_phone, s_comment
       -       495  FILTER ps_supplycost = a6
       -       689  PROJECT a6, ps_supplycost, p_partkey_right, p_mfgr, s_acctbal, s_name, s_address, s_phone, s_comment, n_name
       -       689  INNER JOIN HASH ON PROJECTION_28.ps_suppkey = PROJECTION_13.s_suppkey
       -      1987  │└PROJECT s_suppkey, s_acctbal, s_name, s_address, s_phone, s_comment, n_name
       -      1987   PROJECT s_acctbal, s_name, s_address, s_phone, s_comment, s_suppkey, n_name
       -      1987   INNER JOIN HASH ON PROJECTION_25.s_nationkey = PROJECTION_16.n_nationkey
       -         5   │└PROJECT n_nationkey, n_name
       -         5    PROJECT n_name, n_nationkey
       -         5    INNER JOIN HASH ON PROJECTION_22.n_regionkey = PROJECTION_19.r_regionkey
       -         1    │└PROJECT r_regionkey
       -         1     PROJECT r_regionkey
       -         1     TABLE SCAN region WHERE r_name = 'EUROPE'
       -        25    PROJECT n_regionkey, n_name, n_nationkey
       -        25    PROJECT n_name, n_nationkey, n_regionkey
       -        25    TABLE SCAN nation
       -     10000   PROJECT s_nationkey, s_acctbal, s_name, s_address, s_phone, s_comment, s_suppkey
       -     10000   PROJECT s_acctbal, s_name, s_address, s_phone, s_comment, s_suppkey, s_nationkey
       -     10000   TABLE SCAN supplier
       -      1980  PROJECT ps_suppkey, a6, ps_supplycost, p_partkey, p_mfgr
       -      1980  PROJECT ps_suppkey, ps_supplycost, p_partkey, p_mfgr, a6
       -      1980  INNER JOIN HASH ON PROJECTION_34.p_partkey = PROJECTION_31.ps_partkey
       -    800000  │└PROJECT ps_partkey, ps_suppkey, ps_supplycost
       -    800000   PROJECT ps_partkey, ps_suppkey, ps_supplycost
       -    800000   TABLE SCAN partsupp
       -       495  PROJECT p_partkey, p_mfgr, a6
       -       495  PROJECT p_partkey, p_mfgr, a6
       -       495  INNER JOIN HASH ON PROJECTION_40.ps_partkey = PROJECTION_37.p_partkey
       -       803  │└PROJECT p_partkey AS p_partkey_right, p_mfgr
       -       803   PROJECT p_partkey, p_mfgr
       -       803   TABLE SCAN part WHERE (p_size = 25) AND endsWith(p_type,'BRASS')
       -    117422  PROJECT p_partkey, a6
       -    117422  PROJECT a7 AS a6, ps_partkey AS p_partkey
       -    117422  AGGREGATE MIN(ps_supplycost) AS a7 GROUP BY HASH ps_partkey
       -    158960  PROJECT ps_supplycost, ps_partkey, r_name, ps_partkey
       -    158960  PROJECT ps_supplycost, ps_partkey, r_name
       -    158960  INNER JOIN HASH ON PROJECTION_55.n_nationkey = PROJECTION_46.s_nationkey
       -    800000  │└PROJECT s_nationkey, ps_supplycost, ps_partkey
       -    800000   PROJECT ps_supplycost, ps_partkey, s_nationkey
       -    800000   INNER JOIN HASH ON PROJECTION_52.ps_suppkey = PROJECTION_49.s_suppkey
       -     10000   │└PROJECT s_suppkey, s_nationkey
       -     10000    PROJECT s_suppkey, s_nationkey
       -     10000    TABLE SCAN supplier
       -    800000   PROJECT ps_suppkey, ps_supplycost, ps_partkey
       -    800000   PROJECT ps_suppkey, ps_partkey, ps_supplycost
       -    800000   TABLE SCAN partsupp WHERE ps_partkey = ps_partkey
       -         5  PROJECT n_nationkey, r_name
       -         5  PROJECT n_nationkey, r_name
       -         5  INNER JOIN HASH ON PROJECTION_61.n_regionkey = PROJECTION_58.r_regionkey
       -         1  │└PROJECT r_regionkey, r_name
       -         1   PROJECT r_regionkey, r_name
       -         1   TABLE SCAN region WHERE r_name = 'EUROPE'
       -        25  PROJECT n_regionkey, n_nationkey
       -        25  PROJECT n_nationkey, n_regionkey
       -        25  TABLE SCAN nation
Native storage
Estimate    Actual  Operator
    3589       495  SORT s_acctbal, n_name, s_name, p_partkey
    3589       495  PROJECT s_acctbal, s_name, n_name, p_partkey, p_mfgr, s_address, s_phone, s_comment
    3589       495  FILTER ps_supplycost = SUBQUERY
       0         0  LEFT SEMI JOIN HASH ON p_partkey IS NOT DISTINCT FROM p_partkey
    3482       495  │└AGGREGATE  GROUP BY HASH #0
       0       689   LEFT OUTER JOIN HASH ON p_partkey IS NOT DISTINCT FROM p_partkey
    4537       495   │└PROJECT min_cost, p_partkey
    4537       495    AGGREGATE MIN(#1) GROUP BY HASH #0
    9074       689    PROJECT p_partkey, ps_supplycost
    9074       689    INNER JOIN HASH ON ps_suppkey = s_suppkey
    1923      1987    │└INNER JOIN HASH ON s_nationkey = n_nationkey
       5         5     │└INNER JOIN HASH ON n_regionkey = r_regionkey
       1         1      │└TABLE SCAN region WHERE r_name = 'EUROPE'
      25         5      TABLE SCAN nation
   10000      7170     TABLE SCAN supplier
   47187      1979    INNER JOIN HASH ON ps_partkey = p_partkey
    3482         0    │└SCAN MATERIALISED
  800000    799444    TABLE SCAN partsupp
       0       689   SCAN MATERIALISED
    3589       689  INNER JOIN HASH ON ps_suppkey = s_suppkey
    1923      1987  │└INNER JOIN HASH ON s_nationkey = n_nationkey
       5         5   │└INNER JOIN HASH ON n_regionkey = r_regionkey
       1         1    │└TABLE SCAN region WHERE r_name = 'EUROPE'
      25         5    TABLE SCAN nation
   10000      7170   TABLE SCAN supplier
   18667      3208  INNER JOIN HASH ON ps_partkey = p_partkey
    4445       803  │└TABLE SCAN part WHERE p_size = 25 AND suffix(p_type,'BRASS')
  800000    799444  TABLE SCAN partsupp
Apache Iceberg
Estimate    Actual  Operator
   32000       495  SORT s_acctbal, n_name, s_name, p_partkey
   32000       495  SORT s_acctbal, n_name, s_name, p_partkey
   32000       495  PROJECT s_acctbal, s_name, n_name, p_partkey, p_mfgr, s_address, s_phone, s_comment
   32000       495  INNER JOIN HASH ON p_partkey = ps_partkey AND ps_supplycost = min_cost
  160000    117422  │└PROJECT min_cost, ps_partkey
  160000    117422   AGGREGATE MIN(ps_supplycost) GROUP BY HASH ps_partkey
  160000    117422   DISTRIBUTE HASH ON ps_partkey
  160000    117422   AGGREGATE MIN(ps_supplycost) GROUP BY HASH ps_partkey
  160000    158960   INNER JOIN HASH ON r_regionkey = n_regionkey
  800000    800000   │└PROJECT ps_partkey, ps_supplycost, n_regionkey
  800000    800000    INNER JOIN HASH ON n_nationkey = s_nationkey
  800000    800000    │└PROJECT ps_partkey, ps_supplycost, s_nationkey
  800000    800000     INNER JOIN HASH ON s_suppkey = ps_suppkey
  800000    800000     │└TABLE SCAN partsupp WHERE ((ps_suppkey >= 1) AND (ps_suppkey <= 10000)) AND TRUE
   10000     10000     TABLE SCAN supplier WHERE ((s_nationkey >= 0) AND (s_nationkey <= 24)) AND s_nationkey IN(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)
      25        25    TABLE SCAN nation WHERE ((n_regionkey >= 3) AND (n_regionkey <= 3)) AND n_regionkey IN 3
       1         1   DISTRIBUTE GATHER
       1         1   FILTER r_name = 'EUROPE'
       5         5   DISTRIBUTE ROUND ROBIN
       5         5   TABLE SCAN region WHERE r_name = 'EUROPE'
   32000       689  DISTRIBUTE GATHER
   32000       689  INNER JOIN HASH ON r_regionkey = n_regionkey
  160000      3212  │└PROJECT ps_supplycost, p_partkey, p_mfgr, s_name, s_address, s_phone, s_acctbal, s_comment, n_name, n_regionkey
  160000      3212   INNER JOIN HASH ON n_nationkey = s_nationkey
  160000      3212   │└PROJECT ps_supplycost, p_partkey, p_mfgr, s_name, s_address, s_nationkey, s_phone, s_acctbal, s_comment
  160000      3212    INNER JOIN HASH ON s_suppkey = ps_suppkey
  160000      3212    │└PROJECT ps_suppkey, ps_supplycost, p_partkey, p_mfgr
  160000      3212     INNER JOIN HASH ON p_partkey = ps_partkey
  800000    800000     │└TABLE SCAN partsupp WHERE (((ps_partkey >= 74) AND (ps_partkey <= 199829)) AND TRUE) AND (((ps_suppkey >= 1) AND (ps_suppkey <= 10000)) AND TRUE)
   40000       803     DISTRIBUTE GATHER
   40000       803     FILTER (p_size = 25) AND p_type LIKE '%BRASS'
  200000    200000     DISTRIBUTE ROUND ROBIN
  200000    200000     TABLE SCAN part WHERE (p_size = 25) AND p_type LIKE '%BRASS'
   10000     10000    TABLE SCAN supplier WHERE ((s_nationkey >= 0) AND (s_nationkey <= 24)) AND s_nationkey IN(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)
      25        25   TABLE SCAN nation WHERE ((n_regionkey >= 3) AND (n_regionkey <= 3)) AND n_regionkey IN 3
       1         1  DISTRIBUTE GATHER
       1         1  FILTER r_name = 'EUROPE'
       5         5  DISTRIBUTE ROUND ROBIN
       5         5  TABLE SCAN region WHERE r_name = 'EUROPE'
Native storage
Estimate    Actual  Operator
    834T       495  SORT s_acctbal DESC NULLS LAST, n_name ASC NULLS FIRST, s_name ASC NULLS FIRST, p_partkey ASC NULLS FIRST
    834T       990  DISTRIBUTE HASH ON s_acctbal, n_name, s_name, p_partkey
    834T       990  INNER JOIN HASH ON n_regionkey = r_regionkey
    834T         1  │└DISTRIBUTE HASH
  800000         1   DISTRIBUTE HASH
  800000         1   TABLE SCAN region WHERE r_min.r_name = 'EUROPE'
       ∞       990  INNER JOIN HASH ON s_nationkey = n_nationkey
       ∞        25  │└DISTRIBUTE GATHER
  200000        25   TABLE SCAN nation
       ∞       990  INNER JOIN HASH ON ps_suppkey = s_suppkey
       ∞     10000  │└DISTRIBUTE GATHER
      25     10000   TABLE SCAN supplier
       ∞       990  INNER JOIN HASH ON ps_supplycost = min_cost
       ∞    117422  │└DISTRIBUTE GATHER
  140000    117422   FILTER 
   38700    117422   AGGREGATE MIN(ps_min.ps_supplycost) GROUP BY HASH ps_min.ps_partkey
   38700    117422   DISTRIBUTE HASH ON ps_min.ps_partkey
   38700    117422   AGGREGATE MIN(ps_min.ps_supplycost) GROUP BY HASH ps_min.ps_partkey
  161000    158960   INNER JOIN HASH ON s_min.s_suppkey = ps_min.ps_suppkey
  161000      1987   │└DISTRIBUTE GATHER
    1920      1987    INNER JOIN HASH ON n_min.n_nationkey = s_min.s_nationkey
    1920         5    │└DISTRIBUTE GATHER
       5         5     INNER JOIN HASH ON n_min.n_regionkey = r_min.r_regionkey
       5         1     │└DISTRIBUTE GATHER
       5         1      TABLE SCAN region WHERE r_min.r_name = 'EUROPE'
      25         5     TABLE SCAN nation
   10000      6704    TABLE SCAN supplier
  800000    796702   TABLE SCAN partsupp
    112B      6424  INNER JOIN HASH ON ps_partkey = p_partkey
    112B       803  │└DISTRIBUTE GATHER
   10000       803   TABLE SCAN part WHERE (p_size = 25) AND endswith(p_type,'BRASS')
       5   1591848  TABLE SCAN partsupp
Native storage
Estimate    Actual  Operator
     209       495  SORT s_acctbal, n_name, s_name, ps_partkey
     209       495  INNER JOIN HASH ON n_regionkey = r_regionkey
       1         1  │└TABLE SCAN region WHERE r_name = 'EUROPE'
     104       495  INNER JOIN HASH ON s_nationkey = n_nationkey
       2         5  │└TABLE SCAN nation WHERE BLOOM(n_regionkey)
     104       495  INNER JOIN HASH ON s_suppkey = ps_suppkey
    1045       495  │└INNER JOIN HASH ON Expr1023 = ps_supplycost AND ps_partkey = ps_partkey as ps_partkey
    1045       495   │└INNER JOIN HASH ON ps_min.ps_partkey = p_partkey
    1766       803    │└TABLE SCAN part WHERE (p_size = 25) AND (p_type LIKE '%BRASS')
    1178       495    AGGREGATE MIN(ps_supplycost as ps_supplycost) AS Expr1023 GROUP BY HASH ps_partkey
    1600       689    INNER JOIN HASH ON ps_min.ps_suppkey = s_min.s_suppkey
    2000      1987    │└INNER JOIN HASH ON s_min.s_nationkey = n_min.n_nationkey
       5         5     │└INNER JOIN HASH ON n_min.n_regionkey = r_min.r_regionkey
       1         1      │└TABLE SCAN region AS r_min WHERE r_name as r_name = 'EUROPE'
       2         5      TABLE SCAN nation AS n_min WHERE BLOOM(n_regionkey as n_regionkey)
    1000      1987     TABLE SCAN supplier AS s_min WHERE BLOOM(s_nationkey as s_nationkey)
     800       689    TABLE SCAN partsupp AS ps_min WHERE BLOOM(ps_suppkey as ps_suppkey) AND BLOOM(ps_partkey as ps_partkey)
     800       495   TABLE SCAN partsupp WHERE (BLOOM(ps_partkey)) AND (BLOOM(ps_supplycost,ps_partkey))
     100       441  TABLE SCAN supplier WHERE BLOOM(s_suppkey) AND BLOOM(s_nationkey)
Apache Iceberg
Estimate    Actual  Operator
       -       495  PROJECT s_acctbal, s_name, n_name, ps_partkey AS p_partkey, p_mfgr, s_address, s_phone, s_comment
       -       495  SORT s_acctbal, n_name, s_name, ps_partkey
       -       495  FILTER ps_supplycost = COALESCE(min,min_45)
       -       689  CROSS JOIN LOOP
       -       689  │└LEFT OUTER JOIN HASH ON ps_partkey = ps_partkey_12
       -    117422   │└AGGREGATE MIN(min_46) AS min GROUP BY HASH ps_partkey_12
       -    117422    DISTRIBUTE HASH ON ps_partkey_12
       -    117422    AGGREGATE MIN(ps_supplycost_15) AS min_46 GROUP BY PARTIAL ps_partkey_12
       -    117422    FILTER non_null
       -    158960    PROJECT ps_supplycost_15, ps_partkey_12, true AS non_null
       -    158960    INNER JOIN HASH ON n_regionkey_32 = r_regionkey_37
       5         1    │└DISTRIBUTE GATHER
       5         1     PROJECT r_regionkey AS r_regionkey_37
       5         1     FILTER r_name = 'EUROPE'
       5         1     TABLE SCAN region
       -    158960    INNER JOIN HASH ON s_nationkey_23 = n_nationkey_30
      25         5    │└DISTRIBUTE GATHER
      25         5     PROJECT n_nationkey AS n_nationkey_30, n_regionkey AS n_regionkey_32
      25         5     TABLE SCAN nation
       -    158960    INNER JOIN HASH ON ps_suppkey_13 = s_suppkey_20
   10000      1987    │└DISTRIBUTE GATHER
   10000      1987     PROJECT s_suppkey AS s_suppkey_20, s_nationkey AS s_nationkey_23
   10000      1987     TABLE SCAN supplier
  800000    158960    PROJECT ps_partkey AS ps_partkey_12, ps_suppkey AS ps_suppkey_13, ps_supplycost AS ps_supplycost_15
  800000    158960    TABLE SCAN partsupp
       -       689   INNER JOIN HASH ON n_regionkey = r_regionkey
       5         1   │└DISTRIBUTE GATHER
       5         1    FILTER r_name = 'EUROPE'
       5         1    TABLE SCAN region
       -       689   INNER JOIN HASH ON s_nationkey = n_nationkey
      25         5   │└DISTRIBUTE GATHER
      25         5    TABLE SCAN nation
       -       689   INNER JOIN HASH ON ps_suppkey = s_suppkey
   10000      1987   │└DISTRIBUTE GATHER
   10000      1987    TABLE SCAN supplier
       -       689   INNER JOIN HASH ON ps_partkey = p_partkey
  200000       803   │└DISTRIBUTE GATHER
  200000       803    FILTER (p_size = 25) AND (p_type LIKE '%BRASS')
  200000       803    TABLE SCAN part
  800000       689   TABLE SCAN partsupp
       1         1  DISTRIBUTE GATHER
       1         1  AGGREGATE MIN(null_value) AS min_45
       1         1  FILTER null_44
       1         1  PROJECT 0.0 AS null_value, false AS null_44
       1         1  SELECT
Native storage
Estimate    Actual  Operator
       1       495  SEQUENCE
    1298      1298  ├─AGGREGATE MIN(ps_supplycost)
    1298      1375   INNER JOIN LOOP ON ps_partkey = p_partkey AND n_regionkey = r_regionkey AND (n_regionkey = r_regionkey)
       1         1   │└TABLE SCAN region AS r_min WHERE r_min.r_name = 'EUROPE'
    5192      5192   INNER JOIN LOOP ON n_nationkey = s_nationkey
    5192      5192   │└INNER JOIN LOOP ON s_suppkey = ps_suppkey
    5192      5192    │└TABLE SEEK partsupp AS ps_min
    5192      5192    TABLE SEEK supplier AS s_min
    5192      5192   TABLE SEEK nation AS n_min
       1       495  └─SORT s_acctbal, n_name, s_name, p_partkey
       1       495    INNER JOIN HASH ON (p_partkey = ps_partkey) AND ((SubPlan 1) = ps_supplycost)
  160000    158960    │└INNER JOIN LOOP ON ps_suppkey = s_suppkey
    2000      1987     │└INNER JOIN LOOP ON s_nationkey = n_nationkey
       5         5      │└INNER JOIN HASH ON n_regionkey = r_regionkey
       1         1       │└TABLE SCAN region AS region WHERE r_name = 'EUROPE'
      25        25       TABLE SCAN nation AS nation
    2000      1987      TABLE SEEK supplier AS supplier
  158960    158960     TABLE SEEK partsupp AS partsupp
     996       803    TABLE SCAN part AS part WHERE (p_type LIKE '%BRASS') AND (p_size = 25)