This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new b126bca13c Port tests in subqueries.rs to sqllogictest (#8231)
b126bca13c is described below
commit b126bca13c9a868a3bff7d4c7d1a7546c687b201
Author: Chojan Shang <[email protected]>
AuthorDate: Fri Nov 17 00:42:19 2023 +0800
Port tests in subqueries.rs to sqllogictest (#8231)
* Port tests in subqueries.rs to sqllogictest
Signed-off-by: Chojan Shang <[email protected]>
* Follow rowsort
Signed-off-by: Chojan Shang <[email protected]>
---------
Signed-off-by: Chojan Shang <[email protected]>
---
datafusion/core/tests/sql/mod.rs | 1 -
datafusion/core/tests/sql/subqueries.rs | 63 -------------------------
datafusion/sqllogictest/test_files/subquery.slt | 24 ++++++++++
3 files changed, 24 insertions(+), 64 deletions(-)
diff --git a/datafusion/core/tests/sql/mod.rs b/datafusion/core/tests/sql/mod.rs
index 4bd42c4688..40a9e627a7 100644
--- a/datafusion/core/tests/sql/mod.rs
+++ b/datafusion/core/tests/sql/mod.rs
@@ -92,7 +92,6 @@ pub mod references;
pub mod repartition;
pub mod select;
mod sql_api;
-pub mod subqueries;
pub mod timestamp;
fn create_join_context(
diff --git a/datafusion/core/tests/sql/subqueries.rs
b/datafusion/core/tests/sql/subqueries.rs
deleted file mode 100644
index 01f8dd684b..0000000000
--- a/datafusion/core/tests/sql/subqueries.rs
+++ /dev/null
@@ -1,63 +0,0 @@
-// 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.
-
-use super::*;
-use crate::sql::execute_to_batches;
-
-#[tokio::test]
-#[ignore]
-async fn correlated_scalar_subquery_sum_agg_bug() -> Result<()> {
- let ctx = create_join_context("t1_id", "t2_id", true)?;
-
- let sql = "select t1.t1_int from t1 where (select sum(t2_int) is null from
t2 where t1.t1_id = t2.t2_id)";
-
- let msg = format!("Creating logical plan for '{sql}'");
- let dataframe = ctx.sql(sql).await.expect(&msg);
- let plan = dataframe.into_optimized_plan()?;
-
- let expected = vec![
- "Projection: t1.t1_int [t1_int:UInt32;N]",
- " Inner Join: t1.t1_id = __scalar_sq_1.t2_id [t1_id:UInt32;N,
t1_int:UInt32;N, t2_id:UInt32;N]",
- " TableScan: t1 projection=[t1_id, t1_int] [t1_id:UInt32;N,
t1_int:UInt32;N]",
- " SubqueryAlias: __scalar_sq_1 [t2_id:UInt32;N]",
- " Projection: t2.t2_id [t2_id:UInt32;N]",
- " Filter: SUM(t2.t2_int) IS NULL [t2_id:UInt32;N,
SUM(t2.t2_int):UInt64;N]",
- " Aggregate: groupBy=[[t2.t2_id]], aggr=[[SUM(t2.t2_int)]]
[t2_id:UInt32;N, SUM(t2.t2_int):UInt64;N]",
- " TableScan: t2 projection=[t2_id, t2_int] [t2_id:UInt32;N,
t2_int:UInt32;N]",
- ];
- let formatted = plan.display_indent_schema().to_string();
- let actual: Vec<&str> = formatted.trim().lines().collect();
- assert_eq!(
- expected, actual,
- "\n\nexpected:\n\n{expected:#?}\nactual:\n\n{actual:#?}\n\n"
- );
-
- // assert data
- let results = execute_to_batches(&ctx, sql).await;
- let expected = [
- "+--------+",
- "| t1_int |",
- "+--------+",
- "| 2 |",
- "| 4 |",
- "| 3 |",
- "+--------+",
- ];
- assert_batches_sorted_eq!(expected, &results);
-
- Ok(())
-}
diff --git a/datafusion/sqllogictest/test_files/subquery.slt
b/datafusion/sqllogictest/test_files/subquery.slt
index ef08c88a9d..ef25d960c9 100644
--- a/datafusion/sqllogictest/test_files/subquery.slt
+++ b/datafusion/sqllogictest/test_files/subquery.slt
@@ -988,3 +988,27 @@ SELECT * FROM
ON (severity.cron_job_name = jobs.cron_job_name);
----
catan-prod1-daily success catan-prod1-daily high
+
+##correlated_scalar_subquery_sum_agg_bug
+#query TT
+#explain
+#select t1.t1_int from t1 where
+# (select sum(t2_int) is null from t2 where t1.t1_id = t2.t2_id)
+#----
+#logical_plan
+#Projection: t1.t1_int
+#--Inner Join: t1.t1_id = __scalar_sq_1.t2_id
+#----TableScan: t1 projection=[t1_id, t1_int]
+#----SubqueryAlias: __scalar_sq_1
+#------Projection: t2.t2_id
+#--------Filter: SUM(t2.t2_int) IS NULL
+#----------Aggregate: groupBy=[[t2.t2_id]], aggr=[[SUM(t2.t2_int)]]
+#------------TableScan: t2 projection=[t2_id, t2_int]
+
+#query I rowsort
+#select t1.t1_int from t1 where
+# (select sum(t2_int) is null from t2 where t1.t1_id = t2.t2_id)
+#----
+#2
+#3
+#4