Re: Removing unneeded self joins - Mailing list pgsql-hackers

From Andrey Lepikhov
Subject Re: Removing unneeded self joins
Date
Msg-id 4b69ea09-5047-cd8a-a0d7-de1f12120433@postgrespro.ru
Whole thread Raw
In response to Re: Removing unneeded self joins  (Hywel Carver <hywel@skillerwhale.com>)
Responses Re: Removing unneeded self joins  (Hywel Carver <hywel@skillerwhale.com>)
List pgsql-hackers
On 2/7/21 01:56, Hywel Carver wrote:
> On Wed, Jun 30, 2021 at 12:21 PM Andrey Lepikhov 
> <a.lepikhov@postgrespro.ru <mailto:a.lepikhov@postgrespro.ru>> wrote:
>     I think, here we could ask more general question: do we want to
>     remove a
>     'IS NOT NULL' clause from the clause list if the rest of the list
>     implicitly implies it?
> 
> 
> My suggestion was not to remove it, but to avoid adding it in the first 
> place. When your optimisation has found a join on a group of columns 
> under a uniqueness constraint, you would do something like this (forgive 
> the pseudo-code)
> 
> foreach(column, join_clause) {
>    if(column.nullable) { // This condition is what I'm suggesting is added
>      add_null_test(column, IS_NOT_NULL);
>    }
> }
> 
> But it may be that that's not possible or practical at this point in the 
> code.
I think, such option will require to implement a new machinery to prove 
that arbitrary column couldn't produce NULL value.

-- 
regards,
Andrey Lepikhov
Postgres Professional



pgsql-hackers by date:

Previous
From: Anastasia Lubennikova
Date:
Subject: Re: [CLOBBER_CACHE]Server crashed with segfault 11 while executing clusterdb
Next
From: David Rowley
Date:
Subject: Re: Removed extra memory allocations from create_list_bounds