OSDN Git Service

Fix parameter recalculation for Limit nodes: during a ReScan call we must
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 17 May 2007 19:35:08 +0000 (19:35 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 17 May 2007 19:35:08 +0000 (19:35 +0000)
commitb11123b675d9317f771d2bc44f72594de329098d
treebf3e5080edbe144393337623b932f0b5c1540459
parent64058429c54afb49a679c58e5ff699640bd42502
Fix parameter recalculation for Limit nodes: during a ReScan call we must
recompute the limit/offset immediately, so that the updated values are
available when the child's ReScan function is invoked.  Add a regression
test for this, too.  Bug is new in HEAD (due to the bounded-sorting patch)
so no need for back-patch.

I did not do anything about merging this signaling with chgParam processing,
but if we were to do that we'd still need to compute the updated values
at this point rather than during the first ProcNode call.

Per observation and test case from Greg Stark, though I didn't use his patch.
src/backend/executor/nodeLimit.c
src/backend/executor/nodeSubplan.c
src/include/nodes/execnodes.h
src/test/regress/expected/limit.out
src/test/regress/sql/limit.sql