On Tue, Oct 31, 2006 at 12:38:36PM -0800, George Pavlov wrote:
> Both (1::int,'a'::varchar) and (select (2::int,'a'::varchar)) are of
> type record, aren't they?
I don't think so. Psql gives you a hint that not:
testing=# SELECT (1::int, 'a'::varchar);
row
-------
(1,a)
(1 row)
testing=# SELECT (SELECT(1::int, 'a'::varchar));
?column?
----------
(1,a)
(1 row)
Note the column headers. They're differently shaped. Because
pseudotype record doesn't have a shape, equality doesn't make sense,
so you need two shapes that are already identical, so they can use
the matching rules for that.
A
--
Andrew Sullivan | ajs(at)crankycanuck(dot)ca
Everything that happens in the world happens at some place.
--Jane Jacobs