Tighten up application of parallel mode checks.
authorRobert Haas <rhaas@postgresql.org>
Fri, 16 Oct 2015 13:59:57 +0000 (09:59 -0400)
committerRobert Haas <rhaas@postgresql.org>
Fri, 16 Oct 2015 14:10:23 +0000 (10:10 -0400)
commitd43e3adc7572d34988967475900dcd4f9e0a7b89
tree0fe0eb7b4fc90ca9f3dcbe49d514195125c63dcd
parentc451eaf8f628440ad93e933da8f08f7f4545c376
Tighten up application of parallel mode checks.

Commit 924bcf4f16d54c55310b28f77686608684734f42 failed to enforce
parallel mode checks during the commit of a parallel worker, because
we exited parallel mode prior to ending the transaction so that we
could pop the active snapshot.  Re-establish parallel mode during
parallel worker commit.  Without this, it's far too easy for unsafe
actions during the pre-commit sequence to crash the server instead of
hitting the error checks as intended.

Just to be extra paranoid, adjust a couple of the sanity checks in
xact.c to check not only IsInParallelMode() but also
IsParallelWorker().
src/backend/access/transam/xact.c