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