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