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
This commit is contained in:
Robert Haas 2012-12-29 07:55:37 -05:00
parent 5ab3af46dd
commit 82b1b213ca
29 changed files with 231 additions and 131 deletions

View File

@ -36,7 +36,7 @@
* This routine is used to add the associated comment into * This routine is used to add the associated comment into
* pg_description for the object specified by the given SQL command. * pg_description for the object specified by the given SQL command.
*/ */
void Oid
CommentObject(CommentStmt *stmt) CommentObject(CommentStmt *stmt)
{ {
ObjectAddress address; ObjectAddress address;
@ -60,7 +60,7 @@ CommentObject(CommentStmt *stmt)
ereport(WARNING, ereport(WARNING,
(errcode(ERRCODE_UNDEFINED_DATABASE), (errcode(ERRCODE_UNDEFINED_DATABASE),
errmsg("database \"%s\" does not exist", database))); errmsg("database \"%s\" does not exist", database)));
return; return InvalidOid;
} }
} }
@ -123,6 +123,8 @@ CommentObject(CommentStmt *stmt)
*/ */
if (relation != NULL) if (relation != NULL)
relation_close(relation, NoLock); relation_close(relation, NoLock);
return address.objectId;
} }
/* /*

View File

@ -743,14 +743,14 @@ CopyLoadRawBuf(CopyState cstate)
* Do not allow the copy if user doesn't have proper permission to access * Do not allow the copy if user doesn't have proper permission to access
* the table or the specifically requested columns. * the table or the specifically requested columns.
*/ */
uint64 Oid
DoCopy(const CopyStmt *stmt, const char *queryString) DoCopy(const CopyStmt *stmt, const char *queryString, uint64 *processed)
{ {
CopyState cstate; CopyState cstate;
bool is_from = stmt->is_from; bool is_from = stmt->is_from;
bool pipe = (stmt->filename == NULL); bool pipe = (stmt->filename == NULL);
Relation rel; Relation rel;
uint64 processed; Oid relid;
/* Disallow file COPY except to superusers. */ /* Disallow file COPY except to superusers. */
if (!pipe && !superuser()) if (!pipe && !superuser())
@ -774,6 +774,8 @@ DoCopy(const CopyStmt *stmt, const char *queryString)
rel = heap_openrv(stmt->relation, rel = heap_openrv(stmt->relation,
(is_from ? RowExclusiveLock : AccessShareLock)); (is_from ? RowExclusiveLock : AccessShareLock));
relid = RelationGetRelid(rel);
rte = makeNode(RangeTblEntry); rte = makeNode(RangeTblEntry);
rte->rtekind = RTE_RELATION; rte->rtekind = RTE_RELATION;
rte->relid = RelationGetRelid(rel); rte->relid = RelationGetRelid(rel);
@ -811,14 +813,14 @@ DoCopy(const CopyStmt *stmt, const char *queryString)
cstate = BeginCopyFrom(rel, stmt->filename, cstate = BeginCopyFrom(rel, stmt->filename,
stmt->attlist, stmt->options); stmt->attlist, stmt->options);
processed = CopyFrom(cstate); /* copy from file to database */ *processed = CopyFrom(cstate); /* copy from file to database */
EndCopyFrom(cstate); EndCopyFrom(cstate);
} }
else else
{ {
cstate = BeginCopyTo(rel, stmt->query, queryString, stmt->filename, cstate = BeginCopyTo(rel, stmt->query, queryString, stmt->filename,
stmt->attlist, stmt->options); stmt->attlist, stmt->options);
processed = DoCopyTo(cstate); /* copy from database to file */ *processed = DoCopyTo(cstate); /* copy from database to file */
EndCopyTo(cstate); EndCopyTo(cstate);
} }
@ -830,7 +832,7 @@ DoCopy(const CopyStmt *stmt, const char *queryString)
if (rel != NULL) if (rel != NULL)
heap_close(rel, (is_from ? NoLock : AccessShareLock)); heap_close(rel, (is_from ? NoLock : AccessShareLock));
return processed; return relid;
} }
/* /*

View File

@ -90,7 +90,7 @@ static int errdetail_busy_db(int notherbackends, int npreparedxacts);
/* /*
* CREATE DATABASE * CREATE DATABASE
*/ */
void Oid
createdb(const CreatedbStmt *stmt) createdb(const CreatedbStmt *stmt)
{ {
HeapScanDesc scan; HeapScanDesc scan;
@ -655,6 +655,8 @@ createdb(const CreatedbStmt *stmt)
} }
PG_END_ENSURE_ERROR_CLEANUP(createdb_failure_callback, PG_END_ENSURE_ERROR_CLEANUP(createdb_failure_callback,
PointerGetDatum(&fparms)); PointerGetDatum(&fparms));
return dboid;
} }
/* /*
@ -1301,10 +1303,11 @@ movedb_failure_callback(int code, Datum arg)
/* /*
* ALTER DATABASE name ... * ALTER DATABASE name ...
*/ */
void Oid
AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel) AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel)
{ {
Relation rel; Relation rel;
Oid dboid;
HeapTuple tuple, HeapTuple tuple,
newtuple; newtuple;
ScanKeyData scankey; ScanKeyData scankey;
@ -1350,7 +1353,7 @@ AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel)
/* this case isn't allowed within a transaction block */ /* this case isn't allowed within a transaction block */
PreventTransactionChain(isTopLevel, "ALTER DATABASE SET TABLESPACE"); PreventTransactionChain(isTopLevel, "ALTER DATABASE SET TABLESPACE");
movedb(stmt->dbname, strVal(dtablespace->arg)); movedb(stmt->dbname, strVal(dtablespace->arg));
return; return InvalidOid;
} }
if (dconnlimit) if (dconnlimit)
@ -1380,6 +1383,8 @@ AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel)
(errcode(ERRCODE_UNDEFINED_DATABASE), (errcode(ERRCODE_UNDEFINED_DATABASE),
errmsg("database \"%s\" does not exist", stmt->dbname))); errmsg("database \"%s\" does not exist", stmt->dbname)));
dboid = HeapTupleGetOid(tuple);
if (!pg_database_ownercheck(HeapTupleGetOid(tuple), GetUserId())) if (!pg_database_ownercheck(HeapTupleGetOid(tuple), GetUserId()))
aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_DATABASE, aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_DATABASE,
stmt->dbname); stmt->dbname);
@ -1408,13 +1413,15 @@ AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel)
/* Close pg_database, but keep lock till commit */ /* Close pg_database, but keep lock till commit */
heap_close(rel, NoLock); heap_close(rel, NoLock);
return dboid;
} }
/* /*
* ALTER DATABASE name SET ... * ALTER DATABASE name SET ...
*/ */
void Oid
AlterDatabaseSet(AlterDatabaseSetStmt *stmt) AlterDatabaseSet(AlterDatabaseSetStmt *stmt)
{ {
Oid datid = get_database_oid(stmt->dbname, false); Oid datid = get_database_oid(stmt->dbname, false);
@ -1432,6 +1439,8 @@ AlterDatabaseSet(AlterDatabaseSetStmt *stmt)
AlterSetting(datid, InvalidOid, stmt->setstmt); AlterSetting(datid, InvalidOid, stmt->setstmt);
UnlockSharedObject(DatabaseRelationId, datid, 0, AccessShareLock); UnlockSharedObject(DatabaseRelationId, datid, 0, AccessShareLock);
return datid;
} }

View File

