aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/fmgr/fmgr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/fmgr/fmgr.c')
-rw-r--r--src/backend/utils/fmgr/fmgr.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c
index f2d49eaf536..ea5cd4bf2df 100644
--- a/src/backend/utils/fmgr/fmgr.c
+++ b/src/backend/utils/fmgr/fmgr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/fmgr/fmgr.c,v 1.109 2007/09/03 00:39:18 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/fmgr/fmgr.c,v 1.110 2007/09/11 00:06:42 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -925,11 +925,10 @@ fmgr_security_definer(PG_FUNCTION_ARGS)
if (fcache->proconfig)
{
- /* The options are processed as if by SET LOCAL var = val */
ProcessGUCArray(fcache->proconfig,
(superuser() ? PGC_SUSET : PGC_USERSET),
PGC_S_SESSION,
- true);
+ GUC_ACTION_SAVE);
}
result = FunctionCallInvoke(fcinfo);
@@ -937,8 +936,7 @@ fmgr_security_definer(PG_FUNCTION_ARGS)
PG_CATCH();
{
fcinfo->flinfo = save_flinfo;
- if (fcache->proconfig)
- AtEOXact_GUC(false, save_nestlevel);
+ /* We don't need to restore GUC settings, outer xact abort will */
if (OidIsValid(fcache->userid))
SetUserId(save_userid);
PG_RE_THROW();