Changeset: c6ed61eb429f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c6ed61eb429f
Modified Files:
sql/server/rel_select.c
sql/test/prepare/Tests/sqlancer_prepare.sql
sql/test/prepare/Tests/sqlancer_prepare.stable.err
sql/test/prepare/Tests/sqlancer_prepare.stable.err.int128
Branch: Jul2021
Log Message:
Check for parameters while listing a n-ary function input types
diffs (44 lines):
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -525,7 +525,8 @@ nary_function_arg_types_2str(mvc *sql, l
int i = 0;
for (node *n = types->h; n && i < N; n = n->next) {
- char *tpe = sql_subtype_string(sql->ta, (sql_subtype *)
n->data);
+ sql_subtype *t = (sql_subtype *) n->data;
+ char *tpe = t ? sql_subtype_string(sql->ta, t) : "?";
if (arg_list) {
arg_list = sa_message(sql->ta, "%s, %s", arg_list, tpe);
diff --git a/sql/test/prepare/Tests/sqlancer_prepare.sql
b/sql/test/prepare/Tests/sqlancer_prepare.sql
--- a/sql/test/prepare/Tests/sqlancer_prepare.sql
+++ b/sql/test/prepare/Tests/sqlancer_prepare.sql
@@ -67,3 +67,5 @@ ROLLBACK;
PREPARE SELECT "quarter"(date '2021-01-02') IN ("second"(TIME '01:00:00'),
(select ? where true));
PREPARE SELECT "quarter"(date '2021-01-02') IN ("second"(TIME '01:00:00'),
(select ? where true));
+
+PREPARE SELECT 1 FROM idontexist(?,16); --error, function doesn't exist
diff --git a/sql/test/prepare/Tests/sqlancer_prepare.stable.err
b/sql/test/prepare/Tests/sqlancer_prepare.stable.err
--- a/sql/test/prepare/Tests/sqlancer_prepare.stable.err
+++ b/sql/test/prepare/Tests/sqlancer_prepare.stable.err
@@ -36,3 +36,7 @@ MAPI = (monetdb) /var/tmp/mtest-185783/
QUERY = prepare with cte0(c0) as (select 2) select 1 <> all(select 2 from
(values (1),(2)) as t1) from cte0 as l0cte0 order by ?; --error, cannot have a
parameter for order by column
ERROR = !Cannot have a parameter (?) for order by column
CODE = 42000
+MAPI = (monetdb) /var/tmp/mtest-185783/.s.monetdb.32587
+QUERY = PREPARE SELECT 1 FROM idontexist(?,16); --error, function doesn't exist
+ERROR = !SELECT: no such table returning function 'idontexist'(?, tinyint)
+CODE = 42000
diff --git a/sql/test/prepare/Tests/sqlancer_prepare.stable.err.int128
b/sql/test/prepare/Tests/sqlancer_prepare.stable.err.int128
--- a/sql/test/prepare/Tests/sqlancer_prepare.stable.err.int128
+++ b/sql/test/prepare/Tests/sqlancer_prepare.stable.err.int128
@@ -40,3 +40,7 @@ MAPI = (monetdb) /var/tmp/mtest-185783/
QUERY = prepare with cte0(c0) as (select 2) select 1 <> all(select 2 from
(values (1),(2)) as t1) from cte0 as l0cte0 order by ?; --error, cannot have a
parameter for order by column
ERROR = !Cannot have a parameter (?) for order by column
CODE = 42000
+MAPI = (monetdb) /var/tmp/mtest-185783/.s.monetdb.32587
+QUERY = PREPARE SELECT 1 FROM idontexist(?,16); --error, function doesn't exist
+ERROR = !SELECT: no such table returning function 'idontexist'(?, tinyint)
+CODE = 42000
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list