]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Tighten asserts on ParallelWorkerNumber
authorTomas Vondra <tomas.vondra@postgresql.org>
Sat, 14 Mar 2026 14:24:37 +0000 (15:24 +0100)
committerTomas Vondra <tomas.vondra@postgresql.org>
Sat, 14 Mar 2026 14:27:56 +0000 (15:27 +0100)
commit0e5ff9b9b45a657aea12440478dc002e9b01f138
tree7205ebea9037c20ac1f479515c659155a8c5728c
parent5b3f63a1bf5996a2ad1e879207ad875a24b65ee5
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/5db067a1-2cdf-4afb-a577-a04f30b69167@vondra.me
Reviewed-by: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Backpatch-through: 14
src/backend/executor/nodeAgg.c
src/backend/executor/nodeBitmapHeapscan.c
src/backend/executor/nodeBitmapIndexscan.c
src/backend/executor/nodeIncrementalSort.c
src/backend/executor/nodeIndexonlyscan.c
src/backend/executor/nodeIndexscan.c
src/backend/executor/nodeMemoize.c
src/backend/executor/nodeSort.c