postgresql/src/include/lib
Andres Freund 909eebf27b dshash: revise sequential scan support.
The previous coding of dshash_seq_next(), on the first call, accessed
status->hash_table->size_log2 without holding a partition lock and without
guaranteeing that ensure_valid_bucket_pointers() had ever been called.

That oversight turns out to not have immediately visible effects, because
bucket 0 is always in partition 0, and ensure_valid_bucket_pointers() was
called after acquiring the partition lock.  However,
PARTITION_FOR_BUCKET_INDEX() with a size_log2 of 0 ends up triggering formally
undefined behaviour.

Simplify by accessing partition 0, without using PARTITION_FOR_BUCKET_INDEX().

While at it, remove dshash_get_current(), there is no convincing use
case. Also polish a few comments.

Author: Andres Freund <andres@anarazel.de>
Reviewed-By: Thomas Munro <thomas.munro@gmail.com>
Discussion: https://postgr.es/m/CA+hUKGL9hY_VY=+oUK+Gc1iSRx-Ls5qeYJ6q=dQVZnT3R63Taw@mail.gmail.com
2022-04-04 14:32:52 -07:00
..
binaryheap.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
bipartite_match.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
bloomfilter.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
dshash.h dshash: revise sequential scan support. 2022-04-04 14:32:52 -07:00
hyperloglog.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
ilist.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
integerset.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
knapsack.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
pairingheap.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
qunique.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
rbtree.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
simplehash.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
sort_template.h Fix missing undefine in sort_template.h 2022-01-31 15:10:01 -05:00
stringinfo.h Update copyright for 2022 2022-01-07 19:04:57 -05:00