Thread: [HACKERS] Re: [COMMITTERS] pgsql: Expand partitioned table RTEs level by level,without flattening
[HACKERS] Re: [COMMITTERS] pgsql: Expand partitioned table RTEs level by level,without flattening
From
Ashutosh Bapat
Date:
On Sun, Sep 17, 2017 at 7:24 AM, Robert Haas <robertmhaas@gmail.com> wrote: > Can you debug this on Monday? > > ...Robert > > Begin forwarded message: > > From: Andreas Seltenreich <seltenreich@gmx.de> > Date: September 16, 2017 at 6:55:46 AM EDT > To: Robert Haas <rhaas@postgresql.org> > Cc: pgsql-committers@postgresql.org > Subject: Re: [COMMITTERS] pgsql: Expand partitioned table RTEs level by > level, without flattening > > Robert Haas writes: > > Expand partitioned table RTEs level by level, without flattening. > > > 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. -- Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Attachment
Re: [HACKERS] Re: [COMMITTERS] pgsql: Expand partitioned table RTEslevel by level, without flattening
From
Robert Haas
Date:
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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers