import file=tpch_schema
----

import file=tpch_stats
----

# --------------------------------------------------
# Q20
# Potential Part Promotion
# Identifies suppliers in a particular nation having selected parts that may be
# candidates for a promotional offer.
#
# Identifies suppliers who have an excess of a given part available; an excess
# defined to be more than 50% of the parts like the given part that the supplier
# shipped in a given year for a given nation. Only parts whose names share a
# certain naming convention are considered.
#
# TODO:
#   1. Push 'forest%' prefix filter down into Scan
# --------------------------------------------------
stats-quality database=tpch set=save_tables_prefix=q20
SELECT
    s_name,
    s_address
FROM
    supplier,
    nation
WHERE
    s_suppkey IN (
        SELECT
            ps_suppkey
        FROM
            partsupp
        WHERE
            ps_partkey IN (
                SELECT
                    p_partkey
                FROM
                    part
                WHERE
                    p_name LIKE 'forest%'
            )
            AND ps_availqty > (
                SELECT
                    0.5 * sum(l_quantity)
                FROM
                    lineitem
                WHERE
                    l_partkey = ps_partkey
                    AND l_suppkey = ps_suppkey
                    AND l_shipdate >= DATE '1994-01-01'
                    AND l_shipdate < DATE '1994-01-01' + INTERVAL '1' YEAR
            )
    )
    AND s_nationkey = n_nationkey
    AND n_name = 'CANADA'
ORDER BY
    s_name;
