Changeset: 47777cf64530 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=47777cf64530
Modified Files:
        sql/backends/monet5/sql.c
        sql/test/SQLancer/Tests/sqlancer05.sql
        sql/test/SQLancer/Tests/sqlancer05.stable.err
        sql/test/SQLancer/Tests/sqlancer05.stable.out
Branch: Oct2020
Log Message:

Making SQLancer happy. Disallow vaccuming on non persistent tables


diffs (76 lines):

diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -4080,6 +4080,9 @@ vacuum(Client cntxt, MalBlkPtr mb, MalSt
                throw(SQL, name, SQLSTATE(42000) "%s not allowed on tables with 
indices", name + 4);
        if (t->system)
                throw(SQL, name, SQLSTATE(42000) "%s not allowed on system 
tables", name + 4);
+       if (!isTable(t))
+               throw(SQL, name, SQLSTATE(42000) "%s: %s '%s' is not 
persistent", name + 4, 
+                         TABLE_TYPE_DESCRIPTION(t->type, t->properties), 
t->base.name);
 
        if (has_snapshots(m->session->tr))
                throw(SQL, name, SQLSTATE(42000) "%s not allowed on snapshots", 
name + 4);
diff --git a/sql/test/SQLancer/Tests/sqlancer05.sql 
b/sql/test/SQLancer/Tests/sqlancer05.sql
--- a/sql/test/SQLancer/Tests/sqlancer05.sql
+++ b/sql/test/SQLancer/Tests/sqlancer05.sql
@@ -268,3 +268,9 @@ SELECT t1.c0 FROM t1 WHERE t1.c0 NOT ILI
 SELECT t1.c0 NOT ILIKE t1.c0 FROM t1;
        --14 * false
 ROLLBACK;
+
+START TRANSACTION;
+CREATE TABLE "sys"."t0" ("c0" INTERVAL MONTH,"c1" INTERVAL SECOND);
+create view v0(c0) as (select all t0.c1 from t0);
+CALL sys.reuse('sys', 'v0'); --error not persistent
+ROLLBACK;
diff --git a/sql/test/SQLancer/Tests/sqlancer05.stable.err 
b/sql/test/SQLancer/Tests/sqlancer05.stable.err
--- a/sql/test/SQLancer/Tests/sqlancer05.stable.err
+++ b/sql/test/SQLancer/Tests/sqlancer05.stable.err
@@ -32,6 +32,10 @@ MAPI  = (monetdb) /var/tmp/mtest-533187/
 QUERY = select sub0.c0 from (select 1 as c0, 2 as c0) as sub0;
 ERROR = !SELECT: identifier 'sub0.c0' ambiguous
 CODE  = 42000
+MAPI  = (monetdb) /var/tmp/mtest-15258/.s.monetdb.36565
+QUERY = CALL sys.reuse('sys', 'v0'); --error not persistent
+ERROR = !reuse: VIEW 'v0' is not persistent
+CODE  = 42000
 
 # 12:00:38 >  
 # 12:00:38 >  "Done."
diff --git a/sql/test/SQLancer/Tests/sqlancer05.stable.out 
b/sql/test/SQLancer/Tests/sqlancer05.stable.out
--- a/sql/test/SQLancer/Tests/sqlancer05.stable.out
+++ b/sql/test/SQLancer/Tests/sqlancer05.stable.out
@@ -298,6 +298,32 @@ stdout of test 'sqlancer05` in directory
 % 1 # length
 [ 4    ]
 #ROLLBACK;
+#START TRANSACTION;
+#CREATE TABLE "sys"."t1" (
+#      "c0" CHAR(420)     NOT NULL,
+#      CONSTRAINT "t1_c0_pkey" PRIMARY KEY ("c0")
+#);
+#COPY 14 RECORDS INTO "sys"."t1" FROM stdin USING DELIMITERS E'\t',E'\n','"';
+#"-1284014837"
+#"R/<"
+#""
+#"s2"
+#")L"
+#"-1637493938"
+#"0.7778392099491236"
+#"w"
+#"-\\h"
+#"d"
+#"mfvgds&o"
+#"449949101"
+#"f8i8c"
+#"?"
+[ 14   ]
+#ROLLBACK;
+#START TRANSACTION;
+#CREATE TABLE "sys"."t0" ("c0" INTERVAL MONTH,"c1" INTERVAL SECOND);
+#create view v0(c0) as (select all t0.c1 from t0);
+#ROLLBACK;
 
 # 12:00:38 >  
 # 12:00:38 >  "Done."
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to