aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2012-12-29 07:55:37 -0500
committerRobert Haas <rhaas@postgresql.org>2012-12-29 07:55:37 -0500
commit82b1b213cad3a69cf5f3dfaa81687c14366960fc (patch)
treee19129f124c02d7ef274393d584de97cc18a5f66
parent5ab3af46ddd2f2c2b248f1ffdb688b394d4bb387 (diff)
downloadpostgresql-82b1b213cad3a69cf5f3dfaa81687c14366960fc.tar.gz
postgresql-82b1b213cad3a69cf5f3dfaa81687c14366960fc.zip
Adjust more backend functions to return OID rather than void.
This is again intended to support extensions to the event trigger functionality. This may go a bit further than we need for that purpose, but there's some value in being consistent, and the OID may be useful for other purposes also. Dimitri Fontaine
-rw-r--r--src/backend/commands/comment.c6
-rw-r--r--src/backend/commands/copy.c14
-rw-r--r--src/backend/commands/dbcommands.c17
-rw-r--r--src/backend/commands/event_trigger.c24
-rw-r--r--src/backend/commands/extension.c10
-rw-r--r--src/backend/commands/foreigncmds.c34
-rw-r--r--src/backend/commands/functioncmds.c8
-rw-r--r--src/backend/commands/indexcmds.c12
-rw-r--r--src/backend/commands/opclasscmds.c12
-rw-r--r--src/backend/commands/proclang.c24
-rw-r--r--src/backend/commands/seclabel.c4
-rw-r--r--src/backend/commands/tablespace.c11
-rw-r--r--src/backend/commands/tsearchcmds.c11
-rw-r--r--src/backend/commands/typecmds.c34
-rw-r--r--src/backend/commands/user.c15
-rw-r--r--src/backend/rewrite/rewriteDefine.c37
-rw-r--r--src/backend/tcop/utility.c2
-rw-r--r--src/include/commands/comment.h2
-rw-r--r--src/include/commands/copy.h3
-rw-r--r--src/include/commands/dbcommands.h6
-rw-r--r--src/include/commands/defrem.h34
-rw-r--r--src/include/commands/event_trigger.h4
-rw-r--r--src/include/commands/extension.h4
-rw-r--r--src/include/commands/proclang.h2
-rw-r--r--src/include/commands/seclabel.h2
-rw-r--r--src/include/commands/tablespace.h4
-rw-r--r--src/include/commands/typecmds.h16
-rw-r--r--src/include/commands/user.h6
-rw-r--r--src/include/rewrite/rewriteDefine.h4
29 files changed, 231 insertions, 131 deletions
diff --git a/src/backend/commands/comment.c b/src/backend/commands/comment.c
index 267694f5b9a..afada5d6e4f 100644
--- a/src/backend/commands/comment.c
+++ b/src/backend/commands/comment.c
@@ -36,7 +36,7 @@
* This routine is used to add the associated comment into
* pg_description for the object specified by the given SQL command.
*/
-void
+Oid
CommentObject(CommentStmt *stmt)
{
ObjectAddress address;
@@ -60,7 +60,7 @@ CommentObject(CommentStmt *stmt)
ereport(WARNING,
(errcode(ERRCODE_UNDEFINED_DATABASE),
errmsg("database \"%s\" does not exist", database)));
- return;
+ return InvalidOid;
}
}
@@ -123,6 +123,8 @@ CommentObject(CommentStmt *stmt)
*/
if (relation != NULL)
relation_close(relation, NoLock);
+
+ return address.objectId;
}
/*
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index abd82cf9f59..31a02884b9b 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -743,14 +743,14 @@ CopyLoadRawBuf(CopyState cstate)
* Do not allow the copy if user doesn't have proper permission to access
* the table or the specifically requested columns.
*/
-uint64
-DoCopy(const CopyStmt *stmt, const char *queryString)
+Oid
+DoCopy(const CopyStmt *stmt, const char *queryString, uint64 *processed)
{
CopyState cstate;
bool is_from = stmt->is_from;
bool pipe = (stmt->filename == NULL);
Relation rel;
- uint64 processed;
+ Oid relid;
/* Disallow file COPY except to superusers. */
if (!pipe && !superuser())
@@ -774,6 +774,8 @@ DoCopy(const CopyStmt *stmt, const char *queryString)
rel = heap_openrv(stmt->relation,
(is_from ? RowExclusiveLock : AccessShareLock));
+ relid = RelationGetRelid(rel);
+
rte = makeNode(RangeTblEntry);
rte->rtekind = RTE_RELATION;
rte->relid = RelationGetRelid(rel);
@@ -811,14 +813,14 @@ DoCopy(const CopyStmt *stmt, const char *queryString)
cstate = BeginCopyFrom(rel, stmt->filename,
stmt->attlist, stmt->options);
- processed = CopyFrom(cstate); /* copy from file to database */
+ *processed = CopyFrom(cstate); /* copy from file to database */
EndCopyFrom(cstate);
}
else
{
cstate = BeginCopyTo(rel, stmt->query, queryString, stmt->filename,
stmt->attlist, stmt->options);
- processed = DoCopyTo(cstate); /* copy from database to file */
+ *processed = DoCopyTo(cstate); /* copy from database to file */
EndCopyTo(cstate);
}
@@ -830,7 +832,7 @@ DoCopy(const CopyStmt *stmt, const char *queryString)
if (rel != NULL)
heap_close(rel, (is_from ? NoLock : AccessShareLock));
- return processed;
+ return relid;
}
/*
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index c390575f422..2b39a99c2b0 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -90,7 +90,7 @@ static int errdetail_busy_db(int notherbackends, int npreparedxacts);
/*
* CREATE DATABASE
*/
-void
+Oid
createdb(const CreatedbStmt *stmt)
{
HeapScanDesc scan;
@@ -655,6 +655,8 @@ createdb(const CreatedbStmt *stmt)
}
PG_END_ENSURE_ERROR_CLEANUP(createdb_failure_callback,
PointerGetDatum(&fparms));
+
+ return dboid;
}
/*
@@ -1301,10 +1303,11 @@ movedb_failure_callback(int code, Datum arg)
/*
* ALTER DATABASE name ...
*/
-void
+Oid
AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel)
{
Relation rel;
+ Oid dboid;
HeapTuple tuple,
newtuple;
ScanKeyData scankey;
@@ -1350,7 +1353,7 @@ AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel)
/* this case isn't allowed within a transaction block */
PreventTransactionChain(isTopLevel, "ALTER DATABASE SET TABLESPACE");
movedb(stmt->dbname, strVal(dtablespace->arg));
- return;
+ return InvalidOid;
}
if (dconnlimit)
@@ -1380,6 +1383,8 @@ AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel)
(errcode(ERRCODE_UNDEFINED_DATABASE),
errmsg("database \"%s\" does not exist", stmt->dbname)));
+ dboid = HeapTupleGetOid(tuple);
+
if (!pg_database_ownercheck(HeapTupleGetOid(tuple), GetUserId()))
aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_DATABASE,
stmt->dbname);
@@ -1408,13 +1413,15 @@ AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel)
/* Close pg_database, but keep lock till commit */
heap_close(rel, NoLock);
+
+ return dboid;
}
/*
* ALTER DATABASE name SET ...
*/
-void
+Oid
AlterDatabaseSet(AlterDatabaseSetStmt *stmt)
{
Oid datid = get_database_oid(stmt->dbname, false);
@@ -1432,6 +1439,8 @@ AlterDatabaseSet(AlterDatabaseSetStmt *stmt)
AlterSetting(datid, InvalidOid, stmt->setstmt);
UnlockSharedObject(DatabaseRelationId, datid, 0, AccessShareLock);
+
+ return datid;
}
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index 722c3cf118c..e23cacd067f 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -94,15 +94,15 @@ static void AlterEventTriggerOwner_internal(Relation rel,
static event_trigger_command_tag_check_result check_ddl_tag(const char *tag);
static void error_duplicate_filter_variable(const char *defname);
static Datum filter_list_to_array(List *filterlist);
-static void insert_event_trigger_tuple(char *trigname, char *eventname,
- Oid evtOwner, Oid funcoid, List *tags);
+static Oid insert_event_trigger_tuple(char *trigname, char *eventname,
+ Oid evtOwner, Oid funcoid, List *tags);
static void validate_ddl_tags(const char *filtervar, List *taglist);
static void EventTriggerInvoke(List *fn_oid_list, EventTriggerData *trigdata);
/*
* Create an event trigger.
*/
-void
+Oid
CreateEventTrigger(CreateEventTrigStmt *stmt)
{
HeapTuple tuple;
@@ -173,8 +173,8 @@ CreateEventTrigger(CreateEventTrigStmt *stmt)
NameListToString(stmt->funcname))));
/* Insert catalog entries. */
- insert_event_trigger_tuple(stmt->trigname, stmt->eventname,
- evtowner, funcoid, tags);
+ return insert_event_trigger_tuple(stmt->trigname, stmt->eventname,
+ evtowner, funcoid, tags);
}
/*
@@ -260,7 +260,7 @@ error_duplicate_filter_variable(const char *defname)
/*
* Insert the new pg_event_trigger row and record dependencies.
*/
-static void
+static Oid
insert_event_trigger_tuple(char *trigname, char *eventname, Oid evtOwner,
Oid funcoid, List *taglist)
{
@@ -312,6 +312,8 @@ insert_event_trigger_tuple(char *trigname, char *eventname, Oid evtOwner,
/* Close pg_event_trigger. */
heap_close(tgrel, RowExclusiveLock);
+
+ return trigoid;
}
/*
@@ -376,11 +378,12 @@ RemoveEventTriggerById(Oid trigOid)
/*
* ALTER EVENT TRIGGER foo ENABLE|DISABLE|ENABLE ALWAYS|REPLICA
*/
-void
+Oid
AlterEventTrigger(AlterEventTrigStmt *stmt)
{
Relation tgrel;
HeapTuple tup;
+ Oid trigoid;
Form_pg_event_trigger evtForm;
char tgenabled = stmt->tgenabled;
@@ -393,7 +396,10 @@ AlterEventTrigger(AlterEventTrigStmt *stmt)
(errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("event trigger \"%s\" does not exist",
stmt->trigname)));
- if (!pg_event_trigger_ownercheck(HeapTupleGetOid(tup), GetUserId()))
+
+ trigoid = HeapTupleGetOid(tup);
+
+ if (!pg_event_trigger_ownercheck(trigoid, GetUserId()))
aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_EVENT_TRIGGER,
stmt->trigname);
@@ -407,6 +413,8 @@ AlterEventTrigger(AlterEventTrigStmt *stmt)
/* clean up */
heap_freetuple(tup);
heap_close(tgrel, RowExclusiveLock);
+
+ return trigoid;
}
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c
index ad072a5c7b0..e5560516f0a 100644
--- a/src/backend/commands/extension.c
+++ b/src/backend/commands/extension.c
@@ -2580,7 +2580,7 @@ AlterExtensionNamespace(List *names, const char *newschema)
/*
* Execute ALTER EXTENSION UPDATE
*/
-void
+Oid
ExecAlterExtensionStmt(AlterExtensionStmt *stmt)
{
DefElem *d_new_version = NULL;
@@ -2697,7 +2697,7 @@ ExecAlterExtensionStmt(AlterExtensionStmt *stmt)
ereport(NOTICE,
(errmsg("version \"%s\" of extension \"%s\" is already installed",
versionName, stmt->extname)));
- return;
+ return InvalidOid;
}
/*
@@ -2713,6 +2713,8 @@ ExecAlterExtensionStmt(AlterExtensionStmt *stmt)
*/
ApplyExtensionUpdates(extensionOid, control,
oldVersionName, updateVersions);
+
+ return extensionOid;
}
/*
@@ -2875,7 +2877,7 @@ ApplyExtensionUpdates(Oid extensionOid,
/*
* Execute ALTER EXTENSION ADD/DROP
*/
-void
+Oid
ExecAlterExtensionContentsStmt(AlterExtensionContentsStmt *stmt)
{
ObjectAddress extension;
@@ -2976,4 +2978,6 @@ ExecAlterExtensionContentsStmt(AlterExtensionContentsStmt *stmt)
*/
if (relation != NULL)
relation_close(relation, NoLock);
+
+ return extension.objectId;
}
diff --git a/src/backend/commands/foreigncmds.c b/src/backend/commands/foreigncmds.c
index af833b886bf..5a504a29e5a 100644
--- a/src/backend/commands/foreigncmds.c
+++ b/src/backend/commands/foreigncmds.c
@@ -583,7 +583,7 @@ parse_func_options(List *func_options,
/*
* Create a foreign-data wrapper
*/
-void
+Oid
CreateForeignDataWrapper(CreateFdwStmt *stmt)
{
Relation rel;
@@ -690,13 +690,15 @@ CreateForeignDataWrapper(CreateFdwStmt *stmt)
ForeignDataWrapperRelationId, fdwId, 0, NULL);
heap_close(rel, RowExclusiveLock);
+
+ return fdwId;
}
/*
* Alter foreign-data wrapper
*/
-void
+Oid
AlterForeignDataWrapper(AlterFdwStmt *stmt)
{
Relation rel;
@@ -851,6 +853,8 @@ AlterForeignDataWrapper(AlterFdwStmt *stmt)
}
heap_close(rel, RowExclusiveLock);
+
+ return fdwId;
}
@@ -881,7 +885,7 @@ RemoveForeignDataWrapperById(Oid fdwId)
/*
* Create a foreign server
*/
-void
+Oid
CreateForeignServer(CreateForeignServerStmt *stmt)
{
Relation rel;
@@ -987,13 +991,15 @@ CreateForeignServer(CreateForeignServerStmt *stmt)
ForeignServerRelationId, srvId, 0, NULL);
heap_close(rel, RowExclusiveLock);
+
+ return srvId;
}
/*
* Alter foreign server
*/
-void
+Oid
AlterForeignServer(AlterForeignServerStmt *stmt)
{
Relation rel;
@@ -1080,6 +1086,8 @@ AlterForeignServer(AlterForeignServerStmt *stmt)
heap_freetuple(tp);
heap_close(rel, RowExclusiveLock);
+
+ return srvId;
}
@@ -1137,7 +1145,7 @@ user_mapping_ddl_aclcheck(Oid umuserid, Oid serverid, const char *servername)
/*
* Create user mapping
*/
-void
+Oid
CreateUserMapping(CreateUserMappingStmt *stmt)
{
Relation rel;
@@ -1228,13 +1236,15 @@ CreateUserMapping(CreateUserMappingStmt *stmt)
UserMappingRelationId, umId, 0, NULL);
heap_close(rel, RowExclusiveLock);
+
+ return umId;
}
/*
* Alter user mapping
*/
-void
+Oid
AlterUserMapping(AlterUserMappingStmt *stmt)
{
Relation rel;
@@ -1314,13 +1324,15 @@ AlterUserMapping(AlterUserMappingStmt *stmt)
heap_freetuple(tp);
heap_close(rel, RowExclusiveLock);
+
+ return umId;
}
/*
* Drop user mapping
*/
-void
+Oid
RemoveUserMapping(DropUserMappingStmt *stmt)
{
ObjectAddress object;
@@ -1338,7 +1350,7 @@ RemoveUserMapping(DropUserMappingStmt *stmt)
* leave.
*/
elog(NOTICE, "role \"%s\" does not exist, skipping", stmt->username);
- return;
+ return InvalidOid;
}
if (!srv)
@@ -1350,7 +1362,7 @@ RemoveUserMapping(DropUserMappingStmt *stmt)
stmt->servername)));
/* IF EXISTS, just note it */
ereport(NOTICE, (errmsg("server does not exist, skipping")));
- return;
+ return InvalidOid;
}
umId = GetSysCacheOid2(USERMAPPINGUSERSERVER,
@@ -1369,7 +1381,7 @@ RemoveUserMapping(DropUserMappingStmt *stmt)
ereport(NOTICE,
(errmsg("user mapping \"%s\" does not exist for the server, skipping",
MappingUserName(useId))));
- return;
+ return InvalidOid;
}
user_mapping_ddl_aclcheck(useId, srv->serverid, srv->servername);
@@ -1382,6 +1394,8 @@ RemoveUserMapping(DropUserMappingStmt *stmt)
object.objectSubId = 0;
performDeletion(&object, DROP_CASCADE, 0);
+
+ return umId;
}
diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c
index 2c36ce0e0f7..fe63a1205a2 100644
--- a/src/backend/commands/functioncmds.c
+++ b/src/backend/commands/functioncmds.c
@@ -1111,7 +1111,7 @@ RenameFunction(List *name, List *argtypes, const char *newname)
* RENAME and OWNER clauses, which are handled as part of the generic
* ALTER framework).
*/
-void
+Oid
AlterFunction(AlterFunctionStmt *stmt)
{
HeapTuple tup;
@@ -1241,6 +1241,8 @@ AlterFunction(AlterFunctionStmt *stmt)
heap_close(rel, NoLock);
heap_freetuple(tup);
+
+ return funcOid;
}
/*
@@ -1318,7 +1320,7 @@ SetFunctionArgType(Oid funcOid, int argIndex, Oid newArgType)
/*
* CREATE CAST
*/
-void
+Oid
CreateCast(CreateCastStmt *stmt)
{
Oid sourcetypeid;
@@ -1632,6 +1634,8 @@ CreateCast(CreateCastStmt *stmt)
heap_freetuple(tuple);
heap_close(relation, RowExclusiveLock);
+
+ return castid;
}
/*
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index 75f9ff19cc7..1231b84c378 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -1671,7 +1671,7 @@ ChooseIndexColumnNames(List *indexElems)
* ReindexIndex
* Recreate a specific index.
*/
-void
+Oid
ReindexIndex(RangeVar *indexRelation)
{
Oid indOid;
@@ -1684,6 +1684,8 @@ ReindexIndex(RangeVar *indexRelation)
(void *) &heapOid);
reindex_index(indOid, false);
+
+ return indOid;
}
/*
@@ -1749,7 +1751,7 @@ RangeVarCallbackForReindexIndex(const RangeVar *relation,
* ReindexTable
* Recreate all indexes of a table (and of its toast table, if any)
*/
-void
+Oid
ReindexTable(RangeVar *relation)
{
Oid heapOid;
@@ -1762,6 +1764,8 @@ ReindexTable(RangeVar *relation)
ereport(NOTICE,
(errmsg("table \"%s\" has no indexes",
relation->relname)));
+
+ return heapOid;
}
/*
@@ -1772,7 +1776,7 @@ ReindexTable(RangeVar *relation)
* separate transaction, so we can release the lock on it right away.
* That means this must not be called within a user transaction block!
*/
-void
+Oid
ReindexDatabase(const char *databaseName, bool do_system, bool do_user)
{
Relation relationRelation;
@@ -1882,4 +1886,6 @@ ReindexDatabase(const char *databaseName, bool do_system, bool do_user)
StartTransactionCommand();
MemoryContextDelete(private_context);
+
+ return MyDatabaseId;
}
diff --git a/src/backend/commands/opclasscmds.c b/src/backend/commands/opclasscmds.c
index b85f1cb6407..545f5c8eb39 100644
--- a/src/backend/commands/opclasscmds.c
+++ b/src/backend/commands/opclasscmds.c
@@ -321,7 +321,7 @@ CreateOpFamily(char *amname, char *opfname, Oid namespaceoid, Oid amoid)
* DefineOpClass
* Define a new index operator class.
*/
-void
+Oid
DefineOpClass(CreateOpClassStmt *stmt)
{
char *opcname; /* name of opclass we're creating */
@@ -714,6 +714,8 @@ DefineOpClass(CreateOpClassStmt *stmt)
OperatorClassRelationId, opclassoid, 0, NULL);
heap_close(rel, RowExclusiveLock);
+
+ return opclassoid;
}
@@ -721,7 +723,7 @@ DefineOpClass(CreateOpClassStmt *stmt)
* DefineOpFamily
* Define a new index operator family.
*/
-void
+Oid
DefineOpFamily(CreateOpFamilyStmt *stmt)
{
char *opfname; /* name of opfamily we're creating */
@@ -754,7 +756,7 @@ DefineOpFamily(CreateOpFamilyStmt *stmt)
errmsg("must be superuser to create an operator family")));
/* Insert pg_opfamily catalog entry */
- (void) CreateOpFamily(stmt->amname, opfname, namespaceoid, amoid);
+ return CreateOpFamily(stmt->amname, opfname, namespaceoid, amoid);
}
@@ -766,7 +768,7 @@ DefineOpFamily(CreateOpFamilyStmt *stmt)
* other commands called ALTER OPERATOR FAMILY exist, but go through
* different code paths.
*/
-void
+Oid
AlterOpFamily(AlterOpFamilyStmt *stmt)
{
Oid amoid, /* our AM's oid */
@@ -820,6 +822,8 @@ AlterOpFamily(AlterOpFamilyStmt *stmt)
AlterOpFamilyAdd(stmt->opfamilyname, amoid, opfamilyoid,
maxOpNumber, maxProcNumber,
stmt->items);
+
+ return opfamilyoid;
}
/*
diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c
index 93283b1a841..d34ef7de4d0 100644
--- a/src/backend/commands/proclang.c
+++ b/src/backend/commands/proclang.c
@@ -51,16 +51,16 @@ typedef struct
char *tmpllibrary; /* path of shared library */
} PLTemplate;
-static void create_proc_lang(const char *languageName, bool replace,
- Oid languageOwner, Oid handlerOid, Oid inlineOid,
- Oid valOid, bool trusted);
+static Oid create_proc_lang(const char *languageName, bool replace,
+ Oid languageOwner, Oid handlerOid, Oid inlineOid,
+ Oid valOid, bool trusted);
static PLTemplate *find_language_template(const char *languageName);
/* ---------------------------------------------------------------------
* CREATE PROCEDURAL LANGUAGE
* ---------------------------------------------------------------------
*/
-void
+Oid
CreateProceduralLanguage(CreatePLangStmt *stmt)
{
PLTemplate *pltemplate;
@@ -225,9 +225,9 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
valOid = InvalidOid;
/* ok, create it */
- create_proc_lang(stmt->plname, stmt->replace, GetUserId(),
- handlerOid, inlineOid,
- valOid, pltemplate->tmpltrusted);
+ return create_proc_lang(stmt->plname, stmt->replace, GetUserId(),
+ handlerOid, inlineOid,
+ valOid, pltemplate->tmpltrusted);
}
else
{
@@ -300,16 +300,16 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
valOid = InvalidOid;
/* ok, create it */
- create_proc_lang(stmt->plname, stmt->replace, GetUserId(),
- handlerOid, inlineOid,
- valOid, stmt->pltrusted);
+ return create_proc_lang(stmt->plname, stmt->replace, GetUserId(),
+ handlerOid, inlineOid,
+ valOid, stmt->pltrusted);
}
}
/*
* Guts of language creation.
*/
-static void
+static Oid
create_proc_lang(const char *languageName, bool replace,
Oid languageOwner, Oid handlerOid, Oid inlineOid,
Oid valOid, bool trusted)
@@ -433,6 +433,8 @@ create_proc_lang(const char *languageName, bool replace,
LanguageRelationId, myself.objectId, 0, NULL);
heap_close(rel, RowExclusiveLock);
+
+ return myself.objectId;
}
/*
diff --git a/src/backend/commands/seclabel.c b/src/backend/commands/seclabel.c
index 91f41a1cd70..cdb2e88f26c 100644
--- a/src/backend/commands/seclabel.c
+++ b/src/backend/commands/seclabel.c
@@ -38,7 +38,7 @@ static List *label_provider_list = NIL;
*
* Apply a security label to a database object.
*/
-void
+Oid
ExecSecLabelStmt(SecLabelStmt *stmt)
{
LabelProvider *provider = NULL;
@@ -131,6 +131,8 @@ ExecSecLabelStmt(SecLabelStmt *stmt)
*/
if (relation != NULL)
relation_close(relation, NoLock);
+
+ return address.objectId;
}
/*
diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c
index 2c19db31e0d..c5d13a5854e 100644
--- a/src/backend/commands/tablespace.c
+++ b/src/backend/commands/tablespace.c
@@ -222,7 +222,7 @@ TablespaceCreateDbspace(Oid spcNode, Oid dbNode, bool isRedo)
* since we're determining the system layout and, anyway, we probably have
* root if we're doing this kind of activity
*/
-void
+Oid
CreateTableSpace(CreateTableSpaceStmt *stmt)
{
#ifdef HAVE_SYMLINK
@@ -371,6 +371,8 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("tablespaces are not supported on this platform")));
#endif /* HAVE_SYMLINK */
+
+ return tablespaceoid;
}
/*
@@ -890,13 +892,14 @@ RenameTableSpace(const char *oldname, const char *newname)
/*
* Alter table space options
*/
-void
+Oid
AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt)
{
Relation rel;
ScanKeyData entry[1];
HeapScanDesc scandesc;
HeapTuple tup;
+ Oid tablespaceoid;
Datum datum;
Datum newOptions;
Datum repl_val[Natts_pg_tablespace];
@@ -920,6 +923,8 @@ AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt)
errmsg("tablespace \"%s\" does not exist",
stmt->tablespacename)));
+ tablespaceoid = HeapTupleGetOid(tup);
+
/* Must be owner of the existing object */
if (!pg_tablespace_ownercheck(HeapTupleGetOid(tup), GetUserId()))
aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_TABLESPACE,
@@ -952,6 +957,8 @@ AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt)
/* Conclude heap scan. */
heap_endscan(scandesc);
heap_close(rel, NoLock);
+
+ return tablespaceoid;
}
/*
diff --git a/src/backend/commands/tsearchcmds.c b/src/backend/commands/tsearchcmds.c
index b922c6ed476..61eda19ecb4 100644
--- a/src/backend/commands/tsearchcmds.c
+++ b/src/backend/commands/tsearchcmds.c
@@ -614,7 +614,7 @@ RemoveTSDictionaryById(Oid dictId)
/*
* ALTER TEXT SEARCH DICTIONARY
*/
-void
+Oid
AlterTSDictionary(AlterTSDictionaryStmt *stmt)
{
HeapTuple tup,
@@ -722,6 +722,8 @@ AlterTSDictionary(AlterTSDictionaryStmt *stmt)
ReleaseSysCache(tup);
heap_close(rel, RowExclusiveLock);
+
+ return dictId;
}
/* ---------------------- TS Template commands -----------------------*/
@@ -1349,10 +1351,11 @@ RemoveTSConfigurationById(Oid cfgId)
/*
* ALTER TEXT SEARCH CONFIGURATION - main entry point
*/
-void
+Oid
AlterTSConfiguration(AlterTSConfigurationStmt *stmt)
{
HeapTuple tup;
+ Oid cfgId;
Relation relMap;
/* Find the configuration */
@@ -1363,6 +1366,8 @@ AlterTSConfiguration(AlterTSConfigurationStmt *stmt)
errmsg("text search configuration \"%s\" does not exist",
NameListToString(stmt->cfgname))));
+ cfgId = HeapTupleGetOid(tup);
+
/* must be owner */
if (!pg_ts_config_ownercheck(HeapTupleGetOid(tup), GetUserId()))
aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_TSCONFIGURATION,
@@ -1382,6 +1387,8 @@ AlterTSConfiguration(AlterTSConfigurationStmt *stmt)
heap_close(relMap, RowExclusiveLock);
ReleaseSysCache(tup);
+
+ return cfgId;
}
/*
diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c
index 6f99f38f118..aca670095b9 100644
--- a/src/backend/commands/typecmds.c
+++ b/src/backend/commands/typecmds.c
@@ -1053,7 +1053,7 @@ DefineDomain(CreateDomainStmt *stmt)
* DefineEnum
* Registers a new enum.
*/
-void
+Oid
DefineEnum(CreateEnumStmt *stmt)
{
char *enumName;
@@ -1166,13 +1166,15 @@ DefineEnum(CreateEnumStmt *stmt)
InvalidOid); /* type's collation */
pfree(enumArrayName);
+
+ return enumTypeOid;
}
/*
* AlterEnum
* Adds a new label to an existing enum.
*/
-void
+Oid
AlterEnum(AlterEnumStmt *stmt, bool isTopLevel)
{
Oid enum_type_oid;
@@ -1215,6 +1217,8 @@ AlterEnum(AlterEnumStmt *stmt, bool isTopLevel)
stmt->skipIfExists);
ReleaseSysCache(tup);
+
+ return enum_type_oid;
}
@@ -1246,7 +1250,7 @@ checkEnumOwner(HeapTuple tup)
* DefineRange
* Registers a new range type.
*/
-void
+Oid
DefineRange(CreateRangeStmt *stmt)
{
char *typeName;
@@ -1498,6 +1502,8 @@ DefineRange(CreateRangeStmt *stmt)
/* And create the constructor functions for this range type */
makeRangeConstructors(typeName, typeNamespace, typoid, rangeSubtype);
+
+ return typoid;
}
/*
@@ -2064,7 +2070,7 @@ DefineCompositeType(RangeVar *typevar, List *coldeflist)
*
* Routine implementing ALTER DOMAIN SET/DROP DEFAULT statements.
*/
-void
+Oid
AlterDomainDefault(List *names, Node *defaultRaw)
{
TypeName *typename;
@@ -2191,6 +2197,8 @@ AlterDomainDefault(List *names, Node *defaultRaw)
/* Clean up */
heap_close(rel, NoLock);
heap_freetuple(newtuple);
+
+ return domainoid;
}
/*
@@ -2198,7 +2206,7 @@ AlterDomainDefault(List *names, Node *defaultRaw)
*
* Routine implementing ALTER DOMAIN SET/DROP NOT NULL statements.
*/
-void
+Oid
AlterDomainNotNull(List *names, bool notNull)
{
TypeName *typename;
@@ -2226,7 +2234,7 @@ AlterDomainNotNull(List *names, bool notNull)
if (typTup->typnotnull == notNull)
{
heap_close(typrel, RowExclusiveLock);
- return;
+ return InvalidOid;
}
/* Adding a NOT NULL constraint requires checking existing columns */
@@ -2287,6 +2295,8 @@ AlterDomainNotNull(List *names, bool notNull)
/* Clean up */
heap_freetuple(tup);
heap_close(typrel, RowExclusiveLock);
+
+ return domainoid;
}
/*
@@ -2294,7 +2304,7 @@ AlterDomainNotNull(List *names, bool notNull)
*
* Implements the ALTER DOMAIN DROP CONSTRAINT statement
*/
-void
+Oid
AlterDomainDropConstraint(List *names, const char *constrName,
DropBehavior behavior, bool missing_ok)
{
@@ -2371,6 +2381,8 @@ AlterDomainDropConstraint(List *names, const char *constrName,
(errmsg("constraint \"%s\" of domain \"%s\" does not exist, skipping",
constrName, TypeNameToString(typename))));
}
+
+ return domainoid;
}
/*
@@ -2378,7 +2390,7 @@ AlterDomainDropConstraint(List *names, const char *constrName,
*
* Implements the ALTER DOMAIN .. ADD CONSTRAINT statement.
*/
-void
+Oid
AlterDomainAddConstraint(List *names, Node *newConstraint)
{
TypeName *typename;
@@ -2474,6 +2486,8 @@ AlterDomainAddConstraint(List *names, Node *newConstraint)
/* Clean up */
heap_close(typrel, RowExclusiveLock);
+
+ return domainoid;
}
/*
@@ -2481,7 +2495,7 @@ AlterDomainAddConstraint(List *names, Node *newConstraint)
*
* Implements the ALTER DOMAIN .. VALIDATE CONSTRAINT statement.
*/
-void
+Oid
AlterDomainValidateConstraint(List *names, char *constrName)
{
TypeName *typename;
@@ -2573,6 +2587,8 @@ AlterDomainValidateConstraint(List *names, char *constrName)
heap_close(conrel, RowExclusiveLock);
ReleaseSysCache(tup);
+
+ return domainoid;
}
static void
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index 569385cf234..6cf40cc0811 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -67,7 +67,7 @@ have_createrole_privilege(void)
/*
* CREATE ROLE
*/
-void
+Oid
CreateRole(CreateRoleStmt *stmt)
{
Relation pg_authid_rel;
@@ -433,6 +433,8 @@ CreateRole(CreateRoleStmt *stmt)
* Close pg_authid, but keep lock till commit.
*/
heap_close(pg_authid_rel, NoLock);
+
+ return roleid;
}
@@ -443,7 +445,7 @@ CreateRole(CreateRoleStmt *stmt)
* backwards-compatible ALTER GROUP syntax. Although it will work to say
* "ALTER ROLE role ROLE rolenames", we don't document it.
*/
-void
+Oid
AlterRole(AlterRoleStmt *stmt)
{
Datum new_record[Natts_pg_authid];
@@ -799,17 +801,20 @@ AlterRole(AlterRoleStmt *stmt)
* Close pg_authid, but keep lock till commit.
*/
heap_close(pg_authid_rel, NoLock);
+
+ return roleid;
}
/*
* ALTER ROLE ... SET
*/
-void
+Oid
AlterRoleSet(AlterRoleSetStmt *stmt)
{
HeapTuple roletuple;
Oid databaseid = InvalidOid;
+ Oid roleid;
roletuple = SearchSysCache1(AUTHNAME, PointerGetDatum(stmt->role));
@@ -818,6 +823,8 @@ AlterRoleSet(AlterRoleSetStmt *stmt)
(errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("role \"%s\" does not exist", stmt->role)));
+ roleid = HeapTupleGetOid(roletuple);
+
/*
* Obtain a lock on the role and make sure it didn't go away in the
* meantime.
@@ -853,6 +860,8 @@ AlterRoleSet(AlterRoleSetStmt *stmt)
AlterSetting(databaseid, HeapTupleGetOid(roletuple), stmt->setstmt);
ReleaseSysCache(roletuple);
+
+ return roleid;
}
diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c
index 55b0fed5f79..9bb06ba1181 100644
--- a/src/backend/rewrite/rewriteDefine.c
+++ b/src/backend/rewrite/rewriteDefine.c
@@ -191,7 +191,7 @@ InsertRule(char *rulname,
* DefineRule
* Execute a CREATE RULE command.
*/
-void
+Oid
DefineRule(RuleStmt *stmt, const char *queryString)
{
List *actions;
@@ -208,13 +208,13 @@ DefineRule(RuleStmt *stmt, const char *queryString)
relId = RangeVarGetRelid(stmt->relation, AccessExclusiveLock, false);
/* ... and execute */
- DefineQueryRewrite(stmt->rulename,
- relId,
- whereClause,
- stmt->event,
- stmt->instead,
- stmt->replace,
- actions);
+ return DefineQueryRewrite(stmt->rulename,
+ relId,
+ whereClause,
+ stmt->event,
+ stmt->instead,
+ stmt->replace,
+ actions);
}
@@ -225,7 +225,7 @@ DefineRule(RuleStmt *stmt, const char *queryString)
* This is essentially the same as DefineRule() except that the rule's
* action and qual have already been passed through parse analysis.
*/
-void
+Oid
DefineQueryRewrite(char *rulename,
Oid event_relid,
Node *event_qual,
@@ -239,6 +239,7 @@ DefineQueryRewrite(char *rulename,
ListCell *l;
Query *query;
bool RelisBecomingView = false;
+ Oid ruleId = InvalidOid;
/*
* If we are installing an ON SELECT rule, we had better grab
@@ -489,14 +490,14 @@ DefineQueryRewrite(char *rulename,
/* discard rule if it's null action and not INSTEAD; it's a no-op */
if (action != NIL || is_instead)
{
- InsertRule(rulename,
- event_type,
- event_relid,
- event_attno,
- is_instead,
- event_qual,
- action,
- replace);
+ ruleId = InsertRule(rulename,
+ event_type,
+ event_relid,
+ event_attno,
+ is_instead,
+ event_qual,
+ action,
+ replace);
/*
* Set pg_class 'relhasrules' field TRUE for event relation. If
@@ -527,6 +528,8 @@ DefineQueryRewrite(char *rulename,
/* Close rel, but keep lock till commit... */
heap_close(event_relation, NoLock);
+
+ return ruleId;
}
/*
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index a42b8e9b535..1822bebb2ce 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -708,7 +708,7 @@ standard_ProcessUtility(Node *parsetree,
{
uint64 processed;
- processed = DoCopy((CopyStmt *) parsetree, queryString);
+ DoCopy((CopyStmt *) parsetree, queryString, &processed);
if (completionTag)
snprintf(completionTag, COMPLETION_TAG_BUFSIZE,
"COPY " UINT64_FORMAT, processed);
diff --git a/src/include/commands/comment.h b/src/include/commands/comment.h
index 441d8bd253f..dee8ea0ca0d 100644
--- a/src/include/commands/comment.h
+++ b/src/include/commands/comment.h
@@ -29,7 +29,7 @@
*------------------------------------------------------------------
*/
-extern void CommentObject(CommentStmt *stmt);
+extern Oid CommentObject(CommentStmt *stmt);
extern void DeleteComments(Oid oid, Oid classoid, int32 subid);
diff --git a/src/include/commands/copy.h b/src/include/commands/copy.h
index 8680ac3ddc1..4168ea27ece 100644
--- a/src/include/commands/copy.h
+++ b/src/include/commands/copy.h
@@ -21,7 +21,8 @@
/* CopyStateData is private in commands/copy.c */
typedef struct CopyStateData *CopyState;
-extern uint64 DoCopy(const CopyStmt *stmt, const char *queryString);
+extern Oid DoCopy(const CopyStmt *stmt, const char *queryString,
+ uint64 *processed);
extern void ProcessCopyOptions(CopyState cstate, bool is_from, List *options);
extern CopyState BeginCopyFrom(Relation rel, const char *filename,
diff --git a/src/include/commands/dbcommands.h b/src/include/commands/dbcommands.h
index a48cf5f7b9f..d0aaa9f65df 100644
--- a/src/include/commands/dbcommands.h
+++ b/src/include/commands/dbcommands.h
@@ -52,11 +52,11 @@ typedef struct xl_dbase_drop_rec
Oid tablespace_id;
} xl_dbase_drop_rec;
-extern void createdb(const CreatedbStmt *stmt);
+extern Oid createdb(const CreatedbStmt *stmt);
extern void dropdb(const char *dbname, bool missing_ok);
extern Oid RenameDatabase(const char *oldname, const char *newname);
-extern void AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel);
-extern void AlterDatabaseSet(AlterDatabaseSetStmt *stmt);
+extern Oid AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel);
+extern Oid AlterDatabaseSet(AlterDatabaseSetStmt *stmt);
extern Oid AlterDatabaseOwner(const char *dbname, Oid newOwnerId);
extern Oid get_database_oid(const char *dbname, bool missingok);
diff --git a/src/include/commands/defrem.h b/src/include/commands/defrem.h
index 263f48cc971..235b10b31d8 100644
--- a/src/include/commands/defrem.h
+++ b/src/include/commands/defrem.h
@@ -26,9 +26,9 @@ extern Oid DefineIndex(IndexStmt *stmt,
bool check_rights,
bool skip_build,
bool quiet);
-extern void ReindexIndex(RangeVar *indexRelation);
-extern void ReindexTable(RangeVar *relation);
-extern void ReindexDatabase(const char *databaseName,
+extern Oid ReindexIndex(RangeVar *indexRelation);
+extern Oid ReindexTable(RangeVar *relation);
+extern Oid ReindexDatabase(const char *databaseName,
bool do_system, bool do_user);
extern char *makeObjectName(const char *name1, const char *name2,
const char *label);
@@ -47,8 +47,8 @@ extern void RemoveFunctionById(Oid funcOid);
extern void SetFunctionReturnType(Oid funcOid, Oid newRetType);
extern void SetFunctionArgType(Oid funcOid, int argIndex, Oid newArgType);
extern Oid RenameFunction(List *name, List *argtypes, const char *newname);
-extern void AlterFunction(AlterFunctionStmt *stmt);
-extern void CreateCast(CreateCastStmt *stmt);
+extern Oid AlterFunction(AlterFunctionStmt *stmt);
+extern Oid CreateCast(CreateCastStmt *stmt);
extern void DropCastById(Oid castOid);
extern Oid AlterFunctionNamespace(List *name, List *argtypes, bool isagg,
const char *newschema);
@@ -66,9 +66,9 @@ extern Oid DefineAggregate(List *name, List *args, bool oldstyle,
extern Oid RenameAggregate(List *name, List *args, const char *newname);
/* commands/opclasscmds.c */
-extern void DefineOpClass(CreateOpClassStmt *stmt);
-extern void DefineOpFamily(CreateOpFamilyStmt *stmt);
-extern void AlterOpFamily(AlterOpFamilyStmt *stmt);
+extern Oid DefineOpClass(CreateOpClassStmt *stmt);
+extern Oid DefineOpFamily(CreateOpFamilyStmt *stmt);
+extern Oid AlterOpFamily(AlterOpFamilyStmt *stmt);
extern void RemoveOpClassById(Oid opclassOid);
extern void RemoveOpFamilyById(Oid opfamilyOid);
extern void RemoveAmOpEntryById(Oid entryOid);
@@ -87,7 +87,7 @@ extern void RemoveTSParserById(Oid prsId);
extern Oid DefineTSDictionary(List *names, List *parameters);
extern Oid RenameTSDictionary(List *oldname, const char *newname);
extern void RemoveTSDictionaryById(Oid dictId);
-extern void AlterTSDictionary(AlterTSDictionaryStmt *stmt);
+extern Oid AlterTSDictionary(AlterTSDictionaryStmt *stmt);
extern Oid DefineTSTemplate(List *names, List *parameters);
extern Oid RenameTSTemplate(List *oldname, const char *newname);
@@ -96,7 +96,7 @@ extern void RemoveTSTemplateById(Oid tmplId);
extern Oid DefineTSConfiguration(List *names, List *parameters);
extern Oid RenameTSConfiguration(List *oldname, const char *newname);
extern void RemoveTSConfigurationById(Oid cfgId);
-extern void AlterTSConfiguration(AlterTSConfigurationStmt *stmt);
+extern Oid AlterTSConfiguration(AlterTSConfigurationStmt *stmt);
extern text *serialize_deflist(List *deflist);
extern List *deserialize_deflist(Datum txt);
@@ -108,15 +108,15 @@ extern Oid AlterForeignServerOwner(const char *name, Oid newOwnerId);
extern void AlterForeignServerOwner_oid(Oid, Oid newOwnerId);
extern Oid AlterForeignDataWrapperOwner(const char *name, Oid newOwnerId);
extern void AlterForeignDataWrapperOwner_oid(Oid fwdId, Oid newOwnerId);
-extern void CreateForeignDataWrapper(CreateFdwStmt *stmt);
-extern void AlterForeignDataWrapper(AlterFdwStmt *stmt);
+extern Oid CreateForeignDataWrapper(CreateFdwStmt *stmt);
+extern Oid AlterForeignDataWrapper(AlterFdwStmt *stmt);
extern void RemoveForeignDataWrapperById(Oid fdwId);
-extern void CreateForeignServer(CreateForeignServerStmt *stmt);
-extern void AlterForeignServer(AlterForeignServerStmt *stmt);
+extern Oid CreateForeignServer(CreateForeignServerStmt *stmt);
+extern Oid AlterForeignServer(AlterForeignServerStmt *stmt);
extern void RemoveForeignServerById(Oid srvId);
-extern void CreateUserMapping(CreateUserMappingStmt *stmt);
-extern void AlterUserMapping(AlterUserMappingStmt *stmt);
-extern void RemoveUserMapping(DropUserMappingStmt *stmt);
+extern Oid CreateUserMapping(CreateUserMappingStmt *stmt);
+extern Oid AlterUserMapping(AlterUserMappingStmt *stmt);
+extern Oid RemoveUserMapping(DropUserMappingStmt *stmt);
extern void RemoveUserMappingById(Oid umId);
extern void CreateForeignTable(CreateForeignTableStmt *stmt, Oid relid);
extern Datum transformGenericOptions(Oid catalogId,
diff --git a/src/include/commands/event_trigger.h b/src/include/commands/event_trigger.h
index 501da7c4647..abc713f7944 100644
--- a/src/include/commands/event_trigger.h
+++ b/src/include/commands/event_trigger.h
@@ -31,11 +31,11 @@ typedef struct EventTriggerData
#define CALLED_AS_EVENT_TRIGGER(fcinfo) \
((fcinfo)->context != NULL && IsA((fcinfo)->context, EventTriggerData))
-extern void CreateEventTrigger(CreateEventTrigStmt *stmt);
+extern Oid CreateEventTrigger(CreateEventTrigStmt *stmt);
extern void RemoveEventTriggerById(Oid ctrigOid);
extern Oid get_event_trigger_oid(const char *trigname, bool missing_ok);
-extern void AlterEventTrigger(AlterEventTrigStmt *stmt);
+extern Oid AlterEventTrigger(AlterEventTrigStmt *stmt);
extern Oid RenameEventTrigger(const char* trigname, const char *newname);
extern Oid AlterEventTriggerOwner(const char *name, Oid newOwnerId);
extern void AlterEventTriggerOwner_oid(Oid, Oid newOwnerId);
diff --git a/src/include/commands/extension.h b/src/include/commands/extension.h
index 205807512e2..363375f6232 100644
--- a/src/include/commands/extension.h
+++ b/src/include/commands/extension.h
@@ -36,9 +36,9 @@ extern Oid InsertExtensionTuple(const char *extName, Oid extOwner,
Datum extConfig, Datum extCondition,
List *requiredExtensions);
-extern void ExecAlterExtensionStmt(AlterExtensionStmt *stmt);
+extern Oid ExecAlterExtensionStmt(AlterExtensionStmt *stmt);
-extern void ExecAlterExtensionContentsStmt(AlterExtensionContentsStmt *stmt);
+extern Oid ExecAlterExtensionContentsStmt(AlterExtensionContentsStmt *stmt);
extern Oid get_extension_oid(const char *extname, bool missing_ok);
extern char *get_extension_name(Oid ext_oid);
diff --git a/src/include/commands/proclang.h b/src/include/commands/proclang.h
index bc380792e57..1f17ae4d3dd 100644
--- a/src/include/commands/proclang.h
+++ b/src/include/commands/proclang.h
@@ -14,7 +14,7 @@
#include "nodes/parsenodes.h"
-extern void CreateProceduralLanguage(CreatePLangStmt *stmt);
+extern Oid CreateProceduralLanguage(CreatePLangStmt *stmt);
extern void DropProceduralLanguageById(Oid langOid);
extern Oid RenameLanguage(const char *oldname, const char *newname);
extern bool PLTemplateExists(const char *languageName);
diff --git a/src/include/commands/seclabel.h b/src/include/commands/seclabel.h
index 94b3c39cc15..4866fbe798d 100644
--- a/src/include/commands/seclabel.h
+++ b/src/include/commands/seclabel.h
@@ -24,7 +24,7 @@ extern void DeleteSharedSecurityLabel(Oid objectId, Oid classId);
/*
* Statement and ESP hook support
*/
-extern void ExecSecLabelStmt(SecLabelStmt *stmt);
+extern Oid ExecSecLabelStmt(SecLabelStmt *stmt);
typedef void (*check_object_relabel_type) (const ObjectAddress *object,
const char *seclabel);
diff --git a/src/include/commands/tablespace.h b/src/include/commands/tablespace.h
index 4d5cb89101f..4b88d89de92 100644
--- a/src/include/commands/tablespace.h
+++ b/src/include/commands/tablespace.h
@@ -39,10 +39,10 @@ typedef struct TableSpaceOpts
float8 seq_page_cost;
} TableSpaceOpts;
-extern void CreateTableSpace(CreateTableSpaceStmt *stmt);
+extern Oid CreateTableSpace(CreateTableSpaceStmt *stmt);
extern void DropTableSpace(DropTableSpaceStmt *stmt);
extern Oid RenameTableSpace(const char *oldname, const char *newname);
-extern void AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt);
+extern Oid AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt);
extern void TablespaceCreateDbspace(Oid spcNode, Oid dbNode, bool isRedo);
diff --git a/src/include/commands/typecmds.h b/src/include/commands/typecmds.h
index 48ee0163bda..fed9c32daa3 100644
--- a/src/include/commands/typecmds.h
+++ b/src/include/commands/typecmds.h
@@ -24,17 +24,17 @@
extern Oid DefineType(List *names, List *parameters);
extern void RemoveTypeById(Oid typeOid);
extern Oid DefineDomain(CreateDomainStmt *stmt);
-extern void DefineEnum(CreateEnumStmt *stmt);
-extern void DefineRange(CreateRangeStmt *stmt);
-extern void AlterEnum(AlterEnumStmt *stmt, bool isTopLevel);
+extern Oid DefineEnum(CreateEnumStmt *stmt);
+extern Oid DefineRange(CreateRangeStmt *stmt);
+extern Oid AlterEnum(AlterEnumStmt *stmt, bool isTopLevel);
extern Oid DefineCompositeType(RangeVar *typevar, List *coldeflist);
extern Oid AssignTypeArrayOid(void);
-extern void AlterDomainDefault(List *names, Node *defaultRaw);
-extern void AlterDomainNotNull(List *names, bool notNull);
-extern void AlterDomainAddConstraint(List *names, Node *constr);
-extern void AlterDomainValidateConstraint(List *names, char *constrName);
-extern void AlterDomainDropConstraint(List *names, const char *constrName,
+extern Oid AlterDomainDefault(List *names, Node *defaultRaw);
+extern Oid AlterDomainNotNull(List *names, bool notNull);
+extern Oid AlterDomainAddConstraint(List *names, Node *constr);
+extern Oid AlterDomainValidateConstraint(List *names, char *constrName);
+extern Oid AlterDomainDropConstraint(List *names, const char *constrName,
DropBehavior behavior, bool missing_ok);
extern void checkDomainOwner(HeapTuple tup);
diff --git a/src/include/commands/user.h b/src/include/commands/user.h
index 650fcea5574..fdbfaeff0e8 100644
--- a/src/include/commands/user.h
+++ b/src/include/commands/user.h
@@ -22,9 +22,9 @@ typedef void (*check_password_hook_type) (const char *username, const char *pass
extern PGDLLIMPORT check_password_hook_type check_password_hook;
-extern void CreateRole(CreateRoleStmt *stmt);
-extern void AlterRole(AlterRoleStmt *stmt);
-extern void AlterRoleSet(AlterRoleSetStmt *stmt);
+extern Oid CreateRole(CreateRoleStmt *stmt);
+extern Oid AlterRole(AlterRoleStmt *stmt);
+extern Oid AlterRoleSet(AlterRoleSetStmt *stmt);
extern void DropRole(DropRoleStmt *stmt);
extern void GrantRole(GrantRoleStmt *stmt);
extern Oid RenameRole(const char *oldname, const char *newname);
diff --git a/src/include/rewrite/rewriteDefine.h b/src/include/rewrite/rewriteDefine.h
index 6061725dc43..c344658f4e6 100644
--- a/src/include/rewrite/rewriteDefine.h
+++ b/src/include/rewrite/rewriteDefine.h
@@ -22,9 +22,9 @@
#define RULE_FIRES_ON_REPLICA 'R'
#define RULE_DISABLED 'D'
-extern void DefineRule(RuleStmt *stmt, const char *queryString);
+extern Oid DefineRule(RuleStmt *stmt, const char *queryString);
-extern void DefineQueryRewrite(char *rulename,
+extern Oid DefineQueryRewrite(char *rulename,
Oid event_relid,
Node *event_qual,
CmdType event_type,