From 2a4196021a13e56453dd0251f2b55ca498579c00 Mon Sep 17 00:00:00 2001 From: Bruce Ritchie Date: Sun, 3 Mar 2024 12:22:15 -0500 Subject: [PATCH] I do not understand why the logical plan changed but updating the explain text to reflect the change. The physical plan is unchanged. --- .../sqllogictest/test_files/tpch/q8.slt.part | 57 ++++++++++--------- .../sqllogictest/test_files/tpch/q9.slt.part | 35 ++++++------ 2 files changed, 47 insertions(+), 45 deletions(-) diff --git a/datafusion/sqllogictest/test_files/tpch/q8.slt.part b/datafusion/sqllogictest/test_files/tpch/q8.slt.part index 760b40ad1ae8..621a132129e8 100644 --- a/datafusion/sqllogictest/test_files/tpch/q8.slt.part +++ b/datafusion/sqllogictest/test_files/tpch/q8.slt.part @@ -61,34 +61,35 @@ Sort: all_nations.o_year ASC NULLS LAST ----Aggregate: groupBy=[[all_nations.o_year]], aggr=[[SUM(CASE WHEN all_nations.nation = Utf8("BRAZIL") THEN all_nations.volume ELSE Decimal128(Some(0),38,4) END) AS SUM(CASE WHEN all_nations.nation = Utf8("BRAZIL") THEN all_nations.volume ELSE Int64(0) END), SUM(all_nations.volume)]] ------SubqueryAlias: all_nations --------Projection: date_part(Utf8("YEAR"), orders.o_orderdate) AS o_year, lineitem.l_extendedprice * (Decimal128(Some(1),20,0) - lineitem.l_discount) AS volume, n2.n_name AS nation -----------Inner Join: n1.n_regionkey = region.r_regionkey -------------Projection: lineitem.l_extendedprice, lineitem.l_discount, orders.o_orderdate, n1.n_regionkey, n2.n_name ---------------Inner Join: supplier.s_nationkey = n2.n_nationkey -----------------Projection: lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey, orders.o_orderdate, n1.n_regionkey -------------------Inner Join: customer.c_nationkey = n1.n_nationkey ---------------------Projection: lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey, orders.o_orderdate, customer.c_nationkey -----------------------Inner Join: orders.o_custkey = customer.c_custkey -------------------------Projection: lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey, orders.o_custkey, orders.o_orderdate ---------------------------Inner Join: lineitem.l_orderkey = orders.o_orderkey -----------------------------Projection: lineitem.l_orderkey, lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey -------------------------------Inner Join: lineitem.l_suppkey = supplier.s_suppkey ---------------------------------Projection: lineitem.l_orderkey, lineitem.l_suppkey, lineitem.l_extendedprice, lineitem.l_discount -----------------------------------Inner Join: part.p_partkey = lineitem.l_partkey -------------------------------------Projection: part.p_partkey ---------------------------------------Filter: part.p_type = Utf8("ECONOMY ANODIZED STEEL") -----------------------------------------TableScan: part projection=[p_partkey, p_type], partial_filters=[part.p_type = Utf8("ECONOMY ANODIZED STEEL")] -------------------------------------TableScan: lineitem projection=[l_orderkey, l_partkey, l_suppkey, l_extendedprice, l_discount] ---------------------------------TableScan: supplier projection=[s_suppkey, s_nationkey] -----------------------------Filter: orders.o_orderdate >= Date32("9131") AND orders.o_orderdate <= Date32("9861") -------------------------------TableScan: orders projection=[o_orderkey, o_custkey, o_orderdate], partial_filters=[orders.o_orderdate >= Date32("9131"), orders.o_orderdate <= Date32("9861")] -------------------------TableScan: customer projection=[c_custkey, c_nationkey] ---------------------SubqueryAlias: n1 -----------------------TableScan: nation projection=[n_nationkey, n_regionkey] -----------------SubqueryAlias: n2 -------------------TableScan: nation projection=[n_nationkey, n_name] -------------Projection: region.r_regionkey ---------------Filter: region.r_name = Utf8("AMERICA") -----------------TableScan: region projection=[r_regionkey, r_name], partial_filters=[region.r_name = Utf8("AMERICA")] +----------Projection: lineitem.l_extendedprice, lineitem.l_discount, orders.o_orderdate, n2.n_name +------------Inner Join: n1.n_regionkey = region.r_regionkey +--------------Projection: lineitem.l_extendedprice, lineitem.l_discount, orders.o_orderdate, n1.n_regionkey, n2.n_name +----------------Inner Join: supplier.s_nationkey = n2.n_nationkey +------------------Projection: lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey, orders.o_orderdate, n1.n_regionkey +--------------------Inner Join: customer.c_nationkey = n1.n_nationkey +----------------------Projection: lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey, orders.o_orderdate, customer.c_nationkey +------------------------Inner Join: orders.o_custkey = customer.c_custkey +--------------------------Projection: lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey, orders.o_custkey, orders.o_orderdate +----------------------------Inner Join: lineitem.l_orderkey = orders.o_orderkey +------------------------------Projection: lineitem.l_orderkey, lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey +--------------------------------Inner Join: lineitem.l_suppkey = supplier.s_suppkey +----------------------------------Projection: lineitem.l_orderkey, lineitem.l_suppkey, lineitem.l_extendedprice, lineitem.l_discount +------------------------------------Inner Join: part.p_partkey = lineitem.l_partkey +--------------------------------------Projection: part.p_partkey +----------------------------------------Filter: part.p_type = Utf8("ECONOMY ANODIZED STEEL") +------------------------------------------TableScan: part projection=[p_partkey, p_type], partial_filters=[part.p_type = Utf8("ECONOMY ANODIZED STEEL")] +--------------------------------------TableScan: lineitem projection=[l_orderkey, l_partkey, l_suppkey, l_extendedprice, l_discount] +----------------------------------TableScan: supplier projection=[s_suppkey, s_nationkey] +------------------------------Filter: orders.o_orderdate >= Date32("9131") AND orders.o_orderdate <= Date32("9861") +--------------------------------TableScan: orders projection=[o_orderkey, o_custkey, o_orderdate], partial_filters=[orders.o_orderdate >= Date32("9131"), orders.o_orderdate <= Date32("9861")] +--------------------------TableScan: customer projection=[c_custkey, c_nationkey] +----------------------SubqueryAlias: n1 +------------------------TableScan: nation projection=[n_nationkey, n_regionkey] +------------------SubqueryAlias: n2 +--------------------TableScan: nation projection=[n_nationkey, n_name] +--------------Projection: region.r_regionkey +----------------Filter: region.r_name = Utf8("AMERICA") +------------------TableScan: region projection=[r_regionkey, r_name], partial_filters=[region.r_name = Utf8("AMERICA")] physical_plan SortPreservingMergeExec: [o_year@0 ASC NULLS LAST] --SortExec: expr=[o_year@0 ASC NULLS LAST] diff --git a/datafusion/sqllogictest/test_files/tpch/q9.slt.part b/datafusion/sqllogictest/test_files/tpch/q9.slt.part index 5db97f79bdb1..ecd0056d17b4 100644 --- a/datafusion/sqllogictest/test_files/tpch/q9.slt.part +++ b/datafusion/sqllogictest/test_files/tpch/q9.slt.part @@ -58,23 +58,24 @@ Limit: skip=0, fetch=10 ------Aggregate: groupBy=[[profit.nation, profit.o_year]], aggr=[[SUM(profit.amount)]] --------SubqueryAlias: profit ----------Projection: nation.n_name AS nation, date_part(Utf8("YEAR"), orders.o_orderdate) AS o_year, lineitem.l_extendedprice * (Decimal128(Some(1),20,0) - lineitem.l_discount) - partsupp.ps_supplycost * lineitem.l_quantity AS amount -------------Inner Join: supplier.s_nationkey = nation.n_nationkey ---------------Projection: lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey, partsupp.ps_supplycost, orders.o_orderdate -----------------Inner Join: lineitem.l_orderkey = orders.o_orderkey -------------------Projection: lineitem.l_orderkey, lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey, partsupp.ps_supplycost ---------------------Inner Join: lineitem.l_suppkey = partsupp.ps_suppkey, lineitem.l_partkey = partsupp.ps_partkey -----------------------Projection: lineitem.l_orderkey, lineitem.l_partkey, lineitem.l_suppkey, lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey -------------------------Inner Join: lineitem.l_suppkey = supplier.s_suppkey ---------------------------Projection: lineitem.l_orderkey, lineitem.l_partkey, lineitem.l_suppkey, lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount -----------------------------Inner Join: part.p_partkey = lineitem.l_partkey -------------------------------Projection: part.p_partkey ---------------------------------Filter: part.p_name LIKE Utf8("%green%") -----------------------------------TableScan: part projection=[p_partkey, p_name], partial_filters=[part.p_name LIKE Utf8("%green%")] -------------------------------TableScan: lineitem projection=[l_orderkey, l_partkey, l_suppkey, l_quantity, l_extendedprice, l_discount] ---------------------------TableScan: supplier projection=[s_suppkey, s_nationkey] -----------------------TableScan: partsupp projection=[ps_partkey, ps_suppkey, ps_supplycost] -------------------TableScan: orders projection=[o_orderkey, o_orderdate] ---------------TableScan: nation projection=[n_nationkey, n_name] +------------Projection: lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount, partsupp.ps_supplycost, orders.o_orderdate, nation.n_name +--------------Inner Join: supplier.s_nationkey = nation.n_nationkey +----------------Projection: lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey, partsupp.ps_supplycost, orders.o_orderdate +------------------Inner Join: lineitem.l_orderkey = orders.o_orderkey +--------------------Projection: lineitem.l_orderkey, lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey, partsupp.ps_supplycost +----------------------Inner Join: lineitem.l_suppkey = partsupp.ps_suppkey, lineitem.l_partkey = partsupp.ps_partkey +------------------------Projection: lineitem.l_orderkey, lineitem.l_partkey, lineitem.l_suppkey, lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey +--------------------------Inner Join: lineitem.l_suppkey = supplier.s_suppkey +----------------------------Projection: lineitem.l_orderkey, lineitem.l_partkey, lineitem.l_suppkey, lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount +------------------------------Inner Join: part.p_partkey = lineitem.l_partkey +--------------------------------Projection: part.p_partkey +----------------------------------Filter: part.p_name LIKE Utf8("%green%") +------------------------------------TableScan: part projection=[p_partkey, p_name], partial_filters=[part.p_name LIKE Utf8("%green%")] +--------------------------------TableScan: lineitem projection=[l_orderkey, l_partkey, l_suppkey, l_quantity, l_extendedprice, l_discount] +----------------------------TableScan: supplier projection=[s_suppkey, s_nationkey] +------------------------TableScan: partsupp projection=[ps_partkey, ps_suppkey, ps_supplycost] +--------------------TableScan: orders projection=[o_orderkey, o_orderdate] +----------------TableScan: nation projection=[n_nationkey, n_name] physical_plan GlobalLimitExec: skip=0, fetch=10 --SortPreservingMergeExec: [nation@0 ASC NULLS LAST,o_year@1 DESC], fetch=10