postgresql/src/backend
Tom Lane 133924e13e Fix potential failure when hashing the output of a subplan that produces
a pass-by-reference datatype with a nontrivial projection step.
We were using the same memory context for the projection operation as for
the temporary context used by the hashtable routines in execGrouping.c.
However, the hashtable routines feel free to reset their temp context at
any time, which'd lead to destroying input data that was still needed.
Report and diagnosis by Tao Ma.

Back-patch to 8.1, where the problem was introduced by the changes that
allowed us to work with "virtual" tuples instead of materializing intermediate
tuple values everywhere.  The earlier code looks quite similar, but it doesn't
suffer the problem because the data gets copied into another context as a
result of having to materialize ExecProject's output tuple.
2010-07-28 04:50:50 +00:00
..
access Avoid deep recursion when assigning XIDs to multiple levels of subxacts. 2010-07-23 00:43:00 +00:00
bootstrap CREATE TABLE IF NOT EXISTS. 2010-07-25 23:21:22 +00:00
catalog CREATE TABLE IF NOT EXISTS. 2010-07-25 23:21:22 +00:00
commands CREATE TABLE IF NOT EXISTS. 2010-07-25 23:21:22 +00:00
executor Fix potential failure when hashing the output of a subplan that produces 2010-07-28 04:50:50 +00:00
foreign Wrap calls to SearchSysCache and related functions using macros. 2010-02-14 18:42:19 +00:00
lib pgindent run for 9.0, second run 2010-07-06 19:19:02 +00:00
libpq Make the Windows tcp keepalive support depend on the existance of the 2010-07-08 16:19:50 +00:00
main Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
nodes CREATE TABLE IF NOT EXISTS. 2010-07-25 23:21:22 +00:00
optimizer Make NestLoop plan nodes pass outer-relation variables into their inner 2010-07-12 17:01:06 +00:00
parser CREATE TABLE IF NOT EXISTS. 2010-07-25 23:21:22 +00:00
po Translation updates for 9.0beta3 2010-07-08 21:32:28 +00:00
port pgindent run for 9.0, second run 2010-07-06 19:19:02 +00:00
postmaster Add restart_after_crash GUC. 2010-07-20 00:47:53 +00:00
regex pgindent run for 9.0 2010-02-26 02:01:40 +00:00
replication Add missing function prototype. 2010-07-22 13:03:11 +00:00
rewrite pgindent run for 9.0 2010-02-26 02:01:40 +00:00
snowball Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
storage Make log_temp_files based on kB, and revert docs & comments to match. 2010-07-06 22:55:26 +00:00
tcop CREATE TABLE IF NOT EXISTS. 2010-07-25 23:21:22 +00:00
tsearch pgindent run for 9.0, second run 2010-07-06 19:19:02 +00:00
utils In postgresql.conf.sample, use on/off rather than true/false. 2010-07-27 16:06:53 +00:00
Makefile Split the LDFLAGS make variable into two parts: LDFLAGS is now used for 2010-07-05 18:54:38 +00:00
common.mk Expand test coverage support to entire tree 2009-08-07 20:50:22 +00:00
nls.mk Convert the core lexer and parser into fully reentrant code, by making use 2009-07-13 02:02:20 +00:00