Optimize roles_is_member_of() with a Bloom filter.
authorNathan Bossart <nathan@postgresql.org>
Tue, 26 Mar 2024 19:43:37 +0000 (14:43 -0500)
committerNathan Bossart <nathan@postgresql.org>
Tue, 26 Mar 2024 19:43:37 +0000 (14:43 -0500)
commitd365ae705409f5d9c81da4b668f59c3598feb512
tree317e82ef12119f6dfb28d6bedb2330ae45c2d857
parentfad3b5b5acb154725b0265010642ee95fa37c5d7
Optimize roles_is_member_of() with a Bloom filter.

When the list of roles gathered by roles_is_member_of() grows very
large, a Bloom filter is created to help avoid some linear searches
through the list.  The threshold for creating the Bloom filter is
set arbitrarily high and may require future adjustment.

Suggested-by: Tom Lane
Reviewed-by: Tom Lane
Discussion: https://postgr.es/m/CAGvXd3OSMbJQwOSc-Tq-Ro1CAz%3DvggErdSG7pv2s6vmmTOLJSg%40mail.gmail.com
src/backend/utils/adt/acl.c