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 2a5ef432a minor: port intersection sql tests to sqllogictests (#5331)
2a5ef432a is described below
commit 2a5ef432aef45793b60c2847552d6d597589d67d
Author: Andrew Lamb <[email protected]>
AuthorDate: Tue Feb 21 13:37:47 2023 +0100
minor: port intersection sql tests to sqllogictests (#5331)
---
datafusion/core/tests/sql/intersection.rs | 87 ----------------------
datafusion/core/tests/sql/mod.rs | 1 -
.../sqllogictests/test_files/intersection.slt | 45 +++++++++++
3 files changed, 45 insertions(+), 88 deletions(-)
diff --git a/datafusion/core/tests/sql/intersection.rs
b/datafusion/core/tests/sql/intersection.rs
deleted file mode 100644
index 607048477..000000000
--- a/datafusion/core/tests/sql/intersection.rs
+++ /dev/null
@@ -1,87 +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::*;
-
-#[tokio::test]
-async fn intersect_with_null_not_equal() {
- let sql = "SELECT * FROM (SELECT null AS id1, 1 AS id2) t1
- INTERSECT SELECT * FROM (SELECT null AS id1, 2 AS id2) t2";
-
- let expected = vec!["++", "++"];
- let ctx = create_join_context_qualified("t1", "t2").unwrap();
- let actual = execute_to_batches(&ctx, sql).await;
- assert_batches_eq!(expected, &actual);
-}
-
-#[tokio::test]
-async fn intersect_with_null_equal() {
- let sql = "SELECT * FROM (SELECT null AS id1, 1 AS id2) t1
- INTERSECT SELECT * FROM (SELECT null AS id1, 1 AS id2) t2";
-
- let expected = vec![
- "+-----+-----+",
- "| id1 | id2 |",
- "+-----+-----+",
- "| | 1 |",
- "+-----+-----+",
- ];
-
- let ctx = create_join_context_qualified("t1", "t2").unwrap();
- let actual = execute_to_batches(&ctx, sql).await;
-
- assert_batches_eq!(expected, &actual);
-}
-
-#[tokio::test]
-async fn test_intersect_all() -> Result<()> {
- let ctx = SessionContext::new();
- register_alltypes_parquet(&ctx).await;
- // execute the query
- let sql = "SELECT int_col, double_col FROM alltypes_plain where int_col >
0 INTERSECT ALL SELECT int_col, double_col FROM alltypes_plain LIMIT 4";
- let actual = execute_to_batches(&ctx, sql).await;
- let expected = vec![
- "+---------+------------+",
- "| int_col | double_col |",
- "+---------+------------+",
- "| 1 | 10.1 |",
- "| 1 | 10.1 |",
- "| 1 | 10.1 |",
- "| 1 | 10.1 |",
- "+---------+------------+",
- ];
- assert_batches_eq!(expected, &actual);
- Ok(())
-}
-
-#[tokio::test]
-async fn test_intersect_distinct() -> Result<()> {
- let ctx = SessionContext::new();
- register_alltypes_parquet(&ctx).await;
- // execute the query
- let sql = "SELECT int_col, double_col FROM alltypes_plain where int_col >
0 INTERSECT SELECT int_col, double_col FROM alltypes_plain";
- let actual = execute_to_batches(&ctx, sql).await;
- let expected = vec![
- "+---------+------------+",
- "| int_col | double_col |",
- "+---------+------------+",
- "| 1 | 10.1 |",
- "+---------+------------+",
- ];
- assert_batches_eq!(expected, &actual);
- Ok(())
-}
diff --git a/datafusion/core/tests/sql/mod.rs b/datafusion/core/tests/sql/mod.rs
index 4b3c60d7e..48fd890a3 100644
--- a/datafusion/core/tests/sql/mod.rs
+++ b/datafusion/core/tests/sql/mod.rs
@@ -87,7 +87,6 @@ pub mod explain_analyze;
pub mod expr;
pub mod functions;
pub mod group_by;
-pub mod intersection;
pub mod joins;
pub mod json;
pub mod limit;
diff --git a/datafusion/core/tests/sqllogictests/test_files/intersection.slt
b/datafusion/core/tests/sqllogictests/test_files/intersection.slt
new file mode 100644
index 000000000..31121a333
--- /dev/null
+++ b/datafusion/core/tests/sqllogictests/test_files/intersection.slt
@@ -0,0 +1,45 @@
+# 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.
+
+statement ok
+CREATE EXTERNAL TABLE alltypes_plain STORED AS PARQUET LOCATION
'../../parquet-testing/data/alltypes_plain.parquet';
+
+query ?I
+SELECT * FROM (SELECT null AS id1, 1 AS id2) t1
+ INTERSECT SELECT * FROM (SELECT null AS id1, 2 AS id2) t2
+----
+
+
+query ?I
+SELECT * FROM (SELECT null AS id1, 1 AS id2) t1
+ INTERSECT SELECT * FROM (SELECT null AS id1, 1 AS id2) t2
+----
+NULL 1
+
+
+query IR
+SELECT int_col, double_col FROM alltypes_plain where int_col > 0 INTERSECT ALL
SELECT int_col, double_col FROM alltypes_plain LIMIT 4
+----
+1 10.1
+1 10.1
+1 10.1
+1 10.1
+
+query IR
+SELECT int_col, double_col FROM alltypes_plain where int_col > 0 INTERSECT
SELECT int_col, double_col FROM alltypes_plain
+----
+1 10.1