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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list