----
----
sort
 ├── save-table-name: q20_sort_1
 ├── columns: s_name:2(char!null) s_address:3(varchar!null)
 ├── immutable
 ├── stats: [rows=4.032258e-05, distinct(2)=4.03226e-05, null(2)=0, distinct(3)=4.03226e-05, null(3)=0]
 ├── ordering: +2
 └── project
      ├── save-table-name: q20_project_2
      ├── columns: s_name:2(char!null) s_address:3(varchar!null)
      ├── immutable
      ├── stats: [rows=4.032258e-05, distinct(2)=4.03226e-05, null(2)=0, distinct(3)=4.03226e-05, null(3)=0]
      └── inner-join (lookup nation)
           ├── save-table-name: q20_lookup_join_3
           ├── columns: s_suppkey:1(int!null) s_name:2(char!null) s_address:3(varchar!null) s_nationkey:4(int!null) n_nationkey:10(int!null) n_name:11(char!null)
           ├── key columns: [4] = [10]
           ├── lookup columns are key
           ├── immutable
           ├── stats: [rows=4.032258e-05, distinct(1)=4e-05, null(1)=0, distinct(2)=4.03226e-05, null(2)=0, distinct(3)=4.03226e-05, null(3)=0, distinct(4)=4.03225e-05, null(4)=0, distinct(10)=4.03225e-05, null(10)=0, distinct(11)=4.03226e-05, null(11)=0]
           ├── key: (1)
           ├── fd: ()-->(11), (1)-->(2-4), (4)==(10), (10)==(4)
           ├── project
           │    ├── save-table-name: q20_project_4
           │    ├── columns: s_suppkey:1(int!null) s_name:2(char!null) s_address:3(varchar!null) s_nationkey:4(int!null)
           │    ├── immutable
           │    ├── stats: [rows=4.032258e-05, distinct(1)=4e-05, null(1)=0, distinct(2)=4.03226e-05, null(2)=0, distinct(3)=4.03226e-05, null(3)=0, distinct(4)=4.03225e-05, null(4)=0]
           │    ├── key: (1)
           │    ├── fd: (1)-->(2-4)
           │    └── inner-join (lookup supplier)
           │         ├── save-table-name: q20_lookup_join_5
           │         ├── columns: s_suppkey:1(int!null) s_name:2(char!null) s_address:3(varchar!null) s_nationkey:4(int!null) ps_suppkey:17(int!null)
           │         ├── key columns: [17] = [1]
           │         ├── lookup columns are key
           │         ├── immutable
           │         ├── stats: [rows=0.4, distinct(1)=4e-05, null(1)=0, distinct(2)=0.4, null(2)=0, distinct(3)=0.4, null(3)=0, distinct(4)=0.4, null(4)=0, distinct(17)=4e-05, null(17)=0]
           │         ├── key: (17)
           │         ├── fd: (1)-->(2-4), (1)==(17), (17)==(1)
           │         ├── distinct-on
           │         │    ├── save-table-name: q20_distinct_on_6
           │         │    ├── columns: ps_suppkey:17(int!null)
           │         │    ├── grouping columns: ps_suppkey:17(int!null)
           │         │    ├── immutable
           │         │    ├── stats: [rows=4e-05, distinct(17)=4e-05, null(17)=0]
           │         │    ├── key: (17)
           │         │    └── inner-join (lookup part)
           │         │         ├── save-table-name: q20_lookup_join_7
           │         │         ├── columns: ps_partkey:16(int!null) ps_suppkey:17(int!null) ps_availqty:18(int!null) p_partkey:23(int!null) p_name:24(varchar!null) sum:52(float!null)
           │         │         ├── key columns: [16] = [23]
           │         │         ├── lookup columns are key
           │         │         ├── immutable
           │         │         ├── stats: [rows=0.004990918, distinct(16)=4e-05, null(16)=0, distinct(17)=0.00499092, null(17)=0, distinct(18)=0.00499092, null(18)=0, distinct(23)=4e-05, null(23)=0, distinct(24)=7.51679e-09, null(24)=0, distinct(52)=0.00499092, null(52)=0]
           │         │         ├── key: (17,23)
           │         │         ├── fd: (16,17)-->(18,52), (23)-->(24), (16)==(23), (23)==(16)
           │         │         ├── select
           │         │         │    ├── save-table-name: q20_select_8
           │         │         │    ├── columns: ps_partkey:16(int!null) ps_suppkey:17(int!null) ps_availqty:18(int!null) sum:52(float!null)
           │         │         │    ├── immutable
           │         │         │    ├── stats: [rows=124.773, distinct(16)=124.773, null(16)=0, distinct(17)=124.773, null(17)=0, distinct(18)=124.773, null(18)=0, distinct(52)=124.773, null(52)=0]
           │         │         │    ├── key: (16,17)
           │         │         │    ├── fd: (16,17)-->(18,52)
           │         │         │    ├── group-by (hash)
           │         │         │    │    ├── save-table-name: q20_group_by_9
           │         │         │    │    ├── columns: ps_partkey:16(int!null) ps_suppkey:17(int!null) ps_availqty:18(int!null) sum:52(float!null)
           │         │         │    │    ├── grouping columns: ps_partkey:16(int!null) ps_suppkey:17(int!null)
           │         │         │    │    ├── stats: [rows=374.3189, distinct(16)=374.319, null(16)=0, distinct(17)=374.319, null(17)=0, distinct(18)=374.319, null(18)=0, distinct(52)=374.319, null(52)=0, distinct(16,17)=374.319, null(16,17)=0]
           │         │         │    │    ├── key: (16,17)
           │         │         │    │    ├── fd: (16,17)-->(18,52)
           │         │         │    │    ├── inner-join (hash)
           │         │         │    │    │    ├── save-table-name: q20_inner_join_10
           │         │         │    │    │    ├── columns: ps_partkey:16(int!null) ps_suppkey:17(int!null) ps_availqty:18(int!null) l_partkey:35(int!null) l_suppkey:36(int!null) l_quantity:38(float!null) l_shipdate:44(date!null)
           │         │         │    │    │    ├── multiplicity: left-rows(exactly-one), right-rows(zero-or-more)
           │         │         │    │    │    ├── stats: [rows=374.3189, distinct(16)=374.319, null(16)=0, distinct(17)=374.319, null(17)=0, distinct(18)=367.345, null(18)=0, distinct(35)=374.319, null(35)=0, distinct(36)=374.319, null(36)=0, distinct(38)=49.972, null(38)=0, distinct(44)=234.109, null(44)=0, distinct(16,17)=374.319, null(16,17)=0]
           │         │         │    │    │    ├── fd: (16,17)-->(18), (16)==(35), (35)==(16), (17)==(36), (36)==(17)
           │         │         │    │    │    ├── index-join lineitem
           │         │         │    │    │    │    ├── save-table-name: q20_index_join_11
           │         │         │    │    │    │    ├── columns: l_partkey:35(int!null) l_suppkey:36(int!null) l_quantity:38(float!null) l_shipdate:44(date!null)
           │         │         │    │    │    │    ├── stats: [rows=924787.9, distinct(35)=197952, null(35)=0, distinct(36)=9920, null(36)=0, distinct(38)=50, null(38)=0, distinct(44)=365, null(44)=0]
           │         │         │    │    │    │    │   histogram(44)=  0       0        12002      1800      27606      4201      27005      5401      28806      3001      27606      2400      24005      5401      24605      5401      28206      3601      26405      3001      27005      2400      28806      3601      28206      1800      28806      2400      28806      1800      28206      1800      27606      3601      28206      3001      26405      3001      28206      1200      28206      2400      28806      1200      27606      3001      24605      5401      28806      1800      25805      3601      27005      2400      28806      1800      28806      600       28806      600       27606      3601      26326     1880.4
           │         │         │    │    │    │    │                 <--- '1993-12-31' ------- '1994-01-06' ------- '1994-01-20' ------- '1994-02-01' ------- '1994-02-14' ------- '1994-02-25' ------- '1994-03-11' ------- '1994-03-24' ------- '1994-04-07' ------- '1994-04-19' ------- '1994-05-03' ------- '1994-05-14' ------- '1994-05-24' ------- '1994-06-04' ------- '1994-06-14' ------- '1994-06-26' ------- '1994-07-06' ------- '1994-07-17' ------- '1994-08-01' ------- '1994-08-11' ------- '1994-08-25' ------- '1994-09-05' ------- '1994-09-16' ------- '1994-09-26' ------- '1994-10-07' ------- '1994-10-17' ------- '1994-10-27' ------- '1994-11-09' ------- '1994-11-22' ------- '1994-12-04' ------- '1994-12-16' ------- '1994-12-31'
           │         │         │    │    │    │    └── scan lineitem@l_sd
           │         │         │    │    │    │         ├── save-table-name: q20_scan_12
           │         │         │    │    │    │         ├── columns: l_orderkey:34(int!null) l_linenumber:37(int!null) l_shipdate:44(date!null)
           │         │         │    │    │    │         ├── constraint: /44/34/37: [/'1994-01-01' - /'1994-12-31']
           │         │         │    │    │    │         ├── stats: [rows=924787.9, distinct(34)=736000, null(34)=0, distinct(37)=7, null(37)=0, distinct(44)=365, null(44)=0]
           │         │         │    │    │    │         │   histogram(34)=  0 92.46 4531.5  92.46  4531.5  92.46  4531.5  92.46  4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4439  184.92  4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5  92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4439  184.92   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4439  184.92   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4531.5   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46   4623.9   92.46
           │         │         │    │    │    │         │                 <--- 197 -------- 23686 -------- 53253 -------- 90435 -------- 121730 -------- 153280 -------- 175456 -------- 208548 -------- 242209 -------- 273057 ------ 296640 -------- 330307 -------- 360999 -------- 386307 -------- 420225 -------- 450050 -------- 477795 -------- 504711 -------- 533153 -------- 556672 -------- 582243 -------- 613729 -------- 646117 -------- 675840 -------- 706048 -------- 733063 -------- 769282 -------- 793922 -------- 820357 -------- 849536 -------- 875719 -------- 905028 -------- 940643 -------- 968355 -------- 998721 -------- 1023621 -------- 1059424 -------- 1084932 -------- 1115553 -------- 1139363 -------- 1167361 -------- 1194400 -------- 1225984 -------- 1253861 -------- 1281633 -------- 1304999 -------- 1336355 -------- 1370759 -------- 1400832 -------- 1434085 -------- 1458852 -------- 1491427 -------- 1525120 -------- 1555205 -------- 1591300 -------- 1619426 -------- 1651458 -------- 1682950 -------- 1711399 -------- 1747591 -------- 1787205 ------ 1822240 -------- 1856163 -------- 1886915 -------- 1910949 -------- 1947202 ------ 1974311 -------- 2009286 -------- 2044034 -------- 2079104 -------- 2103488 -------- 2134657 -------- 2164293 -------- 2204514 -------- 2230823 -------- 2265253 -------- 2289826 -------- 2329539 -------- 2364455 -------- 2393507 -------- 2414628 -------- 2440228 -------- 2465255 -------- 2489568 -------- 2520900 -------- 2554919 -------- 2583333 -------- 2612966 -------- 2644833 -------- 2667362 -------- 2702784 -------- 2727394 -------- 2759748 -------- 2794531 -------- 2822214 -------- 2846624 -------- 2883748 -------- 2919586 -------- 2951908 -------- 2980068 -------- 3014726 -------- 3050725 -------- 3081028 -------- 3113351 -------- 3150243 -------- 3185669 -------- 3214311 -------- 3241281 -------- 3275748 -------- 3303232 -------- 3339559 -------- 3370627 -------- 3393664 -------- 3435265 -------- 3464581 -------- 3489026 -------- 3516096 -------- 3548480 -------- 3587015 -------- 3611239 -------- 3638724 -------- 3668641 -------- 3695751 -------- 3729636 -------- 3751523 -------- 3784608 -------- 3815715 -------- 3848608 -------- 3881184 -------- 3908738 -------- 3940002 -------- 3966176 -------- 4001984 -------- 4035687 -------- 4065283 -------- 4092834 -------- 4133062 -------- 4160613 -------- 4196421 -------- 4223713 -------- 4254788 -------- 4291040 -------- 4313664 -------- 4342823 -------- 4369952 -------- 4391684 -------- 4419040 -------- 4449921 -------- 4471781 -------- 4506210 -------- 4538176 -------- 4571297 -------- 4601121 -------- 4630887 -------- 4657476 -------- 4684803 -------- 4714566 -------- 4744070 -------- 4776385 -------- 4807777 -------- 4839491 -------- 4873953 -------- 4902245 -------- 4936263 -------- 4970721 -------- 5003140 -------- 5029729 -------- 5059010 -------- 5087521 -------- 5121093 -------- 5150405 -------- 5178375 -------- 5203683 -------- 5234531 -------- 5268195 -------- 5300004 -------- 5331558 -------- 5362178 -------- 5385762 -------- 5418498 -------- 5445762 -------- 5483109 -------- 5514561 -------- 5542052 -------- 5569572 -------- 5596102 -------- 5622401 -------- 5652194 -------- 5671362 -------- 5699591 -------- 5727136 -------- 5753284 -------- 5780742 -------- 5809189 -------- 5836545 -------- 5864454 -------- 5894917 -------- 5933825 -------- 5968933 -------- 5999590
           │         │         │    │    │    │         │   histogram(37)=  0 2.2925e+05 0 2.0632e+05 0 1.6221e+05 0 1.328e+05 0 98120 0 63995 0 32090
           │         │         │    │    │    │         │                 <------ 1 ---------- 2 ---------- 3 ---------- 4 ------- 5 ----- 6 ----- 7 -
           │         │         │    │    │    │         │   histogram(44)=  0       0        12002      1800      27606      4201      27005      5401      28806      3001      27606      2400      24005      5401      24605      5401      28206      3601      26405      3001      27005      2400      28806      3601      28206      1800      28806      2400      28806      1800      28206      1800      27606      3601      28206      3001      26405      3001      28206      1200      28206      2400      28806      1200      27606      3001      24605      5401      28806      1800      25805      3601      27005      2400      28806      1800      28806      600       28806      600       27606      3601      26326     1880.4
           │         │         │    │    │    │         │                 <--- '1993-12-31' ------- '1994-01-06' ------- '1994-01-20' ------- '1994-02-01' ------- '1994-02-14' ------- '1994-02-25' ------- '1994-03-11' ------- '1994-03-24' ------- '1994-04-07' ------- '1994-04-19' ------- '1994-05-03' ------- '1994-05-14' ------- '1994-05-24' ------- '1994-06-04' ------- '1994-06-14' ------- '1994-06-26' ------- '1994-07-06' ------- '1994-07-17' ------- '1994-08-01' ------- '1994-08-11' ------- '1994-08-25' ------- '1994-09-05' ------- '1994-09-16' ------- '1994-09-26' ------- '1994-10-07' ------- '1994-10-17' ------- '1994-10-27' ------- '1994-11-09' ------- '1994-11-22' ------- '1994-12-04' ------- '1994-12-16' ------- '1994-12-31'
           │         │         │    │    │    │         ├── key: (34,37)
           │         │         │    │    │    │         └── fd: (34,37)-->(44)
           │         │         │    │    │    ├── scan partsupp
           │         │         │    │    │    │    ├── save-table-name: q20_scan_13
           │         │         │    │    │    │    ├── columns: ps_partkey:16(int!null) ps_suppkey:17(int!null) ps_availqty:18(int!null)
           │         │         │    │    │    │    ├── stats: [rows=800000, distinct(16)=199241, null(16)=0, distinct(17)=9920, null(17)=0, distinct(18)=9920, null(18)=0, distinct(16,17)=798302, null(16,17)=0]
           │         │         │    │    │    │    │   histogram(16)=  0 79.993 3912.7 79.993 3933.7 79.993 3920.7 79.993 3917.7 79.993 3929.7 79.993 3912.7 79.993 3932.7 79.993 3918.7 158.99 3914.7 79.993 3928.7 79.993  3910.7 79.993  3904.7 79.993  3924.7 79.993  3914.7 79.993  3909.7 79.993  3917.7 79.993  3926.7 79.993  3913.7 79.993  3905.7 79.993  3912.7 79.993  3931.7 79.993  3926.7 79.993  3926.7 79.993  3906.7 79.993  3923.7 79.993  3904.7 79.993  3904.7 79.993  3907.7 158.99  3979.6 79.993  3906.7 79.993  3914.7 79.993  3918.7 79.993  3917.7 79.993  3826.7 158.99  3936.7 79.993  3908.7 79.993  3926.7 79.993  3930.7 79.993  3967.6 79.993  3910.7 79.993  3922.7 79.993  3914.7 79.993  3913.7 79.993  3915.7 79.993  3919.7 79.993  3916.7 79.993  3920.7 79.993  3926.7 79.993  3908.7 79.993  3904.7 158.99  3926.7 79.993  3922.7 79.993  3918.7 79.993  3908.7 79.993  3919.7 79.993  3908.7 79.993  3907.7 79.993  3916.7 79.993  3917.7 79.993  3905.7 79.993  3918.7 79.993  3940.7 79.993  3916.7 79.993  3923.7 79.993  3909.7 79.993  3915.7 79.993  3911.7 79.993  3915.7 79.993  3914.7 79.993  3948.6 79.993  3924.7 79.993  3916.7 79.993  3943.7 79.993  3933.7 79.993  3915.7 79.993  3916.7 79.993  3914.7 79.993  3919.7 79.993  3916.7 79.993  3912.7 79.993  3904.7 79.993  3913.7 79.993  3909.7 79.993  3914.7 79.993  3910.7 79.993  3923.7 79.993  3913.7 79.993  3914.7 79.993  3921.7 79.993  3927.7 79.993  3921.7 79.993  3924.7 158.99  3910.7 79.993  3916.7 79.993  3949.6 79.993  3922.7 79.993  3915.7 79.993  3942.7 79.993  3915.7 79.993  3917.7 79.993  3842.7  158.99  3911.7  79.993  3923.7  79.993  3923.7  79.993  3906.7  79.993  3925.7  79.993  3951.6  79.993  3933.7  79.993  3916.7  79.993  3903.7  79.993  3923.7  79.993  3932.7  79.993  3928.7  79.993  3905.7  79.993  3921.7  79.993  3920.7  79.993  3910.7  79.993  3912.7  79.993  3916.7  79.993  3922.7  79.993  3911.7  79.993  3906.7  79.993  3921.7  79.993  3911.7  79.993  3911.7  79.993  3926.7  79.993  3912.7  79.993  3945.6  79.993  3910.7  79.993  3922.7  79.993  3918.7  79.993  3911.7  79.993  3917.7  79.993  3945.6  79.993  3926.7  79.993  3926.7  79.993  3917.7  79.993  3904.7  79.993  3925.7  79.993  3912.7  79.993  3912.7  79.993  3954.6  79.993  3915.7  79.993  3912.7  79.993  3910.7  79.993  3909.7  79.993  3911.7  79.993  3903.7  79.993  3915.7  79.993  3949.6  79.993  3923.7  79.993  3921.7  79.993  3909.7  79.993  3905.7  79.993  3988.6  79.993  3988.6  79.993  3999.6  79.993  4003.6  79.993  3998.6  79.993  4021.6  79.993  4027.6  79.993  4005.6  79.993  3999.6  79.993  3997.6  79.993  3988.6  79.993  3989.6  79.993  4004.6  79.993  3984.6  79.993  3999.6  79.993  3999.6  79.993  4019.6  79.993  4011.6  79.993  4020.6  79.993  4012.6  79.993  3996.6  79.993  4029.6  79.993  4004.6  158.99  3912.7  79.993  3995.6  79.993  3989.6  79.993  3991.6  79.993  3986.6  79.993  3986.6  79.993  4006.6  79.993  3988.6  79.993  3989.6  79.993  3989.6  79.993  3998.6  79.993  4012.6  79.993  4017.6  79.993  4017.6  79.993  3996.6  79.993  3994.6  79.993  4009.6  79.993  3995.6  79.993  3996.6  79.993  3991.6  79.993  4006.6  79.993  4020.6  79.993
           │         │         │    │    │    │    │                 <---- 13 --------- 942 --------- 2097 -------- 3127 -------- 4125 -------- 5247 -------- 6181 -------- 7326 -------- 8333 -------- 9292 -------- 10410 -------- 11308 -------- 12057 -------- 13131 -------- 14088 -------- 14972 -------- 15975 -------- 17072 -------- 18019 -------- 18798 -------- 19734 -------- 20877 -------- 21973 -------- 23067 -------- 23887 -------- 24957 -------- 25716 -------- 26450 -------- 27291 -------- 28733 -------- 29539 -------- 30499 -------- 31512 -------- 32509 -------- 33286 -------- 34464 -------- 35311 -------- 36406 -------- 37541 -------- 38918 -------- 39818 -------- 40879 -------- 41843 -------- 42789 -------- 43757 -------- 44778 -------- 45769 -------- 46806 -------- 47899 -------- 48763 -------- 49507 -------- 50607 -------- 51663 -------- 52669 -------- 53525 -------- 54549 -------- 55415 -------- 56261 -------- 57242 -------- 58242 -------- 59036 -------- 60050 -------- 61259 -------- 62240 -------- 63307 -------- 64178 -------- 65152 -------- 66063 -------- 67040 -------- 68005 -------- 69273 -------- 70354 -------- 71339 -------- 72569 -------- 73724 -------- 74695 -------- 75684 -------- 76646 -------- 77670 -------- 78657 -------- 79587 -------- 80331 -------- 81281 -------- 82150 -------- 83115 -------- 84014 -------- 85082 -------- 86031 -------- 86990 -------- 88034 -------- 89138 -------- 90187 -------- 91260 -------- 92150 -------- 93140 -------- 94413 -------- 95469 -------- 96443 -------- 97666 -------- 98637 -------- 99633 -------- 100664 -------- 101572 -------- 102643 -------- 103706 -------- 104522 -------- 105605 -------- 106892 -------- 108047 -------- 109036 -------- 109721 -------- 110790 -------- 111938 -------- 113052 -------- 113830 -------- 114873 -------- 115912 -------- 116814 -------- 117737 -------- 118721 -------- 119776 -------- 120692 -------- 121500 -------- 122545 -------- 123457 -------- 124366 -------- 125466 -------- 126391 -------- 127638 -------- 128533 -------- 129586 -------- 130602 -------- 131508 -------- 132509 -------- 133756 -------- 134848 -------- 135944 -------- 136945 -------- 137706 -------- 138791 -------- 139720 -------- 140657 -------- 141959 -------- 142929 -------- 143854 -------- 144743 -------- 145629 -------- 146548 -------- 147238 -------- 148209 -------- 149481 -------- 150548 -------- 151598 -------- 152481 -------- 153250 -------- 154137 -------- 155017 -------- 156060 -------- 157143 -------- 158169 -------- 159406 -------- 160686 -------- 161794 -------- 162837 -------- 163860 -------- 164730 -------- 165623 -------- 166716 -------- 167485 -------- 168526 -------- 169568 -------- 170793 -------- 171958 -------- 173192 -------- 174365 -------- 175367 -------- 176660 -------- 177754 -------- 178681 -------- 179672 -------- 180568 -------- 181502 -------- 182344 -------- 183171 -------- 184286 -------- 185174 -------- 186068 -------- 186966 -------- 187997 -------- 189168 -------- 190375 -------- 191583 -------- 192588 -------- 193575 -------- 194722 -------- 195713 -------- 196725 -------- 197653 -------- 198767 -------- 199999
           │         │         │    │    │    │    │   histogram(17)=  0 160 3920 160  3920  80   3920  160  3920  160  3920  240  3760  240  3920  80   3840  240  3920  240  3840  320  3760  240  3920  80   3840  160  3920  240  3920  320  3920  80   3920  80   3920  80   3840  160  3920  240   3760  240   3920   80   3840  160   3920   80   3920  160   3920   80   3920  160   3920   80   3920  160   3920   80   3760  240   3840  240   3920   80   3920   80   3840  240   3760  240   3920   80   3840  160   3840  160   3920   80   3920   80   3920  160   3760  240   3920  240   3920   80   3920  160   3920   80   3840  160   3920  160   3920   80   3840  160   3840  240   3920  160   3840  160   3920  160   3920   80   3840  160   3920  160   3840  160   3840  160   3920   80   3920  160   3920  160   3920   80   3920   80   3840  160   3840  160   3840  160   3920   80   3920   80   3840  240   3840  160   3920  320   3840  160   3840  240   3920   80   3920   80   3760  240   3840  160   3920  160   3920   80   3840  240   3920   80   3920   80   3920  160   3920   80   3920   80   3920   80   3920   80   3840  160   3920   80   3920  160   3760  320   3920   80   3920   80   3840  160   3920  240   3920   80   3920   80   3920   80   3920  160   3840  160   3760  400   3760  240   3680  320   3840  240   3840   80   3840  160   3840  160   3920   80   3920   80   3920   80   3840  160   3920   80   3760  240   3920   80   3840  240   3840   80   3840  160   3920  240   3840   80   3840   80   3840  160   3920   80   3760  240   3920   80   3920  160   3840  160   3760  240   3760  240   3840   80   3920  160   3840   80   3920   80   3920   80   3840  400   3760  160   3840   80   3840  160   3760  160   3840  240   3840  160   3680  320   3760  160   3920   80   3920   80   3920   80   3920   80   3920   80   3840  160   3760  240   3840  160   3920   80   3840  160   3920  240   3840  160   3840   80   3840  160   3840   80   3920   80   3920   80   3920  160   3840  160   3840  160   3840  160   3760  160   3920   80   3920   80   3920   80   3920   80   3760  240   3920   80   3920  320   3760  160   3840   80   3840   80   3920  160   3840   80   3920  160   3760  160   3920   80   3920   80   3920  160   3840  160   3840   80   3840  160   3920   80   3920   80   3920   80   3840  160   3840  240   3840  160   3840   80   3920   80   3840  240   3840   80   3920   80   3920   80   3840   160
           │         │         │    │    │    │    │                 <--- 2 ------ 50 ------ 104 ------ 153 ------ 213 ------ 281 ------ 320 ------ 366 ------ 411 ------ 462 ------ 515 ------ 548 ------ 600 ------ 649 ------ 697 ------ 743 ------ 793 ------ 845 ------ 893 ------ 953 ------ 1006 ------ 1052 ------ 1103 ------ 1158 ------ 1199 ------ 1246 ------ 1302 ------ 1375 ------ 1418 ------ 1475 ------ 1524 ------ 1563 ------ 1628 ------ 1689 ------ 1740 ------ 1799 ------ 1850 ------ 1901 ------ 1948 ------ 2017 ------ 2055 ------ 2099 ------ 2157 ------ 2214 ------ 2267 ------ 2319 ------ 2373 ------ 2428 ------ 2478 ------ 2546 ------ 2602 ------ 2657 ------ 2707 ------ 2760 ------ 2808 ------ 2852 ------ 2913 ------ 2968 ------ 3030 ------ 3069 ------ 3115 ------ 3165 ------ 3210 ------ 3256 ------ 3306 ------ 3365 ------ 3419 ------ 3469 ------ 3523 ------ 3576 ------ 3641 ------ 3694 ------ 3738 ------ 3806 ------ 3851 ------ 3900 ------ 3957 ------ 4004 ------ 4050 ------ 4095 ------ 4145 ------ 4201 ------ 4251 ------ 4293 ------ 4335 ------ 4380 ------ 4432 ------ 4484 ------ 4541 ------ 4593 ------ 4650 ------ 4706 ------ 4744 ------ 4804 ------ 4845 ------ 4897 ------ 4945 ------ 4992 ------ 5044 ------ 5108 ------ 5160 ------ 5207 ------ 5261 ------ 5319 ------ 5358 ------ 5404 ------ 5450 ------ 5490 ------ 5538 ------ 5590 ------ 5639 ------ 5686 ------ 5742 ------ 5788 ------ 5837 ------ 5884 ------ 5940 ------ 5985 ------ 6037 ------ 6090 ------ 6135 ------ 6185 ------ 6228 ------ 6271 ------ 6323 ------ 6376 ------ 6434 ------ 6474 ------ 6527 ------ 6586 ------ 6633 ------ 6674 ------ 6711 ------ 6751 ------ 6797 ------ 6835 ------ 6880 ------ 6918 ------ 6982 ------ 7026 ------ 7069 ------ 7123 ------ 7179 ------ 7238 ------ 7287 ------ 7336 ------ 7388 ------ 7438 ------ 7480 ------ 7528 ------ 7574 ------ 7620 ------ 7664 ------ 7706 ------ 7755 ------ 7805 ------ 7847 ------ 7896 ------ 7954 ------ 8014 ------ 8064 ------ 8108 ------ 8159 ------ 8207 ------ 8250 ------ 8304 ------ 8361 ------ 8410 ------ 8462 ------ 8513 ------ 8562 ------ 8608 ------ 8644 ------ 8706 ------ 8752 ------ 8799 ------ 8840 ------ 8902 ------ 8954 ------ 8995 ------ 9063 ------ 9106 ------ 9152 ------ 9202 ------ 9256 ------ 9310 ------ 9362 ------ 9409 ------ 9462 ------ 9504 ------ 9551 ------ 9598 ------ 9644 ------ 9689 ------ 9741 ------ 9800 ------ 9855 ------ 9896 ------ 9945 ------ 10000
           │         │         │    │    │    │    │   histogram(18)=  0 80  7.9984e+05   80
           │         │         │    │    │    │    │                 <--- 2 ------------ 9998
           │         │         │    │    │    │    ├── key: (16,17)
           │         │         │    │    │    │    └── fd: (16,17)-->(18)
           │         │         │    │    │    └── filters
           │         │         │    │    │         ├── l_partkey:35 = ps_partkey:16 [type=bool, outer=(16,35), constraints=(/16: (/NULL - ]; /35: (/NULL - ]), fd=(16)==(35), (35)==(16)]
           │         │         │    │    │         └── l_suppkey:36 = ps_suppkey:17 [type=bool, outer=(17,36), constraints=(/17: (/NULL - ]; /36: (/NULL - ]), fd=(17)==(36), (36)==(17)]
           │         │         │    │    └── aggregations
           │         │         │    │         ├── sum [as=sum:52, type=float, outer=(38)]
           │         │         │    │         │    └── l_quantity:38 [type=float]
           │         │         │    │         └── const-agg [as=ps_availqty:18, type=int, outer=(18)]
           │         │         │    │              └── ps_availqty:18 [type=int]
           │         │         │    └── filters
           │         │         │         └── ps_availqty:18 > (sum:52 * 0.5) [type=bool, outer=(18,52), immutable, constraints=(/18: (/NULL - ])]
           │         │         └── filters
           │         │              └── p_name:24 LIKE 'forest%' [type=bool, outer=(24), constraints=(/24: [/'forest' - /'foresu'); tight)]
           │         └── filters (true)
           └── filters
                └── n_name:11 = 'CANADA' [type=bool, outer=(11), constraints=(/11: [/'CANADA' - /'CANADA']; tight), fd=()-->(11)]

