From: | Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Richard Guo <guofenglinux(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Assert failure in CTE inlining with view and correlated subquery |
Date: | 2022-04-21 20:45:16 |
Message-ID: | d217eb59-835f-3844-8279-829fac9fd22d@enterprisedb.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 4/21/22 21:03, Tom Lane wrote:
> Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com> writes:
>> On 4/21/22 10:29, Richard Guo wrote:
>>> Further debugging shows that in this repro the reference to the CTE is
>>> removed when generating paths for the subquery 'sub', where we would try
>>> to remove subquery targetlist items that are not needed. So for the
>>> items we are to remove, maybe we need to check if they contain CTEs and
>>> if so decrease cterefcount of the CTEs correspondingly.
>
>> Right, at some point we remove the unnecessary targetlist entries, but
>> that ignores the entry may reference a CTE. That's pretty much what I
>> meant by the counter being "out of sync".
>> Updating the counter while removing the entry is one option, but maybe
>> we could simply delay counting the CTE references until after that?
>
> I think we should just drop this cross-check altogether; it is not nearly
> useful enough to justify the work that'd be involved in maintaining
> cterefcount accurately for all such transformations. All it's really
> there for is to be sure that we don't need to make a subplan for the
> inlined CTE.
>
> There are two downstream consumers of cte_plan_ids, which currently just
> have Asserts that we made a subplan. I think it'd be worth converting
> those to real run-time tests, which leads me to something more or less as
> attached.
>
WFM. I'm not particularly attached to the assert, so if you say it's not
worth it let's get rid of it.
regards
--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2022-04-21 20:56:37 | Re: [RFC] building postgres with meson -v8 |
Previous Message | Tom Lane | 2022-04-21 20:38:19 | Re: Replace open mode with PG_BINARY_R/W/A macros |