@ -94,15 +94,15 @@ static void AlterEventTriggerOwner_internal(Relation rel,
static event_trigger_command_tag_check_result check_ddl_tag(const char *tag); static event_trigger_command_tag_check_result check_ddl_tag(const char *tag);
static void error_duplicate_filter_variable(const char *defname); static void error_duplicate_filter_variable(const char *defname);
static Datum filter_list_to_array(List *filterlist); static Datum filter_list_to_array(List *filterlist);
static void insert_event_trigger_tuple(char *trigname, char *eventname, static Oid insert_event_trigger_tuple(char *trigname, char *eventname,
Oid evtOwner, Oid funcoid, List *tags); Oid evtOwner, Oid funcoid, List *tags);
static void validate_ddl_tags(const char *filtervar, List *taglist); static void validate_ddl_tags(const char *filtervar, List *taglist);
static void EventTriggerInvoke(List *fn_oid_list, EventTriggerData *trigdata); static void EventTriggerInvoke(List *fn_oid_list, EventTriggerData *trigdata);
/* /*
* Create an event trigger. * Create an event trigger.
*/ */
void Oid
CreateEventTrigger(CreateEventTrigStmt *stmt) CreateEventTrigger(CreateEventTrigStmt *stmt)
{ {
HeapTuple tuple; HeapTuple tuple;
@ -173,8 +173,8 @@ CreateEventTrigger(CreateEventTrigStmt *stmt)
NameListToString(stmt->funcname)))); NameListToString(stmt->funcname))));
/* Insert catalog entries. */ /* Insert catalog entries. */
insert_event_trigger_tuple(stmt->trigname, stmt->eventname, return insert_event_trigger_tuple(stmt->trigname, stmt->eventname,
evtowner, funcoid, tags); evtowner, funcoid, tags);
} }
/* /*
@ -260,7 +260,7 @@ error_duplicate_filter_variable(const char *defname)
/* /*
* Insert the new pg_event_trigger row and record dependencies. * Insert the new pg_event_trigger row and record dependencies.
*/ */
static void static Oid
insert_event_trigger_tuple(char *trigname, char *eventname, Oid evtOwner, insert_event_trigger_tuple(char *trigname, char *eventname, Oid evtOwner,
Oid funcoid, List *taglist) Oid funcoid, List *taglist)
{ {
@ -312,6 +312,8 @@ insert_event_trigger_tuple(char *trigname, char *eventname, Oid evtOwner,
/* Close pg_event_trigger. */ /* Close pg_event_trigger. */
heap_close(tgrel, RowExclusiveLock); heap_close(tgrel, RowExclusiveLock);
return trigoid;
} }
/* /*
@ -376,11 +378,12 @@ RemoveEventTriggerById(Oid trigOid)
/* /*
* ALTER EVENT TRIGGER foo ENABLE|DISABLE|ENABLE ALWAYS|REPLICA * ALTER EVENT TRIGGER foo ENABLE|DISABLE|ENABLE ALWAYS|REPLICA
*/ */
void Oid
AlterEventTrigger(AlterEventTrigStmt *stmt) AlterEventTrigger(AlterEventTrigStmt *stmt)
{ {
Relation tgrel; Relation tgrel;
HeapTuple tup; HeapTuple tup;
Oid trigoid;
Form_pg_event_trigger evtForm; Form_pg_event_trigger evtForm;
char tgenabled = stmt->tgenabled; char tgenabled = stmt->tgenabled;
@ -393,7 +396,10 @@ AlterEventTrigger(AlterEventTrigStmt *stmt)
(errcode(ERRCODE_UNDEFINED_OBJECT), (errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("event trigger \"%s\" does not exist", errmsg("event trigger \"%s\" does not exist",
stmt->trigname))); 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, aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_EVENT_TRIGGER,
stmt->trigname); stmt->trigname);
@ -407,6 +413,8 @@ AlterEventTrigger(AlterEventTrigStmt *stmt)
/* clean up */ /* clean up */
heap_freetuple(tup); heap_freetuple(tup);
heap_close(tgrel, RowExclusiveLock); heap_close(tgrel, RowExclusiveLock);
return trigoid;
} }

View File

@ -2580,7 +2580,7 @@ AlterExtensionNamespace(List *names, const char *newschema)
/* /*
* Execute ALTER EXTENSION UPDATE * Execute ALTER EXTENSION UPDATE
*/ */
void Oid
ExecAlterExtensionStmt(AlterExtensionStmt *stmt) ExecAlterExtensionStmt(AlterExtensionStmt *stmt)
{ {
DefElem *d_new_version = NULL; DefElem *d_new_version = NULL;
@ -2697,7 +2697,7 @@ ExecAlterExtensionStmt(AlterExtensionStmt *stmt)
ereport(NOTICE, ereport(NOTICE,
(errmsg("version \"%s\" of extension \"%s\" is already installed", (errmsg("version \"%s\" of extension \"%s\" is already installed",
versionName, stmt->extname))); versionName, stmt->extname)));
return; return InvalidOid;
} }
/* /*
@ -2713,6 +2713,8 @@ ExecAlterExtensionStmt(AlterExtensionStmt *stmt)
*/ */
ApplyExtensionUpdates(extensionOid, control, ApplyExtensionUpdates(extensionOid, control,
oldVersionName, updateVersions); oldVersionName, updateVersions);
return extensionOid;
} }
/* /*
@ -2875,7 +2877,7 @@ ApplyExtensionUpdates(Oid extensionOid,
/* /*
* Execute ALTER EXTENSION ADD/DROP * Execute ALTER EXTENSION ADD/DROP
*/ */
void Oid
ExecAlterExtensionContentsStmt(AlterExtensionContentsStmt *stmt) ExecAlterExtensionContentsStmt(AlterExtensionContentsStmt *stmt)
{ {
ObjectAddress extension; ObjectAddress extension;
@ -2976,4 +2978,6 @@ ExecAlterExtensionContentsStmt(AlterExtensionContentsStmt *stmt)
*/ */
if (relation != NULL) if (relation != NULL)
relation_close(relation, NoLock); relation_close(relation, NoLock);
return extension.objectId;
} }

View File