----Stats for q20_sort_1----
column_names  row_count  distinct_count  null_count
{s_address}   186        186             0
{s_name}      186        186             0
~~~~
column_names  row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{s_address}   0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{s_name}      0.00           +Inf <==       0.00                +Inf <==            0.00            1.00

----Stats for q20_project_2----
column_names  row_count  distinct_count  null_count
{s_address}   186        186             0
{s_name}      186        186             0
~~~~
column_names  row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{s_address}   0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{s_name}      0.00           +Inf <==       0.00                +Inf <==            0.00            1.00

----Stats for q20_lookup_join_3----
column_names   row_count  distinct_count  null_count
{n_name}       186        1               0
{n_nationkey}  186        1               0
{s_address}    186        186             0
{s_name}       186        186             0
{s_nationkey}  186        1               0
{s_suppkey}    186        186             0
~~~~
column_names   row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{n_name}       0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{n_nationkey}  0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{s_address}    0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{s_name}       0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{s_nationkey}  0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{s_suppkey}    0.00           +Inf <==       0.00                +Inf <==            0.00            1.00

----Stats for q20_project_4----
column_names   row_count  distinct_count  null_count
{s_address}    4397       4369            0
{s_name}       4397       4373            0
{s_nationkey}  4397       25              0
{s_suppkey}    4397       4397            0
~~~~
column_names   row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{s_address}    0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{s_name}       0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{s_nationkey}  0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{s_suppkey}    0.00           +Inf <==       0.00                +Inf <==            0.00            1.00

