Re: Crash in 9.4 Beta when partially collapsing left outer joins - Mailing list pgsql-general

From Michael Paquier
Subject Re: Crash in 9.4 Beta when partially collapsing left outer joins
Date
Msg-id CAB7nPqRSRDF4d+gQQ2RhxgY2oaZd6QsBRfM2Ebms4r52syJh4g@mail.gmail.com
Whole thread Raw
In response to Re: Crash in 9.4 Beta when partially collapsing left outer joins  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Crash in 9.4 Beta when partially collapsing left outer joins
List pgsql-general
On Tue, Sep 9, 2014 at 10:25 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Michael Paquier <michael.paquier@gmail.com> writes:
>> The logic for nested OR is correct by reading it, hence why not simply
>> removing the assertion failing? The attached patch 1 does so.
>
> The reason for the assert is that there should never be an OR directly
> underneath an OR in the planner after eval_const_expressions has flattened
> such cases.  Evidently commit f343a88 failed to preserve AND/OR flatness
> in some cases :-(.  That code should be taught to do so, rather than
> lobotomizing this assertion.  Lack of flatness causes optimization
> inefficiencies, which is why we don't want to just allow it.
Ah, OK, I just saw your commit. so the trick is to add the arguments
of subclause in case of an OR clause found to have a correct
flattening here... Thanks!
--
Michael


pgsql-general by date:

Previous
From: Alban Hertroys
Date:
Subject: Re: Convincing STABLE functions to run once
Next
From: David Boreham
Date:
Subject: Re: Async IO HTTP server frontend for PostgreSQL