From: | jian he <jian(dot)universality(at)gmail(dot)com> |
---|---|
To: | Richard Guo <guofenglinux(at)gmail(dot)com> |
Cc: | Tender Wang <tndrwang(at)gmail(dot)com>, Paul George <p(dot)a(dot)george19(at)gmail(dot)com>, Andy Fan <zhihuifan1213(at)163(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, pgsql-hackers(at)lists(dot)postgresql(dot)org, Robert Haas <robertmhaas(at)gmail(dot)com> |
Subject: | Re: Eager aggregation, take 3 |
Date: | 2024-10-31 12:15:58 |
Message-ID: | CACJufxGFcMgM5LCioBXENgp=pbZUhU-yKz1fPuPs_8OLh-850w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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.
From | Date | Subject | |
---|---|---|---|
Next Message | Daniel Gustafsson | 2024-10-31 12:27:39 | Re: IPC::Run::time[r|out] vs our TAP tests |
Previous Message | Daniel Gustafsson | 2024-10-31 11:30:31 | Re: Fix typos where 'the' was repeated |