----Stats for q20_lookup_join_5----
column_names   row_count  distinct_count  null_count
{ps_suppkey}   4397       4397            0
{s_address}    4397       4369            0
{s_name}       4397       4373            0
{s_nationkey}  4397       25              0
{s_suppkey}    4397       4397            0
~~~~
column_names   row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{ps_suppkey}   0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{s_address}    0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{s_name}       0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{s_nationkey}  0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{s_suppkey}    0.00           +Inf <==       0.00                +Inf <==            0.00            1.00

----Stats for q20_distinct_on_6----
column_names  row_count  distinct_count  null_count
{ps_suppkey}  4397       4397            0
~~~~
column_names  row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{ps_suppkey}  0.00           +Inf <==       0.00                +Inf <==            0.00            1.00

----Stats for q20_lookup_join_7----
column_names   row_count  distinct_count  null_count
{p_name}       5833       2106            0
{p_partkey}    5833       2106            0
{ps_availqty}  5833       4441            0
{ps_partkey}   5833       2106            0
{ps_suppkey}   5833       4434            0
{sum}          5833       164             0
~~~~
column_names   row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{p_name}       0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{p_partkey}    0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{ps_availqty}  0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{ps_partkey}   0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{ps_suppkey}   0.00           +Inf <==       0.00                +Inf <==            0.00            1.00
{sum}          0.00           +Inf <==       0.00                +Inf <==            0.00            1.00

