aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeModifyTable.c
diff options
context:
space:
mode:
authorThomas Munro <tmunro@postgresql.org>2023-03-06 15:07:15 +1300
committerThomas Munro <tmunro@postgresql.org>2023-03-06 16:17:22 +1300
commite9051ecd58e9f171c5c92f28c1bbd8f42fa243c1 (patch)
tree3e4828d8eb8b34a586b1e29769c9e1d50df101d5 /src/backend/executor/nodeModifyTable.c
parent5ad63eee13e70eeff9659bcee024e8249b6bf68c (diff)
downloadpostgresql-e9051ecd58e9f171c5c92f28c1bbd8f42fa243c1.tar.gz
postgresql-e9051ecd58e9f171c5c92f28c1bbd8f42fa243c1.zip
Fix assert failures in parallel SERIALIZABLE READ ONLY.
1. Make sure that we don't decrement SxactGlobalXminCount twice when the SXACT_FLAG_RO_SAFE optimization is reached in a parallel query. This could trigger a sanity check failure in assert builds. Non-assert builds recompute the count in SetNewSxactGlobalXmin(), so the problem was hidden, explaining the lack of field reports. Add a new isolation test to exercise that case. 2. Remove an assertion that the DOOMED flag can't be set on a partially released SERIALIZABLEXACT. Instead, ignore the flag (our transaction was already determined to be read-only safe, and DOOMED is in fact set during partial release, and there was already an assertion that it wasn't set sooner). Improve an existing isolation test so that it reaches that case (previously it wasn't quite testing what it was supposed to be testing; see discussion). Back-patch to 12. Bug #17116. Defects in commit 47a338cf. Reported-by: Alexander Lakhin <exclusion@gmail.com> Discussion: https://postgr.es/m/17116-d6ca217acc180e30%40postgresql.org
Diffstat (limited to 'src/backend/executor/nodeModifyTable.c')
0 files changed, 0 insertions, 0 deletions