Re: Eager aggregation, take 3
От | jian he |
---|---|
Тема | Re: Eager aggregation, take 3 |
Дата | |
Msg-id | CACJufxGFcMgM5LCioBXENgp=pbZUhU-yKz1fPuPs_8OLh-850w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Eager aggregation, take 3 (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: Eager aggregation, take 3
|
Список | pgsql-hackers |
hi. still trying to understand v13. found a bug. minimum test : drop table if exists t1, t2; CREATE TABLE t1 (a int, b int, c int); CREATE TABLE t2 (a int, b int, c int); SET enable_eager_aggregate TO on; explain(costs off, settings) SELECT avg(t2.a), t1.c FROM t1 JOIN t2 ON t1.b = t2.b GROUP BY t1.c having grouping(t1.c) > 0; create_agg_clause_infos foreach(lc, tlist_exprs) { Expr *expr = (Expr *) lfirst(lc); if (IsA(expr, GroupingFunc)) return; } if (root->parse->havingQual != NULL) { List *having_exprs; having_exprs = pull_var_clause((Node *) root->parse->havingQual, PVC_INCLUDE_AGGREGATES | PVC_RECURSE_PLACEHOLDERS); if (having_exprs != NIL) { tlist_exprs = list_concat(tlist_exprs, having_exprs); list_free(having_exprs); } } havingQual can have GroupingFunc. if that happens, then segmentation fault.
В списке pgsql-hackers по дате отправления: