Changeset: 0561967980d5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0561967980d5
Added Files:
sql/test/prepare/Tests/subquery_prepare.SQL.py
sql/test/prepare/Tests/subquery_prepare.sql
sql/test/prepare/Tests/subquery_prepare.stable.err
sql/test/prepare/Tests/subquery_prepare.stable.out
Modified Files:
sql/test/prepare/Tests/All
sql/test/subquery/Tests/subquery4.test
Branch: mtest
Log Message:
fix sql/test/subquery/Tests/subquery4
diffs (114 lines):
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
@@ -24,3 +24,4 @@ prepare_decimal_float.SF-1675795
decimal_prepare.SF-1655818
bind_with_cast.SF-1720934
sqlancer_prepare
+subquery_prepare
diff --git a/sql/test/prepare/Tests/subquery_prepare.SQL.py
b/sql/test/prepare/Tests/subquery_prepare.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/prepare/Tests/subquery_prepare.SQL.py
@@ -0,0 +1,9 @@
+from MonetDBtesting.sqltest import SQLTestCase
+
+with SQLTestCase() as tc:
+ # optional or default connection
+ tc.connect()
+ with open('subquery_prepare.sql') as f:
+ tc.execute(query=None, client='mclient', stdin=f)\
+ .assertMatchStableOut(fout='subquery_prepare.stable.out')\
+ .assertMatchStableError(ferr='subquery_prepare.stable.err')
diff --git a/sql/test/prepare/Tests/subquery_prepare.sql
b/sql/test/prepare/Tests/subquery_prepare.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/prepare/Tests/subquery_prepare.sql
@@ -0,0 +1,16 @@
+CREATE TABLE another_T (col1 INT, col2 INT, col3 INT, col4 INT, col5 INT, col6
INT, col7 INT, col8 INT);
+INSERT INTO another_T VALUES (1,2,3,4,5,6,7,8), (11,22,33,44,55,66,77,88),
(111,222,333,444,555,666,777,888), (1111,2222,3333,4444,5555,6666,7777,8888);
+CREATE FUNCTION evilfunction(input INT) RETURNS TABLE (outt INT) BEGIN RETURN
TABLE(SELECT input); END;
+CREATE FUNCTION evilfunction(input1 INT, input2 INT) RETURNS TABLE (outt INT)
BEGIN RETURN TABLE(SELECT input1 + input2); END;
+
+PREPARE SELECT
+ (SELECT ? FROM evilfunction((SELECT 1)))
+FROM another_T;
+
+PREPARE SELECT
+ (SELECT 1 FROM evilfunction((SELECT ?)))
+FROM another_T;
+
+PREPARE SELECT
+ (SELECT 1 FROM evilfunction((SELECT ?, ?)))
+FROM another_T;
diff --git a/sql/test/prepare/Tests/subquery_prepare.stable.err
b/sql/test/prepare/Tests/subquery_prepare.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/prepare/Tests/subquery_prepare.stable.err
@@ -0,0 +1,6 @@
+MAPI = (monetdb) /var/tmp/mtest-938108/.s.monetdb.30716
+QUERY = PREPARE SELECT
+ (SELECT ? FROM evilfunction((SELECT 1)))
+ FROM another_T;
+ERROR = !Could not determine type for argument number 1
+CODE = 42000
diff --git a/sql/test/prepare/Tests/subquery_prepare.stable.out
b/sql/test/prepare/Tests/subquery_prepare.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/prepare/Tests/subquery_prepare.stable.out
@@ -0,0 +1,30 @@
+#CREATE TABLE another_T (col1 INT, col2 INT, col3 INT, col4 INT, col5 INT,
col6 INT, col7 INT, col8 INT);
+#INSERT INTO another_T VALUES (1,2,3,4,5,6,7,8), (11,22,33,44,55,66,77,88),
(111,222,333,444,555,666,777,888), (1111,2222,3333,4444,5555,6666,7777,8888);
+[ 4 ]
+#CREATE FUNCTION evilfunction(input INT) RETURNS TABLE (outt INT) BEGIN RETURN
TABLE(SELECT input); END;
+#CREATE FUNCTION evilfunction(input1 INT, input2 INT) RETURNS TABLE (outt INT)
BEGIN RETURN TABLE(SELECT input1 + input2); END;
+#PREPARE SELECT
+# (SELECT 1 FROM evilfunction((SELECT ?)))
+#FROM another_T;
+#PREPARE SELECT
+# (SELECT 1 FROM evilfunction((SELECT ?)))
+#FROM another_T;
+% .prepare, .prepare, .prepare, .prepare, .prepare,
.prepare # table_name
+% type, digits, scale, schema, table, column # name
+% varchar, int, int, str, str, str # type
+% 7, 2, 1, 0, 2, 2 # length
+[ "tinyint", 1, 0, "", "%3", "%3" ]
+[ "int", 32, 0, NULL, NULL, NULL ]
+#PREPARE SELECT
+# (SELECT 1 FROM evilfunction((SELECT ?, ?)))
+#FROM another_T;
+#PREPARE SELECT
+# (SELECT 1 FROM evilfunction((SELECT ?, ?)))
+#FROM another_T;
+% .prepare, .prepare, .prepare, .prepare, .prepare,
.prepare # table_name
+% type, digits, scale, schema, table, column # name
+% varchar, int, int, str, str, str # type
+% 7, 2, 1, 0, 2, 2 # length
+[ "tinyint", 1, 0, "", "%4", "%4" ]
+[ "int", 32, 0, NULL, NULL, NULL ]
+[ "int", 32, 0, NULL, NULL, NULL ]
diff --git a/sql/test/subquery/Tests/subquery4.test
b/sql/test/subquery/Tests/subquery4.test
--- a/sql/test/subquery/Tests/subquery4.test
+++ b/sql/test/subquery/Tests/subquery4.test
@@ -22,21 +22,6 @@ CREATE FUNCTION evilfunction(input INT)
statement ok
CREATE FUNCTION evilfunction(input1 INT, input2 INT) RETURNS TABLE (outt INT)
BEGIN RETURN TABLE(SELECT input1 + input2); END
-statement error
-PREPARE SELECT
- (SELECT ? FROM evilfunction((SELECT 1)))
-FROM another_T
-
-statement ok
-PREPARE SELECT
- (SELECT 1 FROM evilfunction((SELECT ?)))
-FROM another_T
-
-statement ok
-PREPARE SELECT
- (SELECT 1 FROM evilfunction((SELECT ?, ?)))
-FROM another_T
-
query I rowsort
SELECT
(SELECT i2.i FROM evilfunction(MIN(i1.i)) as i2(i))
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list