pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Andrey Lepikhov <a.lepikhov@postgrespro.ru>
To: Hywel Carver <hywel@skillerwhale.com>
Cc: pgsql-hackers@lists.postgresql.org, Konstantin Knizhnik <knizhnik@garret.ru>
Subject: Re: Removing unneeded self joins
Date: Mon, 5 Jul 2021 16:20:01 +0300
Message-ID: <4b69ea09-5047-cd8a-a0d7-de1f12120433@postgrespro.ru> (raw)
In-Reply-To: <CAFcA2FauZ2jGka8utvFmRE1eLrKfmJmPnQjtf_cdewChFu0qcQ@mail.gmail.com>
References: <64486b0b-0404-e39e-322d-0801154901f3@postgrespro.ru>
	<21e15759-dba5-2d2b-dd03-06943ad40378@postgrespro.ru>
	<161553990603.28624.7702383984090736980.pgcf@coridan.postgresql.org>
	<2a6e540a-4c9f-9402-2e02-71e35fcd4dd1@postgrespro.ru>
	<CAFcA2FauZ2jGka8utvFmRE1eLrKfmJmPnQjtf_cdewChFu0qcQ@mail.gmail.com>

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





view thread (247+ messages)  latest in thread

Message-ID: <4b69ea09-5047-cd8a-a0d7-de1f12120433@postgrespro.ru>
Permalink:  ../4b69ea09-5047-cd8a-a0d7-de1f12120433@postgrespro.ru/
Also on:    postgresql.org/message-id/4b69ea09-5047-cd8a-a0d7-de1f12120433@postgrespro.ru

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: a.lepikhov@postgrespro.ru, hywel@skillerwhale.com, knizhnik@garret.ru
  Subject: Re: Removing unneeded self joins
  In-Reply-To: <4b69ea09-5047-cd8a-a0d7-de1f12120433@postgrespro.ru>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox