alamb commented on code in PR #11311:
URL: https://github.com/apache/datafusion/pull/11311#discussion_r1667754415
##########
datafusion/substrait/src/logical_plan/consumer.rs:
##########
@@ -1297,6 +1297,32 @@ pub async fn from_substrait_rex(
outer_ref_columns,
})))
}
+ SubqueryType::SetPredicate(predicate) => {
+ match predicate.predicate_op {
Review Comment:
It looks like we could use
https://docs.rs/substrait/0.35.0/substrait/proto/expression/subquery/struct.SetPredicate.html#method.predicate_op
to match on `PredicateOp` rather than a constant
So lke
```rust
match predicate.predicate_op() {
PredicateOp::Exists => ...
other_type => ...
}
```
##########
datafusion/substrait/tests/cases/consumer_integration.rs:
##########
@@ -180,4 +214,56 @@ mod tests {
\n TableScan: FILENAME_PLACEHOLDER_1
projection=[o_orderkey, o_custkey, o_orderstatus, o_totalprice, o_orderdate,
o_orderpriority, o_clerk, o_shippriority, o_comment]\n
TableScan: FILENAME_PLACEHOLDER_2 projection=[l_orderkey, l_partkey, l_suppkey,
l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag,
l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct,
l_shipmode, l_comment]");
Ok(())
}
+
+ #[tokio::test]
+ async fn tpch_test_4() -> Result<()> {
+ let ctx = create_context_tpch4().await?;
+ let path = "tests/testdata/tpch_substrait_plans/query_4.json";
+ let proto = serde_json::from_reader::<_, Plan>(BufReader::new(
+ File::open(path).expect("file not found"),
+ ))
+ .expect("failed to parse json");
+ let plan = from_substrait_plan(&ctx, &proto).await?;
+ let plan_str = format!("{:?}", plan);
+ assert_eq!(plan_str, "Projection:
FILENAME_PLACEHOLDER_0.o_orderpriority AS O_ORDERPRIORITY, count(Int64(1)) AS
ORDER_COUNT\
+ \n Sort: FILENAME_PLACEHOLDER_0.o_orderpriority ASC NULLS LAST\
+ \n Aggregate: groupBy=[[FILENAME_PLACEHOLDER_0.o_orderpriority]],
aggr=[[count(Int64(1))]]\
+ \n Projection: FILENAME_PLACEHOLDER_0.o_orderpriority\
+ \n Filter: FILENAME_PLACEHOLDER_0.o_orderdate >=
CAST(Utf8(\"1993-07-01\") AS Date32) AND FILENAME_PLACEHOLDER_0.o_orderdate <
CAST(Utf8(\"1993-10-01\") AS Date32) AND EXISTS (<subquery>)\
Review Comment:
👍
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]