Add cache for recomputeNamespacePath().
authorJeff Davis <[email protected]>
Wed, 15 Nov 2023 01:51:03 +0000 (17:51 -0800)
committerJeff Davis <[email protected]>
Wed, 15 Nov 2023 01:53:30 +0000 (17:53 -0800)
commitf26c2368dcaef7519d8400ca958c4b5742cdbd46
tree9e118e042e0d4251e19d2dfe13d691d9ef8e1ecc
parent7f6bc3b356787e5dbc0d371c9c53cb125c20cd6d
Add cache for recomputeNamespacePath().

When search_path is changed to something that was previously set, and
no invalidation happened in between, use the cached list of namespace
OIDs rather than recomputing them. This avoids syscache lookups and
ACL checks.

Important when the search_path changes frequently, such as when set in
proconfig.

An earlier version of this patch was reviewd by Nathan Bossart. This
version simplifies a few things and is safer in case of OOM.

Discussion: https://www.postgresql.org/message-id/abf4ce8804e0e05dff8c1725ae6a8ed28b7d66e0.camel%40j-davis.com
Reviewed-by: Nathan Bossart
src/backend/catalog/namespace.c