Changeset: 42d8151a0e62 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/42d8151a0e62
Added Files:
sql/test/BugTracker-2026/Tests/7867-push-groupby-down.test
Modified Files:
sql/server/rel_optimize_proj.c
sql/test/BugTracker-2026/Tests/All
Branch: Dec2025
Log Message:
fixed check for group by push down (ie do the aggregate still reach the input
arguments),
this solves issue #7867
diffs (57 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
@@ -2195,7 +2195,7 @@ gen_push_groupby_down(mvc *sql, sql_rel
list *args = ce->l;
/* check args are part of left/right */
- if (!list_empty(args) && rel_has_exps(cl, args,
false) == 0)
+ if (!list_empty(args) && rel_has_exps(cr, args,
false) != 0)
return rel;
if (rel->op != op_join && exp_aggr_is_count(ce))
ce->p = prop_create(sql->sa,
PROP_COUNT, ce->p);
diff --git a/sql/test/BugTracker-2026/Tests/7867-push-groupby-down.test
b/sql/test/BugTracker-2026/Tests/7867-push-groupby-down.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7867-push-groupby-down.test
@@ -0,0 +1,32 @@
+query I
+SELECT x
+FROM
+(
+ SELECT 1 AS x
+ UNION
+ SELECT 1
+ FROM
+ (
+ SELECT 1 AS x
+ UNION
+ SELECT 1 AS x
+ )
+ GROUP BY x
+ HAVING COUNT(*) >
+ (
+ SELECT 1
+ WHERE x IN
+ (
+ SELECT *
+ FROM
+ (
+ WITH y AS (SELECT 1)
+ SELECT 1
+ FROM y
+ ORDER BY CASE WHEN x THEN x < ANY (x < (WITH z
AS (SELECT 1) SELECT * FROM z)) END
+ )
+ )
+ )
+) AS x
+----
+
diff --git a/sql/test/BugTracker-2026/Tests/All
b/sql/test/BugTracker-2026/Tests/All
--- a/sql/test/BugTracker-2026/Tests/All
+++ b/sql/test/BugTracker-2026/Tests/All
@@ -61,3 +61,4 @@ KNOWNFAIL?7774-insert-into-renamed-table
7857-rollup-crash
KNOWNFAIL?7862-rel_has_freevar-crash
7865-unnest-cte-crash
+7867-push-groupby-down
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]