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 -- [email protected]
To unsubscribe send an email to [email protected]