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

Reply via email to