Re: Re: [COMMITTERS] pgsql: Expand partitioned table RTEs level by level, without flattening
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>,
Andreas Seltenreich <seltenreich@gmx.de>
Date: 2017-09-20T14:21:53Z
Lists: pgsql-hackers
On Mon, Sep 18, 2017 at 3:30 AM, Ashutosh Bapat
<ashutosh.bapat@enterprisedb.com> wrote:
>> testing with sqlsmith shows that the following assertion in this commit
>> doesn't hold:
>>
>> TRAP: FailedAssertion("!(((brel)->reloptkind == RELOPT_BASEREL ||
>> (brel)->reloptkind == RELOPT_OTHER_MEMBER_REL))", File: "initsplan.c", Line:
>> 647)
>>
>> One of the simpler queries that triggers it for me:
>>
>> select from information_schema.user_mapping_options;
>
> Thanks Andreas for the report. Sorry for the assertion failure.
>
> PFA patch to fix the assertion failure.
>
> The assertion assumed that all relations in simple_rel_array[] were
> either "base" relations or "other" relations. This isn't true. The
> array can contain "dead" relations as well. I have removed the
> assertion and instead fixed the code to skip anything which is not
> "base" or "other member rel".
>
> I have also added a test to cover dead relations and lateral
> references in join.sql.
Committed. Thanks.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Commits
-
Fix create_lateral_join_info to handle dead relations properly.
- 57eebca03a9e 11.0 landed
-
Expand partitioned table RTEs level by level, without flattening.
- 0a480502b092 11.0 cited