jackwener commented on code in PR #4465:
URL: https://github.com/apache/arrow-datafusion/pull/4465#discussion_r1044986556
##########
benchmarks/expected-plans/q19.txt:
##########
@@ -2,8 +2,13 @@ Projection: SUM(lineitem.l_extendedprice * Int64(1) -
lineitem.l_discount) AS re
Aggregate: groupBy=[[]], aggr=[[SUM(CAST(lineitem.l_extendedprice AS
Decimal128(38, 4)) * CAST(Decimal128(Some(100),23,2) - CAST(lineitem.l_discount
AS Decimal128(23, 2)) AS Decimal128(38, 4))) AS SUM(lineitem.l_extendedprice *
Int64(1) - lineitem.l_discount)]]
Projection: lineitem.l_extendedprice, lineitem.l_discount
Filter: part.p_brand = Utf8("Brand#12") AND part.p_container IN
([Utf8("SM CASE"), Utf8("SM BOX"), Utf8("SM PACK"), Utf8("SM PKG")]) AND
lineitem.l_quantity >= Decimal128(Some(100),15,2) AND lineitem.l_quantity <=
Decimal128(Some(1100),15,2) AND part.p_size <= Int32(5) OR part.p_brand =
Utf8("Brand#23") AND part.p_container IN ([Utf8("MED BAG"), Utf8("MED BOX"),
Utf8("MED PKG"), Utf8("MED PACK")]) AND lineitem.l_quantity >=
Decimal128(Some(1000),15,2) AND lineitem.l_quantity <=
Decimal128(Some(2000),15,2) AND part.p_size <= Int32(10) OR part.p_brand =
Utf8("Brand#34") AND part.p_container IN ([Utf8("LG CASE"), Utf8("LG BOX"),
Utf8("LG PACK"), Utf8("LG PKG")]) AND lineitem.l_quantity >=
Decimal128(Some(2000),15,2) AND lineitem.l_quantity <=
Decimal128(Some(3000),15,2) AND part.p_size <= Int32(15)
- Inner Join: lineitem.l_partkey = part.p_partkey
- Filter: (lineitem.l_quantity >= Decimal128(Some(100),15,2) AND
lineitem.l_quantity <= Decimal128(Some(1100),15,2) OR lineitem.l_quantity >=
Decimal128(Some(1000),15,2) AND lineitem.l_quantity <=
Decimal128(Some(2000),15,2) OR lineitem.l_quantity >=
Decimal128(Some(2000),15,2) AND lineitem.l_quantity <=
Decimal128(Some(3000),15,2)) AND (lineitem.l_shipmode = Utf8("AIR REG") OR
lineitem.l_shipmode = Utf8("AIR")) AND lineitem.l_shipinstruct = Utf8("DELIVER
IN PERSON")
- TableScan: lineitem projection=[l_partkey, l_quantity,
l_extendedprice, l_discount, l_shipinstruct, l_shipmode]
- Filter: (part.p_brand = Utf8("Brand#12") AND part.p_container IN
([Utf8("SM CASE"), Utf8("SM BOX"), Utf8("SM PACK"), Utf8("SM PKG")]) AND
part.p_size <= Int32(5) OR part.p_brand = Utf8("Brand#23") AND part.p_container
IN ([Utf8("MED BAG"), Utf8("MED BOX"), Utf8("MED PKG"), Utf8("MED PACK")]) AND
part.p_size <= Int32(10) OR part.p_brand = Utf8("Brand#34") AND
part.p_container IN ([Utf8("LG CASE"), Utf8("LG BOX"), Utf8("LG PACK"),
Utf8("LG PKG")]) AND part.p_size <= Int32(15)) AND part.p_size >= Int32(1)
- TableScan: part projection=[p_partkey, p_brand, p_size,
p_container]
+ Projection: lineitem.l_quantity, lineitem.l_extendedprice,
lineitem.l_discount, part.p_brand, part.p_size, part.p_container
+ Inner Join: lineitem.l_partkey = part.p_partkey
+ Projection: lineitem.l_partkey, lineitem.l_quantity,
lineitem.l_extendedprice, lineitem.l_discount
+ Filter: lineitem.l_quantity >= Decimal128(Some(100),15,2) AND
lineitem.l_quantity <= Decimal128(Some(1100),15,2) OR lineitem.l_quantity >=
Decimal128(Some(1000),15,2) AND lineitem.l_quantity <=
Decimal128(Some(2000),15,2) OR lineitem.l_quantity >=
Decimal128(Some(2000),15,2) AND lineitem.l_quantity <=
Decimal128(Some(3000),15,2)lineitem.l_quantity >= Decimal128(Some(2000),15,2)
AND lineitem.l_quantity <= Decimal128(Some(3000),15,2)lineitem.l_quantity <=
Decimal128(Some(3000),15,2)Decimal128(Some(3000),15,2)lineitem.l_quantitylineitem.l_quantity
>=
Decimal128(Some(2000),15,2)Decimal128(Some(2000),15,2)lineitem.l_quantitylineitem.l_quantity
>= Decimal128(Some(100),15,2) AND lineitem.l_quantity <=
Decimal128(Some(1100),15,2) OR lineitem.l_quantity >=
Decimal128(Some(1000),15,2) AND lineitem.l_quantity <=
Decimal128(Some(2000),15,2)lineitem.l_quantity >= Decimal128(Some(1000),15,2)
AND lineitem.l_quantity <= Decimal128(Some(2000),15,2)lineitem.l_quantity <=
Decimal128(Some
(2000),15,2)Decimal128(Some(2000),15,2)lineitem.l_quantitylineitem.l_quantity
>=
Decimal128(Some(1000),15,2)Decimal128(Some(1000),15,2)lineitem.l_quantitylineitem.l_quantity
>= Decimal128(Some(100),15,2) AND lineitem.l_quantity <=
Decimal128(Some(1100),15,2)lineitem.l_quantity <=
Decimal128(Some(1100),15,2)Decimal128(Some(1100),15,2)lineitem.l_quantitylineitem.l_quantity
>= Decimal128(Some(100),15,2)Decimal128(Some(100),15,2)lineitem.l_quantity AND
(lineitem.l_shipmode = Utf8("AIR REG") OR lineitem.l_shipmode = Utf8("AIR"))
AND lineitem.l_shipinstruct = Utf8("DELIVER IN PERSON")
+ Projection: lineitem.l_quantity >= Decimal128(Some(100),15,2)
AND lineitem.l_quantity <= Decimal128(Some(1100),15,2) OR lineitem.l_quantity
>= Decimal128(Some(1000),15,2) AND lineitem.l_quantity <=
Decimal128(Some(2000),15,2) OR lineitem.l_quantity >=
Decimal128(Some(2000),15,2) AND lineitem.l_quantity <=
Decimal128(Some(3000),15,2) AS lineitem.l_quantity >=
Decimal128(Some(100),15,2) AND lineitem.l_quantity <=
Decimal128(Some(1100),15,2) OR lineitem.l_quantity >=
Decimal128(Some(1000),15,2) AND lineitem.l_quantity <=
Decimal128(Some(2000),15,2) OR lineitem.l_quantity >=
Decimal128(Some(2000),15,2) AND lineitem.l_quantity <=
Decimal128(Some(3000),15,2)lineitem.l_quantity >= Decimal128(Some(2000),15,2)
AND lineitem.l_quantity <= Decimal128(Some(3000),15,2)lineitem.l_quantity <=
Decimal128(Some(3000),15,2)Decimal128(Some(3000),15,2)lineitem.l_quantitylineitem.l_quantity
>=
Decimal128(Some(2000),15,2)Decimal128(Some(2000),15,2)lineitem.l_quantitylineitem.l_quantity
>= D
ecimal128(Some(100),15,2) AND lineitem.l_quantity <=
Decimal128(Some(1100),15,2) OR lineitem.l_quantity >=
Decimal128(Some(1000),15,2) AND lineitem.l_quantity <=
Decimal128(Some(2000),15,2)lineitem.l_quantity >= Decimal128(Some(1000),15,2)
AND lineitem.l_quantity <= Decimal128(Some(2000),15,2)lineitem.l_quantity <=
Decimal128(Some(2000),15,2)Decimal128(Some(2000),15,2)lineitem.l_quantitylineitem.l_quantity
>=
Decimal128(Some(1000),15,2)Decimal128(Some(1000),15,2)lineitem.l_quantitylineitem.l_quantity
>= Decimal128(Some(100),15,2) AND lineitem.l_quantity <=
Decimal128(Some(1100),15,2)lineitem.l_quantity <=
Decimal128(Some(1100),15,2)Decimal128(Some(1100),15,2)lineitem.l_quantitylineitem.l_quantity
>= Decimal128(Some(100),15,2)Decimal128(Some(100),15,2)lineitem.l_quantity,
lineitem.l_partkey, lineitem.l_quantity, lineitem.l_extendedprice,
lineitem.l_discount, lineitem.l_shipinstruct, lineitem.l_shipmode
Review Comment:
I investigate this Problem, it's caused by `common_sub_expression_eliminate`.
tracked in issue #4575
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]