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 по дате отправления: