80 const char *queryString,
242 (
errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION),
244 errmsg(
"cannot execute %s in a read-only transaction",
260 (
errcode(ERRCODE_INVALID_TRANSACTION_STATE),
262 errmsg(
"cannot execute %s during a parallel operation",
279 (
errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION),
281 errmsg(
"cannot execute %s during recovery",
297 (
errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
299 errmsg(
"cannot execute %s within security-restricted operation",
338 const char *queryString,
347 Assert(queryString != NULL);
355 (*ProcessUtility_hook) (pstmt, queryString,
356 context, params, queryEnv,
357 dest, completionTag);
360 context, params, queryEnv,
361 dest, completionTag);
377 const char *queryString,
395 completionTag[0] =
'\0';
425 if (strcmp(item->
defname,
"transaction_isolation") == 0)
429 else if (strcmp(item->
defname,
"transaction_read_only") == 0)
433 else if (strcmp(item->
defname,
"transaction_deferrable") == 0)
446 strcpy(completionTag,
"ROLLBACK");
456 strcpy(completionTag,
"ROLLBACK");
504 queryString, isTopLevel);
568 dest, completionTag);
663 "VACUUM" :
"ANALYZE");
754 (
errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
755 errmsg(
"must be superuser to do CHECKPOINT")));
774 "REINDEX CONCURRENTLY");
804 elog(
ERROR,
"unrecognized object type: %d",
822 context, params, queryEnv,
823 dest, completionTag);
835 context, params, queryEnv,
836 dest, completionTag);
848 context, params, queryEnv,
849 dest, completionTag);
861 context, params, queryEnv,
862 dest, completionTag);
874 context, params, queryEnv,
875 dest, completionTag);
887 context, params, queryEnv,
888 dest, completionTag);
900 context, params, queryEnv,
901 dest, completionTag);
913 context, params, queryEnv,
914 dest, completionTag);
923 context, params, queryEnv,
924 dest, completionTag);
946 const char *queryString,
957 bool commandCollected =
false;
985 commandCollected =
true;
1005 Datum toast_options;
1044 RELKIND_FOREIGN_TABLE,
1079 if (
lnext(stmts, l) != NULL)
1087 commandCollected =
true;
1160 if (
lnext(stmts, l) != NULL)
1169 (
errmsg(
"relation \"%s\" does not exist, skipping",
1174 commandCollected =
true;
1226 elog(
ERROR,
"unrecognized alter domain type: %d",
1289 elog(
ERROR,
"unrecognized define stmt type: %d",
1304 "CREATE INDEX CONCURRENTLY");
1339 foreach(lc, inheritors)
1343 if (relkind != RELKIND_RELATION &&
1344 relkind != RELKIND_MATVIEW &&
1345 relkind != RELKIND_PARTITIONED_TABLE &&
1346 relkind != RELKIND_FOREIGN_TABLE)
1347 elog(
ERROR,
"unexpected relkind \"%c\" on partition \"%s\"",
1350 if (relkind == RELKIND_FOREIGN_TABLE &&
1353 (
errcode(ERRCODE_WRONG_OBJECT_TYPE),
1354 errmsg(
"cannot create unique index on partitioned table \"%s\"",
1356 errdetail(
"Table \"%s\" contains partitions that are foreign tables.",
1386 commandCollected =
true;
1431 commandCollected =
true;
1437 commandCollected =
true;
1468 commandCollected =
true;
1494 queryString, params, queryEnv,
1510 queryString, params, completionTag);
1545 commandCollected =
true;
1559 commandCollected =
true;
1574 commandCollected =
true;
1580 commandCollected =
true;
1586 commandCollected =
true;
1620 commandCollected =
true;
1626 commandCollected =
true;
1632 commandCollected =
true;
1662 commandCollected =
true;
1677 commandCollected =
true;
1693 elog(
ERROR,
"unrecognized node type: %d",
1702 if (!commandCollected)
1706 if (isCompleteQuery)
1731 "DROP INDEX CONCURRENTLY");
1866 QueryReturnsTuples(
Query *parsetree)
1951 tag =
"ALTER AGGREGATE";
1960 tag =
"ALTER COLLATION";
1963 tag =
"ALTER TABLE";
1966 tag =
"ALTER CONVERSION";
1969 tag =
"ALTER DATABASE";
1973 tag =
"ALTER DOMAIN";
1976 tag =
"ALTER EXTENSION";
1979 tag =
"ALTER FOREIGN DATA WRAPPER";
1982 tag =
"ALTER SERVER";
1985 tag =
"ALTER FOREIGN TABLE";
1988 tag =
"ALTER FUNCTION";
1991 tag =
"ALTER INDEX";
1994 tag =
"ALTER LANGUAGE";
1997 tag =
"ALTER LARGE OBJECT";
2000 tag =
"ALTER OPERATOR CLASS";
2003 tag =
"ALTER OPERATOR";
2006 tag =
"ALTER OPERATOR FAMILY";
2009 tag =
"ALTER POLICY";
2012 tag =
"ALTER PROCEDURE";
2018 tag =
"ALTER ROUTINE";
2024 tag =
"ALTER SCHEMA";
2027 tag =
"ALTER SEQUENCE";
2031 tag =
"ALTER TABLE";
2034 tag =
"ALTER TABLESPACE";
2037 tag =
"ALTER TRIGGER";
2040 tag =
"ALTER EVENT TRIGGER";
2043 tag =
"ALTER TEXT SEARCH CONFIGURATION";
2046 tag =
"ALTER TEXT SEARCH DICTIONARY";
2049 tag =
"ALTER TEXT SEARCH PARSER";
2052 tag =
"ALTER TEXT SEARCH TEMPLATE";
2061 tag =
"ALTER MATERIALIZED VIEW";
2064 tag =
"ALTER PUBLICATION";
2067 tag =
"ALTER SUBSCRIPTION";
2070 tag =
"ALTER STATISTICS";
2133 tag =
"START TRANSACTION";
2154 tag =
"PREPARE TRANSACTION";
2158 tag =
"COMMIT PREPARED";
2162 tag =
"ROLLBACK PREPARED";
2173 tag =
"DECLARE CURSOR";
2181 tag =
"CLOSE CURSOR ALL";
2183 tag =
"CLOSE CURSOR";
2191 tag = (stmt->
ismove) ?
"MOVE" :
"FETCH";
2196 tag =
"CREATE DOMAIN";
2200 tag =
"CREATE SCHEMA";
2204 tag =
"CREATE TABLE";
2208 tag =
"CREATE TABLESPACE";
2212 tag =
"DROP TABLESPACE";
2216 tag =
"ALTER TABLESPACE";
2220 tag =
"CREATE EXTENSION";
2224 tag =
"ALTER EXTENSION";
2228 tag =
"ALTER EXTENSION";
2232 tag =
"CREATE FOREIGN DATA WRAPPER";
2236 tag =
"ALTER FOREIGN DATA WRAPPER";
2240 tag =
"CREATE SERVER";
2244 tag =
"ALTER SERVER";
2248 tag =
"CREATE USER MAPPING";
2252 tag =
"ALTER USER MAPPING";
2256 tag =
"DROP USER MAPPING";
2260 tag =
"CREATE FOREIGN TABLE";
2264 tag =
"IMPORT FOREIGN SCHEMA";
2268 switch (((
DropStmt *) parsetree)->removeType)
2274 tag =
"DROP SEQUENCE";
2280 tag =
"DROP MATERIALIZED VIEW";
2289 tag =
"DROP DOMAIN";
2292 tag =
"DROP COLLATION";
2295 tag =
"DROP CONVERSION";
2298 tag =
"DROP SCHEMA";
2301 tag =
"DROP TEXT SEARCH PARSER";
2304 tag =
"DROP TEXT SEARCH DICTIONARY";
2307 tag =
"DROP TEXT SEARCH TEMPLATE";
2310 tag =
"DROP TEXT SEARCH CONFIGURATION";
2313 tag =
"DROP FOREIGN TABLE";
2316 tag =
"DROP EXTENSION";
2319 tag =
"DROP FUNCTION";
2322 tag =
"DROP PROCEDURE";
2325 tag =
"DROP ROUTINE";
2328 tag =
"DROP AGGREGATE";
2331 tag =
"DROP OPERATOR";
2334 tag =
"DROP LANGUAGE";
2340 tag =
"DROP TRIGGER";
2343 tag =
"DROP EVENT TRIGGER";
2349 tag =
"DROP FOREIGN DATA WRAPPER";
2352 tag =
"DROP SERVER";
2355 tag =
"DROP OPERATOR CLASS";
2358 tag =
"DROP OPERATOR FAMILY";
2361 tag =
"DROP POLICY";
2364 tag =
"DROP TRANSFORM";
2367 tag =
"DROP ACCESS METHOD";
2370 tag =
"DROP PUBLICATION";
2373 tag =
"DROP STATISTICS";
2381 tag =
"TRUNCATE TABLE";
2389 tag =
"SECURITY LABEL";
2428 tag =
"ALTER DOMAIN";
2435 tag =
"ALTER FUNCTION";
2438 tag =
"ALTER PROCEDURE";
2441 tag =
"ALTER ROUTINE";
2452 tag = (stmt->
is_grant) ?
"GRANT" :
"REVOKE";
2460 tag = (stmt->
is_grant) ?
"GRANT ROLE" :
"REVOKE ROLE";
2465 tag =
"ALTER DEFAULT PRIVILEGES";
2472 tag =
"CREATE AGGREGATE";
2475 tag =
"CREATE OPERATOR";
2478 tag =
"CREATE TYPE";
2481 tag =
"CREATE TEXT SEARCH PARSER";
2484 tag =
"CREATE TEXT SEARCH DICTIONARY";
2487 tag =
"CREATE TEXT SEARCH TEMPLATE";
2490 tag =
"CREATE TEXT SEARCH CONFIGURATION";
2493 tag =
"CREATE COLLATION";
2496 tag =
"CREATE ACCESS METHOD";
2504 tag =
"CREATE TYPE";
2508 tag =
"CREATE TYPE";
2512 tag =
"CREATE TYPE";
2520 tag =
"CREATE VIEW";
2525 tag =
"CREATE PROCEDURE";
2527 tag =
"CREATE FUNCTION";
2531 tag =
"CREATE INDEX";
2535 tag =
"CREATE RULE";
2539 tag =
"CREATE SEQUENCE";
2543 tag =
"ALTER SEQUENCE";
2551 tag =
"CREATE DATABASE";
2555 tag =
"ALTER DATABASE";
2559 tag =
"ALTER DATABASE";
2563 tag =
"DROP DATABASE";
2591 if (((
VacuumStmt *) parsetree)->is_vacuumcmd)
2606 tag =
"SELECT INTO";
2608 tag =
"CREATE TABLE AS";
2611 tag =
"CREATE MATERIALIZED VIEW";
2619 tag =
"REFRESH MATERIALIZED VIEW";
2623 tag =
"ALTER SYSTEM";
2652 tag =
"DISCARD ALL";
2655 tag =
"DISCARD PLANS";
2658 tag =
"DISCARD TEMP";
2661 tag =
"DISCARD SEQUENCES";
2669 tag =
"CREATE TRANSFORM";
2673 tag =
"CREATE TRIGGER";
2677 tag =
"CREATE EVENT TRIGGER";
2681 tag =
"ALTER EVENT TRIGGER";
2685 tag =
"CREATE LANGUAGE";
2689 tag =
"CREATE ROLE";
2709 tag =
"REASSIGN OWNED";
2717 tag =
"SET CONSTRAINTS";
2729 tag =
"CREATE CONVERSION";
2733 tag =
"CREATE CAST";
2737 tag =
"CREATE OPERATOR CLASS";
2741 tag =
"CREATE OPERATOR FAMILY";
2745 tag =
"ALTER OPERATOR FAMILY";
2749 tag =
"ALTER OPERATOR";
2753 tag =
"ALTER TEXT SEARCH DICTIONARY";
2757 tag =
"ALTER TEXT SEARCH CONFIGURATION";
2761 tag =
"CREATE POLICY";
2765 tag =
"ALTER POLICY";
2769 tag =
"CREATE ACCESS METHOD";
2773 tag =
"CREATE PUBLICATION";
2777 tag =
"ALTER PUBLICATION";
2781 tag =
"CREATE SUBSCRIPTION";
2785 tag =
"ALTER SUBSCRIPTION";
2789 tag =
"DROP SUBSCRIPTION";
2793 tag =
"ALTER COLLATION";
2805 tag =
"CREATE STATISTICS";
2809 tag =
"ALTER STATISTICS";
2816 if (stmt->
name == NULL)
2817 tag =
"DEALLOCATE ALL";
2843 tag =
"SELECT FOR KEY SHARE";
2846 tag =
"SELECT FOR SHARE";
2849 tag =
"SELECT FOR NO KEY UPDATE";
2852 tag =
"SELECT FOR UPDATE";
2903 tag =
"SELECT FOR KEY SHARE";
2906 tag =
"SELECT FOR SHARE";
2909 tag =
"SELECT FOR NO KEY UPDATE";
2912 tag =
"SELECT FOR UPDATE";
3055 if (((
CopyStmt *) parsetree)->is_from)
3236 if (strcmp(opt->
defname,
"analyze") == 0)
TupleDesc GetPGVariableResultDesc(const char *name)
ObjectAddress AlterSequence(ParseState *pstate, AlterSeqStmt *stmt)
ObjectAddress DefineTSParser(List *names, List *parameters)
bytea * heap_reloptions(char relkind, Datum reloptions, bool validate)
bool CommandIsReadOnly(PlannedStmt *pstmt)
ObjectAddress AlterForeignServer(AlterForeignServerStmt *stmt)
void CreateForeignTable(CreateForeignTableStmt *stmt, Oid relid)
void DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel)
ObjectAddress DefineOperator(List *names, List *parameters)
TupleDesc CreateTupleDescCopy(TupleDesc tupdesc)
ObjectAddress AlterSubscription(AlterSubscriptionStmt *stmt)
#define IsA(nodeptr, _type_)
ObjectAddress DefineTSConfiguration(List *names, List *parameters, ObjectAddress *copied)
ObjectAddress CreateTransform(CreateTransformStmt *stmt)
static void ExecDropStmt(DropStmt *stmt, bool isTopLevel)
ObjectAddress DefineIndex(Oid relationId, IndexStmt *stmt, Oid indexRelationId, Oid parentIndexId, Oid parentConstraintId, bool is_alter_table, bool check_rights, bool check_not_in_use, bool skip_build, bool quiet)
void PerformPortalClose(const char *name)
ObjectAddress AlterDomainAddConstraint(List *names, Node *newConstraint, ObjectAddress *constrAddr)
bool EndTransactionBlock(bool chain)
Datum transformRelOptions(Datum oldOptions, List *defList, const char *namspace, char *validnsps[], bool acceptOidsOff, bool isReset)
ObjectAddress CreateForeignDataWrapper(CreateFdwStmt *stmt)
void PreventCommandIfParallelMode(const char *cmdname)
Oid ReindexTable(RangeVar *relation, int options, bool concurrent)
ObjectAddress CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt)
static ListCell * lnext(const List *l, const ListCell *c)
ObjectAddress CreatePublication(CreatePublicationStmt *stmt)
ObjectAddress ExecSecLabelStmt(SecLabelStmt *stmt)
void WarnNoTransactionBlock(bool isTopLevel, const char *stmtType)
#define castNode(_type_, nodeptr)
CachedPlanSource * plansource
Oid AlterTableLookupRelation(AlterTableStmt *stmt, LOCKMODE lockmode)
Portal GetPortalByName(const char *name)
ObjectAddress AlterDomainValidateConstraint(List *names, const char *constrName)
ObjectAddress DefineAggregate(ParseState *pstate, List *name, List *args, bool oldstyle, List *parameters, bool replace)
char get_rel_relkind(Oid relid)
ObjectAddress AlterEnum(AlterEnumStmt *stmt)
void DropOwnedObjects(DropOwnedStmt *stmt)
Oid AlterDatabaseSet(AlterDatabaseSetStmt *stmt)
void DefineSavepoint(const char *name)
void AfterTriggerSetState(ConstraintsSetStmt *stmt)
TupleDesc CallStmtResultDesc(CallStmt *stmt)
void EventTriggerDDLCommandEnd(Node *parsetree)
void ExecuteCallStmt(CallStmt *stmt, ParamListInfo params, bool atomic, DestReceiver *dest)
static void CheckRestrictedOperation(const char *cmdname)
ProcessUtility_hook_type ProcessUtility_hook
ObjectAddress ExecAlterExtensionContentsStmt(AlterExtensionContentsStmt *stmt, ObjectAddress *objAddr)
bool PrepareTransactionBlock(const char *gid)
void ProcessUtility(PlannedStmt *pstmt, const char *queryString, ProcessUtilityContext context, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest, char *completionTag)
int errcode(int sqlerrcode)
void PerformCursorOpen(DeclareCursorStmt *cstmt, ParamListInfo params, const char *queryString, bool isTopLevel)
ObjectAddress CreateProceduralLanguage(CreatePLangStmt *stmt)
void EventTriggerInhibitCommandCollection(void)
ObjectAddress DefineDomain(CreateDomainStmt *stmt)
void Async_Listen(const char *channel)
ObjectAddress DefineCompositeType(RangeVar *typevar, List *coldeflist)
Oid CreateTableSpace(CreateTableSpaceStmt *stmt)
void AlterTable(Oid relid, LOCKMODE lockmode, AlterTableStmt *stmt)
void ReindexMultipleTables(const char *objectName, ReindexObjectType objectKind, int options, bool concurrent)
void ReindexIndex(RangeVar *indexRelation, int options, bool concurrent)
bool RecoveryInProgress(void)
void ExecuteTruncate(TruncateStmt *stmt)
void RemoveObjects(DropStmt *stmt)
ObjectAddress DefineOpClass(CreateOpClassStmt *stmt)
DestReceiver * None_Receiver
ObjectAddress CreateSubscription(CreateSubscriptionStmt *stmt, bool isTopLevel)
void NewRelationCreateToastTable(Oid relOid, Datum reloptions)
#define OidIsValid(objectId)
void ExecuteQuery(ExecuteStmt *stmt, IntoClause *intoClause, const char *queryString, ParamListInfo params, DestReceiver *dest, char *completionTag)
Oid CreateRole(ParseState *pstate, CreateRoleStmt *stmt)
void RollbackToSavepoint(const char *name)
void GetPGVariable(const char *name, DestReceiver *dest)
ParseState * make_parsestate(ParseState *parentParseState)
Query * UtilityContainsQuery(Node *parsetree)
void EventTriggerAlterTableStart(Node *parsetree)
bool IsTransactionBlock(void)
void DeallocateQuery(DeallocateStmt *stmt)
bool defGetBoolean(DefElem *def)
ObjectAddress AlterPolicy(AlterPolicyStmt *stmt)
void RemoveRelations(DropStmt *drop)
ObjectAddress AlterStatistics(AlterStatsStmt *stmt)
void standard_ProcessUtility(PlannedStmt *pstmt, const char *queryString, ProcessUtilityContext context, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest, char *completionTag)
bool IsInParallelMode(void)
void RangeVarCallbackOwnsRelation(const RangeVar *relation, Oid relId, Oid oldRelId, void *arg)
ObjectAddress AlterDomainDefault(List *names, Node *defaultRaw)
static void ProcessUtilitySlow(ParseState *pstate, PlannedStmt *pstmt, const char *queryString, ProcessUtilityContext context, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest, char *completionTag)
void PreventCommandDuringRecovery(const char *cmdname)
void GrantRole(GrantRoleStmt *stmt)
ObjectAddress AlterOperator(AlterOperatorStmt *stmt)
TupleDesc ExplainResultDesc(ExplainStmt *stmt)
void PerformPortalFetch(FetchStmt *stmt, DestReceiver *dest, char *completionTag)
void EventTriggerDDLCommandStart(Node *parsetree)
ObjectAddress CreatePolicy(CreatePolicyStmt *stmt)
void EventTriggerSQLDrop(Node *parsetree)
ObjectAddress AlterTSConfiguration(AlterTSConfigurationStmt *stmt)
ObjectAddress AlterDomainNotNull(List *names, bool notNull)
Oid RemoveUserMapping(DropUserMappingStmt *stmt)
ObjectAddress CreateUserMapping(CreateUserMappingStmt *stmt)
void ExecSetVariableStmt(VariableSetStmt *stmt, bool isTopLevel)
List * transformAlterTableStmt(Oid relid, AlterTableStmt *stmt, const char *queryString)
ObjectAddress AlterTSDictionary(AlterTSDictionaryStmt *stmt)
void check_stack_depth(void)
int errdetail(const char *fmt,...)
ObjectAddress DefineRange(CreateRangeStmt *stmt)
void PreventInTransactionBlock(bool isTopLevel, const char *stmtType)
Oid RangeVarGetRelidExtended(const RangeVar *relation, LOCKMODE lockmode, uint32 flags, RangeVarGetRelidCallback callback, void *callback_arg)
ObjectAddress DefineEnum(CreateEnumStmt *stmt)
bool UtilityReturnsTuples(Node *parsetree)
void(* ProcessUtility_hook_type)(PlannedStmt *pstmt, const char *queryString, ProcessUtilityContext context, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest, char *completionTag)
void cluster(ClusterStmt *stmt, bool isTopLevel)
ObjectAddress DefineView(ViewStmt *stmt, const char *queryString, int stmt_location, int stmt_len)
Oid CreateSchemaCommand(CreateSchemaStmt *stmt, const char *queryString, int stmt_location, int stmt_len)
void ExecuteDoStmt(DoStmt *stmt, bool atomic)
#define HEAP_RELOPT_NAMESPACES
const char * p_sourcetext
void DropTableSpace(DropTableSpaceStmt *stmt)
ObjectAddress AlterUserMapping(AlterUserMappingStmt *stmt)
void PrepareQuery(PrepareStmt *stmt, const char *queryString, int stmt_location, int stmt_len)
ObjectAddress ExecRenameStmt(RenameStmt *stmt)
ObjectAddress DefineSequence(ParseState *pstate, CreateSeqStmt *seq)
ObjectAddress DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId, ObjectAddress *typaddress, const char *queryString)
#define ereport(elevel, rest)
const char * CreateCommandTag(Node *parsetree)
void ExecAlterDefaultPrivilegesStmt(ParseState *pstate, AlterDefaultPrivilegesStmt *stmt)
ObjectAddress DefineType(ParseState *pstate, List *names, List *parameters)
Oid AlterEventTrigger(AlterEventTrigStmt *stmt)
ObjectAddress CreateExtension(ParseState *pstate, CreateExtensionStmt *stmt)
void BeginTransactionBlock(void)
void EventTriggerEndCompleteQuery(void)
Oid AlterRole(AlterRoleStmt *stmt)
LOCKMODE AlterTableGetLockLevel(List *cmds)
ObjectAddress CreateForeignServer(CreateForeignServerStmt *stmt)
void AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
void EventTriggerUndoInhibitCommandCollection(void)
void CommandCounterIncrement(void)
void ReleaseSavepoint(const char *name)
Oid AlterRoleSet(AlterRoleSetStmt *stmt)
Oid CreateEventTrigger(CreateEventTrigStmt *stmt)
TupleDesc FetchPreparedStatementResultDesc(PreparedStatement *stmt)
ObjectAddress ExecAlterObjectDependsStmt(AlterObjectDependsStmt *stmt, ObjectAddress *refAddress)
void EventTriggerCollectAlterDefPrivs(AlterDefaultPrivilegesStmt *stmt)
ObjectAddress DefineCollation(ParseState *pstate, List *names, List *parameters, bool if_not_exists)
bool EventTriggerSupportsObjectType(ObjectType obtype)
Oid AlterDatabase(ParseState *pstate, AlterDatabaseStmt *stmt, bool isTopLevel)
ObjectAddress CreateCast(CreateCastStmt *stmt)
void FinishPreparedTransaction(const char *gid, bool isCommit)
ObjectAddress ExecAlterExtensionStmt(ParseState *pstate, AlterExtensionStmt *stmt)
ObjectAddress ExecAlterObjectSchemaStmt(AlterObjectSchemaStmt *stmt, ObjectAddress *oldSchemaAddr)
#define ShareUpdateExclusiveLock
#define COMPLETION_TAG_BUFSIZE
ObjectAddress DefineTSDictionary(List *names, List *parameters)
void ExecVacuum(ParseState *pstate, VacuumStmt *vacstmt, bool isTopLevel)
void DoCopy(ParseState *pstate, const CopyStmt *stmt, int stmt_location, int stmt_len, uint64 *processed)
#define Assert(condition)
bool InSecurityRestrictedOperation(void)
void load_file(const char *filename, bool restricted)
ObjectAddress CreateConversionCommand(CreateConversionStmt *stmt)
void Async_UnlistenAll(void)
Oid AlterTableMoveAll(AlterTableMoveAllStmt *stmt)
ObjectAddress AlterForeignDataWrapper(AlterFdwStmt *stmt)
List * transformCreateStmt(CreateStmt *stmt, const char *queryString)
ObjectAddress ExecAlterOwnerStmt(AlterOwnerStmt *stmt)
struct RawStmt * raw_parse_tree
void PreventCommandIfReadOnly(const char *cmdname)
void EventTriggerAlterTableRelid(Oid objectId)
void ExplainQuery(ParseState *pstate, ExplainStmt *stmt, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest)
void Async_Notify(const char *channel, const char *payload)
Oid AlterOpFamily(AlterOpFamilyStmt *stmt)
ObjectAddress DefineOpFamily(CreateOpFamilyStmt *stmt)
ObjectAddress AlterDomainDropConstraint(List *names, const char *constrName, DropBehavior behavior, bool missing_ok)
ObjectAddress DefineRule(RuleStmt *stmt, const char *queryString)
List * find_all_inheritors(Oid parentrelId, LOCKMODE lockmode, List **numparents)
void LockTableCommand(LockStmt *lockstmt)
Oid createdb(ParseState *pstate, const CreatedbStmt *stmt)
const ObjectAddress InvalidObjectAddress
void ImportForeignSchema(ImportForeignSchemaStmt *stmt)
int errmsg(const char *fmt,...)
void list_free(List *list)
void ReassignOwnedObjects(ReassignOwnedStmt *stmt)
ObjectAddress AlterCollation(AlterCollationStmt *stmt)
ObjectAddress DefineTSTemplate(List *names, List *parameters)
#define CHECKPOINT_IMMEDIATE
ObjectAddress CreateTrigger(CreateTrigStmt *stmt, const char *queryString, Oid relOid, Oid refRelOid, Oid constraintOid, Oid indexOid, Oid funcoid, Oid parentTriggerOid, Node *whenClause, bool isInternal, bool in_partition)
static void check_xact_readonly(Node *parsetree)
void DropRole(DropRoleStmt *stmt)
ObjectAddress ExecRefreshMatView(RefreshMatViewStmt *stmt, const char *queryString, ParamListInfo params, char *completionTag)
ObjectAddress CreateAccessMethod(CreateAmStmt *stmt)
ObjectAddress ExecCreateTableAs(CreateTableAsStmt *stmt, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv, char *completionTag)
void EventTriggerCollectSimpleCommand(ObjectAddress address, ObjectAddress secondaryObject, Node *parsetree)
void UserAbortTransactionBlock(bool chain)
void free_parsestate(ParseState *pstate)
static const char * AlterObjectTypeCommandTag(ObjectType objtype)
IndexStmt * transformIndexStmt(Oid relid, IndexStmt *stmt, const char *queryString)
PreparedStatement * FetchPreparedStatement(const char *stmt_name, bool throwError)
ObjectAddress AlterFunction(ParseState *pstate, AlterFunctionStmt *stmt)
TupleDesc UtilityTupleDescriptor(Node *parsetree)
void DropDatabase(ParseState *pstate, DropdbStmt *stmt)
static long analyze(struct nfa *nfa)
void DiscardCommand(DiscardStmt *stmt, bool isTopLevel)
void RequireTransactionBlock(bool isTopLevel, const char *stmtType)
void Async_Unlisten(const char *channel)
void AlterPublication(AlterPublicationStmt *stmt)
void SetPGVariable(const char *name, List *args, bool is_local)
LogStmtLevel GetCommandLogLevel(Node *parsetree)
bool EventTriggerBeginCompleteQuery(void)
void RequestCheckpoint(int flags)
void ExecuteGrantStmt(GrantStmt *stmt)
void EventTriggerAlterTableEnd(void)
ObjectAddress CreateStatistics(CreateStatsStmt *stmt)
Oid AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt)