This is an automated email from the ASF dual-hosted git repository.

amashenkov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new c22595a83a IGNITE-21914 Cover SQL T631(IN predicate with one list 
element) feature by tests (#3571)
c22595a83a is described below

commit c22595a83a57144e8144035976c0982bfeb813fb
Author: Andrew V. Mashenkov <amashen...@users.noreply.github.com>
AuthorDate: Fri Apr 12 15:16:07 2024 +0300

    IGNITE-21914 Cover SQL T631(IN predicate with one list element) feature by 
tests (#3571)
---
 .../generic/test_in_list_of_single_element.test    | 209 +++++++++++++++++++++
 1 file changed, 209 insertions(+)

diff --git 
a/modules/sql-engine/src/integrationTest/sql/function/generic/test_in_list_of_single_element.test
 
b/modules/sql-engine/src/integrationTest/sql/function/generic/test_in_list_of_single_element.test
new file mode 100644
index 0000000000..2f127947c8
--- /dev/null
+++ 
b/modules/sql-engine/src/integrationTest/sql/function/generic/test_in_list_of_single_element.test
@@ -0,0 +1,209 @@
+# name: test/sql/filter/test_in_list_of_single_element.test
+# description: Test IN predicate with list of single element.
+# feature: T631
+# group: [filter]
+
+statement ok
+CREATE TABLE test(i INTEGER, s VARCHAR, d TIMESTAMP);
+
+statement ok
+INSERT INTO test VALUES (1, 'hello', TIMESTAMP '2022-02-01 10:30:28'), (2, 
'world', TIMESTAMP '2022-02-01 10:32:26'), (NULL, NULL, NULL);
+
+# IN in project
+query T
+SELECT 1 IN (1);
+----
+true
+
+query T
+SELECT 'hello' IN ('hello');
+----
+true
+
+query T
+SELECT TIMESTAMP '2022-02-01 10:30:28' IN (TIMESTAMP '2022-02-01 10:30:28');
+----
+true
+
+
+query T
+SELECT 1 IN (NULL)
+----
+NULL
+
+query T
+SELECT NULL IN (1)
+----
+NULL
+
+query T
+SELECT NULL IN (NULL)
+----
+NULL
+
+query T
+SELECT 1 NOT IN (1);
+----
+false
+
+query T
+SELECT 1 NOT IN (NULL)
+----
+NULL
+
+query T
+SELECT NULL NOT IN (1)
+----
+NULL
+
+query T
+SELECT NULL NOT IN (NULL)
+----
+NULL
+
+# Column reference in IN
+query T rowsort
+SELECT i IN (i + 1) FROM test
+----
+false
+false
+NULL
+
+query T rowsort
+SELECT i NOT IN (i + 1) FROM test
+----
+true
+true
+NULL
+
+query T rowsort
+SELECT s IN (CONCAT(s, 'world')) FROM test
+----
+false
+false
+NULL
+
+query T rowsort
+SELECT d IN (d + INTERVAL 1 DAYS) FROM test
+----
+false
+false
+NULL
+
+# Case clause with IN
+query T rowsort
+SELECT CASE WHEN i IN (1) THEN 'a' ELSE 'b' END FROM test
+----
+a
+b
+b
+
+query T rowsort
+SELECT CASE WHEN s IN ('hello') THEN 'a' ELSE 'b' END FROM test
+----
+a
+b
+b
+
+query T rowsort
+SELECT CASE WHEN d IN (TIMESTAMP '2022-02-01 10:30:28') THEN 'a' ELSE 'b' END 
FROM test
+----
+a
+b
+b
+
+# When clause with IN
+query I rowsort
+SELECT i FROM test WHERE 1 IN (1)
+----
+1
+2
+NULL
+
+query I rowsort
+SELECT i FROM test WHERE 'hello' IN ('hello')
+----
+1
+2
+NULL
+
+query I rowsort
+SELECT i FROM test WHERE TIMESTAMP '2022-02-01 10:30:28' IN (TIMESTAMP 
'2022-02-01 10:30:28')
+----
+1
+2
+NULL
+
+query I
+SELECT i FROM test WHERE i IN (1)
+----
+1
+
+query I
+SELECT i FROM test WHERE i NOT IN (1)
+----
+2
+
+query I rowsort
+SELECT i FROM test WHERE s IN ('hello')
+----
+1
+
+query I rowsort
+SELECT i FROM test WHERE d IN (TIMESTAMP '2022-02-01 10:30:28')
+----
+1
+
+query T
+SELECT * FROM test WHERE i IN (NULL)
+----
+
+query T rowsort
+SELECT * FROM test WHERE i NOT IN (NULL)
+----
+
+# Scalar subquery
+query T rowsort
+SELECT 1 IN (SELECT 1)
+----
+true
+
+query T
+SELECT 1 NOT IN (SELECT 1)
+----
+false
+
+query T
+SELECT NULL IN (SELECT 1)
+----
+null
+
+# Row value constructions
+query T
+SELECT (1, 'hello', TIMESTAMP '2022-02-01 10:30:28') IN ((1, 'hello', 
TIMESTAMP '2022-02-01 10:30:28'));
+----
+true
+
+query T
+SELECT (1, 'hello') IN ((1, 'world'));
+----
+false
+
+skipif ignite3
+# Ignored: https://issues.apache.org/jira/browse/IGNITE-22014
+query T
+SELECT (1, 'hello') IN ((1, NULL));
+----
+NULL
+
+query T
+SELECT (1, 'hello') NOT IN ((1, 'hello'));
+----
+false
+
+skipif ignite3
+# Ignored: https://issues.apache.org/jira/browse/IGNITE-22014
+query T
+SELECT (1, NULL) IN ((1, NULL));
+----
+null

Reply via email to