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 -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org