Re: is this a bug?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: is this a bug?
Дата
Msg-id 16954.1263778690@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: is this a bug?  ("David E. Wheeler" <david@kineticode.com>)
Список pgsql-hackers
"David E. Wheeler" <david@kineticode.com> writes:
> 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

>> 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);

No, the ROW keyword is just noise.  It's the cast that is preventing the
expansion.  We could possibly change things so that it got expanded out
even with the cast, but on the whole I'm not sure that would be an
improvement.  It doesn't make things consistent, it just shifts the
boundary of inconsistency ...
        regards, tom lane


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

Предыдущее
От: "David E. Wheeler"
Дата:
Сообщение: Re: is this a bug?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: AtAbort_Portsl problem