Re: BUG #15256: Comparing if a rowtype is null

Поиск
Список
Период
Сортировка
От David G. Johnston
Тема Re: BUG #15256: Comparing if a rowtype is null
Дата
Msg-id CAKFQuwaCn2jd34=vCnkMcrwMRTHbmdfWb+WOns9hhzdJUc0mEQ@mail.gmail.com
обсуждение исходный текст
Ответ на BUG #15256: Comparing if a rowtype is null  (PG Bug reporting form <noreply@postgresql.org>)
Список pgsql-bugs
On Fri, Jun 29, 2018 at 2:06 PM, PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:

Bug reference:      15256
Logged by:          Anderson Antunes
Email address:      anderson.ant.oli@gmail.com
PostgreSQL version: 9.3.5

​You should seriously consider upgrading in the near future.
 
Operating system:   Windows
Description:       

Hello. My name is Anderson Antunes. I'm from Brazil. I'd like to get more
information about the behavior of the query below using comparison
operators. From what I understand in the query result below, a composite
type variable is only null when all values are null. Similarly, a variable
is not null when all values are not null. However, when we have written a
null value and a non-null value, the "is_null" and "is not null" columns
remain false. I believe that if we have at least a pre-set value, the
operator should recognize that this variable is not null.
I hope you have understood what I think.

SELECT
r,
r IS NULL AS "is null",
r IS NOT NULL AS "is not null"
FROM (VALUES(NULL,NULL), (5, NULL), (5, 5)) r

​What you wrote is basically what is written in the documentation and by definition documented behavior is not buggy.

It is documented that "IS NULL" and "IS NOT NULL" are not inverses of each other when provided a composite types.

This is not going to change.

Write:

NOT (composite_type IS NULL) if you need the inverse.

David J.

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

Предыдущее
От: PG Bug reporting form
Дата:
Сообщение: BUG #15256: Comparing if a rowtype is null
Следующее
От: Anderson Antunes
Дата:
Сообщение: Suggestion