Thread: [BUGS] BUG #14717: NULL=NULL is true for composite types

[BUGS] BUG #14717: NULL=NULL is true for composite types

From
paolo.guagliardo@ed.ac.uk
Date:
The following bug has been logged on the website:

Bug reference:      14717
Logged by:          Paolo Guagliardo
Email address:      paolo.guagliardo@ed.ac.uk
PostgreSQL version: 9.6.3
Operating system:   Scientific Linux release 7.3 (Nitrogen)
Description:

Comparisons between row types with NULLs behave as expected:

SELECT (1,NULL) = (1,NULL);
?column? 
----------
(1 row)

However, if we now create a composite type:

CREATE TYPE pair AS (a int, b int);

then we get

SELECT (1,NULL)::pair = (1,NULL)::pair ;
?column? 
----------t
(1 row)

while the answer should be NULL (unknown) as before.

Other operations (<>,>,<,>=,<=) are affected as well.


--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Re: [BUGS] BUG #14717: NULL=NULL is true for composite types

From
"David G. Johnston"
Date:
On Mon, Jun 26, 2017 at 8:29 AM, <paolo.guagliardo@ed.ac.uk> wrote:
The following bug has been logged on the website:

Bug reference:      14717
Logged by:          Paolo Guagliardo
Email address:      paolo.guagliardo@ed.ac.uk
PostgreSQL version: 9.6.3
Operating system:   Scientific Linux release 7.3 (Nitrogen)
Description:

​[...]
 
SELECT (1,NULL)::pair = (1,NULL)::pair ;

 ?column?
----------
 t
(1 row)

while the answer should be NULL (unknown) as before.

Working as documented.


See the last two sections for why (or at least how...) "anonymous row constructor" and "named record" are treated differently.

David J.

Re: [BUGS] BUG #14717: NULL=NULL is true for composite types

From
Paolo Guagliardo
Date:
I'm really sorry, David. For some reason I overlooked that part. Thanks.

Sent from BlueMail On Jun 26, 2017, at 4:49 PM, "David G. Johnston" <david.g.johnston@gmail.com> wrote:

On Mon, Jun 26, 2017 at 8:29 AM, <paolo.guagliardo@ed.ac.uk> wrote:

The following bug has been logged on the website:

Bug reference:      14717
Logged by:          Paolo Guagliardo
Email address:      paolo.guagliardo@ed.ac.uk
PostgreSQL version: 9.6.3
Operating system:   Scientific Linux release 7.3 (Nitrogen)
Description:

[...] 

SELECT (1,NULL)::pair = (1,NULL)::pair ;

 ?column?
----------
 t
(1 row)

while the answer should be NULL (unknown) as before.


Working as documented.
See the last two sections for why (or at least how...) "anonymous row constructor" and "named record" are treated differently.
David J.