You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2024/05/21 16:25:15 UTC

(ignite-3) branch ignite-21983 created (now 607529f94b)

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

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


      at 607529f94b wip

This branch includes the following new commits:

     new 607529f94b wip

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(ignite-3) 01/01: wip

Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 607529f94b1572a49b398ec9354b21436e65f643
Author: amashenkov <an...@gmail.com>
AuthorDate: Tue May 21 19:23:17 2024 +0300

    wip
---
 .../sql/cast/test_boolean_cast.test                |   2 +-
 .../sql/cast/test_boolean_cast.test_ignore         |   2 +-
 .../sql/types/boolean/test_boolean_type.test       | 120 +++++++++++++++++++++
 .../sql/types/null/test_boolean_null.test          |   6 +-
 4 files changed, 125 insertions(+), 5 deletions(-)

diff --git a/modules/sql-engine/src/integrationTest/sql/cast/test_boolean_cast.test b/modules/sql-engine/src/integrationTest/sql/cast/test_boolean_cast.test
index 05f24475c4..6aa541a340 100644
--- a/modules/sql-engine/src/integrationTest/sql/cast/test_boolean_cast.test
+++ b/modules/sql-engine/src/integrationTest/sql/cast/test_boolean_cast.test
@@ -1,5 +1,5 @@
 # name: test/sql/cast/test_boolean_cast.test
-# description: Test boolean casts
+# description: SQL feature T031(BOOLEAN data type). Cast operator.
 # group: [cast]
 # Ignored with https://issues.apache.org/jira/browse/IGNITE-19331
 
diff --git a/modules/sql-engine/src/integrationTest/sql/cast/test_boolean_cast.test_ignore b/modules/sql-engine/src/integrationTest/sql/cast/test_boolean_cast.test_ignore
index 9a90c2a5cb..3827986b3a 100644
--- a/modules/sql-engine/src/integrationTest/sql/cast/test_boolean_cast.test_ignore
+++ b/modules/sql-engine/src/integrationTest/sql/cast/test_boolean_cast.test_ignore
@@ -1,5 +1,5 @@
 # name: test/sql/cast/test_boolean_cast.test
-# description: Test boolean casts
+# description: SQL feature T031(BOOLEAN data type). Cast operator.
 # group: [cast]
 # Ignored with https://issues.apache.org/jira/browse/IGNITE-19331
 
diff --git a/modules/sql-engine/src/integrationTest/sql/types/boolean/test_boolean_type.test b/modules/sql-engine/src/integrationTest/sql/types/boolean/test_boolean_type.test
new file mode 100644
index 0000000000..0b32409abb
--- /dev/null
+++ b/modules/sql-engine/src/integrationTest/sql/types/boolean/test_boolean_type.test
@@ -0,0 +1,120 @@
+# name: test/sql/cast/test_boolean_type.test
+# description: SQL feature T031(BOOLEAN data type)
+# group: [cast]
+
+statement ok
+CREATE TABLE test (a INTEGER, b BOOLEAN);
+
+# Specification does not make a distinction between the null value of the boolean data type and the truth value Unknown.
+# They may be used interchangeably to mean exactly the same thing.
+# <truth value> ::=
+#      TRUE
+#    | FALSE
+#    | UNKNOWN
+statement ok
+INSERT INTO test VALUES (1, TRUE), (2, FALSE), (3, NULL);
+
+# IS [NOT] (TRUE|FALSE|UNKNOWN)
+query TT
+SELECT b IS TRUE, b IS NOT TRUE FROM test ORDER BY a;
+----
+true	false
+false	true
+false	true
+
+query TT
+SELECT b IS FALSE, b IS NOT FALSE FROM test ORDER BY a;
+----
+false	true
+true	false
+false	true
+
+skipif ignite3
+# Ignored: lack of supporting UNKNOWN keyword
+query TT
+SELECT b IS UNKNOWN, b IS NOT UNKNOWN FROM test ORDER BY a;
+----
+false	true
+false	true
+true	false
+
+# IS [NOT] NULL
+query TT
+SELECT b IS NULL, b IS NOT NULL FROM test ORDER BY a;
+----
+false	true
+false	true
+true	false
+
+
+# Comparison to null is always unknown
+query T
+SELECT a FROM test WHERE b = NULL ORDER BY a;
+----
+
+# The correct way to search NULLs
+query T
+SELECT a FROM test WHERE b IS NULL ORDER BY a;
+----
+3
+
+skipif ignite3
+# Ignored: lack of supporting UNKNOWN keyword
+query T
+SELECT a FROM test WHERE b IS UNKNOWN ORDER BY a;
+----
+3
+
+# P or not P is not always true.
+# The result of the comparison col = null is UNKNOWN in both cases;
+# NOT(UNKNOWN) is also UNKNOWN;
+# OR only evaluates as true if one operand is true.
+query T
+SELECT a FROM test WHERE (b = NULL) OR NOT (b = NULL) ORDER BY a;
+----
+
+# NOT IN (NULL, …) is never true
+query T
+SELECT a FROM test WHERE b NOT IN (NULL, TRUE) ORDER BY a;
+----
+
+query T
+SELECT a FROM test WHERE b NOT IN (NULL, FALSE) ORDER BY a;
+----
+
+
+# AND
+skipif ignite3
+# Ignored: lack of supporting UNKNOWN keyword
+query TTT
+SELECT b AND TRUE, b AND FALSE, b AND UNKNOWN FROM test ORDER BY a;
+----
+true  false null
+false false false
+true false null
+
+
+query TTT
+SELECT b AND TRUE, b AND FALSE, b AND (1 = NULL) FROM test ORDER BY a;
+----
+true	false	null
+false	false	false
+null	false	null
+
+
+# OR
+skipif ignite3
+# Ignored: lack of supporting UNKNOWN keyword
+query TTT
+SELECT b OR TRUE, b OR FALSE, b OR UNKNOWN FROM test ORDER BY a;
+----
+true	true	true
+true	false	null
+true	null	null
+
+query TTT
+SELECT b OR TRUE, b OR FALSE, b OR NULL FROM test ORDER BY a;
+----
+true	true	true
+true	false	null
+true	null	null
diff --git a/modules/sql-engine/src/integrationTest/sql/types/null/test_boolean_null.test b/modules/sql-engine/src/integrationTest/sql/types/null/test_boolean_null.test
index 0f39ce1fa5..8c34751533 100644
--- a/modules/sql-engine/src/integrationTest/sql/types/null/test_boolean_null.test
+++ b/modules/sql-engine/src/integrationTest/sql/types/null/test_boolean_null.test
@@ -1,5 +1,5 @@
 # name: test/sql/types/null/test_boolean_null.test
-# description: Booleans and NULLs
+# description: SQL feature T031(BOOLEAN data type). Booleans and NULLs
 # group: [null]
 
 statement ok
@@ -31,6 +31,6 @@ true	false	false	true
 
 # Comparisions
 query TTTT
-SELECT NULL = NULL, NULL <> NULL, 42 = NULL, 42 <> NULL
+SELECT NULL = NULL, NULL <> NULL, 42 = NULL, 42 <> NULL, (NULL = 1) OR (1 = 1), (NULL = 1) AND (0 = 1)
 ----
-NULL	NULL	NULL	NULL
+NULL	NULL	NULL	NULL	TRUE	FALSE