mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-02-08 22:47:29 +08:00
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.
This commit is contained in:
@ -108,3 +108,24 @@ SELECT ''::text AS five, unique1, unique2, stringu1
|
||||
| 904 | 793 | UIAAAA
|
||||
(5 rows)
|
||||
|
||||
-- Stress test for variable LIMIT in conjunction with bounded-heap sorting
|
||||
SELECT
|
||||
(SELECT n
|
||||
FROM (VALUES (1)) AS x,
|
||||
(SELECT n FROM generate_series(1,10) AS n
|
||||
ORDER BY n LIMIT 1 OFFSET s-1) AS y) AS z
|
||||
FROM generate_series(1,10) AS s;
|
||||
z
|
||||
----
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
(10 rows)
|
||||
|
||||
|
||||
@ -30,3 +30,12 @@ SELECT ''::text AS five, unique1, unique2, stringu1
|
||||
SELECT ''::text AS five, unique1, unique2, stringu1
|
||||
FROM onek
|
||||
ORDER BY unique1 LIMIT 5 OFFSET 900;
|
||||
|
||||
-- Stress test for variable LIMIT in conjunction with bounded-heap sorting
|
||||
|
||||
SELECT
|
||||
(SELECT n
|
||||
FROM (VALUES (1)) AS x,
|
||||
(SELECT n FROM generate_series(1,10) AS n
|
||||
ORDER BY n LIMIT 1 OFFSET s-1) AS y) AS z
|
||||
FROM generate_series(1,10) AS s;
|
||||
|
||||
Reference in New Issue
Block a user