Thread: pgsql: Repair bug #2839: the various ExecReScan functions need to reset
pgsql: Repair bug #2839: the various ExecReScan functions need to reset
From
tgl@postgresql.org (Tom Lane)
Date:
Log Message: ----------- Repair bug #2839: the various ExecReScan functions need to reset ps_TupFromTlist in plan nodes that make use of it. This was being done correctly in join nodes and Result nodes but not in any relation-scan nodes. Bug would lead to bogus results if a set-returning function appeared in the targetlist of a subquery that could be rescanned after partial execution, for example a subquery within EXISTS(). Bug has been around forever :-( ... surprising it wasn't reported before. Modified Files: -------------- pgsql/src/backend/executor: nodeBitmapHeapscan.c (r1.14 -> r1.15) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeBitmapHeapscan.c.diff?r1=1.14&r2=1.15) nodeFunctionscan.c (r1.40 -> r1.41) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeFunctionscan.c.diff?r1=1.40&r2=1.41) nodeIndexscan.c (r1.118 -> r1.119) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeIndexscan.c.diff?r1=1.118&r2=1.119) nodeResult.c (r1.34 -> r1.35) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeResult.c.diff?r1=1.34&r2=1.35) nodeSeqscan.c (r1.61 -> r1.62) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeSeqscan.c.diff?r1=1.61&r2=1.62) nodeSubqueryscan.c (r1.32 -> r1.33) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeSubqueryscan.c.diff?r1=1.32&r2=1.33) nodeTidscan.c (r1.51 -> r1.52) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeTidscan.c.diff?r1=1.51&r2=1.52) nodeValuesscan.c (r1.3 -> r1.4) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeValuesscan.c.diff?r1=1.3&r2=1.4)