mirror of
https://github.com/postgres/postgres.git
synced 2025-10-22 14:32:25 +03:00
Add String object access hooks
This caters for cases where the access is to an object identified by name rather than Oid. The first user of these is the GUC access controls Joshua Brindle and Mark Dilger Discussion: https://postgr.es/m/47F87A0E-C0E5-43A6-89F6-D403F2B45175@enterprisedb.com
This commit is contained in:
@@ -43,6 +43,7 @@
|
||||
#include "access/xlog_internal.h"
|
||||
#include "access/xlogrecovery.h"
|
||||
#include "catalog/namespace.h"
|
||||
#include "catalog/objectaccess.h"
|
||||
#include "catalog/pg_authid.h"
|
||||
#include "catalog/storage.h"
|
||||
#include "commands/async.h"
|
||||
@@ -8736,6 +8737,18 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
|
||||
replace_auto_config_value(&head, &tail, name, value);
|
||||
}
|
||||
|
||||
/*
|
||||
* Invoke the post-alter hook for altering this GUC variable.
|
||||
*
|
||||
* We do this here rather than at the end, because ALTER SYSTEM is not
|
||||
* transactional. If the hook aborts our transaction, it will be cleaner
|
||||
* to do so before we touch any files.
|
||||
*/
|
||||
InvokeObjectPostAlterHookArgStr(InvalidOid, name,
|
||||
ACL_ALTER_SYSTEM,
|
||||
altersysstmt->setstmt->kind,
|
||||
false);
|
||||
|
||||
/*
|
||||
* To ensure crash safety, first write the new file data to a temp file,
|
||||
* then atomically rename it into place.
|
||||
@@ -8907,6 +8920,10 @@ ExecSetVariableStmt(VariableSetStmt *stmt, bool isTopLevel)
|
||||
ResetAllOptions();
|
||||
break;
|
||||
}
|
||||
|
||||
/* Invoke the post-alter hook for setting this GUC variable. */
|
||||
InvokeObjectPostAlterHookArgStr(InvalidOid, stmt->name,
|
||||
ACL_SET_VALUE, stmt->kind, false);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user