Changeset: ba2453b5de02 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ba2453b5de02
Added Files:
sql/test/prepare/Tests/sqlancer_prepare.SQL.py
sql/test/prepare/Tests/sqlancer_prepare.sql
sql/test/prepare/Tests/sqlancer_prepare.stable.err
sql/test/prepare/Tests/sqlancer_prepare.stable.out
Modified Files:
sql/test/SQLancer/Tests/sqlancer07.sql
sql/test/SQLancer/Tests/sqlancer07.test
sql/test/SQLancer/Tests/sqlancer08.sql
sql/test/SQLancer/Tests/sqlancer08.test
sql/test/prepare/Tests/All
Branch: mtest
Log Message:
moved sqlancer prepared statements to prapare folder
diffs (truncated from 406 to 300 lines):
diff --git a/sql/test/SQLancer/Tests/sqlancer07.sql
b/sql/test/SQLancer/Tests/sqlancer07.sql
--- a/sql/test/SQLancer/Tests/sqlancer07.sql
+++ b/sql/test/SQLancer/Tests/sqlancer07.sql
@@ -1,9 +1,3 @@
-START TRANSACTION;
-CREATE TABLE "t1" ("c0" DECIMAL(18,3),"c1" BINARY LARGE OBJECT NOT NULL,"c2"
DECIMAL(18,3),CONSTRAINT "t1_c1_unique" UNIQUE ("c1"));
-PREPARE SELECT DISTINCT (SELECT DISTINCT r'|m<v' FROM t1 WHERE ((t1.c0)<(?))
GROUP BY t1.c2, ?), ?, t1.c2 FROM t1 WHERE CAST(? AS BOOLEAN) LIMIT
2103332269785059850;
- -- Could not determine type for argument number 2
-ROLLBACK;
-
START TRANSACTION;
CREATE TABLE "t0"("c0" INTERVAL MONTH,"c1" INTERVAL SECOND);
CREATE TABLE "t1"("c0" INTERVAL MONTH,"c1" INTERVAL SECOND);
@@ -42,13 +36,6 @@ SELECT 0 <= ANY(SELECT CASE INTERVAL '2'
ROLLBACK;
START TRANSACTION;
-CREATE TABLE "t0" ("c0" BOOLEAN NOT NULL);
-CREATE TABLE "t1" ("c0" DECIMAL(18,3));
-CREATE TABLE "t2" ("c0" DECIMAL(18,3),"c2" DATE);
-PREPARE (SELECT DISTINCT t0.c0, INTERVAL '1734780053' SECOND FROM t0, t1)
UNION ALL (SELECT ?, ? FROM t2);
-ROLLBACK;
-
-START TRANSACTION;
CREATE TABLE "t0" ("c0" INTERVAL MONTH NOT NULL,CONSTRAINT "t0_c0_pkey"
PRIMARY KEY ("c0"),CONSTRAINT "t0_c0_unique" UNIQUE ("c0"),CONSTRAINT
"t0_c0_unique" UNIQUE ("c0"));
INSERT INTO "t0" VALUES (INTERVAL '2101098338' MONTH);
CREATE TABLE "t1" ("c0" INTERVAL MONTH,"c1" BOOLEAN);
@@ -59,14 +46,6 @@ SELECT CAST(t1.c1 AS INT) FROM t1, t0 RI
ROLLBACK;
START TRANSACTION;
-CREATE TABLE "t0" ("c0" DATE,"c2" INTEGER);
-CREATE TABLE "t1" ("c1" TIMESTAMP,"c2" INTEGER);
-CREATE TABLE "t2" ("c0" DATE,"c1" TIMESTAMP,"c2" INTEGER);
-PREPARE (SELECT ?, t1.c2 FROM t1, t0 WHERE (SELECT DISTINCT (t1.c2) BETWEEN
ASYMMETRIC (?) AND (t1.c2) FROM t1 CROSS JOIN
-((SELECT DISTINCT 6.9089063E7, TRUE FROM t2 WHERE TRUE) EXCEPT (SELECT ALL
0.4, FALSE FROM t2, t1 INNER JOIN t0 ON FALSE)) AS sub0 WHERE FALSE)) INTERSECT
DISTINCT (SELECT DISTINCT 0.2, ? FROM t0, t2 WHERE ?);
-ROLLBACK;
-
-START TRANSACTION;
CREATE TABLE "t0" ("c0" VARCHAR(156) NOT NULL);
CREATE TABLE "t1" ("c0" VARCHAR(156) NOT NULL);
select 1 from t0, t1 inner join t0 on true;
@@ -160,18 +139,6 @@ DROP TABLE t2;
SELECT 1 WHERE (SELECT 1 WHERE FALSE) IS NULL;
-- 1
-PREPARE SELECT 1 WHERE greatest(true, ?);
- -- ? should be set to boolean
-
-PREPARE SELECT (SELECT ? FROM (select 1) as v1(c0));
- -- cannot determine parameter type
-
-PREPARE SELECT ?, CASE 'weHtU' WHEN (values (?)) THEN 'G' END;
- -- cannot determine parameter type
-
-PREPARE SELECT DISTINCT ?, CAST(CASE least(?, r'weHtU') WHEN ? THEN ? WHEN ?
THEN ? WHEN (VALUES (?)) THEN r'G' ELSE ? END AS DATE) WHERE (?) IS NOT NULL
LIMIT 519007555986016405;
- -- cannot have a parameter for IS NOT NULL operator
-
START TRANSACTION;
CREATE TABLE "t0"("c0" INTEGER,"c1" DECIMAL(18,3));
INSERT INTO "t0" VALUES (-533312265, 0.254);
@@ -323,8 +290,4 @@ ROLLBACK;
SELECT CAST(((24829)+(((0.9767751031140547)*(0.7479400824095245)))) AS DOUBLE)
IS NULL;
-- error, overflow in conversion
-PREPARE SELECT (1 + CAST(l0t0.c0 AS BIGINT)) * scale_up(?, 2) FROM (select 1)
AS l0t0(c0);
-
-PREPARE SELECT DISTINCT ((((CAST(l0t0.c0 AS INT))-(CAST(? AS
BIGINT))))*(scale_up(?, ((-438139776)*(-813129345))))) FROM (select 1) AS
l0t0(c0);
-
select interval '1' month * cast(1 as bigint);
diff --git a/sql/test/SQLancer/Tests/sqlancer07.test
b/sql/test/SQLancer/Tests/sqlancer07.test
--- a/sql/test/SQLancer/Tests/sqlancer07.test
+++ b/sql/test/SQLancer/Tests/sqlancer07.test
@@ -1,15 +1,3 @@
-statement ok
-START TRANSACTION
-
-statement ok
-CREATE TABLE "t1" ("c0" DECIMAL(18,3),"c1" BINARY LARGE OBJECT NOT NULL,"c2"
DECIMAL(18,3),CONSTRAINT "t1_c1_unique" UNIQUE ("c1"))
-
-statement error
-PREPARE SELECT DISTINCT (SELECT DISTINCT r'|m<v' FROM t1 WHERE ((t1.c0)<(?))
GROUP BY t1.c2, ?), ?, t1.c2 FROM t1 WHERE CAST(? AS BOOLEAN) LIMIT
2103332269785059850
-
-statement ok
-ROLLBACK
-
statement ok
START TRANSACTION
@@ -95,24 +83,6 @@ statement ok
START TRANSACTION
statement ok
-CREATE TABLE "t0" ("c0" BOOLEAN NOT NULL)
-
-statement ok
-CREATE TABLE "t1" ("c0" DECIMAL(18,3))
-
-statement ok
-CREATE TABLE "t2" ("c0" DECIMAL(18,3),"c2" DATE)
-
-statement ok
-PREPARE (SELECT DISTINCT t0.c0, INTERVAL '1734780053' SECOND FROM t0, t1)
UNION ALL (SELECT ?, ? FROM t2)
-
-statement ok
-ROLLBACK
-
-statement ok
-START TRANSACTION
-
-statement ok
CREATE TABLE "t0" ("c0" INTERVAL MONTH NOT NULL,CONSTRAINT "t0_c0_pkey"
PRIMARY KEY ("c0"),CONSTRAINT "t0_c0_unique" UNIQUE ("c0"),CONSTRAINT
"t0_c0_unique" UNIQUE ("c0"))
statement ok
@@ -135,25 +105,6 @@ statement ok
START TRANSACTION
statement ok
-CREATE TABLE "t0" ("c0" DATE,"c2" INTEGER)
-
-statement ok
-CREATE TABLE "t1" ("c1" TIMESTAMP,"c2" INTEGER)
-
-statement ok
-CREATE TABLE "t2" ("c0" DATE,"c1" TIMESTAMP,"c2" INTEGER)
-
-statement ok
-PREPARE (SELECT ?, t1.c2 FROM t1, t0 WHERE (SELECT DISTINCT (t1.c2) BETWEEN
ASYMMETRIC (?) AND (t1.c2) FROM t1 CROSS JOIN
-((SELECT DISTINCT 6.9089063E7, TRUE FROM t2 WHERE TRUE) EXCEPT (SELECT ALL
0.4, FALSE FROM t2, t1 INNER JOIN t0 ON FALSE)) AS sub0 WHERE FALSE)) INTERSECT
DISTINCT (SELECT DISTINCT 0.2, ? FROM t0, t2 WHERE ?)
-
-statement ok
-ROLLBACK
-
-statement ok
-START TRANSACTION
-
-statement ok
CREATE TABLE "t0" ("c0" VARCHAR(156) NOT NULL)
statement ok
@@ -357,18 +308,6 @@ SELECT 1 WHERE (SELECT 1 WHERE FALSE) IS
1
statement ok
-PREPARE SELECT 1 WHERE greatest(true, ?)
-
-statement error
-PREPARE SELECT (SELECT ? FROM (select 1) as v1(c0))
-
-statement error
-PREPARE SELECT ?, CASE 'weHtU' WHEN (values (?)) THEN 'G' END
-
-statement error
-PREPARE SELECT DISTINCT ?, CAST(CASE least(?, r'weHtU') WHEN ? THEN ? WHEN ?
THEN ? WHEN (VALUES (?)) THEN r'G' ELSE ? END AS DATE) WHERE (?) IS NOT NULL
LIMIT 519007555986016405
-
-statement ok
START TRANSACTION
statement ok
@@ -702,12 +641,6 @@ SELECT CAST(((24829)+(((0.97677510311405
----
False
-statement ok
-PREPARE SELECT (1 + CAST(l0t0.c0 AS BIGINT)) * scale_up(?, 2) FROM (select 1)
AS l0t0(c0)
-
-statement ok
-PREPARE SELECT DISTINCT ((((CAST(l0t0.c0 AS INT))-(CAST(? AS
BIGINT))))*(scale_up(?, ((-438139776)*(-813129345))))) FROM (select 1) AS
l0t0(c0)
-
query T rowsort
select interval '1' month * cast(1 as bigint)
----
diff --git a/sql/test/SQLancer/Tests/sqlancer08.sql
b/sql/test/SQLancer/Tests/sqlancer08.sql
--- a/sql/test/SQLancer/Tests/sqlancer08.sql
+++ b/sql/test/SQLancer/Tests/sqlancer08.sql
@@ -145,10 +145,6 @@ DELETE FROM salesmart WHERE (((CAST(CAST
-- Delete all rows
ROLLBACK;
-PREPARE SELECT round(-'b', ?);
-PREPARE SELECT sql_max(+ (0.29353363282850464), round(- (sql_min('-Infinity',
?)), ?)) LIMIT 8535194086169274474;
-PREPARE VALUES (CAST(? >> 1.2 AS INTERVAL SECOND)), (interval '1' second); --
error, types decimal(2,1) and sec_interval(13,0) are not equal
-
START TRANSACTION;
CREATE TABLE "sys"."t2" ("tc2" INTERVAL DAY);
COPY 7 RECORDS INTO "sys"."t2" FROM stdin USING DELIMITERS E'\t',E'\n','"';
@@ -220,7 +216,4 @@ 94
select round(t2.tc0, 88) from t2;
ROLLBACK;
-PREPARE (SELECT DISTINCT ((CAST(- (CASE r'' WHEN r'tU1{D^㙝U' THEN 1739172851
WHEN ? THEN -1313600539 WHEN r'X(%4}' THEN NULL WHEN r')帘''舻CD' THEN 95 END)
AS BIGINT))&(least(- (-235253756), 64)))
-WHERE ((rtrim(r'Z'))LIKE(r'rK'))) UNION ALL (SELECT ALL ? WHERE
(scale_down(ifthenelse(TRUE, 18, ?), r'4')) IS NULL);
-
SELECT round(- (((-443710828)||(1616633099))), 789092170);
diff --git a/sql/test/SQLancer/Tests/sqlancer08.test
b/sql/test/SQLancer/Tests/sqlancer08.test
--- a/sql/test/SQLancer/Tests/sqlancer08.test
+++ b/sql/test/SQLancer/Tests/sqlancer08.test
@@ -288,15 +288,6 @@ statement ok
ROLLBACK
statement ok
-PREPARE SELECT round(-'b', ?)
-
-statement ok
-PREPARE SELECT sql_max(+ (0.29353363282850464), round(- (sql_min('-Infinity',
?)), ?)) LIMIT 8535194086169274474
-
-statement error
-PREPARE VALUES (CAST(? >> 1.2 AS INTERVAL SECOND)), (interval '1' second)
-
-statement ok
START TRANSACTION
statement ok
@@ -436,10 +427,6 @@ select round(t2.tc0, 88) from t2
statement ok
ROLLBACK
-statement ok
-PREPARE (SELECT DISTINCT ((CAST(- (CASE r'' WHEN r'tU1{D^㙝U' THEN 1739172851
WHEN ? THEN -1313600539 WHEN r'X(%4}' THEN NULL WHEN r')帘''舻CD' THEN 95 END)
AS BIGINT))&(least(- (-235253756), 64)))
-WHERE ((rtrim(r'Z'))LIKE(r'rK'))) UNION ALL (SELECT ALL ? WHERE
(scale_down(ifthenelse(TRUE, 18, ?), r'4')) IS NULL)
-
statement error
SELECT round(- (((-443710828)||(1616633099))), 789092170)
diff --git a/sql/test/prepare/Tests/All b/sql/test/prepare/Tests/All
--- a/sql/test/prepare/Tests/All
+++ b/sql/test/prepare/Tests/All
@@ -23,3 +23,4 @@ large_prepare_2.SF-1363729
prepare_decimal_float.SF-1675795
decimal_prepare.SF-1655818
bind_with_cast.SF-1720934
+sqlancer_prepare
diff --git a/sql/test/prepare/Tests/sqlancer_prepare.SQL.py
b/sql/test/prepare/Tests/sqlancer_prepare.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/prepare/Tests/sqlancer_prepare.SQL.py
@@ -0,0 +1,9 @@
+from MonetDBtesting.sqltest import SQLTestCase
+
+with SQLTestCase() as tc:
+ # optional or default connection
+ tc.connect()
+ with open('sqlancer_prepare.sql') as f:
+ tc.execute(query=None, client='mclient', stdin=f)\
+ .assertMatchStableOut(fout='sqlancer_prepare.stable.out')\
+ .assertMatchStableError(ferr='sqlancer_prepare.stable.err')
diff --git a/sql/test/prepare/Tests/sqlancer_prepare.sql
b/sql/test/prepare/Tests/sqlancer_prepare.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/prepare/Tests/sqlancer_prepare.sql
@@ -0,0 +1,43 @@
+START TRANSACTION;
+CREATE TABLE "t1" ("c0" DECIMAL(18,3),"c1" BINARY LARGE OBJECT NOT NULL,"c2"
DECIMAL(18,3),CONSTRAINT "t1_c1_unique" UNIQUE ("c1"));
+PREPARE SELECT DISTINCT (SELECT DISTINCT r'|m<v' FROM t1 WHERE ((t1.c0)<(?))
GROUP BY t1.c2, ?), ?, t1.c2 FROM t1 WHERE CAST(? AS BOOLEAN) LIMIT
2103332269785059850;
+ -- Could not determine type for argument number 2
+ROLLBACK;
+
+START TRANSACTION;
+CREATE TABLE "t0" ("c0" BOOLEAN NOT NULL);
+CREATE TABLE "t1" ("c0" DECIMAL(18,3));
+CREATE TABLE "t2" ("c0" DECIMAL(18,3),"c2" DATE);
+PREPARE (SELECT DISTINCT t0.c0, INTERVAL '1734780053' SECOND FROM t0, t1)
UNION ALL (SELECT ?, ? FROM t2);
+ROLLBACK;
+
+START TRANSACTION;
+CREATE TABLE "t0" ("c0" DATE,"c2" INTEGER);
+CREATE TABLE "t1" ("c1" TIMESTAMP,"c2" INTEGER);
+CREATE TABLE "t2" ("c0" DATE,"c1" TIMESTAMP,"c2" INTEGER);
+PREPARE (SELECT ?, t1.c2 FROM t1, t0 WHERE (SELECT DISTINCT (t1.c2) BETWEEN
ASYMMETRIC (?) AND (t1.c2) FROM t1 CROSS JOIN
+((SELECT DISTINCT 6.9089063E7, TRUE FROM t2 WHERE TRUE) EXCEPT (SELECT ALL
0.4, FALSE FROM t2, t1 INNER JOIN t0 ON FALSE)) AS sub0 WHERE FALSE)) INTERSECT
DISTINCT (SELECT DISTINCT 0.2, ? FROM t0, t2 WHERE ?);
+ROLLBACK;
+
+PREPARE SELECT 1 WHERE greatest(true, ?);
+ -- ? should be set to boolean
+
+PREPARE SELECT (SELECT ? FROM (select 1) as v1(c0));
+ -- cannot determine parameter type
+
+PREPARE SELECT ?, CASE 'weHtU' WHEN (values (?)) THEN 'G' END;
+ -- cannot determine parameter type
+
+PREPARE SELECT DISTINCT ?, CAST(CASE least(?, r'weHtU') WHEN ? THEN ? WHEN ?
THEN ? WHEN (VALUES (?)) THEN r'G' ELSE ? END AS DATE) WHERE (?) IS NOT NULL
LIMIT 519007555986016405;
+ -- cannot have a parameter for IS NOT NULL operator
+
+PREPARE SELECT (1 + CAST(l0t0.c0 AS BIGINT)) * scale_up(?, 2) FROM (select 1)
AS l0t0(c0);
+
+PREPARE SELECT DISTINCT ((((CAST(l0t0.c0 AS INT))-(CAST(? AS
BIGINT))))*(scale_up(?, ((-438139776)*(-813129345))))) FROM (select 1) AS
l0t0(c0);
+
+PREPARE SELECT round(-'b', ?);
+PREPARE SELECT sql_max(+ (0.29353363282850464), round(- (sql_min('-Infinity',
?)), ?)) LIMIT 8535194086169274474;
+PREPARE VALUES (CAST(? >> 1.2 AS INTERVAL SECOND)), (interval '1' second); --
error, types decimal(2,1) and sec_interval(13,0) are not equal
+
+PREPARE (SELECT DISTINCT ((CAST(- (CASE r'' WHEN r'tU1{D^㙝U' THEN 1739172851
WHEN ? THEN -1313600539 WHEN r'X(%4}' THEN NULL WHEN r')帘''舻CD' THEN 95 END)
AS BIGINT))&(least(- (-235253756), 64)))
+WHERE ((rtrim(r'Z'))LIKE(r'rK'))) UNION ALL (SELECT ALL ? WHERE
(scale_down(ifthenelse(TRUE, 18, ?), r'4')) IS NULL);
diff --git a/sql/test/prepare/Tests/sqlancer_prepare.stable.err
b/sql/test/prepare/Tests/sqlancer_prepare.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/prepare/Tests/sqlancer_prepare.stable.err
@@ -0,0 +1,28 @@
+MAPI = (monetdb) /var/tmp/mtest-918314/.s.monetdb.35583
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list