Changeset: fe3f49abd7c2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/fe3f49abd7c2
Modified Files:
sql/server/rel_select.c
sql/test/SQLancer/Tests/sqlancer23.test
Branch: default
Log Message:
Missing defensive lines
diffs (49 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
@@ -3769,7 +3769,7 @@ static sql_exp *
if (a) {
list *nexps = NULL;
- if (!(nexps =
check_arguments_and_find_largest_any_type(sql, *rel, exps, a, 0))) {
+ if (!(nexps =
check_arguments_and_find_largest_any_type(sql, rel ? *rel : NULL, exps, a, 0)))
{
a = NULL;
/* reset error */
sql->session->status = 0;
@@ -3794,7 +3794,7 @@ static sql_exp *
sql->errstr[0] = '\0';
}
a = NULL;
- if (rel_convert_types(sql, *rel, *rel, &l, &r, 1/*fix
scale*/, type_equal) >= 0) {
+ if (rel_convert_types(sql, rel ? *rel : NULL, rel ?
*rel : NULL, &l, &r, 1/*fix scale*/, type_equal) >= 0) {
list *tps = sa_list(sql->sa);
t1 = exp_subtype(l);
@@ -3839,7 +3839,7 @@ static sql_exp *
a = sql_bind_func_(sql, sname, aname,
exp_types(sql->sa, nexps), F_AGGR, false);
if (a) {
- if (!(nexps =
check_arguments_and_find_largest_any_type(sql, *rel, exps, a, 0))) {
+ if (!(nexps =
check_arguments_and_find_largest_any_type(sql, rel ? *rel : NULL, exps, a, 0)))
{
a = NULL;
/* reset error */
sql->session->status = 0;
@@ -3868,7 +3868,7 @@ static sql_exp *
list *nexps = NULL;
sql_subfunc *sf = (sql_subfunc *) n->data;
- if (!list_empty(exps) && !(nexps =
check_arguments_and_find_largest_any_type(sql, *rel, exps, sf, 0))) {
+ if (!list_empty(exps) && !(nexps =
check_arguments_and_find_largest_any_type(sql, rel ? *rel : NULL, exps, sf,
0))) {
/* reset error */
sql->session->status = 0;
sql->errstr[0] = '\0';
diff --git a/sql/test/SQLancer/Tests/sqlancer23.test
b/sql/test/SQLancer/Tests/sqlancer23.test
--- a/sql/test/SQLancer/Tests/sqlancer23.test
+++ b/sql/test/SQLancer/Tests/sqlancer23.test
@@ -232,3 +232,6 @@ SELECT (SELECT 1 FROM (SELECT 1) x(x) HA
statement error 42000!MIN: aggregate functions cannot be nested
SELECT (SELECT min(min(x.x + y.y)) FROM (SELECT 1) x(x)) FROM (SELECT 1) y(y)
+
+statement error 42000!SELECT: cannot use non GROUP BY column 'x.x' in query
results without an aggregate function
+SELECT (VALUES (prod(x.x - 1)), (x.x)) FROM (VALUES (1), (0.058128458)) x(x)
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]