forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit1c9701c
committed
Fix FOR UPDATE NOWAIT on updated tuple chains
If SELECT FOR UPDATE NOWAIT tries to lock a tuple that is concurrentlybeing updated, it might fail to honor its NOWAIT specification and blockinstead of raising an error.Fix by adding a no-wait flag to EvalPlanQualFetch which it can pass downto heap_lock_tuple; also use it in EvalPlanQualFetch itself to avoidblocking while waiting for a concurrent transaction.Authors: Craig Ringer and Thomas Munro, tweaked by Álvarohttp://www.postgresql.org/message-id/51FB6703.9090801@2ndquadrant.comPer Thomas Munro in the course of his SKIP LOCKED feature submission,who also provided one of the isolation test specs.Backpatch to 9.4, because that's as far back as it applies withoutconflicts (although the bug goes all the way back). To that branch alsobackpatch Thomas Munro's new NOWAIT test cases, committed in master byHeikki as commit9ee16b4 .1 parent9a2d948 commit1c9701c
File tree
9 files changed
+186
-12
lines changed- src
- backend/executor
- include/executor
- test/isolation
- expected
- specs
9 files changed
+186
-12
lines changedLines changed: 17 additions & 7 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1863 | 1863 |
| |
1864 | 1864 |
| |
1865 | 1865 |
| |
1866 |
| - | |
| 1866 | + | |
1867 | 1867 |
| |
1868 | 1868 |
| |
1869 | 1869 |
| |
| |||
1922 | 1922 |
| |
1923 | 1923 |
| |
1924 | 1924 |
| |
| 1925 | + | |
1925 | 1926 |
| |
1926 | 1927 |
| |
1927 | 1928 |
| |
| |||
1934 | 1935 |
| |
1935 | 1936 |
| |
1936 | 1937 |
| |
1937 |
| - | |
| 1938 | + | |
1938 | 1939 |
| |
1939 | 1940 |
| |
1940 | 1941 |
| |
| |||
1978 | 1979 |
| |
1979 | 1980 |
| |
1980 | 1981 |
| |
1981 |
| - | |
| 1982 | + | |
1982 | 1983 |
| |
1983 | 1984 |
| |
1984 | 1985 |
| |
1985 | 1986 |
| |
1986 |
| - | |
1987 |
| - | |
1988 |
| - | |
| 1987 | + | |
| 1988 | + | |
| 1989 | + | |
| 1990 | + | |
| 1991 | + | |
| 1992 | + | |
| 1993 | + | |
| 1994 | + | |
| 1995 | + | |
| 1996 | + | |
| 1997 | + | |
| 1998 | + | |
1989 | 1999 |
| |
1990 | 2000 |
| |
1991 | 2001 |
| |
| |||
2012 | 2022 |
| |
2013 | 2023 |
| |
2014 | 2024 |
| |
2015 |
| - | |
| 2025 | + | |
2016 | 2026 |
| |
2017 | 2027 |
| |
2018 | 2028 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
170 | 170 |
| |
171 | 171 |
| |
172 | 172 |
| |
173 |
| - | |
| 173 | + | |
174 | 174 |
| |
175 | 175 |
| |
176 | 176 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
199 | 199 |
| |
200 | 200 |
| |
201 | 201 |
| |
202 |
| - | |
| 202 | + | |
203 | 203 |
| |
204 | 204 |
| |
205 | 205 |
| |
|
Lines changed: 19 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + |
Lines changed: 19 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + |
Lines changed: 37 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + |
Lines changed: 5 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
22 | 22 |
| |
23 | 23 |
| |
24 | 24 |
| |
25 |
| - | |
26 |
| - | |
27 |
| - | |
28 | 25 |
| |
29 | 26 |
| |
30 | 27 |
| |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + |
Lines changed: 30 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + |
Lines changed: 57 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + |
0 commit comments
Comments
(0)