@ -583,7 +583,7 @@ parse_func_options(List *func_options,
/* /*
* Create a foreign-data wrapper * Create a foreign-data wrapper
*/ */
void Oid
CreateForeignDataWrapper(CreateFdwStmt *stmt) CreateForeignDataWrapper(CreateFdwStmt *stmt)
{ {
Relation rel; Relation rel;
@ -690,13 +690,15 @@ CreateForeignDataWrapper(CreateFdwStmt *stmt)
ForeignDataWrapperRelationId, fdwId, 0, NULL); ForeignDataWrapperRelationId, fdwId, 0, NULL);
heap_close(rel, RowExclusiveLock); heap_close(rel, RowExclusiveLock);
return fdwId;
} }
/* /*
* Alter foreign-data wrapper * Alter foreign-data wrapper
*/ */
void Oid
AlterForeignDataWrapper(AlterFdwStmt *stmt) AlterForeignDataWrapper(AlterFdwStmt *stmt)
{ {
Relation rel; Relation rel;
@ -851,6 +853,8 @@ AlterForeignDataWrapper(AlterFdwStmt *stmt)
} }
heap_close(rel, RowExclusiveLock); heap_close(rel, RowExclusiveLock);
return fdwId;
} }
@ -881,7 +885,7 @@ RemoveForeignDataWrapperById(Oid fdwId)
/* /*
* Create a foreign server * Create a foreign server
*/ */
void Oid
CreateForeignServer(CreateForeignServerStmt *stmt) CreateForeignServer(CreateForeignServerStmt *stmt)
{ {
Relation rel; Relation rel;
@ -987,13 +991,15 @@ CreateForeignServer(CreateForeignServerStmt *stmt)
ForeignServerRelationId, srvId, 0, NULL); ForeignServerRelationId, srvId, 0, NULL);
heap_close(rel, RowExclusiveLock); heap_close(rel, RowExclusiveLock);
return srvId;
} }
/* /*
* Alter foreign server * Alter foreign server
*/ */
void Oid
AlterForeignServer(AlterForeignServerStmt *stmt) AlterForeignServer(AlterForeignServerStmt *stmt)
{ {
Relation rel; Relation rel;
@ -1080,6 +1086,8 @@ AlterForeignServer(AlterForeignServerStmt *stmt)
heap_freetuple(tp); heap_freetuple(tp);
heap_close(rel, RowExclusiveLock); heap_close(rel, RowExclusiveLock);
return srvId;
} }
@ -1137,7 +1145,7 @@ user_mapping_ddl_aclcheck(Oid umuserid, Oid serverid, const char *servername)
/* /*
* Create user mapping * Create user mapping
*/ */
void Oid
CreateUserMapping(CreateUserMappingStmt *stmt) CreateUserMapping(CreateUserMappingStmt *stmt)
{ {
Relation rel; Relation rel;
@ -1228,13 +1236,15 @@ CreateUserMapping(CreateUserMappingStmt *stmt)
UserMappingRelationId, umId, 0, NULL); UserMappingRelationId, umId, 0, NULL);
heap_close(rel, RowExclusiveLock); heap_close(rel, RowExclusiveLock);
return umId;
} }
/* /*
* Alter user mapping * Alter user mapping
*/ */
void Oid
AlterUserMapping(AlterUserMappingStmt *stmt) AlterUserMapping(AlterUserMappingStmt *stmt)
{ {
Relation rel; Relation rel;
@ -1314,13 +1324,15 @@ AlterUserMapping(AlterUserMappingStmt *stmt)
heap_freetuple(tp); heap_freetuple(tp);
heap_close(rel, RowExclusiveLock); heap_close(rel, RowExclusiveLock);
return umId;
} }
/* /*
* Drop user mapping * Drop user mapping
*/ */
void Oid
RemoveUserMapping(DropUserMappingStmt *stmt) RemoveUserMapping(DropUserMappingStmt *stmt)
{ {
ObjectAddress object; ObjectAddress object;
@ -1338,7 +1350,7 @@ RemoveUserMapping(DropUserMappingStmt *stmt)
* leave. * leave.
*/ */
elog(NOTICE, "role \"%s\" does not exist, skipping", stmt->username); elog(NOTICE, "role \"%s\" does not exist, skipping", stmt->username);
return; return InvalidOid;
} }
if (!srv) if (!srv)
@ -1350,7 +1362,7 @@ RemoveUserMapping(DropUserMappingStmt *stmt)
stmt->servername))); stmt->servername)));
/* IF EXISTS, just note it */ /* IF EXISTS, just note it */
ereport(NOTICE, (errmsg("server does not exist, skipping"))); ereport(NOTICE, (errmsg("server does not exist, skipping")));
return; return InvalidOid;
} }
umId = GetSysCacheOid2(USERMAPPINGUSERSERVER, umId = GetSysCacheOid2(USERMAPPINGUSERSERVER,
@ -1369,7 +1381,7 @@ RemoveUserMapping(DropUserMappingStmt *stmt)
ereport(NOTICE, ereport(NOTICE,
(errmsg("user mapping \"%s\" does not exist for the server, skipping", (errmsg("user mapping \"%s\" does not exist for the server, skipping",
MappingUserName(useId)))); MappingUserName(useId))));
return; return InvalidOid;
} }
user_mapping_ddl_aclcheck(useId, srv->serverid, srv->servername); user_mapping_ddl_aclcheck(useId, srv->serverid, srv->servername);
@ -1382,6 +1394,8 @@ RemoveUserMapping(DropUserMappingStmt *stmt)
object.objectSubId = 0; object.objectSubId = 0;
performDeletion(&object, DROP_CASCADE, 0); performDeletion(&object, DROP_CASCADE, 0);
return umId;
} }

View File

@ -1111,7 +1111,7 @@ RenameFunction(List *name, List *argtypes, const char *newname)
* RENAME and OWNER clauses, which are handled as part of the generic * RENAME and OWNER clauses, which are handled as part of the generic
* ALTER framework). * ALTER framework).
*/ */
void Oid
AlterFunction(AlterFunctionStmt *stmt) AlterFunction(AlterFunctionStmt *stmt)
{ {
HeapTuple tup; HeapTuple tup;
@ -1241,6 +1241,8 @@ AlterFunction(AlterFunctionStmt *stmt)
heap_close(rel, NoLock); heap_close(rel, NoLock);
heap_freetuple(tup); heap_freetuple(tup);
return funcOid;
} }
/* /*
@ -1318,7 +1320,7 @@ SetFunctionArgType(Oid funcOid, int argIndex, Oid newArgType)
/* /*
* CREATE CAST * CREATE CAST
*/ */
void Oid
CreateCast(CreateCastStmt *stmt) CreateCast(CreateCastStmt *stmt)
{ {
Oid sourcetypeid; Oid sourcetypeid;
@ -1632,6 +1634,8 @@ CreateCast(CreateCastStmt *stmt)
heap_freetuple(tuple); heap_freetuple(tuple);
heap_close(relation, RowExclusiveLock); heap_close(relation, RowExclusiveLock);
return castid;
} }
/* /*

View File

@ -1671,7 +1671,7 @@ ChooseIndexColumnNames(List *indexElems)
* ReindexIndex * ReindexIndex
* Recreate a specific index. * Recreate a specific index.
*/ */
void Oid
ReindexIndex(RangeVar *indexRelation) ReindexIndex(RangeVar *indexRelation)
{ {
Oid indOid; Oid indOid;
@ -1684,6 +1684,8 @@ ReindexIndex(RangeVar *indexRelation)
(void *) &heapOid); (void *) &heapOid);
reindex_index(indOid, false); reindex_index(indOid, false);
return indOid;
} }
/* /*
@ -1749,7 +1751,7 @@ RangeVarCallbackForReindexIndex(const RangeVar *relation,
* ReindexTable * ReindexTable
* Recreate all indexes of a table (and of its toast table, if any) * Recreate all indexes of a table (and of its toast table, if any)
*/ */
void Oid
ReindexTable(RangeVar *relation) ReindexTable(RangeVar *relation)
{ {
Oid heapOid; Oid heapOid;
@ -1762,6 +1764,8 @@ ReindexTable(RangeVar *relation)
ereport(NOTICE, ereport(NOTICE,
(errmsg("table \"%s\" has no indexes", (errmsg("table \"%s\" has no indexes",
relation->relname))); relation->relname)));
return heapOid;
} }
/* /*
@ -1772,7 +1776,7 @@ ReindexTable(RangeVar *relation)
* separate transaction, so we can release the lock on it right away. * separate transaction, so we can release the lock on it right away.
* That means this must not be called within a user transaction block! * That means this must not be called within a user transaction block!
*/ */
void Oid
ReindexDatabase(const char *databaseName, bool do_system, bool do_user) ReindexDatabase(const char *databaseName, bool do_system, bool do_user)
{ {
Relation relationRelation; Relation relationRelation;
@ -1882,4 +1886,6 @@ ReindexDatabase(const char *databaseName, bool do_system, bool do_user)
StartTransactionCommand(); StartTransactionCommand();
MemoryContextDelete(private_context); MemoryContextDelete(private_context);
return MyDatabaseId;
} }

