Changeset: 1163f668b280 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/1163f668b280
Modified Files:
        sql/server/sql_parser.y
        sql/test/2024/Tests/distinct_from.test
Branch: distinct_from
Log Message:

fix DISTINCT FROM syntax


diffs (148 lines):

diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y
--- a/sql/server/sql_parser.y
+++ b/sql/server/sql_parser.y
@@ -3909,18 +3909,18 @@ comparison_predicate:
                  append_symbol(l, $5);
                  append_int(l, $3);
                  $$ = _symbol_create_list(SQL_COMPARE, l ); }
- |     pred_exp NOT DISTINCT FROM pred_exp
+ |     pred_exp IS NOT DISTINCT FROM pred_exp
+               { dlist *l = L();
+                 append_symbol(l, $1);
+                 append_string(l, sa_strdup(SA, "="));
+                 append_symbol(l, $6);
+                 append_int(l, 2);
+                 $$ = _symbol_create_list(SQL_COMPARE, l ); }
+ |     pred_exp IS DISTINCT FROM pred_exp
                { dlist *l = L();
                  append_symbol(l, $1);
                  append_string(l, sa_strdup(SA, "="));
                  append_symbol(l, $5);
-                 append_int(l, 2);
-                 $$ = _symbol_create_list(SQL_COMPARE, l ); }
- |     pred_exp DISTINCT FROM pred_exp
-               { dlist *l = L();
-                 append_symbol(l, $1);
-                 append_string(l, sa_strdup(SA, "="));
-                 append_symbol(l, $4);
                  append_int(l, 3);
                  $$ = _symbol_create_list(SQL_COMPARE, l ); }
  ;
diff --git a/sql/test/2024/Tests/distinct_from.test 
b/sql/test/2024/Tests/distinct_from.test
--- a/sql/test/2024/Tests/distinct_from.test
+++ b/sql/test/2024/Tests/distinct_from.test
@@ -3,69 +3,69 @@ create table foo(s) as values (10), (20)
 
 
 query I nosort
-SELECT 10 NOT DISTINCT FROM 20
+SELECT 10 IS NOT DISTINCT FROM 20
 ----
 0
 
 query I nosort
-SELECT 10 DISTINCT FROM 20
+SELECT 10 IS DISTINCT FROM 20
 ----
 1
 
 
 query I nosort
-SELECT 10 DISTINCT FROM NULL
+SELECT 10 IS DISTINCT FROM NULL
 ----
 1
 
 query I nosort
-SELECT NULL DISTINCT FROM 20
+SELECT NULL IS DISTINCT FROM 20
 ----
 1
 
 query I nosort
-SELECT 10 NOT DISTINCT FROM NULL
+SELECT 10 IS NOT DISTINCT FROM NULL
 ----
 0
 
 query I nosort
-SELECT NULL NOT DISTINCT FROM 20
+SELECT NULL IS NOT DISTINCT FROM 20
 ----
 0
 
 query I nosort
-SELECT NULL DISTINCT FROM NULL
+SELECT NULL IS DISTINCT FROM NULL
 ----
 0
 
 query I nosort
-SELECT NULL NOT DISTINCT FROM NULL
+SELECT NULL IS NOT DISTINCT FROM NULL
 ----
 1
 
 query I nosort
-select s NOT DISTINCT FROM 20 FROM foo;
+select s IS NOT DISTINCT FROM 20 FROM foo;
 ----
 0
 1
 0
 
 query I nosort
-select s DISTINCT FROM 20 FROM foo;
+select s IS DISTINCT FROM 20 FROM foo;
 ----
 1
 0
 1
 
 query I nosort
-select s NOT DISTINCT FROM NULL FROM foo;
+select s IS NOT DISTINCT FROM NULL FROM foo;
 ----
 0
 0
 1
 
 query I nosort
-select s DISTINCT FROM NULL FROM foo;
+select s IS DISTINCT FROM NULL FROM foo;
 ----
 1
 1
@@ -73,28 +73,28 @@ 0
 
 
 query I nosort
-select 20 NOT DISTINCT FROM s FROM foo;
+select 20 IS NOT DISTINCT FROM s FROM foo;
 ----
 0
 1
 0
 
 query I nosort
-select 20 DISTINCT FROM s FROM foo;
+select 20 IS DISTINCT FROM s FROM foo;
 ----
 1
 0
 1
 
 query I nosort
-select NULL NOT DISTINCT FROM s FROM foo;
+select NULL IS NOT DISTINCT FROM s FROM foo;
 ----
 0
 0
 1
 
 query I nosort
-select NULL DISTINCT FROM s FROM foo;
+select NULL IS DISTINCT FROM s FROM foo;
 ----
 1
 1
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to