diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2010-07-09 22:58:17 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2010-07-09 22:58:17 +0000 |
commit | b8accd651219de90968aa0900fe95ac04cda007c (patch) | |
tree | b13d32ffbaa78e7d2fb143395f53fc47d148342a /src/backend/parser/parse_oper.c | |
parent | 8bed5e2726eac9950e149127553a426e2924df80 (diff) | |
download | postgresql-b8accd651219de90968aa0900fe95ac04cda007c.tar.gz postgresql-b8accd651219de90968aa0900fe95ac04cda007c.zip |
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.
Diffstat (limited to 'src/backend/parser/parse_oper.c')
0 files changed, 0 insertions, 0 deletions