View File

@ -321,7 +321,7 @@ CreateOpFamily(char *amname, char *opfname, Oid namespaceoid, Oid amoid)
* DefineOpClass * DefineOpClass
* Define a new index operator class. * Define a new index operator class.
*/ */
void Oid
DefineOpClass(CreateOpClassStmt *stmt) DefineOpClass(CreateOpClassStmt *stmt)
{ {
char *opcname; /* name of opclass we're creating */ char *opcname; /* name of opclass we're creating */
@ -714,6 +714,8 @@ DefineOpClass(CreateOpClassStmt *stmt)
OperatorClassRelationId, opclassoid, 0, NULL); OperatorClassRelationId, opclassoid, 0, NULL);
heap_close(rel, RowExclusiveLock); heap_close(rel, RowExclusiveLock);
return opclassoid;
} }
@ -721,7 +723,7 @@ DefineOpClass(CreateOpClassStmt *stmt)
* DefineOpFamily * DefineOpFamily
* Define a new index operator family. * Define a new index operator family.
*/ */
void Oid
DefineOpFamily(CreateOpFamilyStmt *stmt) DefineOpFamily(CreateOpFamilyStmt *stmt)
{ {
char *opfname; /* name of opfamily we're creating */ char *opfname; /* name of opfamily we're creating */
@ -754,7 +756,7 @@ DefineOpFamily(CreateOpFamilyStmt *stmt)
errmsg("must be superuser to create an operator family"))); errmsg("must be superuser to create an operator family")));
/* Insert pg_opfamily catalog entry */ /* 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 * other commands called ALTER OPERATOR FAMILY exist, but go through
* different code paths. * different code paths.
*/ */
void Oid
AlterOpFamily(AlterOpFamilyStmt *stmt) AlterOpFamily(AlterOpFamilyStmt *stmt)
{ {
Oid amoid, /* our AM's oid */ Oid amoid, /* our AM's oid */
@ -820,6 +822,8 @@ AlterOpFamily(AlterOpFamilyStmt *stmt)
AlterOpFamilyAdd(stmt->opfamilyname, amoid, opfamilyoid, AlterOpFamilyAdd(stmt->opfamilyname, amoid, opfamilyoid,
maxOpNumber, maxProcNumber, maxOpNumber, maxProcNumber,
stmt->items); stmt->items);
return opfamilyoid;
} }
/* /*

View File

@ -51,16 +51,16 @@ typedef struct
char *tmpllibrary; /* path of shared library */ char *tmpllibrary; /* path of shared library */
} PLTemplate; } PLTemplate;
static void create_proc_lang(const char *languageName, bool replace, static Oid create_proc_lang(const char *languageName, bool replace,
Oid languageOwner, Oid handlerOid, Oid inlineOid, Oid languageOwner, Oid handlerOid, Oid inlineOid,
Oid valOid, bool trusted); Oid valOid, bool trusted);
static PLTemplate *find_language_template(const char *languageName); static PLTemplate *find_language_template(const char *languageName);
/* --------------------------------------------------------------------- /* ---------------------------------------------------------------------
* CREATE PROCEDURAL LANGUAGE * CREATE PROCEDURAL LANGUAGE
* --------------------------------------------------------------------- * ---------------------------------------------------------------------
*/ */
void Oid
CreateProceduralLanguage(CreatePLangStmt *stmt) CreateProceduralLanguage(CreatePLangStmt *stmt)
{ {
PLTemplate *pltemplate; PLTemplate *pltemplate;
@ -225,9 +225,9 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
valOid = InvalidOid; valOid = InvalidOid;
/* ok, create it */ /* ok, create it */
create_proc_lang(stmt->plname, stmt->replace, GetUserId(), return create_proc_lang(stmt->plname, stmt->replace, GetUserId(),
handlerOid, inlineOid, handlerOid, inlineOid,
valOid, pltemplate->tmpltrusted); valOid, pltemplate->tmpltrusted);
} }
else else
{ {
@ -300,16 +300,16 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
valOid = InvalidOid; valOid = InvalidOid;
/* ok, create it */ /* ok, create it */
create_proc_lang(stmt->plname, stmt->replace, GetUserId(), return create_proc_lang(stmt->plname, stmt->replace, GetUserId(),
handlerOid, inlineOid, handlerOid, inlineOid,
valOid, stmt->pltrusted); valOid, stmt->pltrusted);
} }
} }
/* /*
* Guts of language creation. * Guts of language creation.
*/ */
static void static Oid
create_proc_lang(const char *languageName, bool replace, create_proc_lang(const char *languageName, bool replace,
Oid languageOwner, Oid handlerOid, Oid inlineOid, Oid languageOwner, Oid handlerOid, Oid inlineOid,
Oid valOid, bool trusted) Oid valOid, bool trusted)
@ -433,6 +433,8 @@ create_proc_lang(const char *languageName, bool replace,
LanguageRelationId, myself.objectId, 0, NULL); LanguageRelationId, myself.objectId, 0, NULL);
heap_close(rel, RowExclusiveLock); heap_close(rel, RowExclusiveLock);
return myself.objectId;
} }
/* /*

View File

@ -38,7 +38,7 @@ static List *label_provider_list = NIL;
* *
* Apply a security label to a database object. * Apply a security label to a database object.
*/ */
void Oid
ExecSecLabelStmt(SecLabelStmt *stmt) ExecSecLabelStmt(SecLabelStmt *stmt)
{ {
LabelProvider *provider = NULL; LabelProvider *provider = NULL;
@ -131,6 +131,8 @@ ExecSecLabelStmt(SecLabelStmt *stmt)
*/ */
if (relation != NULL) if (relation != NULL)
relation_close(relation, NoLock); relation_close(relation, NoLock);
return address.objectId;
} }
/* /*

View File

@ -222,7 +222,7 @@ TablespaceCreateDbspace(Oid spcNode, Oid dbNode, bool isRedo)
* since we're determining the system layout and, anyway, we probably have * since we're determining the system layout and, anyway, we probably have
* root if we're doing this kind of activity * root if we're doing this kind of activity
*/ */
void Oid
CreateTableSpace(CreateTableSpaceStmt *stmt) CreateTableSpace(CreateTableSpaceStmt *stmt)
{ {
#ifdef HAVE_SYMLINK #ifdef HAVE_SYMLINK
@ -371,6 +371,8 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED), (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("tablespaces are not supported on this platform"))); errmsg("tablespaces are not supported on this platform")));
#endif /* HAVE_SYMLINK */ #endif /* HAVE_SYMLINK */
return tablespaceoid;
} }
/* /*
@ -890,13 +892,14 @@ RenameTableSpace(const char *oldname, const char *newname)
/* /*
* Alter table space options * Alter table space options
*/ */
void Oid
AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt) AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt)
{ {
Relation rel; Relation rel;
ScanKeyData entry[1]; ScanKeyData entry[1];
HeapScanDesc scandesc; HeapScanDesc scandesc;
HeapTuple tup; HeapTuple tup;
Oid tablespaceoid;
Datum datum; Datum datum;
Datum newOptions; Datum newOptions;
Datum repl_val[Natts_pg_tablespace]; Datum repl_val[Natts_pg_tablespace];
@ -920,6 +923,8 @@ AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt)
errmsg("tablespace \"%s\" does not exist", errmsg("tablespace \"%s\" does not exist",
stmt->tablespacename))); stmt->tablespacename)));
tablespaceoid = HeapTupleGetOid(tup);
/* Must be owner of the existing object */ /* Must be owner of the existing object */
if (!pg_tablespace_ownercheck(HeapTupleGetOid(tup), GetUserId())) if (!pg_tablespace_ownercheck(HeapTupleGetOid(tup), GetUserId()))
aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_TABLESPACE, aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_TABLESPACE,
@ -952,6 +957,8 @@ AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt)
/* Conclude heap scan. */ /* Conclude heap scan. */
heap_endscan(scandesc); heap_endscan(scandesc);
heap_close(rel, NoLock); heap_close(rel, NoLock);
return tablespaceoid;
} }
/* /*

View File

@ -614,7 +614,7 @@ RemoveTSDictionaryById(Oid dictId)
/* /*
* ALTER TEXT SEARCH DICTIONARY * ALTER TEXT SEARCH DICTIONARY
*/ */
void Oid
AlterTSDictionary(AlterTSDictionaryStmt *stmt) AlterTSDictionary(AlterTSDictionaryStmt *stmt)
{ {
HeapTuple tup, HeapTuple tup,
@ -722,6 +722,8 @@ AlterTSDictionary(AlterTSDictionaryStmt *stmt)
ReleaseSysCache(tup); ReleaseSysCache(tup);
heap_close(rel, RowExclusiveLock); heap_close(rel, RowExclusiveLock);
return dictId;
} }
/* ---------------------- TS Template commands -----------------------*/ /* ---------------------- TS Template commands -----------------------*/
@ -1349,10 +1351,11 @@ RemoveTSConfigurationById(Oid cfgId)
/* /*
* ALTER TEXT SEARCH CONFIGURATION - main entry point * ALTER TEXT SEARCH CONFIGURATION - main entry point
*/ */
void Oid
AlterTSConfiguration(AlterTSConfigurationStmt *stmt) AlterTSConfiguration(AlterTSConfigurationStmt *stmt)
{ {
HeapTuple tup; HeapTuple tup;
Oid cfgId;
Relation relMap; Relation relMap;
/* Find the configuration */ /* Find the configuration */
@ -1363,6 +1366,8 @@ AlterTSConfiguration(AlterTSConfigurationStmt *stmt)
errmsg("text search configuration \"%s\" does not exist", errmsg("text search configuration \"%s\" does not exist",
NameListToString(stmt->cfgname)))); NameListToString(stmt->cfgname))));
cfgId = HeapTupleGetOid(tup);
/* must be owner */ /* must be owner */
if (!pg_ts_config_ownercheck(HeapTupleGetOid(tup), GetUserId())) if (!pg_ts_config_ownercheck(HeapTupleGetOid(tup), GetUserId()))
aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_TSCONFIGURATION, aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_TSCONFIGURATION,
@ -1382,6 +1387,8 @@ AlterTSConfiguration(AlterTSConfigurationStmt *stmt)
heap_close(relMap, RowExclusiveLock); heap_close(relMap, RowExclusiveLock);
ReleaseSysCache(tup); ReleaseSysCache(tup);
return cfgId;
} }
/* /*

View File

@ -1053,7 +1053,7 @@ DefineDomain(CreateDomainStmt *stmt)
* DefineEnum * DefineEnum
* Registers a new enum. * Registers a new enum.
*/ */
void Oid
DefineEnum(CreateEnumStmt *stmt) DefineEnum(CreateEnumStmt *stmt)
{ {
char *enumName; char *enumName;
@ -1166,13 +1166,15 @@ DefineEnum(CreateEnumStmt *stmt)
InvalidOid); /* type's collation */ InvalidOid); /* type's collation */
pfree(enumArrayName); pfree(enumArrayName);
return enumTypeOid;
} }
/* /*
* AlterEnum * AlterEnum
* Adds a new label to an existing enum. * Adds a new label to an existing enum.
*/ */
void Oid
AlterEnum(AlterEnumStmt *stmt, bool isTopLevel) AlterEnum(AlterEnumStmt *stmt, bool isTopLevel)
{ {
Oid enum_type_oid; Oid enum_type_oid;
@ -1215,6 +1217,8 @@ AlterEnum(AlterEnumStmt *stmt, bool isTopLevel)
stmt->skipIfExists); stmt->skipIfExists);
ReleaseSysCache(tup); ReleaseSysCache(tup);
return enum_type_oid;
} }
@ -1246,7 +1250,7 @@ checkEnumOwner(HeapTuple tup)
* DefineRange * DefineRange
* Registers a new range type. * Registers a new range type.
*/ */
void Oid
DefineRange(CreateRangeStmt *stmt) DefineRange(CreateRangeStmt *stmt)
{ {
char *typeName; char *typeName;
@ -1498,6 +1502,8 @@ DefineRange(CreateRangeStmt *stmt)
/* And create the constructor functions for this range type */ /* And create the constructor functions for this range type */
makeRangeConstructors(typeName, typeNamespace, typoid, rangeSubtype); makeRangeConstructors(typeName, typeNamespace, typoid, rangeSubtype);
return typoid;
} }
/* /*
@ -2064,7 +2070,7 @@ DefineCompositeType(RangeVar *typevar, List *coldeflist)
* *
* Routine implementing ALTER DOMAIN SET/DROP DEFAULT statements. * Routine implementing ALTER DOMAIN SET/DROP DEFAULT statements.
*/ */
void Oid
AlterDomainDefault(List *names, Node *defaultRaw) AlterDomainDefault(List *names, Node *defaultRaw)
{ {
TypeName *typename; TypeName *typename;
@ -2191,6 +2197,8 @@ AlterDomainDefault(List *names, Node *defaultRaw)
/* Clean up */ /* Clean up */
heap_close(rel, NoLock); heap_close(rel, NoLock);
heap_freetuple(newtuple); heap_freetuple(newtuple);
return domainoid;
} }
/* /*
@ -2198,7 +2206,7 @@ AlterDomainDefault(List *names, Node *defaultRaw)
* *
* Routine implementing ALTER DOMAIN SET/DROP NOT NULL statements. * Routine implementing ALTER DOMAIN SET/DROP NOT NULL statements.
*/ */
void Oid
AlterDomainNotNull(List *names, bool notNull) AlterDomainNotNull(List *names, bool notNull)
{ {
TypeName *typename; TypeName *typename;
@ -2226,7 +2234,7 @@ AlterDomainNotNull(List *names, bool notNull)
if (typTup->typnotnull == notNull) if (typTup->typnotnull == notNull)
{ {
heap_close(typrel, RowExclusiveLock); heap_close(typrel, RowExclusiveLock);
return; return InvalidOid;
} }
/* Adding a NOT NULL constraint requires checking existing columns */ /* Adding a NOT NULL constraint requires checking existing columns */
@ -2287,6 +2295,8 @@ AlterDomainNotNull(List *names, bool notNull)
/* Clean up */ /* Clean up */
heap_freetuple(tup); heap_freetuple(tup);
heap_close(typrel, RowExclusiveLock); heap_close(typrel, RowExclusiveLock);
return domainoid;
} }
/* /*
@ -2294,7 +2304,7 @@ AlterDomainNotNull(List *names, bool notNull)
* *
* Implements the ALTER DOMAIN DROP CONSTRAINT statement * Implements the ALTER DOMAIN DROP CONSTRAINT statement
*/ */
void Oid
AlterDomainDropConstraint(List *names, const char *constrName, AlterDomainDropConstraint(List *names, const char *constrName,
DropBehavior behavior, bool missing_ok) 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", (errmsg("constraint \"%s\" of domain \"%s\" does not exist, skipping",
constrName, TypeNameToString(typename)))); constrName, TypeNameToString(typename))));
} }
return domainoid;
} }
/* /*
@ -2378,7 +2390,7 @@ AlterDomainDropConstraint(List *names, const char *constrName,
* *
* Implements the ALTER DOMAIN .. ADD CONSTRAINT statement. * Implements the ALTER DOMAIN .. ADD CONSTRAINT statement.
*/ */
void Oid
AlterDomainAddConstraint(List *names, Node *newConstraint) AlterDomainAddConstraint(List *names, Node *newConstraint)
{ {
TypeName *typename; TypeName *typename;
@ -2474,6 +2486,8 @@ AlterDomainAddConstraint(List *names, Node *newConstraint)
/* Clean up */ /* Clean up */
heap_close(typrel, RowExclusiveLock); heap_close(typrel, RowExclusiveLock);
return domainoid;
} }
/* /*
@ -2481,7 +2495,7 @@ AlterDomainAddConstraint(List *names, Node *newConstraint)
* *
* Implements the ALTER DOMAIN .. VALIDATE CONSTRAINT statement. * Implements the ALTER DOMAIN .. VALIDATE CONSTRAINT statement.
*/ */
void Oid
AlterDomainValidateConstraint(List *names, char *constrName) AlterDomainValidateConstraint(List *names, char *constrName)
{ {
TypeName *typename; TypeName *typename;
@ -2573,6 +2587,8 @@ AlterDomainValidateConstraint(List *names, char *constrName)
heap_close(conrel, RowExclusiveLock); heap_close(conrel, RowExclusiveLock);
ReleaseSysCache(tup); ReleaseSysCache(tup);
return domainoid;
} }
static void static void

