On Tue, Aug 24, 2010 at 11:32 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> I think it wouldn't take too much code to defend against this in
> transformArrayExpr, but I'm a tad worried about whether there are
> similar cases elsewhere. The generic problem is that we suppose that
> different values are compatible if they have the same type OID, but
> for RECORD types that's really not true.
We've argued about this before: it's not really true for array types
either. A one-dimensional array is not the same type as a
two-dimensional array, but we treat it that way because bloating
pg_type by a factor of seven is even less appealing than bloating it
by a factor of two. And then there are other kinds of types people
might want to define: hashes, sets, functions, etc. This shoe is
going to rub for so long as we keep wearing it.
Nevertheless, there's not much hope of better than a localized fix for
this particular bug.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company