[tpch](nereids) add regression test for tpch_sf500 plan shape #18631
add regression test to check tpch_sf500 plan shape by explain shape plan.
This commit is contained in:
@ -0,0 +1,12 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalQuickSort
|
||||
--PhysicalDistribute
|
||||
----PhysicalQuickSort
|
||||
------hashAgg[GLOBAL]
|
||||
--------PhysicalDistribute
|
||||
----------hashAgg[LOCAL]
|
||||
------------PhysicalProject
|
||||
--------------filter((lineitem.l_shipdate <= 1998-09-02))
|
||||
----------------PhysicalOlapScan[lineitem]
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalTopN
|
||||
--PhysicalDistribute
|
||||
----PhysicalTopN
|
||||
------PhysicalProject
|
||||
--------hashAgg[LOCAL]
|
||||
----------PhysicalDistribute
|
||||
------------PhysicalProject
|
||||
--------------hashJoin[INNER_JOIN](lineitem.l_orderkey = orders.o_orderkey)
|
||||
----------------PhysicalProject
|
||||
------------------filter((lineitem.l_returnflag = 'R'))
|
||||
--------------------PhysicalOlapScan[lineitem]
|
||||
----------------PhysicalDistribute
|
||||
------------------hashJoin[INNER_JOIN](customer.c_nationkey = nation.n_nationkey)
|
||||
--------------------hashJoin[INNER_JOIN](customer.c_custkey = orders.o_custkey)
|
||||
----------------------PhysicalProject
|
||||
------------------------PhysicalOlapScan[customer]
|
||||
----------------------PhysicalDistribute
|
||||
------------------------PhysicalProject
|
||||
--------------------------filter((orders.o_orderdate < 1994-01-01)(orders.o_orderdate >= 1993-10-01))
|
||||
----------------------------PhysicalOlapScan[orders]
|
||||
--------------------PhysicalDistribute
|
||||
----------------------PhysicalProject
|
||||
------------------------PhysicalOlapScan[nation]
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalQuickSort
|
||||
--PhysicalDistribute
|
||||
----PhysicalQuickSort
|
||||
------PhysicalProject
|
||||
--------NestedLoopJoin[INNER_JOIN](value > (sum((ps_supplycost * ps_availqty)) * 0.000002))
|
||||
----------hashAgg[LOCAL]
|
||||
------------PhysicalProject
|
||||
--------------hashJoin[INNER_JOIN](partsupp.ps_suppkey = supplier.s_suppkey)
|
||||
----------------PhysicalProject
|
||||
------------------PhysicalOlapScan[partsupp]
|
||||
----------------PhysicalDistribute
|
||||
------------------hashJoin[INNER_JOIN](supplier.s_nationkey = nation.n_nationkey)
|
||||
--------------------PhysicalProject
|
||||
----------------------PhysicalOlapScan[supplier]
|
||||
--------------------PhysicalDistribute
|
||||
----------------------PhysicalProject
|
||||
------------------------filter((nation.n_name = 'GERMANY'))
|
||||
--------------------------PhysicalOlapScan[nation]
|
||||
----------PhysicalDistribute
|
||||
------------PhysicalAssertNumRows
|
||||
--------------PhysicalProject
|
||||
----------------hashAgg[GLOBAL]
|
||||
------------------PhysicalDistribute
|
||||
--------------------hashAgg[LOCAL]
|
||||
----------------------PhysicalProject
|
||||
------------------------hashJoin[INNER_JOIN](partsupp.ps_suppkey = supplier.s_suppkey)
|
||||
--------------------------PhysicalProject
|
||||
----------------------------PhysicalOlapScan[partsupp]
|
||||
--------------------------PhysicalDistribute
|
||||
----------------------------hashJoin[INNER_JOIN](supplier.s_nationkey = nation.n_nationkey)
|
||||
------------------------------PhysicalProject
|
||||
--------------------------------PhysicalOlapScan[supplier]
|
||||
------------------------------PhysicalDistribute
|
||||
--------------------------------PhysicalProject
|
||||
----------------------------------filter((nation.n_name = 'GERMANY'))
|
||||
------------------------------------PhysicalOlapScan[nation]
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalQuickSort
|
||||
--PhysicalDistribute
|
||||
----PhysicalQuickSort
|
||||
------hashAgg[GLOBAL]
|
||||
--------PhysicalDistribute
|
||||
----------hashAgg[LOCAL]
|
||||
------------PhysicalProject
|
||||
--------------hashJoin[INNER_JOIN](orders.o_orderkey = lineitem.l_orderkey)
|
||||
----------------PhysicalProject
|
||||
------------------PhysicalOlapScan[orders]
|
||||
----------------PhysicalProject
|
||||
------------------filter(((lineitem.l_shipmode = 'MAIL') OR (lineitem.l_shipmode = 'SHIP'))(lineitem.l_shipdate < lineitem.l_commitdate)(lineitem.l_receiptdate < 1995-01-01)(lineitem.l_receiptdate >= 1994-01-01)(lineitem.l_commitdate < lineitem.l_receiptdate))
|
||||
--------------------PhysicalOlapScan[lineitem]
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalQuickSort
|
||||
--PhysicalDistribute
|
||||
----PhysicalQuickSort
|
||||
------hashAgg[GLOBAL]
|
||||
--------PhysicalDistribute
|
||||
----------hashAgg[LOCAL]
|
||||
------------PhysicalProject
|
||||
--------------hashAgg[LOCAL]
|
||||
----------------PhysicalProject
|
||||
------------------hashJoin[RIGHT_OUTER_JOIN](customer.c_custkey = orders.o_custkey)
|
||||
--------------------PhysicalDistribute
|
||||
----------------------PhysicalProject
|
||||
------------------------filter(( not (o_comment like '%special%requests%')))
|
||||
--------------------------PhysicalOlapScan[orders]
|
||||
--------------------PhysicalProject
|
||||
----------------------PhysicalOlapScan[customer]
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalProject
|
||||
--hashAgg[GLOBAL]
|
||||
----PhysicalDistribute
|
||||
------hashAgg[LOCAL]
|
||||
--------PhysicalProject
|
||||
----------hashJoin[INNER_JOIN](lineitem.l_partkey = part.p_partkey)
|
||||
------------PhysicalProject
|
||||
--------------PhysicalOlapScan[part]
|
||||
------------PhysicalDistribute
|
||||
--------------PhysicalProject
|
||||
----------------filter((lineitem.l_shipdate < 1995-10-01)(lineitem.l_shipdate >= 1995-09-01))
|
||||
------------------PhysicalOlapScan[lineitem]
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalQuickSort
|
||||
--PhysicalDistribute
|
||||
----PhysicalQuickSort
|
||||
------PhysicalProject
|
||||
--------hashJoin[INNER_JOIN](supplier.s_suppkey = revenue0.supplier_no)
|
||||
----------PhysicalProject
|
||||
------------PhysicalOlapScan[supplier]
|
||||
----------PhysicalDistribute
|
||||
------------hashJoin[INNER_JOIN](revenue0.total_revenue = max(total_revenue))
|
||||
--------------hashAgg[GLOBAL]
|
||||
----------------PhysicalDistribute
|
||||
------------------hashAgg[LOCAL]
|
||||
--------------------PhysicalProject
|
||||
----------------------filter((lineitem.l_shipdate >= 1996-01-01)(lineitem.l_shipdate < 1996-04-01))
|
||||
------------------------PhysicalOlapScan[lineitem]
|
||||
--------------PhysicalDistribute
|
||||
----------------PhysicalAssertNumRows
|
||||
------------------hashAgg[GLOBAL]
|
||||
--------------------PhysicalDistribute
|
||||
----------------------hashAgg[LOCAL]
|
||||
------------------------PhysicalProject
|
||||
--------------------------hashAgg[GLOBAL]
|
||||
----------------------------PhysicalDistribute
|
||||
------------------------------hashAgg[LOCAL]
|
||||
--------------------------------PhysicalProject
|
||||
----------------------------------filter((lineitem.l_shipdate >= 1996-01-01)(lineitem.l_shipdate < 1996-04-01))
|
||||
------------------------------------PhysicalOlapScan[lineitem]
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalQuickSort
|
||||
--PhysicalDistribute
|
||||
----PhysicalQuickSort
|
||||
------hashAgg[DISTINCT_LOCAL]
|
||||
--------hashAgg[GLOBAL]
|
||||
----------PhysicalDistribute
|
||||
------------hashAgg[LOCAL]
|
||||
--------------PhysicalProject
|
||||
----------------hashJoin[LEFT_ANTI_JOIN](partsupp.ps_suppkey = supplier.s_suppkey)
|
||||
------------------hashJoin[INNER_JOIN](part.p_partkey = partsupp.ps_partkey)
|
||||
--------------------PhysicalProject
|
||||
----------------------PhysicalOlapScan[partsupp]
|
||||
--------------------PhysicalProject
|
||||
----------------------filter(( not (p_type like 'MEDIUM POLISHED%'))( not (p_brand = 'Brand#45'))p_size IN (3, 9, 14, 19, 23, 36, 45, 49))
|
||||
------------------------PhysicalOlapScan[part]
|
||||
------------------PhysicalDistribute
|
||||
--------------------PhysicalProject
|
||||
----------------------filter((s_comment like '%Customer%Complaints%'))
|
||||
------------------------PhysicalOlapScan[supplier]
|
||||
|
||||
@ -0,0 +1,20 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalProject
|
||||
--hashAgg[GLOBAL]
|
||||
----PhysicalDistribute
|
||||
------hashAgg[LOCAL]
|
||||
--------PhysicalProject
|
||||
----------filter((cast(l_quantity as DECIMAL(27, 9)) < (avg(l_quantity) OVER(PARTITION BY p_partkey) * 0.200000000)))
|
||||
------------PhysicalWindow
|
||||
--------------PhysicalQuickSort
|
||||
----------------PhysicalDistribute
|
||||
------------------PhysicalProject
|
||||
--------------------hashJoin[INNER_JOIN](part.p_partkey = lineitem.l_partkey)
|
||||
----------------------PhysicalProject
|
||||
------------------------PhysicalOlapScan[lineitem]
|
||||
----------------------PhysicalDistribute
|
||||
------------------------PhysicalProject
|
||||
--------------------------filter((part.p_container = 'MED BOX')(part.p_brand = 'Brand#23'))
|
||||
----------------------------PhysicalOlapScan[part]
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalTopN
|
||||
--PhysicalDistribute
|
||||
----PhysicalTopN
|
||||
------hashAgg[LOCAL]
|
||||
--------PhysicalProject
|
||||
----------hashJoin[INNER_JOIN](orders.o_orderkey = lineitem.l_orderkey)
|
||||
------------PhysicalProject
|
||||
--------------PhysicalOlapScan[lineitem]
|
||||
------------PhysicalDistribute
|
||||
--------------PhysicalProject
|
||||
----------------hashJoin[INNER_JOIN](customer.c_custkey = orders.o_custkey)
|
||||
------------------PhysicalProject
|
||||
--------------------PhysicalOlapScan[customer]
|
||||
------------------PhysicalDistribute
|
||||
--------------------hashJoin[LEFT_SEMI_JOIN](orders.o_orderkey = lineitem.l_orderkey)
|
||||
----------------------PhysicalProject
|
||||
------------------------PhysicalOlapScan[orders]
|
||||
----------------------PhysicalProject
|
||||
------------------------filter((sum(l_quantity) > 300.000000000))
|
||||
--------------------------hashAgg[LOCAL]
|
||||
----------------------------PhysicalProject
|
||||
------------------------------PhysicalOlapScan[lineitem]
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
hashAgg[GLOBAL]
|
||||
--PhysicalDistribute
|
||||
----hashAgg[LOCAL]
|
||||
------PhysicalProject
|
||||
--------hashJoin[INNER_JOIN](part.p_partkey = lineitem.l_partkey)((((((part.p_brand = 'Brand#12') AND p_container IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG')) AND ((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00))) AND (part.p_size <= 5)) OR ((((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK')) AND ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) AND (part.p_size <= 10))) OR ((((part.p_brand = 'Brand#34') AND p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG')) AND ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00))) AND (part.p_size <= 15)))
|
||||
----------PhysicalProject
|
||||
------------filter((lineitem.l_shipinstruct = 'DELIVER IN PERSON')((((lineitem.l_quantity >= 1.00) AND (lineitem.l_quantity <= 11.00)) OR ((lineitem.l_quantity >= 10.00) AND (lineitem.l_quantity <= 20.00))) OR ((lineitem.l_quantity >= 20.00) AND (lineitem.l_quantity <= 30.00)))((lineitem.l_shipmode = 'AIR') OR (lineitem.l_shipmode = 'AIR REG')))
|
||||
--------------PhysicalOlapScan[lineitem]
|
||||
----------PhysicalDistribute
|
||||
------------PhysicalProject
|
||||
--------------filter((((((part.p_brand = 'Brand#12') AND p_container IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG')) AND (part.p_size <= 5)) OR (((part.p_brand = 'Brand#23') AND p_container IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK')) AND (part.p_size <= 10))) OR (((part.p_brand = 'Brand#34') AND p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG')) AND (part.p_size <= 15)))(part.p_size >= 1))
|
||||
----------------PhysicalOlapScan[part]
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalTopN
|
||||
--PhysicalDistribute
|
||||
----PhysicalTopN
|
||||
------PhysicalProject
|
||||
--------filter((cast(ps_supplycost as DECIMAL(27, 9)) = min(ps_supplycost) OVER(PARTITION BY p_partkey)))
|
||||
----------PhysicalWindow
|
||||
------------PhysicalQuickSort
|
||||
--------------PhysicalProject
|
||||
----------------hashJoin[INNER_JOIN](supplier.s_suppkey = partsupp.ps_suppkey)
|
||||
------------------hashJoin[INNER_JOIN](part.p_partkey = partsupp.ps_partkey)
|
||||
--------------------PhysicalProject
|
||||
----------------------PhysicalOlapScan[partsupp]
|
||||
--------------------PhysicalProject
|
||||
----------------------filter((part.p_size = 15)(p_type like '%BRASS'))
|
||||
------------------------PhysicalOlapScan[part]
|
||||
------------------PhysicalDistribute
|
||||
--------------------PhysicalProject
|
||||
----------------------hashJoin[INNER_JOIN](supplier.s_nationkey = nation.n_nationkey)
|
||||
------------------------PhysicalOlapScan[supplier]
|
||||
------------------------PhysicalDistribute
|
||||
--------------------------hashJoin[INNER_JOIN](nation.n_regionkey = region.r_regionkey)
|
||||
----------------------------PhysicalProject
|
||||
------------------------------PhysicalOlapScan[nation]
|
||||
----------------------------PhysicalDistribute
|
||||
------------------------------PhysicalProject
|
||||
--------------------------------filter((region.r_name = 'EUROPE'))
|
||||
----------------------------------PhysicalOlapScan[region]
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalQuickSort
|
||||
--PhysicalDistribute
|
||||
----PhysicalQuickSort
|
||||
------PhysicalProject
|
||||
--------hashJoin[RIGHT_SEMI_JOIN](supplier.s_suppkey = partsupp.ps_suppkey)
|
||||
----------PhysicalDistribute
|
||||
------------PhysicalProject
|
||||
--------------hashJoin[RIGHT_SEMI_JOIN](lineitem.l_partkey = partsupp.ps_partkey)(lineitem.l_suppkey = partsupp.ps_suppkey)(cast(ps_availqty as DECIMAL(27, 9)) > (0.5 * sum(l_quantity)))
|
||||
----------------PhysicalProject
|
||||
------------------hashAgg[GLOBAL]
|
||||
--------------------PhysicalDistribute
|
||||
----------------------hashAgg[LOCAL]
|
||||
------------------------PhysicalProject
|
||||
--------------------------filter((lineitem.l_shipdate < 1995-01-01)(lineitem.l_shipdate >= 1994-01-01))
|
||||
----------------------------PhysicalOlapScan[lineitem]
|
||||
----------------PhysicalDistribute
|
||||
------------------hashJoin[LEFT_SEMI_JOIN](partsupp.ps_partkey = part.p_partkey)
|
||||
--------------------PhysicalProject
|
||||
----------------------PhysicalOlapScan[partsupp]
|
||||
--------------------PhysicalProject
|
||||
----------------------filter((p_name like 'forest%'))
|
||||
------------------------PhysicalOlapScan[part]
|
||||
----------hashJoin[INNER_JOIN](supplier.s_nationkey = nation.n_nationkey)
|
||||
------------PhysicalProject
|
||||
--------------PhysicalOlapScan[supplier]
|
||||
------------PhysicalDistribute
|
||||
--------------PhysicalProject
|
||||
----------------filter((nation.n_name = 'CANADA'))
|
||||
------------------PhysicalOlapScan[nation]
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalTopN
|
||||
--PhysicalDistribute
|
||||
----PhysicalTopN
|
||||
------hashAgg[LOCAL]
|
||||
--------PhysicalDistribute
|
||||
----------PhysicalProject
|
||||
------------hashJoin[RIGHT_SEMI_JOIN](l2.l_orderkey = l1.l_orderkey)( not (l_suppkey = l_suppkey))
|
||||
--------------PhysicalProject
|
||||
----------------PhysicalOlapScan[lineitem]
|
||||
--------------hashJoin[INNER_JOIN](orders.o_orderkey = l1.l_orderkey)
|
||||
----------------PhysicalProject
|
||||
------------------filter((orders.o_orderstatus = 'F'))
|
||||
--------------------PhysicalOlapScan[orders]
|
||||
----------------hashJoin[RIGHT_ANTI_JOIN](l3.l_orderkey = l1.l_orderkey)( not (l_suppkey = l_suppkey))
|
||||
------------------PhysicalProject
|
||||
--------------------filter((l3.l_receiptdate > l3.l_commitdate))
|
||||
----------------------PhysicalOlapScan[lineitem]
|
||||
------------------hashJoin[INNER_JOIN](supplier.s_suppkey = l1.l_suppkey)
|
||||
--------------------PhysicalProject
|
||||
----------------------filter((l1.l_receiptdate > l1.l_commitdate))
|
||||
------------------------PhysicalOlapScan[lineitem]
|
||||
--------------------PhysicalDistribute
|
||||
----------------------hashJoin[INNER_JOIN](supplier.s_nationkey = nation.n_nationkey)
|
||||
------------------------PhysicalProject
|
||||
--------------------------PhysicalOlapScan[supplier]
|
||||
------------------------PhysicalDistribute
|
||||
--------------------------PhysicalProject
|
||||
----------------------------filter((nation.n_name = 'SAUDI ARABIA'))
|
||||
------------------------------PhysicalOlapScan[nation]
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalQuickSort
|
||||
--PhysicalDistribute
|
||||
----PhysicalQuickSort
|
||||
------hashAgg[GLOBAL]
|
||||
--------PhysicalDistribute
|
||||
----------hashAgg[LOCAL]
|
||||
------------PhysicalProject
|
||||
--------------hashJoin[RIGHT_ANTI_JOIN](orders.o_custkey = customer.c_custkey)
|
||||
----------------PhysicalDistribute
|
||||
------------------PhysicalProject
|
||||
--------------------PhysicalOlapScan[orders]
|
||||
----------------NestedLoopJoin[INNER_JOIN](cast(c_acctbal as DECIMAL(27, 9)) > avg(c_acctbal))
|
||||
------------------PhysicalProject
|
||||
--------------------filter(substring(c_phone, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17'))
|
||||
----------------------PhysicalOlapScan[customer]
|
||||
------------------PhysicalDistribute
|
||||
--------------------PhysicalAssertNumRows
|
||||
----------------------hashAgg[GLOBAL]
|
||||
------------------------PhysicalDistribute
|
||||
--------------------------hashAgg[LOCAL]
|
||||
----------------------------PhysicalProject
|
||||
------------------------------filter((customer.c_acctbal > 0.00)substring(c_phone, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17'))
|
||||
--------------------------------PhysicalOlapScan[customer]
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalTopN
|
||||
--PhysicalDistribute
|
||||
----PhysicalTopN
|
||||
------PhysicalProject
|
||||
--------hashAgg[LOCAL]
|
||||
----------PhysicalProject
|
||||
------------hashJoin[INNER_JOIN](lineitem.l_orderkey = orders.o_orderkey)
|
||||
--------------PhysicalProject
|
||||
----------------filter((lineitem.l_shipdate > 1995-03-15))
|
||||
------------------PhysicalOlapScan[lineitem]
|
||||
--------------hashJoin[INNER_JOIN](customer.c_custkey = orders.o_custkey)
|
||||
----------------PhysicalProject
|
||||
------------------filter((orders.o_orderdate < 1995-03-15))
|
||||
--------------------PhysicalOlapScan[orders]
|
||||
----------------PhysicalDistribute
|
||||
------------------PhysicalProject
|
||||
--------------------filter((customer.c_mktsegment = 'BUILDING'))
|
||||
----------------------PhysicalOlapScan[customer]
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalQuickSort
|
||||
--PhysicalDistribute
|
||||
----PhysicalQuickSort
|
||||
------hashAgg[GLOBAL]
|
||||
--------PhysicalDistribute
|
||||
----------hashAgg[LOCAL]
|
||||
------------PhysicalProject
|
||||
--------------hashJoin[RIGHT_SEMI_JOIN](lineitem.l_orderkey = orders.o_orderkey)
|
||||
----------------PhysicalProject
|
||||
------------------filter((lineitem.l_commitdate < lineitem.l_receiptdate))
|
||||
--------------------PhysicalOlapScan[lineitem]
|
||||
----------------PhysicalProject
|
||||
------------------filter((orders.o_orderdate >= 1993-07-01)(orders.o_orderdate < 1993-10-01))
|
||||
--------------------PhysicalOlapScan[orders]
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalQuickSort
|
||||
--PhysicalDistribute
|
||||
----PhysicalQuickSort
|
||||
------hashAgg[GLOBAL]
|
||||
--------PhysicalDistribute
|
||||
----------hashAgg[LOCAL]
|
||||
------------PhysicalProject
|
||||
--------------hashJoin[INNER_JOIN](customer.c_nationkey = supplier.s_nationkey)(customer.c_custkey = orders.o_custkey)
|
||||
----------------PhysicalDistribute
|
||||
------------------PhysicalProject
|
||||
--------------------hashJoin[INNER_JOIN](lineitem.l_suppkey = supplier.s_suppkey)
|
||||
----------------------hashJoin[INNER_JOIN](lineitem.l_orderkey = orders.o_orderkey)
|
||||
------------------------PhysicalProject
|
||||
--------------------------PhysicalOlapScan[lineitem]
|
||||
------------------------PhysicalProject
|
||||
--------------------------filter((orders.o_orderdate < 1995-01-01)(orders.o_orderdate >= 1994-01-01))
|
||||
----------------------------PhysicalOlapScan[orders]
|
||||
----------------------PhysicalDistribute
|
||||
------------------------PhysicalProject
|
||||
--------------------------hashJoin[INNER_JOIN](supplier.s_nationkey = nation.n_nationkey)
|
||||
----------------------------PhysicalProject
|
||||
------------------------------PhysicalOlapScan[supplier]
|
||||
----------------------------PhysicalDistribute
|
||||
------------------------------hashJoin[INNER_JOIN](nation.n_regionkey = region.r_regionkey)
|
||||
--------------------------------PhysicalProject
|
||||
----------------------------------PhysicalOlapScan[nation]
|
||||
--------------------------------PhysicalDistribute
|
||||
----------------------------------PhysicalProject
|
||||
------------------------------------filter((region.r_name = 'ASIA'))
|
||||
--------------------------------------PhysicalOlapScan[region]
|
||||
----------------PhysicalProject
|
||||
------------------PhysicalOlapScan[customer]
|
||||
|
||||
@ -0,0 +1,9 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
hashAgg[GLOBAL]
|
||||
--PhysicalDistribute
|
||||
----hashAgg[LOCAL]
|
||||
------PhysicalProject
|
||||
--------filter((lineitem.l_shipdate >= 1994-01-01)(lineitem.l_discount >= 0.050000000)(lineitem.l_discount <= 0.070000000)(lineitem.l_quantity < 24.00)(lineitem.l_shipdate < 1995-01-01))
|
||||
----------PhysicalOlapScan[lineitem]
|
||||
|
||||
@ -0,0 +1,36 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalQuickSort
|
||||
--PhysicalDistribute
|
||||
----PhysicalQuickSort
|
||||
------hashAgg[GLOBAL]
|
||||
--------PhysicalDistribute
|
||||
----------hashAgg[LOCAL]
|
||||
------------PhysicalProject
|
||||
--------------hashJoin[INNER_JOIN](customer.c_nationkey = n2.n_nationkey)(customer.c_custkey = orders.o_custkey)
|
||||
----------------PhysicalProject
|
||||
------------------PhysicalOlapScan[customer]
|
||||
----------------PhysicalDistribute
|
||||
------------------PhysicalProject
|
||||
--------------------hashJoin[INNER_JOIN](orders.o_orderkey = lineitem.l_orderkey)
|
||||
----------------------PhysicalProject
|
||||
------------------------PhysicalOlapScan[orders]
|
||||
----------------------PhysicalProject
|
||||
------------------------hashJoin[INNER_JOIN](supplier.s_suppkey = lineitem.l_suppkey)
|
||||
--------------------------PhysicalProject
|
||||
----------------------------filter((lineitem.l_shipdate <= 1996-12-31)(lineitem.l_shipdate >= 1995-01-01))
|
||||
------------------------------PhysicalOlapScan[lineitem]
|
||||
--------------------------PhysicalDistribute
|
||||
----------------------------hashJoin[INNER_JOIN](supplier.s_nationkey = n1.n_nationkey)
|
||||
------------------------------PhysicalProject
|
||||
--------------------------------PhysicalOlapScan[supplier]
|
||||
------------------------------PhysicalDistribute
|
||||
--------------------------------NestedLoopJoin[INNER_JOIN](((n1.n_name = 'FRANCE') AND (n2.n_name = 'GERMANY')) OR ((n1.n_name = 'GERMANY') AND (n2.n_name = 'FRANCE')))
|
||||
----------------------------------PhysicalProject
|
||||
------------------------------------filter(((n1.n_name = 'FRANCE') OR (n1.n_name = 'GERMANY')))
|
||||
--------------------------------------PhysicalOlapScan[nation]
|
||||
----------------------------------PhysicalDistribute
|
||||
------------------------------------PhysicalProject
|
||||
--------------------------------------filter(((n2.n_name = 'GERMANY') OR (n2.n_name = 'FRANCE')))
|
||||
----------------------------------------PhysicalOlapScan[nation]
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalQuickSort
|
||||
--PhysicalDistribute
|
||||
----PhysicalQuickSort
|
||||
------PhysicalProject
|
||||
--------hashAgg[GLOBAL]
|
||||
----------PhysicalDistribute
|
||||
------------hashAgg[LOCAL]
|
||||
--------------PhysicalProject
|
||||
----------------hashJoin[INNER_JOIN](supplier.s_nationkey = n2.n_nationkey)
|
||||
------------------PhysicalProject
|
||||
--------------------hashJoin[INNER_JOIN](supplier.s_suppkey = lineitem.l_suppkey)
|
||||
----------------------PhysicalProject
|
||||
------------------------PhysicalOlapScan[supplier]
|
||||
----------------------PhysicalDistribute
|
||||
------------------------PhysicalProject
|
||||
--------------------------hashJoin[INNER_JOIN](n1.n_regionkey = region.r_regionkey)
|
||||
----------------------------PhysicalProject
|
||||
------------------------------hashJoin[INNER_JOIN](customer.c_nationkey = n1.n_nationkey)
|
||||
--------------------------------PhysicalProject
|
||||
----------------------------------hashJoin[INNER_JOIN](orders.o_custkey = customer.c_custkey)
|
||||
------------------------------------PhysicalProject
|
||||
--------------------------------------PhysicalOlapScan[customer]
|
||||
------------------------------------PhysicalDistribute
|
||||
--------------------------------------hashJoin[INNER_JOIN](lineitem.l_orderkey = orders.o_orderkey)
|
||||
----------------------------------------PhysicalProject
|
||||
------------------------------------------filter((orders.o_orderdate <= 1996-12-31)(orders.o_orderdate >= 1995-01-01))
|
||||
--------------------------------------------PhysicalOlapScan[orders]
|
||||
----------------------------------------PhysicalProject
|
||||
------------------------------------------hashJoin[INNER_JOIN](part.p_partkey = lineitem.l_partkey)
|
||||
--------------------------------------------PhysicalProject
|
||||
----------------------------------------------PhysicalOlapScan[lineitem]
|
||||
--------------------------------------------PhysicalDistribute
|
||||
----------------------------------------------PhysicalProject
|
||||
------------------------------------------------filter((part.p_type = 'ECONOMY ANODIZED STEEL'))
|
||||
--------------------------------------------------PhysicalOlapScan[part]
|
||||
--------------------------------PhysicalDistribute
|
||||
----------------------------------PhysicalProject
|
||||
------------------------------------PhysicalOlapScan[nation]
|
||||
----------------------------PhysicalDistribute
|
||||
------------------------------PhysicalProject
|
||||
--------------------------------filter((region.r_name = 'AMERICA'))
|
||||
----------------------------------PhysicalOlapScan[region]
|
||||
------------------PhysicalDistribute
|
||||
--------------------PhysicalProject
|
||||
----------------------PhysicalOlapScan[nation]
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !select --
|
||||
PhysicalQuickSort
|
||||
--PhysicalDistribute
|
||||
----PhysicalQuickSort
|
||||
------hashAgg[GLOBAL]
|
||||
--------PhysicalDistribute
|
||||
----------hashAgg[LOCAL]
|
||||
------------PhysicalProject
|
||||
--------------hashJoin[INNER_JOIN](partsupp.ps_suppkey = lineitem.l_suppkey)(partsupp.ps_partkey = lineitem.l_partkey)
|
||||
----------------PhysicalDistribute
|
||||
------------------PhysicalProject
|
||||
--------------------hashJoin[INNER_JOIN](orders.o_orderkey = lineitem.l_orderkey)
|
||||
----------------------PhysicalProject
|
||||
------------------------PhysicalOlapScan[orders]
|
||||
----------------------PhysicalProject
|
||||
------------------------hashJoin[INNER_JOIN](supplier.s_suppkey = lineitem.l_suppkey)
|
||||
--------------------------PhysicalProject
|
||||
----------------------------hashJoin[INNER_JOIN](part.p_partkey = lineitem.l_partkey)
|
||||
------------------------------PhysicalProject
|
||||
--------------------------------PhysicalOlapScan[lineitem]
|
||||
------------------------------PhysicalDistribute
|
||||
--------------------------------PhysicalProject
|
||||
----------------------------------filter((p_name like '%green%'))
|
||||
------------------------------------PhysicalOlapScan[part]
|
||||
--------------------------PhysicalDistribute
|
||||
----------------------------hashJoin[INNER_JOIN](supplier.s_nationkey = nation.n_nationkey)
|
||||
------------------------------PhysicalProject
|
||||
--------------------------------PhysicalOlapScan[supplier]
|
||||
------------------------------PhysicalDistribute
|
||||
--------------------------------PhysicalProject
|
||||
----------------------------------PhysicalOlapScan[nation]
|
||||
----------------PhysicalProject
|
||||
------------------PhysicalOlapScan[partsupp]
|
||||
|
||||
467
regression-test/suites/nereids_tpch_shape_sf500_p0/load.groovy
Normal file
467
regression-test/suites/nereids_tpch_shape_sf500_p0/load.groovy
Normal file
@ -0,0 +1,467 @@
|
||||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
suite("load") {
|
||||
String database = context.config.getDbNameByFile(context.file)
|
||||
sql "drop database if exists ${database}"
|
||||
sql "create database ${database}"
|
||||
sql "use ${database}"
|
||||
sql """
|
||||
drop table if exists lineitem;
|
||||
"""
|
||||
sql """
|
||||
CREATE TABLE lineitem (
|
||||
l_shipdate DATEV2 NOT NULL,
|
||||
l_orderkey bigint NOT NULL,
|
||||
l_linenumber int not null,
|
||||
l_partkey int NOT NULL,
|
||||
l_suppkey int not null,
|
||||
l_quantity decimal(15, 2) NOT NULL,
|
||||
l_extendedprice decimal(15, 2) NOT NULL,
|
||||
l_discount decimal(15, 2) NOT NULL,
|
||||
l_tax decimal(15, 2) NOT NULL,
|
||||
l_returnflag VARCHAR(1) NOT NULL,
|
||||
l_linestatus VARCHAR(1) NOT NULL,
|
||||
l_commitdate DATEV2 NOT NULL,
|
||||
l_receiptdate DATEV2 NOT NULL,
|
||||
l_shipinstruct VARCHAR(25) NOT NULL,
|
||||
l_shipmode VARCHAR(10) NOT NULL,
|
||||
l_comment VARCHAR(44) NOT NULL
|
||||
)ENGINE=OLAP
|
||||
DUPLICATE KEY(`l_shipdate`, `l_orderkey`)
|
||||
COMMENT "OLAP"
|
||||
DISTRIBUTED BY HASH(`l_orderkey`) BUCKETS 96
|
||||
PROPERTIES (
|
||||
"replication_num" = "1",
|
||||
"colocate_with" = "lineitem_orders"
|
||||
);
|
||||
"""
|
||||
|
||||
sql """
|
||||
drop table if exists orders;
|
||||
"""
|
||||
|
||||
sql '''
|
||||
CREATE TABLE orders (
|
||||
o_orderkey bigint NOT NULL,
|
||||
o_orderdate DATEV2 NOT NULL,
|
||||
o_custkey int NOT NULL,
|
||||
o_orderstatus VARCHAR(1) NOT NULL,
|
||||
o_totalprice decimal(15, 2) NOT NULL,
|
||||
o_orderpriority VARCHAR(15) NOT NULL,
|
||||
o_clerk VARCHAR(15) NOT NULL,
|
||||
o_shippriority int NOT NULL,
|
||||
o_comment VARCHAR(79) NOT NULL
|
||||
)ENGINE=OLAP
|
||||
DUPLICATE KEY(`o_orderkey`, `o_orderdate`)
|
||||
COMMENT "OLAP"
|
||||
DISTRIBUTED BY HASH(`o_orderkey`) BUCKETS 96
|
||||
PROPERTIES (
|
||||
"replication_num" = "1",
|
||||
"colocate_with" = "lineitem_orders"
|
||||
); '''
|
||||
|
||||
sql '''
|
||||
drop table if exists partsupp;
|
||||
'''
|
||||
|
||||
sql '''
|
||||
CREATE TABLE partsupp (
|
||||
ps_partkey int NOT NULL,
|
||||
ps_suppkey int NOT NULL,
|
||||
ps_availqty int NOT NULL,
|
||||
ps_supplycost decimal(15, 2) NOT NULL,
|
||||
ps_comment VARCHAR(199) NOT NULL
|
||||
)ENGINE=OLAP
|
||||
DUPLICATE KEY(`ps_partkey`)
|
||||
COMMENT "OLAP"
|
||||
DISTRIBUTED BY HASH(`ps_partkey`) BUCKETS 24
|
||||
PROPERTIES (
|
||||
"replication_num" = "1",
|
||||
"colocate_with" = "part_partsupp"
|
||||
);
|
||||
'''
|
||||
|
||||
sql '''
|
||||
drop table if exists part;
|
||||
'''
|
||||
|
||||
sql '''
|
||||
CREATE TABLE part (
|
||||
p_partkey int NOT NULL,
|
||||
p_name VARCHAR(55) NOT NULL,
|
||||
p_mfgr VARCHAR(25) NOT NULL,
|
||||
p_brand VARCHAR(10) NOT NULL,
|
||||
p_type VARCHAR(25) NOT NULL,
|
||||
p_size int NOT NULL,
|
||||
p_container VARCHAR(10) NOT NULL,
|
||||
p_retailprice decimal(15, 2) NOT NULL,
|
||||
p_comment VARCHAR(23) NOT NULL
|
||||
)ENGINE=OLAP
|
||||
DUPLICATE KEY(`p_partkey`)
|
||||
COMMENT "OLAP"
|
||||
DISTRIBUTED BY HASH(`p_partkey`) BUCKETS 24
|
||||
PROPERTIES (
|
||||
"replication_num" = "1",
|
||||
"colocate_with" = "part_partsupp"
|
||||
);
|
||||
'''
|
||||
|
||||
sql '''
|
||||
drop table if exists customer;
|
||||
'''
|
||||
|
||||
sql '''
|
||||
CREATE TABLE customer (
|
||||
c_custkey int NOT NULL,
|
||||
c_name VARCHAR(25) NOT NULL,
|
||||
c_address VARCHAR(40) NOT NULL,
|
||||
c_nationkey int NOT NULL,
|
||||
c_phone VARCHAR(15) NOT NULL,
|
||||
c_acctbal decimal(15, 2) NOT NULL,
|
||||
c_mktsegment VARCHAR(10) NOT NULL,
|
||||
c_comment VARCHAR(117) NOT NULL
|
||||
)ENGINE=OLAP
|
||||
DUPLICATE KEY(`c_custkey`)
|
||||
COMMENT "OLAP"
|
||||
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 24
|
||||
PROPERTIES (
|
||||
"replication_num" = "1"
|
||||
);
|
||||
'''
|
||||
|
||||
sql '''
|
||||
drop table if exists supplier
|
||||
'''
|
||||
|
||||
sql '''
|
||||
CREATE TABLE supplier (
|
||||
s_suppkey int NOT NULL,
|
||||
s_name VARCHAR(25) NOT NULL,
|
||||
s_address VARCHAR(40) NOT NULL,
|
||||
s_nationkey int NOT NULL,
|
||||
s_phone VARCHAR(15) NOT NULL,
|
||||
s_acctbal decimal(15, 2) NOT NULL,
|
||||
s_comment VARCHAR(101) NOT NULL
|
||||
)ENGINE=OLAP
|
||||
DUPLICATE KEY(`s_suppkey`)
|
||||
COMMENT "OLAP"
|
||||
DISTRIBUTED BY HASH(`s_suppkey`) BUCKETS 12
|
||||
PROPERTIES (
|
||||
"replication_num" = "1"
|
||||
);
|
||||
'''
|
||||
|
||||
sql '''
|
||||
drop table if exists nation;
|
||||
'''
|
||||
|
||||
sql '''
|
||||
CREATE TABLE `nation` (
|
||||
`n_nationkey` int(11) NOT NULL,
|
||||
`n_name` varchar(25) NOT NULL,
|
||||
`n_regionkey` int(11) NOT NULL,
|
||||
`n_comment` varchar(152) NULL
|
||||
) ENGINE=OLAP
|
||||
DUPLICATE KEY(`N_NATIONKEY`)
|
||||
COMMENT "OLAP"
|
||||
DISTRIBUTED BY HASH(`N_NATIONKEY`) BUCKETS 1
|
||||
PROPERTIES (
|
||||
"replication_num" = "1"
|
||||
);
|
||||
'''
|
||||
|
||||
sql '''
|
||||
drop table if exists region;
|
||||
'''
|
||||
|
||||
sql '''
|
||||
CREATE TABLE region (
|
||||
r_regionkey int NOT NULL,
|
||||
r_name VARCHAR(25) NOT NULL,
|
||||
r_comment VARCHAR(152)
|
||||
)ENGINE=OLAP
|
||||
DUPLICATE KEY(`r_regionkey`)
|
||||
COMMENT "OLAP"
|
||||
DISTRIBUTED BY HASH(`r_regionkey`) BUCKETS 1
|
||||
PROPERTIES (
|
||||
"replication_num" = "1"
|
||||
);
|
||||
'''
|
||||
|
||||
sql '''
|
||||
drop view if exists revenue0;
|
||||
'''
|
||||
|
||||
sql '''
|
||||
create view revenue0 (supplier_no, total_revenue) as
|
||||
select
|
||||
l_suppkey,
|
||||
sum(l_extendedprice * (1 - l_discount))
|
||||
from
|
||||
lineitem
|
||||
where
|
||||
l_shipdate >= date '1996-01-01'
|
||||
and l_shipdate < date '1996-01-01' + interval '3' month
|
||||
group by
|
||||
l_suppkey;
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_receiptdate set stats ('ndv'='2587', 'avg_size'='16', 'max_size'='16', 'num_nulls'='0', 'min_value'='1992-01-03', 'max_value'='1998-12-31', 'row_count'='3000028242')
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_returnflag set stats ('ndv'='3', 'avg_size'='1', 'max_size'='1', 'num_nulls'='0', 'min_value'='A', 'max_value'='R', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_tax set stats ('ndv'='9', 'avg_size'='16', 'max_size'='16', 'num_nulls'='0', 'min_value'='0', 'max_value'='0.08', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_shipmode set stats ('ndv'='7', 'avg_size'='4', 'max_size'='7', 'num_nulls'='0', 'min_value'='AIR', 'max_value'='TRUCK', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_suppkey set stats ('ndv'='4995648', 'avg_size'='4', 'max_size'='4', 'num_nulls'='0', 'min_value'='1', 'max_value'='5000000', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_shipdate set stats ('ndv'='2549', 'avg_size'='16', 'max_size'='16', 'num_nulls'='0', 'min_value'='1992-01-02', 'max_value'='1998-12-01', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_commitdate set stats ('ndv'='2485', 'avg_size'='16', 'max_size'='16', 'num_nulls'='0', 'min_value'='1992-01-31', 'max_value'='1998-10-31', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_partkey set stats ('ndv'='101686464', 'avg_size'='4', 'max_size'='4', 'num_nulls'='0', 'min_value'='1', 'max_value'='100000000', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_orderkey set stats ('ndv'='756756416', 'avg_size'='8', 'max_size'='8', 'num_nulls'='0', 'min_value'='1', 'max_value'='3000000000', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_quantity set stats ('ndv'='50', 'avg_size'='16', 'max_size'='16', 'num_nulls'='0', 'min_value'='1', 'max_value'='50', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_linestatus set stats ('ndv'='2', 'avg_size'='1', 'max_size'='1', 'num_nulls'='0', 'min_value'='F', 'max_value'='o', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_comment set stats ('ndv'='154387840', 'avg_size'='26', 'max_size'='43', 'num_nulls'='0', 'min_value'='1', 'max_value'='10000', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_extendedprice set stats ('ndv'='3805461', 'avg_size'='16', 'max_size'='16', 'num_nulls'='0', 'min_value'='900', 'max_value'='104949', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_linenumber set stats ('ndv'='7', 'avg_size'='4', 'max_size'='4', 'num_nulls'='0', 'min_value'='1', 'max_value'='7', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_discount set stats ('ndv'='11', 'avg_size'='16', 'max_size'='16', 'num_nulls'='0', 'min_value'='0', 'max_value'='0.1', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table lineitem modify column l_shipinstruct set stats ('ndv'='4', 'avg_size'='12', 'max_size'='17', 'num_nulls'='0', 'min_value'='COLLECT COD', 'max_value'='TAKE BACK RETURN', 'row_count'='3000028242');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table partsupp modify column ps_suppkey set stats ('ndv'='4995648', 'avg_size'='4.0', 'max_size'='4', 'num_nulls'='0', 'min_value'='1', 'max_value'='5000000', 'row_count'='400000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table partsupp modify column ps_availqty set stats ('ndv'='10008', 'avg_size'='4.0', 'max_size'='4', 'num_nulls'='0', 'min_value'='1', 'max_value'='9999', 'row_count'='400000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table partsupp modify column ps_comment set stats ('ndv'='238546544', 'avg_size'='123.6', 'max_size'='198', 'num_nulls'='0', 'min_value'='Tiresias according to the quiet courts sleep against the ironic', 'max_value'='zzle. unusual decoys detec', 'row_count'='400000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table partsupp modify column ps_partkey set stats ('ndv'='101686464', 'avg_size'='4.0', 'max_size'='4', 'num_nulls'='0', 'min_value'='1', 'max_value'='100000000', 'row_count'='400000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table partsupp modify column ps_supplycost set stats ('ndv'='100279', 'avg_size'='16.0', 'max_size'='16', 'num_nulls'='0', 'min_value'='1', 'max_value'='1000', 'row_count'='400000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table supplier modify column s_comment set stats ('ndv'='4942827', 'avg_size'='62.56950', 'max_size'='100', 'num_nulls'='0', 'min_value'='about the blithely express foxes. bli', 'max_value'='zzle furiously. bold accounts haggle fu', 'row_count'='5000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table supplier modify column s_phone set stats ('ndv'='5070193', 'avg_size'='15.0', 'max_size'='15', 'num_nulls'='0', 'min_value'='10-102-116-6785', 'max_value'='34-998-900-4911', 'row_count'='5000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table supplier modify column s_nationkey set stats ('ndv'='25', 'avg_size'='4.0', 'max_size'='4', 'num_nulls'='0', 'min_value'='0', 'max_value'='24', 'row_count'='5000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table supplier modify column s_name set stats ('ndv'='4930031', 'avg_size'='18.0', 'max_size'='18', 'num_nulls'='0', 'min_value'='Supplier#000000001', 'max_value'='Supplier#005000000', 'row_count'='5000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table supplier modify column s_acctbal set stats ('ndv'='1099069', 'avg_size'='16.0', 'max_size'='16', 'num_nulls'='0', 'min_value'='-998.22', 'max_value'='9999.72', 'row_count'='5000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table supplier modify column s_address set stats ('ndv'='5000000', 'avg_size'='24.9771', 'max_size'='40', 'num_nulls'='0', 'min_value'=' 9aW1wwnBJJPnCx,n', 'max_value'='zzfDhdtZcvmVzA8rNFU,Yctj1zBN', 'row_count'='5000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table supplier modify column s_suppkey set stats ('ndv'='5000000', 'avg_size'='4.0', 'max_size'='4', 'num_nulls'='0', 'min_value'='1', 'max_value'='5000000', 'row_count'='5000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table part modify column p_partkey set stats ('ndv'='101686464', 'avg_size'='4.0', 'max_size'='4', 'num_nulls'='0', 'min_value'='1', 'max_value'='100000000', 'row_count'='100000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table part modify column p_container set stats ('ndv'='40', 'avg_size'='7.57', 'max_size'='10', 'num_nulls'='0', 'min_value'='JUMBO BAG', 'max_value'='WRAP PKG', 'row_count'='100000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table part modify column p_name set stats ('ndv'='98622912', 'avg_size'='32.0', 'max_size'='50', 'num_nulls'='0', 'min_value'='almond antique blue royal burnished', 'max_value'='yellow white seashell lavender black', 'row_count'='100000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table part modify column p_comment set stats ('ndv'='10190453', 'avg_size'='13', 'max_size'='22', 'num_nulls'='0', 'min_value'='Tire', 'max_value'='zzle. quickly si', 'row_count'='100000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table part modify column p_brand set stats ('ndv'='25', 'avg_size'='22', 'max_size'='22', 'num_nulls'='0', 'min_value'='Brand#11', 'max_value'='Brand#55', 'row_count'='100000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table part modify column p_retailprice set stats ('ndv'='120904', 'avg_size'='16.0', 'max_size'='16', 'num_nulls'='0', 'min_value'='901', 'max_value'='2098.99', 'row_count'='100000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table part modify column p_type set stats ('ndv'='150', 'avg_size'='20', 'max_size'='25', 'num_nulls'='0', 'min_value'='ECONOMY ANODIZED BRASSe', 'max_value'='STANDARD POLISHED TIN ', 'row_count'='100000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table part modify column p_size set stats ('ndv'='50', 'avg_size'='4', 'max_size'='4', 'num_nulls'='0', 'min_value'='1', 'max_value'='50', 'row_count'='100000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table part modify column p_mfgr set stats ('ndv'='5', 'avg_size'='14', 'max_size'='14', 'num_nulls'='0', 'min_value'='Manufacturer#1', 'max_value'='Manufacturer#5', 'row_count'='100000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table region modify column r_regionkey set stats ('ndv'='5', 'avg_size'='4', 'max_size'='4', 'num_nulls'='0', 'min_value'='0', 'max_value'='4', 'row_count'='5');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table region modify column r_name set stats ('ndv'='5', 'avg_size'='14', 'max_size'='14', 'num_nulls'='0', 'min_value'='AFRICA', 'max_value'='MIDDLE EAST', 'row_count'='5');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table region modify column r_comment set stats ('ndv'='5', 'avg_size'='14', 'max_size'='14', 'num_nulls'='0', 'min_value'='AFRICA', 'max_value'='MIDDLE EAST', 'row_count'='5');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table nation modify column n_nationkey set stats ('ndv'='25', 'avg_size'='4', 'max_size'='4', 'num_nulls'='0', 'min_value'='0', 'max_value'='24', 'row_count'='25');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table nation modify column n_regionkey set stats ('ndv'='5', 'avg_size'='4', 'max_size'='4', 'num_nulls'='0', 'min_value'='0', 'max_value'='4', 'row_count'='25');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table nation modify column n_name set stats ('ndv'='25', 'avg_size'='14', 'max_size'='14', 'num_nulls'='0', 'min_value'='ALGERIA', 'max_value'='VIETNAM', 'row_count'='25');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table nation modify column n_comment set stats ('ndv'='25', 'avg_size'='14', 'max_size'='14', 'num_nulls'='0', 'min_value'='ALGERIA', 'max_value'='VIETNAM', 'row_count'='25');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table customer modify column c_custkey set stats ('ndv'='76285424', 'avg_size'='4', 'max_size'='4', 'num_nulls'='0', 'min_value'='1', 'max_value'='75000000', 'row_count'='75000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table customer modify column c_acctbal set stats ('ndv'='1109296', 'avg_size'='16', 'max_size'='16', 'num_nulls'='0', 'min_value'='-999.99', 'max_value'='9999.99', 'row_count'='75000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table customer modify column c_phone set stats ('ndv'='75783176', 'avg_size'='15', 'max_size'='15', 'num_nulls'='0', 'min_value'='10-100-106-1617', 'max_value'='34-999-618-6881', 'row_count'='75000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table customer modify column c_mktsegment set stats ('ndv'='5', 'avg_size'='8.9', 'max_size'='10', 'num_nulls'='0', 'min_value'='AUTOMOBILE', 'max_value'='MACHINERY', 'row_count'='75000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table customer modify column c_address set stats ('ndv'='75000000', 'avg_size'='25', 'max_size'='40', 'num_nulls'='0', 'min_value'=' 2uZwVhQvwA', 'max_value'='zzxGktzXTMKS1BxZlgQ9nqQ', 'row_count'='75000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table customer modify column c_nationkey set stats ('ndv'='25', 'avg_size'='4', 'max_size'='4', 'num_nulls'='0', 'min_value'='0', 'max_value'='24', 'row_count'='75000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table customer modify column c_name set stats ('ndv'='75889840', 'avg_size'='25', 'max_size'='25', 'num_nulls'='0', 'min_value'='Customer#000000001', 'max_value'='Customer#075000000', 'row_count'='75000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table customer modify column c_comment set stats ('ndv'='66629836', 'avg_size'='72', 'max_size'='116', 'num_nulls'='0', 'min_value'=' Tiresias according to the sly', 'max_value'='zzle. blithely regu0', 'row_count'='75000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table orders modify column o_orderstatus set stats ('ndv'='3', 'avg_size'='1.0', 'max_size'='1', 'num_nulls'='0', 'min_value'='F', 'max_value'='P', 'row_count'='750000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table orders modify column o_clerk set stats ('ndv'='508347', 'avg_size'='15.0', 'max_size'='15', 'num_nulls'='0', 'min_value'='Clerk#000000001', 'max_value'='Clerk#000500000', 'row_count'='750000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table orders modify column o_orderdate set stats ('ndv'='2428', 'avg_size'='16.0', 'max_size'='16', 'num_nulls'='0', 'min_value'='1992-01-01', 'max_value'='1998-08-02', 'row_count'='750000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table orders modify column o_shippriority set stats ('ndv'='1', 'avg_size'='4.0', 'max_size'='4', 'num_nulls'='0', 'min_value'='0', 'max_value'='0', 'row_count'='750000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table orders modify column o_custkey set stats ('ndv'='50471848', 'avg_size'='4.0', 'max_size'='4', 'num_nulls'='0', 'min_value'='1', 'max_value'='74999999', 'row_count'='750000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table orders modify column o_totalprice set stats ('ndv'='1462416', 'avg_size'='16.0', 'max_size'='16', 'num_nulls'='0', 'min_value'='857.71', 'max_value'='555285.16', 'row_count'='750000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table orders modify column o_orderkey set stats ('ndv'='750000000', 'avg_size'='8.0', 'max_size'='8', 'num_nulls'='0', 'min_value'='1', 'max_value'='3000000000', 'row_count'='750000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table orders modify column o_comment set stats ('ndv'='260882608', 'avg_size'='48.51387', 'max_size'='78', 'num_nulls'='0', 'min_value'='Tiresias about the blithely ironic a', 'max_value'='zzle? furiously ironic instructions among the unusual t ', 'row_count'='750000000');
|
||||
'''
|
||||
|
||||
sql '''
|
||||
alter table orders modify column o_orderpriority set stats ('ndv'='5', 'avg_size'='8.4', 'max_size'='15', 'num_nulls'='0', 'min_value'='1-URGENT', 'max_value'='5-LOW', 'row_count'='750000000');
|
||||
'''
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q1") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql 'set exec_mem_limit=21G'
|
||||
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
l_returnflag,
|
||||
l_linestatus,
|
||||
sum(l_quantity) as sum_qty,
|
||||
sum(l_extendedprice) as sum_base_price,
|
||||
sum(l_extendedprice * (1 - l_discount)) as sum_disc_price,
|
||||
sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge,
|
||||
avg(l_quantity) as avg_qty,
|
||||
avg(l_extendedprice) as avg_price,
|
||||
avg(l_discount) as avg_disc,
|
||||
count(*) as count_order
|
||||
from
|
||||
lineitem
|
||||
where
|
||||
l_shipdate <= date '1998-12-01' - interval '90' day
|
||||
group by
|
||||
l_returnflag,
|
||||
l_linestatus
|
||||
order by
|
||||
l_returnflag,
|
||||
l_linestatus;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q10") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
c_custkey,
|
||||
c_name,
|
||||
sum(l_extendedprice * (1 - l_discount)) as revenue,
|
||||
c_acctbal,
|
||||
n_name,
|
||||
c_address,
|
||||
c_phone,
|
||||
c_comment
|
||||
from
|
||||
customer,
|
||||
orders,
|
||||
lineitem,
|
||||
nation
|
||||
where
|
||||
c_custkey = o_custkey
|
||||
and l_orderkey = o_orderkey
|
||||
and o_orderdate >= date '1993-10-01'
|
||||
and o_orderdate < date '1993-10-01' + interval '3' month
|
||||
and l_returnflag = 'R'
|
||||
and c_nationkey = n_nationkey
|
||||
group by
|
||||
c_custkey,
|
||||
c_name,
|
||||
c_acctbal,
|
||||
c_phone,
|
||||
n_name,
|
||||
c_address,
|
||||
c_comment
|
||||
order by
|
||||
revenue desc
|
||||
limit 20;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q11") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
ps_partkey,
|
||||
sum(ps_supplycost * ps_availqty) as value
|
||||
from
|
||||
partsupp,
|
||||
supplier,
|
||||
nation
|
||||
where
|
||||
ps_suppkey = s_suppkey
|
||||
and s_nationkey = n_nationkey
|
||||
and n_name = 'GERMANY'
|
||||
group by
|
||||
ps_partkey having
|
||||
sum(ps_supplycost * ps_availqty) > (
|
||||
select
|
||||
sum(ps_supplycost * ps_availqty) * 0.000002
|
||||
from
|
||||
partsupp,
|
||||
supplier,
|
||||
nation
|
||||
where
|
||||
ps_suppkey = s_suppkey
|
||||
and s_nationkey = n_nationkey
|
||||
and n_name = 'GERMANY'
|
||||
)
|
||||
order by
|
||||
value desc;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q12") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
l_shipmode,
|
||||
sum(case
|
||||
when o_orderpriority = '1-URGENT'
|
||||
or o_orderpriority = '2-HIGH'
|
||||
then 1
|
||||
else 0
|
||||
end) as high_line_count,
|
||||
sum(case
|
||||
when o_orderpriority <> '1-URGENT'
|
||||
and o_orderpriority <> '2-HIGH'
|
||||
then 1
|
||||
else 0
|
||||
end) as low_line_count
|
||||
from
|
||||
orders,
|
||||
lineitem
|
||||
where
|
||||
o_orderkey = l_orderkey
|
||||
and l_shipmode in ('MAIL', 'SHIP')
|
||||
and l_commitdate < l_receiptdate
|
||||
and l_shipdate < l_commitdate
|
||||
and l_receiptdate >= date '1994-01-01'
|
||||
and l_receiptdate < date '1994-01-01' + interval '1' year
|
||||
group by
|
||||
l_shipmode
|
||||
order by
|
||||
l_shipmode;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q13") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
c_count,
|
||||
count(*) as custdist
|
||||
from
|
||||
(
|
||||
select
|
||||
c_custkey,
|
||||
count(o_orderkey) as c_count
|
||||
from
|
||||
customer left outer join orders on
|
||||
c_custkey = o_custkey
|
||||
and o_comment not like '%special%requests%'
|
||||
group by
|
||||
c_custkey
|
||||
) as c_orders
|
||||
group by
|
||||
c_count
|
||||
order by
|
||||
custdist desc,
|
||||
c_count desc;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q14") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
100.00 * sum(case
|
||||
when p_type like 'PROMO%'
|
||||
then l_extendedprice * (1 - l_discount)
|
||||
else 0
|
||||
end) / sum(l_extendedprice * (1 - l_discount)) as promo_revenue
|
||||
from
|
||||
lineitem,
|
||||
part
|
||||
where
|
||||
l_partkey = p_partkey
|
||||
and l_shipdate >= date '1995-09-01'
|
||||
and l_shipdate < date '1995-09-01' + interval '1' month;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q15") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
s_suppkey,
|
||||
s_name,
|
||||
s_address,
|
||||
s_phone,
|
||||
total_revenue
|
||||
from
|
||||
supplier,
|
||||
revenue0
|
||||
where
|
||||
s_suppkey = supplier_no
|
||||
and total_revenue = (
|
||||
select
|
||||
max(total_revenue)
|
||||
from
|
||||
revenue0
|
||||
)
|
||||
order by
|
||||
s_suppkey;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q16") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
p_brand,
|
||||
p_type,
|
||||
p_size,
|
||||
count(distinct ps_suppkey) as supplier_cnt
|
||||
from
|
||||
partsupp,
|
||||
part
|
||||
where
|
||||
p_partkey = ps_partkey
|
||||
and p_brand <> 'Brand#45'
|
||||
and p_type not like 'MEDIUM POLISHED%'
|
||||
and p_size in (49, 14, 23, 45, 19, 3, 36, 9)
|
||||
and ps_suppkey not in (
|
||||
select
|
||||
s_suppkey
|
||||
from
|
||||
supplier
|
||||
where
|
||||
s_comment like '%Customer%Complaints%'
|
||||
)
|
||||
group by
|
||||
p_brand,
|
||||
p_type,
|
||||
p_size
|
||||
order by
|
||||
supplier_cnt desc,
|
||||
p_brand,
|
||||
p_type,
|
||||
p_size;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q17") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
sum(l_extendedprice) / 7.0 as avg_yearly
|
||||
from
|
||||
lineitem,
|
||||
part
|
||||
where
|
||||
p_partkey = l_partkey
|
||||
and p_brand = 'Brand#23'
|
||||
and p_container = 'MED BOX'
|
||||
and l_quantity < (
|
||||
select
|
||||
0.2 * avg(l_quantity)
|
||||
from
|
||||
lineitem
|
||||
where
|
||||
l_partkey = p_partkey
|
||||
);
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q18") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
c_name,
|
||||
c_custkey,
|
||||
o_orderkey,
|
||||
o_orderdate,
|
||||
o_totalprice,
|
||||
sum(l_quantity)
|
||||
from
|
||||
customer,
|
||||
orders,
|
||||
lineitem
|
||||
where
|
||||
o_orderkey in (
|
||||
select
|
||||
l_orderkey
|
||||
from
|
||||
lineitem
|
||||
group by
|
||||
l_orderkey having
|
||||
sum(l_quantity) > 300
|
||||
)
|
||||
and c_custkey = o_custkey
|
||||
and o_orderkey = l_orderkey
|
||||
group by
|
||||
c_name,
|
||||
c_custkey,
|
||||
o_orderkey,
|
||||
o_orderdate,
|
||||
o_totalprice
|
||||
order by
|
||||
o_totalprice desc,
|
||||
o_orderdate
|
||||
limit 100;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q19") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
sum(l_extendedprice* (1 - l_discount)) as revenue
|
||||
from
|
||||
lineitem,
|
||||
part
|
||||
where
|
||||
(
|
||||
p_partkey = l_partkey
|
||||
and p_brand = 'Brand#12'
|
||||
and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG')
|
||||
and l_quantity >= 1 and l_quantity <= 1 + 10
|
||||
and p_size between 1 and 5
|
||||
and l_shipmode in ('AIR', 'AIR REG')
|
||||
and l_shipinstruct = 'DELIVER IN PERSON'
|
||||
)
|
||||
or
|
||||
(
|
||||
p_partkey = l_partkey
|
||||
and p_brand = 'Brand#23'
|
||||
and p_container in ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK')
|
||||
and l_quantity >= 10 and l_quantity <= 10 + 10
|
||||
and p_size between 1 and 10
|
||||
and l_shipmode in ('AIR', 'AIR REG')
|
||||
and l_shipinstruct = 'DELIVER IN PERSON'
|
||||
)
|
||||
or
|
||||
(
|
||||
p_partkey = l_partkey
|
||||
and p_brand = 'Brand#34'
|
||||
and p_container in ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG')
|
||||
and l_quantity >= 20 and l_quantity <= 20 + 10
|
||||
and p_size between 1 and 15
|
||||
and l_shipmode in ('AIR', 'AIR REG')
|
||||
and l_shipinstruct = 'DELIVER IN PERSON'
|
||||
);
|
||||
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q2") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
s_acctbal,
|
||||
s_name,
|
||||
n_name,
|
||||
p_partkey,
|
||||
p_mfgr,
|
||||
s_address,
|
||||
s_phone,
|
||||
s_comment
|
||||
from
|
||||
part,
|
||||
supplier,
|
||||
partsupp,
|
||||
nation,
|
||||
region
|
||||
where
|
||||
p_partkey = ps_partkey
|
||||
and s_suppkey = ps_suppkey
|
||||
and p_size = 15
|
||||
and p_type like '%BRASS'
|
||||
and s_nationkey = n_nationkey
|
||||
and n_regionkey = r_regionkey
|
||||
and r_name = 'EUROPE'
|
||||
and ps_supplycost = (
|
||||
select
|
||||
min(ps_supplycost)
|
||||
from
|
||||
partsupp,
|
||||
supplier,
|
||||
nation,
|
||||
region
|
||||
where
|
||||
p_partkey = ps_partkey
|
||||
and s_suppkey = ps_suppkey
|
||||
and s_nationkey = n_nationkey
|
||||
and n_regionkey = r_regionkey
|
||||
and r_name = 'EUROPE'
|
||||
)
|
||||
order by
|
||||
s_acctbal desc,
|
||||
n_name,
|
||||
s_name,
|
||||
p_partkey
|
||||
limit 100;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q20") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
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;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q21") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
s_name,
|
||||
count(*) as numwait
|
||||
from
|
||||
supplier,
|
||||
lineitem l1,
|
||||
orders,
|
||||
nation
|
||||
where
|
||||
s_suppkey = l1.l_suppkey
|
||||
and o_orderkey = l1.l_orderkey
|
||||
and o_orderstatus = 'F'
|
||||
and l1.l_receiptdate > l1.l_commitdate
|
||||
and exists (
|
||||
select
|
||||
*
|
||||
from
|
||||
lineitem l2
|
||||
where
|
||||
l2.l_orderkey = l1.l_orderkey
|
||||
and l2.l_suppkey <> l1.l_suppkey
|
||||
)
|
||||
and not exists (
|
||||
select
|
||||
*
|
||||
from
|
||||
lineitem l3
|
||||
where
|
||||
l3.l_orderkey = l1.l_orderkey
|
||||
and l3.l_suppkey <> l1.l_suppkey
|
||||
and l3.l_receiptdate > l3.l_commitdate
|
||||
)
|
||||
and s_nationkey = n_nationkey
|
||||
and n_name = 'SAUDI ARABIA'
|
||||
group by
|
||||
s_name
|
||||
order by
|
||||
numwait desc,
|
||||
s_name
|
||||
limit 100;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q22") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
cntrycode,
|
||||
count(*) as numcust,
|
||||
sum(c_acctbal) as totacctbal
|
||||
from
|
||||
(
|
||||
select
|
||||
substring(c_phone, 1, 2) as cntrycode,
|
||||
c_acctbal
|
||||
from
|
||||
customer
|
||||
where
|
||||
substring(c_phone, 1, 2) in
|
||||
('13', '31', '23', '29', '30', '18', '17')
|
||||
and c_acctbal > (
|
||||
select
|
||||
avg(c_acctbal)
|
||||
from
|
||||
customer
|
||||
where
|
||||
c_acctbal > 0.00
|
||||
and substring(c_phone, 1, 2) in
|
||||
('13', '31', '23', '29', '30', '18', '17')
|
||||
)
|
||||
and not exists (
|
||||
select
|
||||
*
|
||||
from
|
||||
orders
|
||||
where
|
||||
o_custkey = c_custkey
|
||||
)
|
||||
) as custsale
|
||||
group by
|
||||
cntrycode
|
||||
order by
|
||||
cntrycode;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q3") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
// db = "tpch"
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
l_orderkey,
|
||||
sum(l_extendedprice * (1 - l_discount)) as revenue,
|
||||
o_orderdate,
|
||||
o_shippriority
|
||||
from
|
||||
customer,
|
||||
orders,
|
||||
lineitem
|
||||
where
|
||||
c_mktsegment = 'BUILDING'
|
||||
and c_custkey = o_custkey
|
||||
and l_orderkey = o_orderkey
|
||||
and o_orderdate < date '1995-03-15'
|
||||
and l_shipdate > date '1995-03-15'
|
||||
group by
|
||||
l_orderkey,
|
||||
o_orderdate,
|
||||
o_shippriority
|
||||
order by
|
||||
revenue desc,
|
||||
o_orderdate
|
||||
limit 10;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q4") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
o_orderpriority,
|
||||
count(*) as order_count
|
||||
from
|
||||
orders
|
||||
where
|
||||
o_orderdate >= date '1993-07-01'
|
||||
and o_orderdate < date '1993-07-01' + interval '3' month
|
||||
and exists (
|
||||
select
|
||||
*
|
||||
from
|
||||
lineitem
|
||||
where
|
||||
l_orderkey = o_orderkey
|
||||
and l_commitdate < l_receiptdate
|
||||
)
|
||||
group by
|
||||
o_orderpriority
|
||||
order by
|
||||
o_orderpriority;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q5") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
n_name,
|
||||
sum(l_extendedprice * (1 - l_discount)) as revenue
|
||||
from
|
||||
customer,
|
||||
orders,
|
||||
lineitem,
|
||||
supplier,
|
||||
nation,
|
||||
region
|
||||
where
|
||||
c_custkey = o_custkey
|
||||
and l_orderkey = o_orderkey
|
||||
and l_suppkey = s_suppkey
|
||||
and c_nationkey = s_nationkey
|
||||
and s_nationkey = n_nationkey
|
||||
and n_regionkey = r_regionkey
|
||||
and r_name = 'ASIA'
|
||||
and o_orderdate >= date '1994-01-01'
|
||||
and o_orderdate < date '1994-01-01' + interval '1' year
|
||||
group by
|
||||
n_name
|
||||
order by
|
||||
revenue desc;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q6") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
sum(l_extendedprice * l_discount) as revenue
|
||||
from
|
||||
lineitem
|
||||
where
|
||||
l_shipdate >= date '1994-01-01'
|
||||
and l_shipdate < date '1994-01-01' + interval '1' year
|
||||
and l_discount between .06 - 0.01 and .06 + 0.01
|
||||
and l_quantity < 24;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q7") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
supp_nation,
|
||||
cust_nation,
|
||||
l_year,
|
||||
sum(volume) as revenue
|
||||
from
|
||||
(
|
||||
select
|
||||
n1.n_name as supp_nation,
|
||||
n2.n_name as cust_nation,
|
||||
extract(year from l_shipdate) as l_year,
|
||||
l_extendedprice * (1 - l_discount) as volume
|
||||
from
|
||||
supplier,
|
||||
lineitem,
|
||||
orders,
|
||||
customer,
|
||||
nation n1,
|
||||
nation n2
|
||||
where
|
||||
s_suppkey = l_suppkey
|
||||
and o_orderkey = l_orderkey
|
||||
and c_custkey = o_custkey
|
||||
and s_nationkey = n1.n_nationkey
|
||||
and c_nationkey = n2.n_nationkey
|
||||
and (
|
||||
(n1.n_name = 'FRANCE' and n2.n_name = 'GERMANY')
|
||||
or (n1.n_name = 'GERMANY' and n2.n_name = 'FRANCE')
|
||||
)
|
||||
and l_shipdate between date '1995-01-01' and date '1996-12-31'
|
||||
) as shipping
|
||||
group by
|
||||
supp_nation,
|
||||
cust_nation,
|
||||
l_year
|
||||
order by
|
||||
supp_nation,
|
||||
cust_nation,
|
||||
l_year;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q8") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
o_year,
|
||||
sum(case
|
||||
when nation = 'BRAZIL' then volume
|
||||
else 0
|
||||
end) / sum(volume) as mkt_share
|
||||
from
|
||||
(
|
||||
select
|
||||
extract(year from o_orderdate) as o_year,
|
||||
l_extendedprice * (1 - l_discount) as volume,
|
||||
n2.n_name as nation
|
||||
from
|
||||
part,
|
||||
supplier,
|
||||
lineitem,
|
||||
orders,
|
||||
customer,
|
||||
nation n1,
|
||||
nation n2,
|
||||
region
|
||||
where
|
||||
p_partkey = l_partkey
|
||||
and s_suppkey = l_suppkey
|
||||
and l_orderkey = o_orderkey
|
||||
and o_custkey = c_custkey
|
||||
and c_nationkey = n1.n_nationkey
|
||||
and n1.n_regionkey = r_regionkey
|
||||
and r_name = 'AMERICA'
|
||||
and s_nationkey = n2.n_nationkey
|
||||
and o_orderdate between date '1995-01-01' and date '1996-12-31'
|
||||
and p_type = 'ECONOMY ANODIZED STEEL'
|
||||
) as all_nations
|
||||
group by
|
||||
o_year
|
||||
order by
|
||||
o_year;
|
||||
"""
|
||||
}
|
||||
@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
suite("q9") {
|
||||
String db = context.config.getDbNameByFile(new File(context.file.parent))
|
||||
sql "use ${db}"
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
sql "set runtime_filter_mode='GLOBAL'"
|
||||
sql "set enable_runtime_filter_prune=true"
|
||||
sql 'set exec_mem_limit=21G'
|
||||
sql 'set enable_new_cost_model=false'
|
||||
sql 'set global exec_mem_limit = 21G'
|
||||
sql 'set global broadcast_row_count_limit = 30000000'
|
||||
|
||||
qt_select """
|
||||
explain shape plan
|
||||
select
|
||||
nation,
|
||||
o_year,
|
||||
sum(amount) as sum_profit
|
||||
from
|
||||
(
|
||||
select
|
||||
n_name as nation,
|
||||
extract(year from o_orderdate) as o_year,
|
||||
l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount
|
||||
from
|
||||
part,
|
||||
supplier,
|
||||
lineitem,
|
||||
partsupp,
|
||||
orders,
|
||||
nation
|
||||
where
|
||||
s_suppkey = l_suppkey
|
||||
and ps_suppkey = l_suppkey
|
||||
and ps_partkey = l_partkey
|
||||
and p_partkey = l_partkey
|
||||
and o_orderkey = l_orderkey
|
||||
and s_nationkey = n_nationkey
|
||||
and p_name like '%green%'
|
||||
) as profit
|
||||
group by
|
||||
nation,
|
||||
o_year
|
||||
order by
|
||||
nation,
|
||||
o_year desc;
|
||||
"""
|
||||
}
|
||||
Reference in New Issue
Block a user