Changeset: 90d39ff168f9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/90d39ff168f9
Modified Files:
        sql/server/rel_optimize_proj.c
        sql/server/rel_select.c
Branch: default
Log Message:

Merge with Dec2023 branch.


diffs (34 lines):

diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -1781,6 +1781,8 @@ rel_groupby_cse(visitor *v, sql_rel *rel
                                        sql_exp *e1_in_exps = (e1->l && 
e1->alias.rname == e1->l && e1->alias.name == e1->r) ?
                                                exps_bind_column2(rel->exps, 
e1->l, e1->r, NULL) :
                                                exps_bind_column(rel->exps, 
e1->alias.name, NULL, NULL, 0);
+                                       if (!e1_in_exps)
+                                               continue;
                                        assert(e1_in_exps);
 
                                        /* write e2 as an e1 alias since the 
expressions are the same */
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
@@ -3299,6 +3299,8 @@ rel_nop(sql_query *query, sql_rel **rel,
        if (!sname && strcmp(fname, "field") == 0) { /* map into join */
                if (err)
                        return NULL;
+               if (list_length(exps) < 2)
+                       return sql_error(sql, 02, SQLSTATE(42000) "Field 
function called with not enough arguments");
                sql_exp *le = exps->h->data;
                set_freevar(le, 1);
                list_remove_data(exps, NULL, le);
diff --git a/sql/test/BugTracker-2024/Tests/field-arg-error-Bug-7506.test 
b/sql/test/BugTracker-2024/Tests/field-arg-error-Bug-7506.test
--- a/sql/test/BugTracker-2024/Tests/field-arg-error-Bug-7506.test
+++ b/sql/test/BugTracker-2024/Tests/field-arg-error-Bug-7506.test
@@ -1,2 +1,5 @@
-statement error
+statement error 42000!SELECT: identifier 'x' unknown
 SELECT FIELD(x, '', '', '', '', '', '', '', '', '', '', '', '', '')
+
+statement error 42000!Field function called with not enough arguments
+SELECT 
FIELD('fieldID99999999999999999999999999999999999999999999999999999999999999999999999')
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to