mirror of
https://github.com/postgres/postgres.git
synced 2025-09-03 15:22:11 +03:00
refactor ALTER some-obj SET OWNER implementation
Remove duplicate implementation of catalog munging and miscellaneous privilege and consistency checks. Instead rely on already existing data in objectaddress.c to do the work. Author: KaiGai Kohei Tweaked by me Reviewed by Robert Haas
This commit is contained in:
@@ -55,7 +55,6 @@ typedef FormData_pg_largeobject *Form_pg_largeobject;
|
||||
|
||||
extern Oid LargeObjectCreate(Oid loid);
|
||||
extern void LargeObjectDrop(Oid loid);
|
||||
extern void LargeObjectAlterOwner(Oid loid, Oid newOwnerId);
|
||||
extern bool LargeObjectExists(Oid loid);
|
||||
|
||||
#endif /* PG_LARGEOBJECT_H */
|
||||
|
@@ -18,9 +18,13 @@
|
||||
#include "utils/relcache.h"
|
||||
|
||||
extern void ExecRenameStmt(RenameStmt *stmt);
|
||||
|
||||
extern void ExecAlterObjectSchemaStmt(AlterObjectSchemaStmt *stmt);
|
||||
extern Oid AlterObjectNamespace_oid(Oid classId, Oid objid, Oid nspOid);
|
||||
extern Oid AlterObjectNamespace_internal(Relation rel, Oid objid, Oid nspOid);
|
||||
|
||||
extern void ExecAlterOwnerStmt(AlterOwnerStmt *stmt);
|
||||
extern void AlterObjectOwner_internal(Relation catalog, Oid objectId,
|
||||
Oid new_ownerId);
|
||||
|
||||
#endif /* ALTER_H */
|
||||
|
@@ -19,8 +19,6 @@
|
||||
|
||||
extern void DefineCollation(List *names, List *parameters);
|
||||
extern void RenameCollation(List *name, const char *newname);
|
||||
extern void AlterCollationOwner(List *name, Oid newOwnerId);
|
||||
extern void AlterCollationOwner_oid(Oid collationOid, Oid newOwnerId);
|
||||
extern void AlterCollationNamespace(List *name, const char *newschema);
|
||||
extern Oid AlterCollationNamespace_oid(Oid collOid, Oid newNspOid);
|
||||
|
||||
|
@@ -19,7 +19,5 @@
|
||||
|
||||
extern void CreateConversionCommand(CreateConversionStmt *parsetree);
|
||||
extern void RenameConversion(List *name, const char *newname);
|
||||
extern void AlterConversionOwner(List *name, Oid newOwnerId);
|
||||
extern void AlterConversionOwner_oid(Oid conversionOid, Oid newOwnerId);
|
||||
|
||||
#endif /* CONVERSIONCMDS_H */
|
||||
|
@@ -47,8 +47,6 @@ extern void RemoveFunctionById(Oid funcOid);
|
||||
extern void SetFunctionReturnType(Oid funcOid, Oid newRetType);
|
||||
extern void SetFunctionArgType(Oid funcOid, int argIndex, Oid newArgType);
|
||||
extern void RenameFunction(List *name, List *argtypes, const char *newname);
|
||||
extern void AlterFunctionOwner(List *name, List *argtypes, Oid newOwnerId);
|
||||
extern void AlterFunctionOwner_oid(Oid procOid, Oid newOwnerId);
|
||||
extern void AlterFunction(AlterFunctionStmt *stmt);
|
||||
extern void CreateCast(CreateCastStmt *stmt);
|
||||
extern void DropCastById(Oid castOid);
|
||||
@@ -61,15 +59,11 @@ extern Oid get_cast_oid(Oid sourcetypeid, Oid targettypeid, bool missing_ok);
|
||||
/* commands/operatorcmds.c */
|
||||
extern void DefineOperator(List *names, List *parameters);
|
||||
extern void RemoveOperatorById(Oid operOid);
|
||||
extern void AlterOperatorOwner(List *name, TypeName *typeName1,
|
||||
TypeName *typename2, Oid newOwnerId);
|
||||
extern void AlterOperatorOwner_oid(Oid operOid, Oid newOwnerId);
|
||||
|
||||
/* commands/aggregatecmds.c */
|
||||
extern void DefineAggregate(List *name, List *args, bool oldstyle,
|
||||
List *parameters);
|
||||
extern void RenameAggregate(List *name, List *args, const char *newname);
|
||||
extern void AlterAggregateOwner(List *name, List *args, Oid newOwnerId);
|
||||
|
||||
/* commands/opclasscmds.c */
|
||||
extern void DefineOpClass(CreateOpClassStmt *stmt);
|
||||
@@ -81,10 +75,6 @@ extern void RemoveAmOpEntryById(Oid entryOid);
|
||||
extern void RemoveAmProcEntryById(Oid entryOid);
|
||||
extern void RenameOpClass(List *name, const char *access_method, const char *newname);
|
||||
extern void RenameOpFamily(List *name, const char *access_method, const char *newname);
|
||||
extern void AlterOpClassOwner(List *name, const char *access_method, Oid newOwnerId);
|
||||
extern void AlterOpClassOwner_oid(Oid opclassOid, Oid newOwnerId);
|
||||
extern void AlterOpFamilyOwner(List *name, const char *access_method, Oid newOwnerId);
|
||||
extern void AlterOpFamilyOwner_oid(Oid opfamilyOid, Oid newOwnerId);
|
||||
extern Oid get_am_oid(const char *amname, bool missing_ok);
|
||||
extern Oid get_opclass_oid(Oid amID, List *opclassname, bool missing_ok);
|
||||
extern Oid get_opfamily_oid(Oid amID, List *opfamilyname, bool missing_ok);
|
||||
@@ -98,7 +88,6 @@ extern void DefineTSDictionary(List *names, List *parameters);
|
||||
extern void RenameTSDictionary(List *oldname, const char *newname);
|
||||
extern void RemoveTSDictionaryById(Oid dictId);
|
||||
extern void AlterTSDictionary(AlterTSDictionaryStmt *stmt);
|
||||
extern void AlterTSDictionaryOwner(List *name, Oid newOwnerId);
|
||||
|
||||
extern void DefineTSTemplate(List *names, List *parameters);
|
||||
extern void RenameTSTemplate(List *oldname, const char *newname);
|
||||
@@ -108,7 +97,6 @@ extern void DefineTSConfiguration(List *names, List *parameters);
|
||||
extern void RenameTSConfiguration(List *oldname, const char *newname);
|
||||
extern void RemoveTSConfigurationById(Oid cfgId);
|
||||
extern void AlterTSConfiguration(AlterTSConfigurationStmt *stmt);
|
||||
extern void AlterTSConfigurationOwner(List *name, Oid newOwnerId);
|
||||
|
||||
extern text *serialize_deflist(List *deflist);
|
||||
extern List *deserialize_deflist(Datum txt);
|
||||
|
@@ -17,8 +17,6 @@
|
||||
extern void CreateProceduralLanguage(CreatePLangStmt *stmt);
|
||||
extern void DropProceduralLanguageById(Oid langOid);
|
||||
extern void RenameLanguage(const char *oldname, const char *newname);
|
||||
extern void AlterLanguageOwner(const char *name, Oid newOwnerId);
|
||||
extern void AlterLanguageOwner_oid(Oid oid, Oid newOwnerId);
|
||||
extern bool PLTemplateExists(const char *languageName);
|
||||
extern Oid get_language_oid(const char *langname, bool missing_ok);
|
||||
|
||||
|
@@ -42,7 +42,6 @@ typedef struct TableSpaceOpts
|
||||
extern void CreateTableSpace(CreateTableSpaceStmt *stmt);
|
||||
extern void DropTableSpace(DropTableSpaceStmt *stmt);
|
||||
extern void RenameTableSpace(const char *oldname, const char *newname);
|
||||
extern void AlterTableSpaceOwner(const char *name, Oid newOwnerId);
|
||||
extern void AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt);
|
||||
|
||||
extern void TablespaceCreateDbspace(Oid spcNode, Oid dbNode, bool isRedo);
|
||||
|
@@ -2183,7 +2183,6 @@ typedef struct AlterOwnerStmt
|
||||
RangeVar *relation; /* in case it's a table */
|
||||
List *object; /* in case it's some other object */
|
||||
List *objarg; /* argument types, if applicable */
|
||||
char *addname; /* additional name if needed */
|
||||
char *newowner; /* the new owner */
|
||||
} AlterOwnerStmt;
|
||||
|
||||
|
Reference in New Issue
Block a user