View File

@ -67,7 +67,7 @@ have_createrole_privilege(void)
/* /*
* CREATE ROLE * CREATE ROLE
*/ */
void Oid
CreateRole(CreateRoleStmt *stmt) CreateRole(CreateRoleStmt *stmt)
{ {
Relation pg_authid_rel; Relation pg_authid_rel;
@ -433,6 +433,8 @@ CreateRole(CreateRoleStmt *stmt)
* Close pg_authid, but keep lock till commit. * Close pg_authid, but keep lock till commit.
*/ */
heap_close(pg_authid_rel, NoLock); 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 * backwards-compatible ALTER GROUP syntax. Although it will work to say
* "ALTER ROLE role ROLE rolenames", we don't document it. * "ALTER ROLE role ROLE rolenames", we don't document it.
*/ */
void Oid
AlterRole(AlterRoleStmt *stmt) AlterRole(AlterRoleStmt *stmt)
{ {
Datum new_record[Natts_pg_authid]; Datum new_record[Natts_pg_authid];
@ -799,17 +801,20 @@ AlterRole(AlterRoleStmt *stmt)
* Close pg_authid, but keep lock till commit. * Close pg_authid, but keep lock till commit.
*/ */
heap_close(pg_authid_rel, NoLock); heap_close(pg_authid_rel, NoLock);
return roleid;
} }
/* /*
* ALTER ROLE ... SET * ALTER ROLE ... SET
*/ */
void Oid
AlterRoleSet(AlterRoleSetStmt *stmt) AlterRoleSet(AlterRoleSetStmt *stmt)
{ {
HeapTuple roletuple; HeapTuple roletuple;
Oid databaseid = InvalidOid; Oid databaseid = InvalidOid;
Oid roleid;
roletuple = SearchSysCache1(AUTHNAME, PointerGetDatum(stmt->role)); roletuple = SearchSysCache1(AUTHNAME, PointerGetDatum(stmt->role));
@ -818,6 +823,8 @@ AlterRoleSet(AlterRoleSetStmt *stmt)
(errcode(ERRCODE_UNDEFINED_OBJECT), (errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("role \"%s\" does not exist", stmt->role))); 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 * Obtain a lock on the role and make sure it didn't go away in the
* meantime. * meantime.
@ -853,6 +860,8 @@ AlterRoleSet(AlterRoleSetStmt *stmt)
AlterSetting(databaseid, HeapTupleGetOid(roletuple), stmt->setstmt); AlterSetting(databaseid, HeapTupleGetOid(roletuple), stmt->setstmt);
ReleaseSysCache(roletuple); ReleaseSysCache(roletuple);
return roleid;
} }

View File

@ -191,7 +191,7 @@ InsertRule(char *rulname,
* DefineRule * DefineRule
* Execute a CREATE RULE command. * Execute a CREATE RULE command.
*/ */
void Oid
DefineRule(RuleStmt *stmt, const char *queryString) DefineRule(RuleStmt *stmt, const char *queryString)
{ {
List *actions; List *actions;
@ -208,13 +208,13 @@ DefineRule(RuleStmt *stmt, const char *queryString)
relId = RangeVarGetRelid(stmt->relation, AccessExclusiveLock, false); relId = RangeVarGetRelid(stmt->relation, AccessExclusiveLock, false);
/* ... and execute */ /* ... and execute */
DefineQueryRewrite(stmt->rulename, return DefineQueryRewrite(stmt->rulename,
relId, relId,
whereClause, whereClause,
stmt->event, stmt->event,
stmt->instead, stmt->instead,
stmt->replace, stmt->replace,
actions); actions);
} }
@ -225,7 +225,7 @@ DefineRule(RuleStmt *stmt, const char *queryString)
* This is essentially the same as DefineRule() except that the rule's * This is essentially the same as DefineRule() except that the rule's
* action and qual have already been passed through parse analysis. * action and qual have already been passed through parse analysis.
*/ */
void Oid
DefineQueryRewrite(char *rulename, DefineQueryRewrite(char *rulename,
Oid event_relid, Oid event_relid,
Node *event_qual, Node *event_qual,
@ -239,6 +239,7 @@ DefineQueryRewrite(char *rulename,
ListCell *l; ListCell *l;
Query *query; Query *query;
bool RelisBecomingView = false; bool RelisBecomingView = false;
Oid ruleId = InvalidOid;
/* /*
* If we are installing an ON SELECT rule, we had better grab * 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 */ /* discard rule if it's null action and not INSTEAD; it's a no-op */
if (action != NIL || is_instead) if (action != NIL || is_instead)
{ {
InsertRule(rulename, ruleId = InsertRule(rulename,
event_type, event_type,
event_relid, event_relid,
event_attno, event_attno,
is_instead, is_instead,
event_qual, event_qual,
action, action,
replace); replace);
/* /*
* Set pg_class 'relhasrules' field TRUE for event relation. If * Set pg_class 'relhasrules' field TRUE for event relation. If
@ -527,6 +528,8 @@ DefineQueryRewrite(char *rulename,
/* Close rel, but keep lock till commit... */ /* Close rel, but keep lock till commit... */
heap_close(event_relation, NoLock); heap_close(event_relation, NoLock);
return ruleId;
} }
/* /*

View File

@ -708,7 +708,7 @@ standard_ProcessUtility(Node *parsetree,
{ {
uint64 processed; uint64 processed;
processed = DoCopy((CopyStmt *) parsetree, queryString); DoCopy((CopyStmt *) parsetree, queryString, &processed);
if (completionTag) if (completionTag)
snprintf(completionTag, COMPLETION_TAG_BUFSIZE, snprintf(completionTag, COMPLETION_TAG_BUFSIZE,
"COPY " UINT64_FORMAT, processed); "COPY " UINT64_FORMAT, processed);

View File

@ -29,7 +29,7 @@
*------------------------------------------------------------------ *------------------------------------------------------------------
*/ */
extern void CommentObject(CommentStmt *stmt); extern Oid CommentObject(CommentStmt *stmt);
extern void DeleteComments(Oid oid, Oid classoid, int32 subid); extern void DeleteComments(Oid oid, Oid classoid, int32 subid);

View File

@ -21,7 +21,8 @@
/* CopyStateData is private in commands/copy.c */ /* CopyStateData is private in commands/copy.c */
typedef struct CopyStateData *CopyState; 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 void ProcessCopyOptions(CopyState cstate, bool is_from, List *options);
extern CopyState BeginCopyFrom(Relation rel, const char *filename, extern CopyState BeginCopyFrom(Relation rel, const char *filename,

View File

@ -52,11 +52,11 @@ typedef struct xl_dbase_drop_rec
Oid tablespace_id; Oid tablespace_id;
} xl_dbase_drop_rec; } 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 void dropdb(const char *dbname, bool missing_ok);
extern Oid RenameDatabase(const char *oldname, const char *newname); extern Oid RenameDatabase(const char *oldname, const char *newname);
extern void AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel); extern Oid AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel);
extern void AlterDatabaseSet(AlterDatabaseSetStmt *stmt); extern Oid AlterDatabaseSet(AlterDatabaseSetStmt *stmt);
extern Oid AlterDatabaseOwner(const char *dbname, Oid newOwnerId); extern Oid AlterDatabaseOwner(const char *dbname, Oid newOwnerId);
extern Oid get_database_oid(const char *dbname, bool missingok); extern Oid get_database_oid(const char *dbname, bool missingok);

View File

@ -26,9 +26,9 @@ extern Oid DefineIndex(IndexStmt *stmt,
bool check_rights, bool check_rights,
bool skip_build, bool skip_build,
bool quiet); bool quiet);
extern void ReindexIndex(RangeVar *indexRelation); extern Oid ReindexIndex(RangeVar *indexRelation);
extern void ReindexTable(RangeVar *relation); extern Oid ReindexTable(RangeVar *relation);
extern void ReindexDatabase(const char *databaseName, extern Oid ReindexDatabase(const char *databaseName,
bool do_system, bool do_user); bool do_system, bool do_user);
extern char *makeObjectName(const char *name1, const char *name2, extern char *makeObjectName(const char *name1, const char *name2,
const char *label); const char *label);
@ -47,8 +47,8 @@ extern void RemoveFunctionById(Oid funcOid);
extern void SetFunctionReturnType(Oid funcOid, Oid newRetType); extern void SetFunctionReturnType(Oid funcOid, Oid newRetType);
extern void SetFunctionArgType(Oid funcOid, int argIndex, Oid newArgType); extern void SetFunctionArgType(Oid funcOid, int argIndex, Oid newArgType);
extern Oid RenameFunction(List *name, List *argtypes, const char *newname); extern Oid RenameFunction(List *name, List *argtypes, const char *newname);
extern void AlterFunction(AlterFunctionStmt *stmt); extern Oid AlterFunction(AlterFunctionStmt *stmt);
extern void CreateCast(CreateCastStmt *stmt); extern Oid CreateCast(CreateCastStmt *stmt);
extern void DropCastById(Oid castOid); extern void DropCastById(Oid castOid);
extern Oid AlterFunctionNamespace(List *name, List *argtypes, bool isagg, extern Oid AlterFunctionNamespace(List *name, List *argtypes, bool isagg,
const char *newschema); 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); extern Oid RenameAggregate(List *name, List *args, const char *newname);
/* commands/opclasscmds.c */ /* commands/opclasscmds.c */
extern void DefineOpClass(CreateOpClassStmt *stmt); extern Oid DefineOpClass(CreateOpClassStmt *stmt);
extern void DefineOpFamily(CreateOpFamilyStmt *stmt); extern Oid DefineOpFamily(CreateOpFamilyStmt *stmt);
extern void AlterOpFamily(AlterOpFamilyStmt *stmt); extern Oid AlterOpFamily(AlterOpFamilyStmt *stmt);
extern void RemoveOpClassById(Oid opclassOid); extern void RemoveOpClassById(Oid opclassOid);
extern void RemoveOpFamilyById(Oid opfamilyOid); extern void RemoveOpFamilyById(Oid opfamilyOid);
extern void RemoveAmOpEntryById(Oid entryOid); extern void RemoveAmOpEntryById(Oid entryOid);
@ -87,7 +87,7 @@ extern void RemoveTSParserById(Oid prsId);
extern Oid DefineTSDictionary(List *names, List *parameters); extern Oid DefineTSDictionary(List *names, List *parameters);
extern Oid RenameTSDictionary(List *oldname, const char *newname); extern Oid RenameTSDictionary(List *oldname, const char *newname);
extern void RemoveTSDictionaryById(Oid dictId); extern void RemoveTSDictionaryById(Oid dictId);
extern void AlterTSDictionary(AlterTSDictionaryStmt *stmt); extern Oid AlterTSDictionary(AlterTSDictionaryStmt *stmt);
extern Oid DefineTSTemplate(List *names, List *parameters); extern Oid DefineTSTemplate(List *names, List *parameters);
extern Oid RenameTSTemplate(List *oldname, const char *newname); 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 DefineTSConfiguration(List *names, List *parameters);
extern Oid RenameTSConfiguration(List *oldname, const char *newname); extern Oid RenameTSConfiguration(List *oldname, const char *newname);
extern void RemoveTSConfigurationById(Oid cfgId); extern void RemoveTSConfigurationById(Oid cfgId);
extern void AlterTSConfiguration(AlterTSConfigurationStmt *stmt); extern Oid AlterTSConfiguration(AlterTSConfigurationStmt *stmt);
extern text *serialize_deflist(List *deflist); extern text *serialize_deflist(List *deflist);
extern List *deserialize_deflist(Datum txt); 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 void AlterForeignServerOwner_oid(Oid, Oid newOwnerId);
extern Oid AlterForeignDataWrapperOwner(const char *name, Oid newOwnerId); extern Oid AlterForeignDataWrapperOwner(const char *name, Oid newOwnerId);
extern void AlterForeignDataWrapperOwner_oid(Oid fwdId, Oid newOwnerId); extern void AlterForeignDataWrapperOwner_oid(Oid fwdId, Oid newOwnerId);
extern void CreateForeignDataWrapper(CreateFdwStmt *stmt); extern Oid CreateForeignDataWrapper(CreateFdwStmt *stmt);
extern void AlterForeignDataWrapper(AlterFdwStmt *stmt); extern Oid AlterForeignDataWrapper(AlterFdwStmt *stmt);
extern void RemoveForeignDataWrapperById(Oid fdwId); extern void RemoveForeignDataWrapperById(Oid fdwId);
extern void CreateForeignServer(CreateForeignServerStmt *stmt); extern Oid CreateForeignServer(CreateForeignServerStmt *stmt);
extern void AlterForeignServer(AlterForeignServerStmt *stmt); extern Oid AlterForeignServer(AlterForeignServerStmt *stmt);
extern void RemoveForeignServerById(Oid srvId); extern void RemoveForeignServerById(Oid srvId);
extern void CreateUserMapping(CreateUserMappingStmt *stmt); extern Oid CreateUserMapping(CreateUserMappingStmt *stmt);
extern void AlterUserMapping(AlterUserMappingStmt *stmt); extern Oid AlterUserMapping(AlterUserMappingStmt *stmt);
extern void RemoveUserMapping(DropUserMappingStmt *stmt); extern Oid RemoveUserMapping(DropUserMappingStmt *stmt);
extern void RemoveUserMappingById(Oid umId); extern void RemoveUserMappingById(Oid umId);
extern void CreateForeignTable(CreateForeignTableStmt *stmt, Oid relid); extern void CreateForeignTable(CreateForeignTableStmt *stmt, Oid relid);
extern Datum transformGenericOptions(Oid catalogId, extern Datum transformGenericOptions(Oid catalogId,

View File

@ -31,11 +31,11 @@ typedef struct EventTriggerData
#define CALLED_AS_EVENT_TRIGGER(fcinfo) \ #define CALLED_AS_EVENT_TRIGGER(fcinfo) \
((fcinfo)->context != NULL && IsA((fcinfo)->context, EventTriggerData)) ((fcinfo)->context != NULL && IsA((fcinfo)->context, EventTriggerData))
extern void CreateEventTrigger(CreateEventTrigStmt *stmt); extern Oid CreateEventTrigger(CreateEventTrigStmt *stmt);
extern void RemoveEventTriggerById(Oid ctrigOid); extern void RemoveEventTriggerById(Oid ctrigOid);
extern Oid get_event_trigger_oid(const char *trigname, bool missing_ok); 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 RenameEventTrigger(const char* trigname, const char *newname);
extern Oid AlterEventTriggerOwner(const char *name, Oid newOwnerId); extern Oid AlterEventTriggerOwner(const char *name, Oid newOwnerId);
extern void AlterEventTriggerOwner_oid(Oid, Oid newOwnerId); extern void AlterEventTriggerOwner_oid(Oid, Oid newOwnerId);

View File

@ -36,9 +36,9 @@ extern Oid InsertExtensionTuple(const char *extName, Oid extOwner,
Datum extConfig, Datum extCondition, Datum extConfig, Datum extCondition,
List *requiredExtensions); 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 Oid get_extension_oid(const char *extname, bool missing_ok);
extern char *get_extension_name(Oid ext_oid); extern char *get_extension_name(Oid ext_oid);

View File

@ -14,7 +14,7 @@
#include "nodes/parsenodes.h" #include "nodes/parsenodes.h"
extern void CreateProceduralLanguage(CreatePLangStmt *stmt); extern Oid CreateProceduralLanguage(CreatePLangStmt *stmt);
extern void DropProceduralLanguageById(Oid langOid); extern void DropProceduralLanguageById(Oid langOid);
extern Oid RenameLanguage(const char *oldname, const char *newname); extern Oid RenameLanguage(const char *oldname, const char *newname);
extern bool PLTemplateExists(const char *languageName); extern bool PLTemplateExists(const char *languageName);

View File

@ -24,7 +24,7 @@ extern void DeleteSharedSecurityLabel(Oid objectId, Oid classId);
/* /*
* Statement and ESP hook support * Statement and ESP hook support
*/ */
extern void ExecSecLabelStmt(SecLabelStmt *stmt); extern Oid ExecSecLabelStmt(SecLabelStmt *stmt);
typedef void (*check_object_relabel_type) (const ObjectAddress *object, typedef void (*check_object_relabel_type) (const ObjectAddress *object,
const char *seclabel); const char *seclabel);

View File

@ -39,10 +39,10 @@ typedef struct TableSpaceOpts
float8 seq_page_cost; float8 seq_page_cost;
} TableSpaceOpts; } TableSpaceOpts;
extern void CreateTableSpace(CreateTableSpaceStmt *stmt); extern Oid CreateTableSpace(CreateTableSpaceStmt *stmt);
extern void DropTableSpace(DropTableSpaceStmt *stmt); extern void DropTableSpace(DropTableSpaceStmt *stmt);
extern Oid RenameTableSpace(const char *oldname, const char *newname); 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); extern void TablespaceCreateDbspace(Oid spcNode, Oid dbNode, bool isRedo);

View File

@ -24,17 +24,17 @@
extern Oid DefineType(List *names, List *parameters); extern Oid DefineType(List *names, List *parameters);
extern void RemoveTypeById(Oid typeOid); extern void RemoveTypeById(Oid typeOid);
extern Oid DefineDomain(CreateDomainStmt *stmt); extern Oid DefineDomain(CreateDomainStmt *stmt);
extern void DefineEnum(CreateEnumStmt *stmt); extern Oid DefineEnum(CreateEnumStmt *stmt);
extern void DefineRange(CreateRangeStmt *stmt); extern Oid DefineRange(CreateRangeStmt *stmt);
extern void AlterEnum(AlterEnumStmt *stmt, bool isTopLevel); extern Oid AlterEnum(AlterEnumStmt *stmt, bool isTopLevel);
extern Oid DefineCompositeType(RangeVar *typevar, List *coldeflist); extern Oid DefineCompositeType(RangeVar *typevar, List *coldeflist);
extern Oid AssignTypeArrayOid(void); extern Oid AssignTypeArrayOid(void);
extern void AlterDomainDefault(List *names, Node *defaultRaw); extern Oid AlterDomainDefault(List *names, Node *defaultRaw);
extern void AlterDomainNotNull(List *names, bool notNull); extern Oid AlterDomainNotNull(List *names, bool notNull);
extern void AlterDomainAddConstraint(List *names, Node *constr); extern Oid AlterDomainAddConstraint(List *names, Node *constr);
extern void AlterDomainValidateConstraint(List *names, char *constrName); extern Oid AlterDomainValidateConstraint(List *names, char *constrName);
extern void AlterDomainDropConstraint(List *names, const char *constrName, extern Oid AlterDomainDropConstraint(List *names, const char *constrName,
DropBehavior behavior, bool missing_ok); DropBehavior behavior, bool missing_ok);
extern void checkDomainOwner(HeapTuple tup); extern void checkDomainOwner(HeapTuple tup);

View File

@ -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 PGDLLIMPORT check_password_hook_type check_password_hook;
extern void CreateRole(CreateRoleStmt *stmt); extern Oid CreateRole(CreateRoleStmt *stmt);
extern void AlterRole(AlterRoleStmt *stmt); extern Oid AlterRole(AlterRoleStmt *stmt);
extern void AlterRoleSet(AlterRoleSetStmt *stmt); extern Oid AlterRoleSet(AlterRoleSetStmt *stmt);
extern void DropRole(DropRoleStmt *stmt); extern void DropRole(DropRoleStmt *stmt);
extern void GrantRole(GrantRoleStmt *stmt); extern void GrantRole(GrantRoleStmt *stmt);
extern Oid RenameRole(const char *oldname, const char *newname); extern Oid RenameRole(const char *oldname, const char *newname);

View File

@ -22,9 +22,9 @@
#define RULE_FIRES_ON_REPLICA 'R' #define RULE_FIRES_ON_REPLICA 'R'
#define RULE_DISABLED 'D' #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, Oid event_relid,
Node *event_qual, Node *event_qual,
CmdType event_type, CmdType event_type,