----Stats for q20_select_8----
column_names   row_count  distinct_count  null_count
{ps_availqty}  542095     9920            0
{ps_partkey}   542095     197197          0
{ps_suppkey}   542095     9920            0
{sum}          542095     246             0
~~~~
column_names   row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{ps_availqty}  125.00         4336.76 <==    125.00              79.36 <==           0.00            1.00
{ps_partkey}   125.00         4336.76 <==    125.00              1577.58 <==         0.00            1.00
{ps_suppkey}   125.00         4336.76 <==    125.00              79.36 <==           0.00            1.00
{sum}          125.00         4336.76 <==    125.00              1.97 <==            0.00            1.00

----Stats for q20_group_by_9----
column_names   row_count  distinct_count  null_count
{ps_availqty}  543210     9920            0
{ps_partkey}   543210     197252          0
{ps_suppkey}   543210     9920            0
{sum}          543210     246             0
~~~~
column_names   row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{ps_availqty}  374.00         1452.43 <==    374.00              26.52 <==           0.00            1.00
{ps_partkey}   374.00         1452.43 <==    374.00              527.41 <==          0.00            1.00
{ps_suppkey}   374.00         1452.43 <==    374.00              26.52 <==           0.00            1.00
{sum}          374.00         1452.43 <==    374.00              1.52                0.00            1.00

