On 2/7/21 01:56, Hywel Carver wrote:
On Wed, Jun 30, 2021 at 12:21 PM Andrey Lepikhov <a.lepik...@postgrespro.ru <mailto:a.lepik...@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


Reply via email to