Changeset: 78d9623081b9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/78d9623081b9
Modified Files:
        sql/server/rel_select.c
        sql/test/SQLancer/Tests/sqlancer14.test
Branch: Jul2021
Log Message:

I forgot to disable the exists operator (uses subquery) on merge statements and 
procedure calls


diffs (34 lines):

diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -1896,6 +1896,8 @@ rel_exists_exp(sql_query *query, sql_rel
        mvc *sql = query->sql;
        sql_rel *sq = NULL;
 
+       if (is_psm_call(f) || is_sql_merge(f))
+               return sql_error(sql, 02, SQLSTATE(42000) "%s: subqueries not 
supported inside %s", is_psm_call(f) ? "CALL" : "MERGE", is_psm_call(f) ? "CALL 
statements" : "MERGE conditions");
        if (rel)
                query_push_outer(query, rel, f);
        sq = rel_subquery(query, NULL, sc->data.sym, ek);
diff --git a/sql/test/SQLancer/Tests/sqlancer14.test 
b/sql/test/SQLancer/Tests/sqlancer14.test
--- a/sql/test/SQLancer/Tests/sqlancer14.test
+++ b/sql/test/SQLancer/Tests/sqlancer14.test
@@ -713,3 +713,18 @@ True
 
 statement ok
 ROLLBACK
+
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE "t1" ("c0" VARCHAR(64) NOT NULL,"c1" INT NOT NULL,"c3" REAL NOT 
NULL,"c5" REAL)
+
+statement ok
+CREATE TABLE "t2" ("c1" INTERVAL MONTH NOT NULL,"c3" VARCHAR(55) NOT NULL,"c4" 
DOUBLE NOT NULL, CONSTRAINT "t2_c1_pkey" PRIMARY KEY ("c1"))
+
+statement error MERGE: subqueries not supported inside MERGE conditions
+merge into t2 using (select * from t1) as t1 on exists (select 1) when matched 
then delete
+
+statement ok
+ROLLBACK
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to