1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-06 07:49:08 +03:00

Rename OverrideSearchPath to SearchPathMatcher.

The previous commit removed the "override" APIs.  Surviving APIs facilitate
plancache.c to snapshot search_path and test whether the current value equals
a remembered snapshot.

Aleksander Alekseev.  Reported by Alexander Lakhin and Noah Misch.

Discussion: https://postgr.es/m/8ffb4650-52c4-6a81-38fc-8f99be981130@gmail.com
This commit is contained in:
Noah Misch
2023-07-31 17:04:47 -07:00
parent 7c5c4e1c03
commit d3a38318ac
5 changed files with 26 additions and 26 deletions

View File

@@ -3374,16 +3374,16 @@ SetTempNamespaceState(Oid tempNamespaceId, Oid tempToastNamespaceId)
/*
* GetOverrideSearchPath - fetch current search path definition.
* GetSearchPathMatcher - fetch current search path definition.
*
* The result structure is allocated in the specified memory context
* (which might or might not be equal to CurrentMemoryContext); but any
* junk created by revalidation calculations will be in CurrentMemoryContext.
*/
OverrideSearchPath *
GetOverrideSearchPath(MemoryContext context)
SearchPathMatcher *
GetSearchPathMatcher(MemoryContext context)
{
OverrideSearchPath *result;
SearchPathMatcher *result;
List *schemas;
MemoryContext oldcxt;
@@ -3391,7 +3391,7 @@ GetOverrideSearchPath(MemoryContext context)
oldcxt = MemoryContextSwitchTo(context);
result = (OverrideSearchPath *) palloc0(sizeof(OverrideSearchPath));
result = (SearchPathMatcher *) palloc0(sizeof(SearchPathMatcher));
schemas = list_copy(activeSearchPath);
while (schemas && linitial_oid(schemas) != activeCreationNamespace)
{
@@ -3413,16 +3413,16 @@ GetOverrideSearchPath(MemoryContext context)
}
/*
* CopyOverrideSearchPath - copy the specified OverrideSearchPath.
* CopySearchPathMatcher - copy the specified SearchPathMatcher.
*
* The result structure is allocated in CurrentMemoryContext.
*/
OverrideSearchPath *
CopyOverrideSearchPath(OverrideSearchPath *path)
SearchPathMatcher *
CopySearchPathMatcher(SearchPathMatcher *path)
{
OverrideSearchPath *result;
SearchPathMatcher *result;
result = (OverrideSearchPath *) palloc(sizeof(OverrideSearchPath));
result = (SearchPathMatcher *) palloc(sizeof(SearchPathMatcher));
result->schemas = list_copy(path->schemas);
result->addCatalog = path->addCatalog;
result->addTemp = path->addTemp;
@@ -3432,7 +3432,7 @@ CopyOverrideSearchPath(OverrideSearchPath *path)
}
/*
* OverrideSearchPathMatchesCurrent - does path match current setting?
* SearchPathMatchesCurrentEnvironment - does path match current environment?
*
* This is tested over and over in some common code paths, and in the typical
* scenario where the active search path seldom changes, it'll always succeed.
@@ -3440,7 +3440,7 @@ CopyOverrideSearchPath(OverrideSearchPath *path)
* whenever the active search path changes.
*/
bool
OverrideSearchPathMatchesCurrent(OverrideSearchPath *path)
SearchPathMatchesCurrentEnvironment(SearchPathMatcher *path)
{
ListCell *lc,
*lcp;

View File

@@ -407,7 +407,7 @@ CompleteCachedPlan(CachedPlanSource *plansource,
* one-shot plans; and we *must* skip this for transaction control
* commands, because this could result in catalog accesses.
*/
plansource->search_path = GetOverrideSearchPath(querytree_context);
plansource->search_path = GetSearchPathMatcher(querytree_context);
}
/*
@@ -586,7 +586,7 @@ RevalidateCachedQuery(CachedPlanSource *plansource,
if (plansource->is_valid)
{
Assert(plansource->search_path != NULL);
if (!OverrideSearchPathMatchesCurrent(plansource->search_path))
if (!SearchPathMatchesCurrentEnvironment(plansource->search_path))
{
/* Invalidate the querytree and generic plan */
plansource->is_valid = false;
@@ -759,7 +759,7 @@ RevalidateCachedQuery(CachedPlanSource *plansource,
* not generate much extra cruft either, since almost certainly the path
* is already valid.)
*/
plansource->search_path = GetOverrideSearchPath(querytree_context);
plansource->search_path = GetSearchPathMatcher(querytree_context);
MemoryContextSwitchTo(oldcxt);
@@ -1326,7 +1326,7 @@ CachedPlanAllowsSimpleValidityCheck(CachedPlanSource *plansource,
Assert(plan->is_valid);
Assert(plan == plansource->gplan);
Assert(plansource->search_path != NULL);
Assert(OverrideSearchPathMatchesCurrent(plansource->search_path));
Assert(SearchPathMatchesCurrentEnvironment(plansource->search_path));
/* We don't support oneshot plans here. */
if (plansource->is_oneshot)
@@ -1449,7 +1449,7 @@ CachedPlanIsSimplyValid(CachedPlanSource *plansource, CachedPlan *plan,
/* Is the search_path still the same as when we made it? */
Assert(plansource->search_path != NULL);
if (!OverrideSearchPathMatchesCurrent(plansource->search_path))
if (!SearchPathMatchesCurrentEnvironment(plansource->search_path))
return false;
/* It's still good. Bump refcount if requested. */
@@ -1565,7 +1565,7 @@ CopyCachedPlan(CachedPlanSource *plansource)
newsource->relationOids = copyObject(plansource->relationOids);
newsource->invalItems = copyObject(plansource->invalItems);
if (plansource->search_path)
newsource->search_path = CopyOverrideSearchPath(plansource->search_path);
newsource->search_path = CopySearchPathMatcher(plansource->search_path);
newsource->query_context = querytree_context;
newsource->rewriteRoleId = plansource->rewriteRoleId;
newsource->rewriteRowSecurity = plansource->rewriteRowSecurity;