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 -- [email protected]
To unsubscribe send an email to [email protected]