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

Reply via email to