Re: BUG #17575: row(NULL) IS NULL inconsistent with IS NOT DISTINCT FROM NULL

Поиск
Список
Период
Сортировка
От Алексей Борщёв
Тема Re: BUG #17575: row(NULL) IS NULL inconsistent with IS NOT DISTINCT FROM NULL
Дата
Msg-id CAD2_BUMLTZAU7FYbaHm0scERfErd=J0-Eetvu1nJFqgd2Uf7bQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: BUG #17575: row(NULL) IS NULL inconsistent with IS NOT DISTINCT FROM NULL  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
Thank You, David and Tom!
Now these tricks around row(null) are much clearer to me!
I think this issue should be closed.

пт, 5 авг. 2022 г. в 17:23, Tom Lane <tgl@sss.pgh.pa.us>:
>
> PG Bug reporting form <noreply@postgresql.org> writes:
> > I noticed strange behavior of ROW(NULL):
> > I expect, that  IS NULL  operator should give the same result as  IS NOT
> > DISTINCT FROM NULL
> > similarly, IS NOT NULL  operator should give the same result as  IS DISTINCT
> > FROM NULL:
>
> I don't see any particular reason to expect that.  row(NULL)
> is a row object containing one null field, which is in fact not
> identical to a null composite value.  The SQL spec dictates that
> IS NULL should return true for both cases, but that doesn't mean
> that no other operator is allowed to distinguish them.  I'd say
> that this is a wart of IS NULL rather than desirable behavior
> we should copy elsewhere.
>
> > Next point:
> > I expected that IS NULL and IS NOT NULL operators must always return
> > opposite results, but:
>
> You have not read the SQL standard, then.  It's quite clear
> about that.
>
> > Can we fix or document this PG issue?
>
> ... nor our documentation.  See
>
> https://www.postgresql.org/docs/current/functions-comparison.html
>
> para beginning "If the expression is row-valued,", near the
> bottom of the page.
>
>                         regards, tom lane



В списке pgsql-bugs по дате отправления:

Предыдущее
От: Daniel Farina
Дата:
Сообщение: Re: BUG #17577: pg_ctl promote is not preemptive in archive recovery
Следующее
От: Alexander Pyhalov
Дата:
Сообщение: foreign join error "variable not found in subplan target list"