From 1901c99f2169670aac8a82d88c176e7db6ec8172 Mon Sep 17 00:00:00 2001 From: Adam Guo Date: Thu, 27 Mar 2025 18:15:22 +0000 Subject: [PATCH] Rollback GUC change in createas.c --- createas.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/createas.c b/createas.c index 026cce3..338650d 100644 --- a/createas.c +++ b/createas.c @@ -1712,6 +1712,7 @@ StoreImmvQuery(Oid viewOid, Query *viewQuery) { char *querytree = nodeToString((Node *) viewQuery); char *querystring; + int save_nestlevel; Datum values[Natts_pg_ivm_immv]; bool isNulls[Natts_pg_ivm_immv]; Relation matviewRel; @@ -1720,10 +1721,17 @@ StoreImmvQuery(Oid viewOid, Query *viewQuery) HeapTuple heapTuple; ObjectAddress address; + /* + * Restrict search_path so that pg_ivm_get_viewdef_internal returns a + * fully-qualified query. + */ + save_nestlevel = NewGUCNestLevel(); RestrictSearchPath(); matviewRel = table_open(viewOid, AccessShareLock); querystring = pg_ivm_get_viewdef_internal(viewQuery, matviewRel, true); table_close(matviewRel, NoLock); + /* Roll back the search_path change. */ + AtEOXact_GUC(false, save_nestlevel); memset(values, 0, sizeof(values)); memset(isNulls, false, sizeof(isNulls));