----Stats for q20_inner_join_10----
column_names   row_count  distinct_count  null_count
{l_partkey}    909455     197252          0
{l_quantity}   909455     50              0
{l_shipdate}   909455     365             0
{l_suppkey}    909455     9920            0
{ps_availqty}  909455     9920            0
{ps_partkey}   909455     197252          0
{ps_suppkey}   909455     9920            0
~~~~
column_names   row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{l_partkey}    374.00         2431.70 <==    374.00              527.41 <==          0.00            1.00
{l_quantity}   374.00         2431.70 <==    50.00               1.00                0.00            1.00
{l_shipdate}   374.00         2431.70 <==    234.00              1.56                0.00            1.00
{l_suppkey}    374.00         2431.70 <==    374.00              26.52 <==           0.00            1.00
{ps_availqty}  374.00         2431.70 <==    367.00              27.03 <==           0.00            1.00
{ps_partkey}   374.00         2431.70 <==    374.00              527.41 <==          0.00            1.00
{ps_suppkey}   374.00         2431.70 <==    374.00              26.52 <==           0.00            1.00

----Stats for q20_index_join_11----
column_names  row_count  distinct_count  null_count
{l_partkey}   909455     197252          0
{l_quantity}  909455     50              0
{l_shipdate}  909455     365             0
{l_suppkey}   909455     9920            0
~~~~
column_names  row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{l_partkey}   924788.00      1.02           197952.00           1.00                0.00            1.00
{l_quantity}  924788.00      1.02           50.00               1.00                0.00            1.00
{l_shipdate}  924788.00      1.02           365.00              1.00                0.00            1.00
{l_suppkey}   924788.00      1.02           9920.00             1.00                0.00            1.00

----Stats for q20_scan_12----
column_names    row_count  distinct_count  null_count
{l_linenumber}  909455     7               0
{l_orderkey}    909455     266035          0
{l_shipdate}    909455     365             0
~~~~
column_names    row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{l_linenumber}  924788.00      1.02           7.00                1.00                0.00            1.00
{l_orderkey}    924788.00      1.02           736000.00           2.77 <==            0.00            1.00
{l_shipdate}    924788.00      1.02           365.00              1.00                0.00            1.00

----Stats for q20_scan_13----
column_names   row_count  distinct_count  null_count
{ps_availqty}  800000     9920            0
{ps_partkey}   800000     199241          0
{ps_suppkey}   800000     9920            0
~~~~
column_names   row_count_est  row_count_err  distinct_count_est  distinct_count_err  null_count_est  null_count_err
{ps_availqty}  800000.00      1.00           9920.00             1.00                0.00            1.00
{ps_partkey}   800000.00      1.00           199241.00           1.00                0.00            1.00
{ps_suppkey}   800000.00      1.00           9920.00             1.00                0.00            1.00
----
----
