Changeset: 25824e08675f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/25824e08675f
Modified Files:
sql/server/rel_dump.c
sql/test/SQLancer/Tests/sqlancer19.SQL.py
Branch: default
Log Message:
Do output function type checks for 1 and 2 argument functions
diffs (37 lines):
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -1392,7 +1392,8 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re
res->digits = t->digits;
res->scale = t->scale;
- }
+ } else if (!f->func->vararg &&
!(exps = check_arguments_and_find_largest_any_type(sql, lrel, exps, f, 0)))
+ return NULL;
} else if (list_length(exps) == 2) {
sql_exp *l = exps->h->data;
sql_exp *r =
exps->h->next->data;
@@ -1435,7 +1436,8 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re
} else {
res->digits = 0;
}
- }
+ } else if (!f->func->vararg &&
!(exps = check_arguments_and_find_largest_any_type(sql, lrel, exps, f, 0)))
+ return NULL;
} else if (list_length(exps) > 2) {
if (!f->func->vararg && !(exps
= check_arguments_and_find_largest_any_type(sql, lrel, exps, f, 0)))
return NULL;
diff --git a/sql/test/SQLancer/Tests/sqlancer19.SQL.py
b/sql/test/SQLancer/Tests/sqlancer19.SQL.py
--- a/sql/test/SQLancer/Tests/sqlancer19.SQL.py
+++ b/sql/test/SQLancer/Tests/sqlancer19.SQL.py
@@ -151,6 +151,10 @@ with SQLTestCase() as cli:
.assertSucceeded().assertDataResultMatch([])
cli.execute("SELECT 2 FROM rt3 WHERE (rt3.c0 BETWEEN rt3.c0 AND rt3.c0) IS
NULL;") \
.assertSucceeded().assertDataResultMatch([])
+ cli.execute("SELECT upper(count(*)) FROM t3;") \
+ .assertSucceeded().assertDataResultMatch([("6",)])
+ cli.execute("SELECT upper(count(*)) FROM rt3;") \
+ .assertSucceeded().assertDataResultMatch([("6",)])
cli.execute("""
CREATE FUNCTION testremote(a int) RETURNS INT
BEGIN
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list