Tighten asserts on ParallelWorkerNumber

The comment about ParallelWorkerNumbr in parallel.c says:

  In parallel workers, it will be set to a value >= 0 and < the number
  of workers before any user code is invoked; each parallel worker will
  get a different parallel worker number.

However asserts in various places collecting instrumentation allowed
(ParallelWorkerNumber == num_workers). That would be a bug, as the value
is used as index into an array with num_workers entries.

Fixed by adjusting the asserts accordingly. Backpatch to all supported
versions.

Discussion: https://postgr.es/m/[email protected]
Reviewed-by: Bertrand Drouvot <[email protected]>
Backpatch-through: 14

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/02eecead8678a9afe6047d42692f752e3ec0639c

Modified Files
--------------
src/backend/executor/nodeAgg.c             | 2 +-
src/backend/executor/nodeBitmapHeapscan.c  | 2 +-
src/backend/executor/nodeBitmapIndexscan.c | 2 +-
src/backend/executor/nodeIncrementalSort.c | 2 +-
src/backend/executor/nodeIndexonlyscan.c   | 2 +-
src/backend/executor/nodeIndexscan.c       | 2 +-
src/backend/executor/nodeMemoize.c         | 2 +-
src/backend/executor/nodeSort.c            | 2 +-
8 files changed, 8 insertions(+), 8 deletions(-)

Reply via email to