postgresql/src
Tom Lane 336c1d7a51 Avoid assuming that index-only scan data matches the index's rowtype.
In general the data returned by an index-only scan should have the
datatypes originally computed by FormIndexDatum.  If the index opclasses
use "storage" datatypes different from their input datatypes, the scan
tuple will not have the same rowtype attributed to the index; but we had
a hard-wired assumption that that was true in nodeIndexonlyscan.c.  We'd
already hacked around the issue for the one case where the types are
different in btree indexes (btree name_ops), but this would definitely
come back to bite us if we ever implement index-only scans in GiST.

To fix, require the index AM to explicitly provide the tupdesc for the
tuple it is returning.  btree can just pass back the index's tupdesc, but
GiST will have to work harder when and if it supports index-only scans.

I had previously proposed fixing this by allowing the index AM to fill the
scan tuple slot directly; but on reflection that seemed like a module
layering violation, since TupleTableSlots are creatures of the executor.
At least in the btree case, it would also be less efficient, since the
tuple deconstruction work would occur even for rows later found to be
invisible to the scan's snapshot.
2011-10-16 19:15:04 -04:00
..
backend Avoid assuming that index-only scan data matches the index's rowtype. 2011-10-16 19:15:04 -04:00
bin Allow a major PG version psql .psqlrc file to be used if a minor 2011-10-14 20:27:14 -04:00
include Avoid assuming that index-only scan data matches the index's rowtype. 2011-10-16 19:15:04 -04:00
interfaces Fully const-ify PQconnectdbParams, PQconnectStartParams, and PQpingParams. 2011-09-25 18:52:48 -04:00
makefiles Fix pgxs.mk to always add --dbname=$(CONTRIB_TESTDB) to REGRESS_OPTS. 2011-08-24 15:16:50 -04:00
pl Fix up Perl-to-Postgres datatype conversions in pl/perl. 2011-10-13 18:04:40 -04:00
port Fix typo in pg_srand48 (srand48 in older branches). 2011-09-03 16:17:34 -04:00
template
test Fix collate.linux.utf8 expected output for recent error message change. 2011-10-16 16:07:40 -04:00
timezone Simplify handling of the timezone GUC by making initdb choose the default. 2011-09-09 17:59:11 -04:00
tools Modify pgindent to use a renamed pg_bsd_indent binary. New features 2011-10-12 15:51:27 -04:00
tutorial
.gitignore
bcc32.mak
DEVELOPERS
Makefile
Makefile.global.in
Makefile.shlib
nls-global.mk
win32.mak