mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-31 07:07:21 +02:00
The brinbuildCallbackParallel callback used by parallel BRIN builds did not consider that the parallel table scans may be synchronized, starting from an arbitrary block and then wrap around. If this happened and the scan actually did wrap around, tuples from the beginning of the table were added to the last range produced by the same worker. The index would be missing range at the beginning of the table, while the last range would be too wide. This would not produce incorrect query results, but it'd be less efficient. Fixed by checking for both past and future ranges in the callback. The worker may produce multiple summaries for the same page range, but the leader will merge them as if the summaries came from different workers. Discussion: https://postgr.es/m/c2ee7d69-ce17-43f2-d1a0-9811edbda6e6%40enterprisedb.com |
||
---|---|---|
.. | ||
access | ||
archive | ||
backup | ||
bootstrap | ||
catalog | ||
commands | ||
executor | ||
foreign | ||
jit | ||
lib | ||
libpq | ||
main | ||
nodes | ||
optimizer | ||
parser | ||
partitioning | ||
po | ||
port | ||
postmaster | ||
regex | ||
replication | ||
rewrite | ||
snowball | ||
statistics | ||
storage | ||
tcop | ||
tsearch | ||
utils | ||
.gitignore | ||
common.mk | ||
Makefile | ||
meson.build | ||
nls.mk |