On Jan 17, 2010, at 3:47 PM, Tom Lane wrote:

>>  create type y as (c char, n int);
>>  select ('a', NULL)::y = ('a', NULL)::y; -- TRUE 
>>  select ('a', NULL) = ('a', NULL); -- NULL
> 
>> I would expect those to evaluate to the same thing.
> 
> The latter gets simplified to ('a' = 'a') AND (NULL = NULL).
> The former doesn't --- it goes through record_eq, which treats
> two nulls as equal.

Shouldn't this go through record_eq, then?

try=# select row('a', NULL) = row('a', NULL);
 ?column? 
----------
 [null]

Best,

David

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

Reply via email to