From: | tgl(at)postgresql(dot)org (Tom Lane) |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Avoid an Assert failure in deconstruct_array() by making |
Date: | 2010-07-09 22:57:54 |
Message-ID: | 20100709225754.EF95E7541D5@cvs.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Log Message:
-----------
Avoid an Assert failure in deconstruct_array() by making get_attstatsslot()
use the actual element type of the array it's disassembling, rather than
trusting the type OID passed in by its caller. This is needed because
sometimes the planner passes in a type OID that's only binary-compatible
with the target column's type, rather than being an exact match. Per an
example from Bernd Helmle.
Possibly we should refactor get_attstatsslot/free_attstatsslot to not expect
the caller to supply type ID data at all, but for now I'll just do the
minimum-change fix.
Back-patch to 7.4. Bernd's test case only crashes back to 8.0, but since
these subroutines are the same in 7.4, I suspect there may be variant
cases that would crash 7.4 as well.
Tags:
----
REL8_4_STABLE
Modified Files:
--------------
pgsql/src/backend/utils/cache:
lsyscache.c (r1.162 -> r1.162.2.1)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/lsyscache.c?r1=1.162&r2=1.162.2.1)
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2010-07-09 22:58:01 | pgsql: Avoid an Assert failure in deconstruct_array() by making |
Previous Message | Tom Lane | 2010-07-09 22:57:47 | pgsql: Avoid an Assert failure in deconstruct_array() by making |