Changeset: df584735e3a3 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/df584735e3a3 Modified Files: sql/server/rel_select.c sql/test/BugTracker-2024/Tests/groupby-select1-Bug-7472.test Branch: Dec2023 Log Message:
Don't do group by expression matching when the group by expression has freevars. This solves bug #7472 diffs (23 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 @@ -4594,7 +4594,7 @@ rel_groupings(sql_query *query, sql_rel if (e->type != e_column) { /* store group by expressions in the stack */ if (is_sql_group_totals(f)) return sql_error(sql, 02, SQLSTATE(42000) "GROUP BY: grouping expressions not possible with ROLLUP, CUBE and GROUPING SETS"); - if (!frame_push_groupby_expression(sql, grp, e)) + if (!exp_has_rel(e) && !frame_push_groupby_expression(sql, grp, e)) return NULL; } list_append(next_tuple, e); diff --git a/sql/test/BugTracker-2024/Tests/groupby-select1-Bug-7472.test b/sql/test/BugTracker-2024/Tests/groupby-select1-Bug-7472.test --- a/sql/test/BugTracker-2024/Tests/groupby-select1-Bug-7472.test +++ b/sql/test/BugTracker-2024/Tests/groupby-select1-Bug-7472.test @@ -3,7 +3,6 @@ SELECT ( WITH x AS ( SELECT 1 x ) SELECT ---- NULL -skipif knownfail query I nosort SELECT ( WITH x AS ( SELECT 1 x ) SELECT 1 FROM ( x NATURAL JOIN x ) WHERE x NOT IN ( SELECT CASE WHEN x THEN ( SELECT 1 ) END GROUP BY ( SELECT 1 ) ) ) ---- _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org