diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/isolation/expected/eval-plan-qual.out | 15 | ||||
| -rw-r--r-- | src/test/isolation/specs/eval-plan-qual.spec | 9 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/test/isolation/expected/eval-plan-qual.out b/src/test/isolation/expected/eval-plan-qual.out index 99c4137e14a..be87d1b0c27 100644 --- a/src/test/isolation/expected/eval-plan-qual.out +++ b/src/test/isolation/expected/eval-plan-qual.out @@ -125,3 +125,18 @@ step readwcte: <... completed> id value 1 tableAValue2 + +starting permutation: wrtwcte multireadwcte c1 c2 +step wrtwcte: UPDATE table_a SET value = 'tableAValue2' WHERE id = 1; +step multireadwcte: + WITH updated AS ( + UPDATE table_a SET value = 'tableAValue3' WHERE id = 1 RETURNING id + ) + SELECT (SELECT id FROM updated) AS subid, * FROM updated; + <waiting ...> +step c1: COMMIT; +step c2: COMMIT; +step multireadwcte: <... completed> +subid id + +1 1 diff --git a/src/test/isolation/specs/eval-plan-qual.spec b/src/test/isolation/specs/eval-plan-qual.spec index f15dee385fc..749c6405796 100644 --- a/src/test/isolation/specs/eval-plan-qual.spec +++ b/src/test/isolation/specs/eval-plan-qual.spec @@ -94,6 +94,14 @@ step "readwcte" { SELECT * FROM cte2; } +# this test exercises a different CTE misbehavior, cf bug #14870 +step "multireadwcte" { + WITH updated AS ( + UPDATE table_a SET value = 'tableAValue3' WHERE id = 1 RETURNING id + ) + SELECT (SELECT id FROM updated) AS subid, * FROM updated; +} + teardown { COMMIT; } permutation "wx1" "wx2" "c1" "c2" "read" @@ -102,3 +110,4 @@ permutation "upsert1" "upsert2" "c1" "c2" "read" permutation "readp1" "writep1" "readp2" "c1" "c2" permutation "writep2" "returningp1" "c1" "c2" permutation "wrtwcte" "readwcte" "c1" "c2" +permutation "wrtwcte" "multireadwcte" "c1" "c2" |
