76 const char *queryString,
132 case T_AlterCollationStmt:
133 case T_AlterDatabaseRefreshCollStmt:
134 case T_AlterDatabaseSetStmt:
135 case T_AlterDatabaseStmt:
136 case T_AlterDefaultPrivilegesStmt:
137 case T_AlterDomainStmt:
138 case T_AlterEnumStmt:
139 case T_AlterEventTrigStmt:
140 case T_AlterExtensionContentsStmt:
141 case T_AlterExtensionStmt:
143 case T_AlterForeignServerStmt:
144 case T_AlterFunctionStmt:
145 case T_AlterObjectDependsStmt:
146 case T_AlterObjectSchemaStmt:
147 case T_AlterOpFamilyStmt:
148 case T_AlterOperatorStmt:
149 case T_AlterOwnerStmt:
150 case T_AlterPolicyStmt:
151 case T_AlterPublicationStmt:
152 case T_AlterRoleSetStmt:
153 case T_AlterRoleStmt:
155 case T_AlterStatsStmt:
156 case T_AlterSubscriptionStmt:
157 case T_AlterTSConfigurationStmt:
158 case T_AlterTSDictionaryStmt:
159 case T_AlterTableMoveAllStmt:
160 case T_AlterTableSpaceOptionsStmt:
161 case T_AlterTableStmt:
162 case T_AlterTypeStmt:
163 case T_AlterUserMappingStmt:
165 case T_CompositeTypeStmt:
167 case T_CreateCastStmt:
168 case T_CreateConversionStmt:
169 case T_CreateDomainStmt:
170 case T_CreateEnumStmt:
171 case T_CreateEventTrigStmt:
172 case T_CreateExtensionStmt:
173 case T_CreateFdwStmt:
174 case T_CreateForeignServerStmt:
175 case T_CreateForeignTableStmt:
176 case T_CreateFunctionStmt:
177 case T_CreateOpClassStmt:
178 case T_CreateOpFamilyStmt:
179 case T_CreatePLangStmt:
180 case T_CreatePolicyStmt:
181 case T_CreatePublicationStmt:
182 case T_CreateRangeStmt:
183 case T_CreateRoleStmt:
184 case T_CreateSchemaStmt:
185 case T_CreateSeqStmt:
186 case T_CreateStatsStmt:
188 case T_CreateSubscriptionStmt:
189 case T_CreateTableAsStmt:
190 case T_CreateTableSpaceStmt:
191 case T_CreateTransformStmt:
192 case T_CreateTrigStmt:
193 case T_CreateUserMappingStmt:
196 case T_DropOwnedStmt:
199 case T_DropSubscriptionStmt:
200 case T_DropTableSpaceStmt:
201 case T_DropUserMappingStmt:
203 case T_GrantRoleStmt:
205 case T_ImportForeignSchemaStmt:
207 case T_ReassignOwnedStmt:
208 case T_RefreshMatViewStmt:
219 case T_AlterSystemStmt:
246 case T_CheckPointStmt:
258 case T_ClosePortalStmt:
259 case T_ConstraintsSetStmt:
260 case T_DeallocateStmt:
261 case T_DeclareCursorStmt:
268 case T_VariableSetStmt:
316 case T_VariableShowStmt:
356 case T_TransactionStmt:
385 elog(
ERROR,
"unrecognized TransactionStmtKind: %d",
391 elog(
ERROR,
"unrecognized node type: %d",
408 (
errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION),
410 errmsg(
"cannot execute %s in a read-only transaction",
426 (
errcode(ERRCODE_INVALID_TRANSACTION_STATE),
428 errmsg(
"cannot execute %s during a parallel operation",
445 (
errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION),
447 errmsg(
"cannot execute %s during recovery",
463 (
errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
465 errmsg(
"cannot execute %s within security-restricted operation",
500 const char *queryString,
510 Assert(queryString != NULL);
519 (*ProcessUtility_hook) (pstmt, queryString, readOnlyTree,
520 context, params, queryEnv,
524 context, params, queryEnv,
544 const char *queryString,
597 case T_TransactionStmt:
613 foreach(lc,
stmt->options)
617 if (strcmp(item->
defname,
"transaction_isolation") == 0)
621 else if (strcmp(item->
defname,
"transaction_read_only") == 0)
625 else if (strcmp(item->
defname,
"transaction_deferrable") == 0)
691 case T_DeclareCursorStmt:
696 case T_ClosePortalStmt:
713 case T_CreateTableSpaceStmt:
719 case T_DropTableSpaceStmt:
725 case T_AlterTableSpaceOptionsStmt:
759 case T_DeallocateStmt:
764 case T_GrantRoleStmt:
775 case T_AlterDatabaseStmt:
780 case T_AlterDatabaseRefreshCollStmt:
785 case T_AlterDatabaseSetStmt:
822 (
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
824 errmsg(
"cannot execute %s within a background process",
836 if (
stmt->conditionname)
869 case T_AlterSystemStmt:
874 case T_VariableSetStmt:
878 case T_VariableShowStmt:
892 case T_CreateEventTrigStmt:
897 case T_AlterEventTrigStmt:
905 case T_CreateRoleStmt:
910 case T_AlterRoleStmt:
915 case T_AlterRoleSetStmt:
925 case T_ReassignOwnedStmt:
940 case T_ConstraintsSetStmt:
945 case T_CheckPointStmt:
948 (
errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
950 errmsg(
"permission denied to execute %s command",
952 errdetail(
"Only roles with privileges of the \"%s\" role may execute this command.",
970 context, params, queryEnv,
983 context, params, queryEnv,
996 context, params, queryEnv,
1003 case T_AlterObjectDependsStmt:
1009 context, params, queryEnv,
1016 case T_AlterObjectSchemaStmt:
1022 context, params, queryEnv,
1029 case T_AlterOwnerStmt:
1035 context, params, queryEnv,
1048 context, params, queryEnv,
1055 case T_SecLabelStmt:
1061 context, params, queryEnv,
1071 context, params, queryEnv,
1094 const char *queryString,
1105 bool commandCollected =
false;
1115 if (isCompleteQuery)
1123 case T_CreateSchemaStmt:
1133 commandCollected =
true;
1137 case T_CreateForeignTableStmt:
1151 while (stmts !=
NIL)
1160 Datum toast_options;
1207 RELKIND_FOREIGN_TABLE,
1227 Assert(table_rv != NULL);
1267 commandCollected =
true;
1271 case T_AlterTableStmt:
1283 foreach(cell, atstmt->
cmds)
1292 "ALTER TABLE ... DETACH CONCURRENTLY");
1310 atcontext.
pstmt = pstmt;
1312 atcontext.
relid = relid;
1313 atcontext.
params = params;
1328 (
errmsg(
"relation \"%s\" does not exist, skipping",
1333 commandCollected =
true;
1336 case T_AlterDomainStmt:
1344 switch (
stmt->subtype)
1385 elog(
ERROR,
"unrecognized alter domain type: %d",
1386 (
int)
stmt->subtype);
1445 stmt->if_not_exists);
1448 elog(
ERROR,
"unrecognized define stmt type: %d",
1461 bool is_alter_table;
1463 if (
stmt->concurrent)
1465 "CREATE INDEX CONCURRENTLY");
1495 if (
stmt->relation->inh &&
1502 foreach(lc, inheritors)
1507 if (relkind != RELKIND_RELATION &&
1508 relkind != RELKIND_MATVIEW &&
1509 relkind != RELKIND_PARTITIONED_TABLE &&
1510 relkind != RELKIND_FOREIGN_TABLE)
1511 elog(
ERROR,
"unexpected relkind \"%c\" on partition \"%s\"",
1512 relkind,
stmt->relation->relname);
1514 if (relkind == RELKIND_FOREIGN_TABLE &&
1517 (
errcode(ERRCODE_WRONG_OBJECT_TYPE),
1518 errmsg(
"cannot create unique index on partitioned table \"%s\"",
1519 stmt->relation->relname),
1520 errdetail(
"Table \"%s\" contains partitions that are foreign tables.",
1521 stmt->relation->relname)));
1537 is_alter_table =
stmt->transformed;
1564 commandCollected =
true;
1573 commandCollected =
true;
1576 case T_CreateExtensionStmt:
1580 case T_AlterExtensionStmt:
1584 case T_AlterExtensionContentsStmt:
1589 case T_CreateFdwStmt:
1593 case T_AlterFdwStmt:
1597 case T_CreateForeignServerStmt:
1601 case T_AlterForeignServerStmt:
1605 case T_CreateUserMappingStmt:
1609 case T_AlterUserMappingStmt:
1613 case T_DropUserMappingStmt:
1616 commandCollected =
true;
1619 case T_ImportForeignSchemaStmt:
1622 commandCollected =
true;
1625 case T_CompositeTypeStmt:
1634 case T_CreateEnumStmt:
1638 case T_CreateRangeStmt:
1642 case T_AlterEnumStmt:
1653 commandCollected =
true;
1657 case T_CreateFunctionStmt:
1661 case T_AlterFunctionStmt:
1669 case T_CreateSeqStmt:
1673 case T_AlterSeqStmt:
1677 case T_CreateTableAsStmt:
1679 params, queryEnv, qc);
1682 case T_RefreshMatViewStmt:
1703 case T_CreateTrigStmt:
1710 case T_CreatePLangStmt:
1714 case T_CreateDomainStmt:
1718 case T_CreateConversionStmt:
1722 case T_CreateCastStmt:
1726 case T_CreateOpClassStmt:
1729 commandCollected =
true;
1732 case T_CreateOpFamilyStmt:
1739 commandCollected =
true;
1742 case T_CreateTransformStmt:
1746 case T_AlterOpFamilyStmt:
1749 commandCollected =
true;
1752 case T_AlterTSDictionaryStmt:
1756 case T_AlterTSConfigurationStmt:
1764 commandCollected =
true;
1767 case T_AlterTableMoveAllStmt:
1770 commandCollected =
true;
1776 commandCollected =
true;
1783 case T_AlterObjectDependsStmt:
1789 case T_AlterObjectSchemaStmt:
1795 case T_AlterOwnerStmt:
1799 case T_AlterOperatorStmt:
1803 case T_AlterTypeStmt:
1814 commandCollected =
true;
1817 case T_DropOwnedStmt:
1820 commandCollected =
true;
1823 case T_AlterDefaultPrivilegesStmt:
1826 commandCollected =
true;
1829 case T_CreatePolicyStmt:
1833 case T_AlterPolicyStmt:
1837 case T_SecLabelStmt:
1841 case T_CreateAmStmt:
1845 case T_CreatePublicationStmt:
1849 case T_AlterPublicationStmt:
1856 commandCollected =
true;
1859 case T_CreateSubscriptionStmt:
1865 case T_AlterSubscriptionStmt:
1871 case T_DropSubscriptionStmt:
1874 commandCollected =
true;
1877 case T_CreateStatsStmt:
1885 (
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
1886 errmsg(
"only a single relation is allowed in CREATE STATISTICS")));
1908 case T_AlterStatsStmt:
1912 case T_AlterCollationStmt:
1917 elog(
ERROR,
"unrecognized node type: %d",
1926 if (!commandCollected)
1930 if (isCompleteQuery)
1997 switch (
stmt->removeType)
2000 if (
stmt->concurrent)
2002 "DROP INDEX CONCURRENTLY");
2036 return (
stmt->funcexpr->funcresulttype == RECORDOID);
2067 case T_VariableShowStmt:
2118 case T_VariableShowStmt:
2137QueryReturnsTuples(
Query *parsetree)
2185 case T_DeclareCursorStmt:
2197 case T_CreateTableAsStmt:
2223 tag = CMDTAG_ALTER_AGGREGATE;
2226 tag = CMDTAG_ALTER_TYPE;
2229 tag = CMDTAG_ALTER_CAST;
2232 tag = CMDTAG_ALTER_COLLATION;
2235 tag = CMDTAG_ALTER_TABLE;
2238 tag = CMDTAG_ALTER_CONVERSION;
2241 tag = CMDTAG_ALTER_DATABASE;
2245 tag = CMDTAG_ALTER_DOMAIN;
2248 tag = CMDTAG_ALTER_EXTENSION;
2251 tag = CMDTAG_ALTER_FOREIGN_DATA_WRAPPER;
2254 tag = CMDTAG_ALTER_SERVER;
2257 tag = CMDTAG_ALTER_FOREIGN_TABLE;
2260 tag = CMDTAG_ALTER_FUNCTION;
2263 tag = CMDTAG_ALTER_INDEX;
2266 tag = CMDTAG_ALTER_LANGUAGE;
2269 tag = CMDTAG_ALTER_LARGE_OBJECT;
2272 tag = CMDTAG_ALTER_OPERATOR_CLASS;
2275 tag = CMDTAG_ALTER_OPERATOR;
2278 tag = CMDTAG_ALTER_OPERATOR_FAMILY;
2281 tag = CMDTAG_ALTER_POLICY;
2284 tag = CMDTAG_ALTER_PROCEDURE;
2287 tag = CMDTAG_ALTER_ROLE;
2290 tag = CMDTAG_ALTER_ROUTINE;
2293 tag = CMDTAG_ALTER_RULE;
2296 tag = CMDTAG_ALTER_SCHEMA;
2299 tag = CMDTAG_ALTER_SEQUENCE;
2303 tag = CMDTAG_ALTER_TABLE;
2306 tag = CMDTAG_ALTER_TABLESPACE;
2309 tag = CMDTAG_ALTER_TRIGGER;
2312 tag = CMDTAG_ALTER_EVENT_TRIGGER;
2315 tag = CMDTAG_ALTER_TEXT_SEARCH_CONFIGURATION;
2318 tag = CMDTAG_ALTER_TEXT_SEARCH_DICTIONARY;
2321 tag = CMDTAG_ALTER_TEXT_SEARCH_PARSER;
2324 tag = CMDTAG_ALTER_TEXT_SEARCH_TEMPLATE;
2327 tag = CMDTAG_ALTER_TYPE;
2330 tag = CMDTAG_ALTER_VIEW;
2333 tag = CMDTAG_ALTER_MATERIALIZED_VIEW;
2336 tag = CMDTAG_ALTER_PUBLICATION;
2339 tag = CMDTAG_ALTER_SUBSCRIPTION;
2342 tag = CMDTAG_ALTER_STATISTICS;
2345 tag = CMDTAG_UNKNOWN;
2375 tag = CMDTAG_INSERT;
2379 tag = CMDTAG_DELETE;
2383 tag = CMDTAG_UPDATE;
2391 tag = CMDTAG_SELECT;
2394 case T_PLAssignStmt:
2395 tag = CMDTAG_SELECT;
2399 case T_TransactionStmt:
2410 tag = CMDTAG_START_TRANSACTION;
2414 tag = CMDTAG_COMMIT;
2419 tag = CMDTAG_ROLLBACK;
2423 tag = CMDTAG_SAVEPOINT;
2427 tag = CMDTAG_RELEASE;
2431 tag = CMDTAG_PREPARE_TRANSACTION;
2435 tag = CMDTAG_COMMIT_PREPARED;
2439 tag = CMDTAG_ROLLBACK_PREPARED;
2443 tag = CMDTAG_UNKNOWN;
2449 case T_DeclareCursorStmt:
2450 tag = CMDTAG_DECLARE_CURSOR;
2453 case T_ClosePortalStmt:
2457 if (
stmt->portalname == NULL)
2458 tag = CMDTAG_CLOSE_CURSOR_ALL;
2460 tag = CMDTAG_CLOSE_CURSOR;
2468 tag = (
stmt->ismove) ? CMDTAG_MOVE : CMDTAG_FETCH;
2472 case T_CreateDomainStmt:
2473 tag = CMDTAG_CREATE_DOMAIN;
2476 case T_CreateSchemaStmt:
2477 tag = CMDTAG_CREATE_SCHEMA;
2481 tag = CMDTAG_CREATE_TABLE;
2484 case T_CreateTableSpaceStmt:
2485 tag = CMDTAG_CREATE_TABLESPACE;
2488 case T_DropTableSpaceStmt:
2489 tag = CMDTAG_DROP_TABLESPACE;
2492 case T_AlterTableSpaceOptionsStmt:
2493 tag = CMDTAG_ALTER_TABLESPACE;
2496 case T_CreateExtensionStmt:
2497 tag = CMDTAG_CREATE_EXTENSION;
2500 case T_AlterExtensionStmt:
2501 tag = CMDTAG_ALTER_EXTENSION;
2504 case T_AlterExtensionContentsStmt:
2505 tag = CMDTAG_ALTER_EXTENSION;
2508 case T_CreateFdwStmt:
2509 tag = CMDTAG_CREATE_FOREIGN_DATA_WRAPPER;
2512 case T_AlterFdwStmt:
2513 tag = CMDTAG_ALTER_FOREIGN_DATA_WRAPPER;
2516 case T_CreateForeignServerStmt:
2517 tag = CMDTAG_CREATE_SERVER;
2520 case T_AlterForeignServerStmt:
2521 tag = CMDTAG_ALTER_SERVER;
2524 case T_CreateUserMappingStmt:
2525 tag = CMDTAG_CREATE_USER_MAPPING;
2528 case T_AlterUserMappingStmt:
2529 tag = CMDTAG_ALTER_USER_MAPPING;
2532 case T_DropUserMappingStmt:
2533 tag = CMDTAG_DROP_USER_MAPPING;
2536 case T_CreateForeignTableStmt:
2537 tag = CMDTAG_CREATE_FOREIGN_TABLE;
2540 case T_ImportForeignSchemaStmt:
2541 tag = CMDTAG_IMPORT_FOREIGN_SCHEMA;
2545 switch (((
DropStmt *) parsetree)->removeType)
2548 tag = CMDTAG_DROP_TABLE;
2551 tag = CMDTAG_DROP_SEQUENCE;
2554 tag = CMDTAG_DROP_VIEW;
2557 tag = CMDTAG_DROP_MATERIALIZED_VIEW;
2560 tag = CMDTAG_DROP_INDEX;
2563 tag = CMDTAG_DROP_TYPE;
2566 tag = CMDTAG_DROP_DOMAIN;
2569 tag = CMDTAG_DROP_COLLATION;
2572 tag = CMDTAG_DROP_CONVERSION;
2575 tag = CMDTAG_DROP_SCHEMA;
2578 tag = CMDTAG_DROP_TEXT_SEARCH_PARSER;
2581 tag = CMDTAG_DROP_TEXT_SEARCH_DICTIONARY;
2584 tag = CMDTAG_DROP_TEXT_SEARCH_TEMPLATE;
2587 tag = CMDTAG_DROP_TEXT_SEARCH_CONFIGURATION;
2590 tag = CMDTAG_DROP_FOREIGN_TABLE;
2593 tag = CMDTAG_DROP_EXTENSION;
2596 tag = CMDTAG_DROP_FUNCTION;
2599 tag = CMDTAG_DROP_PROCEDURE;
2602 tag = CMDTAG_DROP_ROUTINE;
2605 tag = CMDTAG_DROP_AGGREGATE;
2608 tag = CMDTAG_DROP_OPERATOR;
2611 tag = CMDTAG_DROP_LANGUAGE;
2614 tag = CMDTAG_DROP_CAST;
2617 tag = CMDTAG_DROP_TRIGGER;
2620 tag = CMDTAG_DROP_EVENT_TRIGGER;
2623 tag = CMDTAG_DROP_RULE;
2626 tag = CMDTAG_DROP_FOREIGN_DATA_WRAPPER;
2629 tag = CMDTAG_DROP_SERVER;
2632 tag = CMDTAG_DROP_OPERATOR_CLASS;
2635 tag = CMDTAG_DROP_OPERATOR_FAMILY;
2638 tag = CMDTAG_DROP_POLICY;
2641 tag = CMDTAG_DROP_TRANSFORM;
2644 tag = CMDTAG_DROP_ACCESS_METHOD;
2647 tag = CMDTAG_DROP_PUBLICATION;
2650 tag = CMDTAG_DROP_STATISTICS;
2653 tag = CMDTAG_UNKNOWN;
2657 case T_TruncateStmt:
2658 tag = CMDTAG_TRUNCATE_TABLE;
2662 tag = CMDTAG_COMMENT;
2665 case T_SecLabelStmt:
2666 tag = CMDTAG_SECURITY_LABEL;
2684 case T_AlterObjectDependsStmt:
2688 case T_AlterObjectSchemaStmt:
2692 case T_AlterOwnerStmt:
2696 case T_AlterTableMoveAllStmt:
2700 case T_AlterTableStmt:
2704 case T_AlterDomainStmt:
2705 tag = CMDTAG_ALTER_DOMAIN;
2708 case T_AlterFunctionStmt:
2712 tag = CMDTAG_ALTER_FUNCTION;
2715 tag = CMDTAG_ALTER_PROCEDURE;
2718 tag = CMDTAG_ALTER_ROUTINE;
2721 tag = CMDTAG_UNKNOWN;
2729 tag = (
stmt->is_grant) ? CMDTAG_GRANT : CMDTAG_REVOKE;
2733 case T_GrantRoleStmt:
2737 tag = (
stmt->is_grant) ? CMDTAG_GRANT_ROLE : CMDTAG_REVOKE_ROLE;
2741 case T_AlterDefaultPrivilegesStmt:
2742 tag = CMDTAG_ALTER_DEFAULT_PRIVILEGES;
2749 tag = CMDTAG_CREATE_AGGREGATE;
2752 tag = CMDTAG_CREATE_OPERATOR;
2755 tag = CMDTAG_CREATE_TYPE;
2758 tag = CMDTAG_CREATE_TEXT_SEARCH_PARSER;
2761 tag = CMDTAG_CREATE_TEXT_SEARCH_DICTIONARY;
2764 tag = CMDTAG_CREATE_TEXT_SEARCH_TEMPLATE;
2767 tag = CMDTAG_CREATE_TEXT_SEARCH_CONFIGURATION;
2770 tag = CMDTAG_CREATE_COLLATION;
2773 tag = CMDTAG_CREATE_ACCESS_METHOD;
2776 tag = CMDTAG_UNKNOWN;
2780 case T_CompositeTypeStmt:
2781 tag = CMDTAG_CREATE_TYPE;
2784 case T_CreateEnumStmt:
2785 tag = CMDTAG_CREATE_TYPE;
2788 case T_CreateRangeStmt:
2789 tag = CMDTAG_CREATE_TYPE;
2792 case T_AlterEnumStmt:
2793 tag = CMDTAG_ALTER_TYPE;
2797 tag = CMDTAG_CREATE_VIEW;
2800 case T_CreateFunctionStmt:
2802 tag = CMDTAG_CREATE_PROCEDURE;
2804 tag = CMDTAG_CREATE_FUNCTION;
2808 tag = CMDTAG_CREATE_INDEX;
2812 tag = CMDTAG_CREATE_RULE;
2815 case T_CreateSeqStmt:
2816 tag = CMDTAG_CREATE_SEQUENCE;
2819 case T_AlterSeqStmt:
2820 tag = CMDTAG_ALTER_SEQUENCE;
2827 case T_CreatedbStmt:
2828 tag = CMDTAG_CREATE_DATABASE;
2831 case T_AlterDatabaseStmt:
2832 case T_AlterDatabaseRefreshCollStmt:
2833 case T_AlterDatabaseSetStmt:
2834 tag = CMDTAG_ALTER_DATABASE;
2838 tag = CMDTAG_DROP_DATABASE;
2842 tag = CMDTAG_NOTIFY;
2846 tag = CMDTAG_LISTEN;
2849 case T_UnlistenStmt:
2850 tag = CMDTAG_UNLISTEN;
2862 tag = CMDTAG_CLUSTER;
2866 if (((
VacuumStmt *) parsetree)->is_vacuumcmd)
2867 tag = CMDTAG_VACUUM;
2869 tag = CMDTAG_ANALYZE;
2873 tag = CMDTAG_EXPLAIN;
2876 case T_CreateTableAsStmt:
2881 tag = CMDTAG_SELECT_INTO;
2883 tag = CMDTAG_CREATE_TABLE_AS;
2886 tag = CMDTAG_CREATE_MATERIALIZED_VIEW;
2889 tag = CMDTAG_UNKNOWN;
2893 case T_RefreshMatViewStmt:
2894 tag = CMDTAG_REFRESH_MATERIALIZED_VIEW;
2897 case T_AlterSystemStmt:
2898 tag = CMDTAG_ALTER_SYSTEM;
2901 case T_VariableSetStmt:
2915 tag = CMDTAG_UNKNOWN;
2919 case T_VariableShowStmt:
2927 tag = CMDTAG_DISCARD_ALL;
2930 tag = CMDTAG_DISCARD_PLANS;
2933 tag = CMDTAG_DISCARD_TEMP;
2936 tag = CMDTAG_DISCARD_SEQUENCES;
2939 tag = CMDTAG_UNKNOWN;
2943 case T_CreateTransformStmt:
2944 tag = CMDTAG_CREATE_TRANSFORM;
2947 case T_CreateTrigStmt:
2948 tag = CMDTAG_CREATE_TRIGGER;
2951 case T_CreateEventTrigStmt:
2952 tag = CMDTAG_CREATE_EVENT_TRIGGER;
2955 case T_AlterEventTrigStmt:
2956 tag = CMDTAG_ALTER_EVENT_TRIGGER;
2959 case T_CreatePLangStmt:
2960 tag = CMDTAG_CREATE_LANGUAGE;
2963 case T_CreateRoleStmt:
2964 tag = CMDTAG_CREATE_ROLE;
2967 case T_AlterRoleStmt:
2968 tag = CMDTAG_ALTER_ROLE;
2971 case T_AlterRoleSetStmt:
2972 tag = CMDTAG_ALTER_ROLE;
2975 case T_DropRoleStmt:
2976 tag = CMDTAG_DROP_ROLE;
2979 case T_DropOwnedStmt:
2980 tag = CMDTAG_DROP_OWNED;
2983 case T_ReassignOwnedStmt:
2984 tag = CMDTAG_REASSIGN_OWNED;
2988 tag = CMDTAG_LOCK_TABLE;
2991 case T_ConstraintsSetStmt:
2992 tag = CMDTAG_SET_CONSTRAINTS;
2995 case T_CheckPointStmt:
2996 tag = CMDTAG_CHECKPOINT;
3000 tag = CMDTAG_REINDEX;
3003 case T_CreateConversionStmt:
3004 tag = CMDTAG_CREATE_CONVERSION;
3007 case T_CreateCastStmt:
3008 tag = CMDTAG_CREATE_CAST;
3011 case T_CreateOpClassStmt:
3012 tag = CMDTAG_CREATE_OPERATOR_CLASS;
3015 case T_CreateOpFamilyStmt:
3016 tag = CMDTAG_CREATE_OPERATOR_FAMILY;
3019 case T_AlterOpFamilyStmt:
3020 tag = CMDTAG_ALTER_OPERATOR_FAMILY;
3023 case T_AlterOperatorStmt:
3024 tag = CMDTAG_ALTER_OPERATOR;
3027 case T_AlterTypeStmt:
3028 tag = CMDTAG_ALTER_TYPE;
3031 case T_AlterTSDictionaryStmt:
3032 tag = CMDTAG_ALTER_TEXT_SEARCH_DICTIONARY;
3035 case T_AlterTSConfigurationStmt:
3036 tag = CMDTAG_ALTER_TEXT_SEARCH_CONFIGURATION;
3039 case T_CreatePolicyStmt:
3040 tag = CMDTAG_CREATE_POLICY;
3043 case T_AlterPolicyStmt:
3044 tag = CMDTAG_ALTER_POLICY;
3047 case T_CreateAmStmt:
3048 tag = CMDTAG_CREATE_ACCESS_METHOD;
3051 case T_CreatePublicationStmt:
3052 tag = CMDTAG_CREATE_PUBLICATION;
3055 case T_AlterPublicationStmt:
3056 tag = CMDTAG_ALTER_PUBLICATION;
3059 case T_CreateSubscriptionStmt:
3060 tag = CMDTAG_CREATE_SUBSCRIPTION;
3063 case T_AlterSubscriptionStmt:
3064 tag = CMDTAG_ALTER_SUBSCRIPTION;
3067 case T_DropSubscriptionStmt:
3068 tag = CMDTAG_DROP_SUBSCRIPTION;
3071 case T_AlterCollationStmt:
3072 tag = CMDTAG_ALTER_COLLATION;
3076 tag = CMDTAG_PREPARE;
3080 tag = CMDTAG_EXECUTE;
3083 case T_CreateStatsStmt:
3084 tag = CMDTAG_CREATE_STATISTICS;
3087 case T_AlterStatsStmt:
3088 tag = CMDTAG_ALTER_STATISTICS;
3091 case T_DeallocateStmt:
3095 if (
stmt->name == NULL)
3096 tag = CMDTAG_DEALLOCATE_ALL;
3098 tag = CMDTAG_DEALLOCATE;
3107 switch (
stmt->commandType)
3122 tag = CMDTAG_SELECT_FOR_KEY_SHARE;
3125 tag = CMDTAG_SELECT_FOR_SHARE;
3128 tag = CMDTAG_SELECT_FOR_NO_KEY_UPDATE;
3131 tag = CMDTAG_SELECT_FOR_UPDATE;
3134 tag = CMDTAG_SELECT;
3139 tag = CMDTAG_SELECT;
3142 tag = CMDTAG_UPDATE;
3145 tag = CMDTAG_INSERT;
3148 tag = CMDTAG_DELETE;
3158 (
int)
stmt->commandType);
3159 tag = CMDTAG_UNKNOWN;
3170 switch (
stmt->commandType)
3185 tag = CMDTAG_SELECT_FOR_KEY_SHARE;
3188 tag = CMDTAG_SELECT_FOR_SHARE;
3191 tag = CMDTAG_SELECT_FOR_NO_KEY_UPDATE;
3194 tag = CMDTAG_SELECT_FOR_UPDATE;
3197 tag = CMDTAG_UNKNOWN;
3202 tag = CMDTAG_SELECT;
3205 tag = CMDTAG_UPDATE;
3208 tag = CMDTAG_INSERT;
3211 tag = CMDTAG_DELETE;
3221 (
int)
stmt->commandType);
3222 tag = CMDTAG_UNKNOWN;
3231 tag = CMDTAG_UNKNOWN;
3275 case T_PLAssignStmt:
3280 case T_TransactionStmt:
3284 case T_DeclareCursorStmt:
3288 case T_ClosePortalStmt:
3296 case T_CreateSchemaStmt:
3301 case T_CreateForeignTableStmt:
3305 case T_CreateTableSpaceStmt:
3306 case T_DropTableSpaceStmt:
3307 case T_AlterTableSpaceOptionsStmt:
3311 case T_CreateExtensionStmt:
3312 case T_AlterExtensionStmt:
3313 case T_AlterExtensionContentsStmt:
3317 case T_CreateFdwStmt:
3318 case T_AlterFdwStmt:
3319 case T_CreateForeignServerStmt:
3320 case T_AlterForeignServerStmt:
3321 case T_CreateUserMappingStmt:
3322 case T_AlterUserMappingStmt:
3323 case T_DropUserMappingStmt:
3324 case T_ImportForeignSchemaStmt:
3332 case T_TruncateStmt:
3340 case T_SecLabelStmt:
3345 if (((
CopyStmt *) parsetree)->is_from)
3367 if (
ps &&
ps->plansource->raw_parse_tree)
3374 case T_DeallocateStmt:
3382 case T_AlterObjectDependsStmt:
3386 case T_AlterObjectSchemaStmt:
3390 case T_AlterOwnerStmt:
3394 case T_AlterOperatorStmt:
3398 case T_AlterTypeStmt:
3402 case T_AlterTableMoveAllStmt:
3403 case T_AlterTableStmt:
3407 case T_AlterDomainStmt:
3415 case T_GrantRoleStmt:
3419 case T_AlterDefaultPrivilegesStmt:
3427 case T_CompositeTypeStmt:
3431 case T_CreateEnumStmt:
3435 case T_CreateRangeStmt:
3439 case T_AlterEnumStmt:
3447 case T_CreateFunctionStmt:
3451 case T_AlterFunctionStmt:
3463 case T_CreateSeqStmt:
3467 case T_AlterSeqStmt:
3475 case T_CreatedbStmt:
3479 case T_AlterDatabaseStmt:
3480 case T_AlterDatabaseRefreshCollStmt:
3481 case T_AlterDatabaseSetStmt:
3497 case T_UnlistenStmt:
3524 foreach(lc,
stmt->options)
3528 if (strcmp(opt->
defname,
"analyze") == 0)
3540 case T_CreateTableAsStmt:
3544 case T_RefreshMatViewStmt:
3548 case T_AlterSystemStmt:
3552 case T_VariableSetStmt:
3556 case T_VariableShowStmt:
3564 case T_CreateTrigStmt:
3568 case T_CreateEventTrigStmt:
3572 case T_AlterEventTrigStmt:
3576 case T_CreatePLangStmt:
3580 case T_CreateDomainStmt:
3584 case T_CreateRoleStmt:
3588 case T_AlterRoleStmt:
3592 case T_AlterRoleSetStmt:
3596 case T_DropRoleStmt:
3600 case T_DropOwnedStmt:
3604 case T_ReassignOwnedStmt:
3612 case T_ConstraintsSetStmt:
3616 case T_CheckPointStmt:
3624 case T_CreateConversionStmt:
3628 case T_CreateCastStmt:
3632 case T_CreateOpClassStmt:
3636 case T_CreateOpFamilyStmt:
3640 case T_CreateTransformStmt:
3644 case T_AlterOpFamilyStmt:
3648 case T_CreatePolicyStmt:
3652 case T_AlterPolicyStmt:
3656 case T_AlterTSDictionaryStmt:
3660 case T_AlterTSConfigurationStmt:
3664 case T_CreateAmStmt:
3668 case T_CreatePublicationStmt:
3672 case T_AlterPublicationStmt:
3676 case T_CreateSubscriptionStmt:
3680 case T_AlterSubscriptionStmt:
3684 case T_DropSubscriptionStmt:
3688 case T_CreateStatsStmt:
3692 case T_AlterStatsStmt:
3696 case T_AlterCollationStmt:
3705 switch (
stmt->commandType)
3724 (
int)
stmt->commandType);
3736 switch (
stmt->commandType)
3755 (
int)
stmt->commandType);
bool has_privs_of_role(Oid member, Oid role)
void ExecuteGrantStmt(GrantStmt *stmt)
void ExecAlterDefaultPrivilegesStmt(ParseState *pstate, AlterDefaultPrivilegesStmt *stmt)
ObjectAddress DefineAggregate(ParseState *pstate, List *name, List *args, bool oldstyle, List *parameters, bool replace)
ObjectAddress ExecAlterOwnerStmt(AlterOwnerStmt *stmt)
ObjectAddress ExecAlterObjectDependsStmt(AlterObjectDependsStmt *stmt, ObjectAddress *refAddress)
ObjectAddress ExecRenameStmt(RenameStmt *stmt)
ObjectAddress ExecAlterObjectSchemaStmt(AlterObjectSchemaStmt *stmt, ObjectAddress *oldSchemaAddr)
ObjectAddress CreateAccessMethod(CreateAmStmt *stmt)
void Async_UnlistenAll(void)
void Async_Unlisten(const char *channel)
void Async_Listen(const char *channel)
void Async_Notify(const char *channel, const char *payload)
void DoCopy(ParseState *pstate, const CopyStmt *stmt, int stmt_location, int stmt_len, uint64 *processed)
void PrepareQuery(ParseState *pstate, PrepareStmt *stmt, int stmt_location, int stmt_len)
TupleDesc FetchPreparedStatementResultDesc(PreparedStatement *stmt)
PreparedStatement * FetchPreparedStatement(const char *stmt_name, bool throwError)
void ExecuteQuery(ParseState *pstate, ExecuteStmt *stmt, IntoClause *intoClause, ParamListInfo params, DestReceiver *dest, QueryCompletion *qc)
void DeallocateQuery(DeallocateStmt *stmt)
Oid AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt)
void DropTableSpace(DropTableSpaceStmt *stmt)
Oid CreateTableSpace(CreateTableSpaceStmt *stmt)
#define OidIsValid(objectId)
void RequestCheckpoint(int flags)
void cluster(ParseState *pstate, ClusterStmt *stmt, bool isTopLevel)
const char * GetCommandTagName(CommandTag commandTag)
static void SetQueryCompletion(QueryCompletion *qc, CommandTag commandTag, uint64 nprocessed)
ObjectAddress AlterCollation(AlterCollationStmt *stmt)
ObjectAddress DefineCollation(ParseState *pstate, List *names, List *parameters, bool if_not_exists)
ObjectAddress DefineSequence(ParseState *pstate, CreateSeqStmt *seq)
ObjectAddress AlterSequence(ParseState *pstate, AlterSeqStmt *stmt)
ObjectAddress CreateConversionCommand(CreateConversionStmt *stmt)
ObjectAddress ExecCreateTableAs(ParseState *pstate, CreateTableAsStmt *stmt, ParamListInfo params, QueryEnvironment *queryEnv, QueryCompletion *qc)
ObjectAddress AlterDatabaseRefreshColl(AlterDatabaseRefreshCollStmt *stmt)
Oid createdb(ParseState *pstate, const CreatedbStmt *stmt)
Oid AlterDatabase(ParseState *pstate, AlterDatabaseStmt *stmt, bool isTopLevel)
void DropDatabase(ParseState *pstate, DropdbStmt *stmt)
Oid AlterDatabaseSet(AlterDatabaseSetStmt *stmt)
bool defGetBoolean(DefElem *def)
DestReceiver * None_Receiver
void load_file(const char *filename, bool restricted)
void DiscardCommand(DiscardStmt *stmt, bool isTopLevel)
void RemoveObjects(DropStmt *stmt)
int errdetail(const char *fmt,...)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
void EventTriggerUndoInhibitCommandCollection(void)
void EventTriggerAlterTableStart(Node *parsetree)
void EventTriggerCollectAlterDefPrivs(AlterDefaultPrivilegesStmt *stmt)
void EventTriggerDDLCommandStart(Node *parsetree)
void EventTriggerInhibitCommandCollection(void)
bool EventTriggerBeginCompleteQuery(void)
bool EventTriggerSupportsObjectType(ObjectType obtype)
Oid CreateEventTrigger(CreateEventTrigStmt *stmt)
Oid AlterEventTrigger(AlterEventTrigStmt *stmt)
void EventTriggerSQLDrop(Node *parsetree)
void EventTriggerEndCompleteQuery(void)
void EventTriggerAlterTableRelid(Oid objectId)
void EventTriggerAlterTableEnd(void)
void EventTriggerCollectSimpleCommand(ObjectAddress address, ObjectAddress secondaryObject, Node *parsetree)
void EventTriggerDDLCommandEnd(Node *parsetree)
void ExplainQuery(ParseState *pstate, ExplainStmt *stmt, ParamListInfo params, DestReceiver *dest)
TupleDesc ExplainResultDesc(ExplainStmt *stmt)
ObjectAddress CreateExtension(ParseState *pstate, CreateExtensionStmt *stmt)
ObjectAddress ExecAlterExtensionStmt(ParseState *pstate, AlterExtensionStmt *stmt)
ObjectAddress ExecAlterExtensionContentsStmt(AlterExtensionContentsStmt *stmt, ObjectAddress *objAddr)
void ImportForeignSchema(ImportForeignSchemaStmt *stmt)
ObjectAddress AlterForeignServer(AlterForeignServerStmt *stmt)
ObjectAddress AlterForeignDataWrapper(ParseState *pstate, AlterFdwStmt *stmt)
ObjectAddress CreateForeignServer(CreateForeignServerStmt *stmt)
Oid RemoveUserMapping(DropUserMappingStmt *stmt)
ObjectAddress CreateForeignDataWrapper(ParseState *pstate, CreateFdwStmt *stmt)
ObjectAddress AlterUserMapping(AlterUserMappingStmt *stmt)
void CreateForeignTable(CreateForeignTableStmt *stmt, Oid relid)
ObjectAddress CreateUserMapping(CreateUserMappingStmt *stmt)
void ExecuteCallStmt(CallStmt *stmt, ParamListInfo params, bool atomic, DestReceiver *dest)
ObjectAddress CreateCast(CreateCastStmt *stmt)
ObjectAddress CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt)
ObjectAddress AlterFunction(ParseState *pstate, AlterFunctionStmt *stmt)
TupleDesc CallStmtResultDesc(CallStmt *stmt)
void ExecuteDoStmt(ParseState *pstate, DoStmt *stmt, bool atomic)
ObjectAddress CreateTransform(CreateTransformStmt *stmt)
void AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
void GetPGVariable(const char *name, DestReceiver *dest)
TupleDesc GetPGVariableResultDesc(const char *name)
void SetPGVariable(const char *name, List *args, bool is_local)
void ExecSetVariableStmt(VariableSetStmt *stmt, bool isTopLevel)
Assert(PointerIsAligned(start, uint64))
void ExecReindex(ParseState *pstate, const ReindexStmt *stmt, bool isTopLevel)
ObjectAddress DefineIndex(Oid tableId, IndexStmt *stmt, Oid indexRelationId, Oid parentIndexId, Oid parentConstraintId, int total_parts, bool is_alter_table, bool check_rights, bool check_not_in_use, bool skip_build, bool quiet)
List * list_delete_first(List *list)
List * list_concat(List *list1, const List *list2)
void list_free(List *list)
void LockTableCommand(LockStmt *lockstmt)
#define ShareUpdateExclusiveLock
char get_rel_relkind(Oid relid)
ObjectAddress ExecRefreshMatView(RefreshMatViewStmt *stmt, const char *queryString, QueryCompletion *qc)
bool InSecurityRestrictedOperation(void)
BackendType MyBackendType
Oid RangeVarGetRelidExtended(const RangeVar *relation, LOCKMODE lockmode, uint32 flags, RangeVarGetRelidCallback callback, void *callback_arg)
#define RangeVarGetRelid(relation, lockmode, missing_ok)
#define IsA(nodeptr, _type_)
#define castNode(_type_, nodeptr)
const ObjectAddress InvalidObjectAddress
ObjectAddress DefineOpClass(CreateOpClassStmt *stmt)
ObjectAddress DefineOpFamily(CreateOpFamilyStmt *stmt)
Oid AlterOpFamily(AlterOpFamilyStmt *stmt)
ObjectAddress AlterOperator(AlterOperatorStmt *stmt)
ObjectAddress DefineOperator(List *names, List *parameters)
void free_parsestate(ParseState *pstate)
ParseState * make_parsestate(ParseState *parentParseState)
List * transformCreateStmt(CreateStmt *stmt, const char *queryString)
IndexStmt * transformIndexStmt(Oid relid, IndexStmt *stmt, const char *queryString)
List * expandTableLikeClause(RangeVar *heapRel, TableLikeClause *table_like_clause)
CreateStatsStmt * transformStatsStmt(Oid relid, CreateStatsStmt *stmt, const char *queryString)
@ TRANS_STMT_COMMIT_PREPARED
@ TRANS_STMT_ROLLBACK_PREPARED
List * find_all_inheritors(Oid parentrelId, LOCKMODE lockmode, List **numparents)
static int list_length(const List *l)
ObjectAddress CreatePolicy(CreatePolicyStmt *stmt)
ObjectAddress AlterPolicy(AlterPolicyStmt *stmt)
void PerformCursorOpen(ParseState *pstate, DeclareCursorStmt *cstmt, ParamListInfo params, bool isTopLevel)
void PerformPortalClose(const char *name)
void PerformPortalFetch(FetchStmt *stmt, DestReceiver *dest, QueryCompletion *qc)
Portal GetPortalByName(const char *name)
ObjectAddress CreateProceduralLanguage(CreatePLangStmt *stmt)
ObjectAddress CreatePublication(ParseState *pstate, CreatePublicationStmt *stmt)
void AlterPublication(ParseState *pstate, AlterPublicationStmt *stmt)
static long analyze(struct nfa *nfa)
Datum transformRelOptions(Datum oldOptions, List *defList, const char *namspace, const char *const validnsps[], bool acceptOidsOff, bool isReset)
bytea * heap_reloptions(char relkind, Datum reloptions, bool validate)
#define HEAP_RELOPT_NAMESPACES
ObjectAddress DefineRule(RuleStmt *stmt, const char *queryString)
Oid CreateSchemaCommand(CreateSchemaStmt *stmt, const char *queryString, int stmt_location, int stmt_len)
ObjectAddress ExecSecLabelStmt(SecLabelStmt *stmt)
void check_stack_depth(void)
ObjectAddress AlterStatistics(AlterStatsStmt *stmt)
ObjectAddress CreateStatistics(CreateStatsStmt *stmt)
QueryEnvironment * queryEnv
QueryEnvironment * p_queryEnv
const char * p_sourcetext
CachedPlanSource * plansource
void DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel)
ObjectAddress CreateSubscription(ParseState *pstate, CreateSubscriptionStmt *stmt, bool isTopLevel)
ObjectAddress AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt, bool isTopLevel)
void AlterTable(AlterTableStmt *stmt, LOCKMODE lockmode, AlterTableUtilityContext *context)
void RemoveRelations(DropStmt *drop)
LOCKMODE AlterTableGetLockLevel(List *cmds)
void ExecuteTruncate(TruncateStmt *stmt)
Oid AlterTableLookupRelation(AlterTableStmt *stmt, LOCKMODE lockmode)
ObjectAddress DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId, ObjectAddress *typaddress, const char *queryString)
Oid AlterTableMoveAll(AlterTableMoveAllStmt *stmt)
void RangeVarCallbackOwnsRelation(const RangeVar *relation, Oid relId, Oid oldRelId, void *arg)
void NewRelationCreateToastTable(Oid relOid, Datum reloptions)
void AfterTriggerSetState(ConstraintsSetStmt *stmt)
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)
ObjectAddress AlterTSConfiguration(AlterTSConfigurationStmt *stmt)
ObjectAddress DefineTSTemplate(List *names, List *parameters)
ObjectAddress DefineTSDictionary(List *names, List *parameters)
ObjectAddress DefineTSConfiguration(List *names, List *parameters, ObjectAddress *copied)
ObjectAddress AlterTSDictionary(AlterTSDictionaryStmt *stmt)
ObjectAddress DefineTSParser(List *names, List *parameters)
TupleDesc CreateTupleDescCopy(TupleDesc tupdesc)
void FinishPreparedTransaction(const char *gid, bool isCommit)
ObjectAddress AlterDomainNotNull(List *names, bool notNull)
ObjectAddress DefineType(ParseState *pstate, List *names, List *parameters)
ObjectAddress DefineEnum(CreateEnumStmt *stmt)
ObjectAddress AlterDomainDropConstraint(List *names, const char *constrName, DropBehavior behavior, bool missing_ok)
ObjectAddress AlterEnum(AlterEnumStmt *stmt)
ObjectAddress AlterDomainAddConstraint(List *names, Node *newConstraint, ObjectAddress *constrAddr)
ObjectAddress DefineDomain(ParseState *pstate, CreateDomainStmt *stmt)
ObjectAddress AlterDomainValidateConstraint(List *names, const char *constrName)
ObjectAddress AlterDomainDefault(List *names, Node *defaultRaw)
ObjectAddress DefineCompositeType(RangeVar *typevar, List *coldeflist)
ObjectAddress AlterType(AlterTypeStmt *stmt)
ObjectAddress DefineRange(ParseState *pstate, CreateRangeStmt *stmt)
void ReassignOwnedObjects(ReassignOwnedStmt *stmt)
Oid AlterRole(ParseState *pstate, AlterRoleStmt *stmt)
Oid AlterRoleSet(AlterRoleSetStmt *stmt)
void DropRole(DropRoleStmt *stmt)
Oid CreateRole(ParseState *pstate, CreateRoleStmt *stmt)
void GrantRole(ParseState *pstate, GrantRoleStmt *stmt)
void DropOwnedObjects(DropOwnedStmt *stmt)
static int ClassifyUtilityCommandAsReadOnly(Node *parsetree)
void standard_ProcessUtility(PlannedStmt *pstmt, const char *queryString, bool readOnlyTree, ProcessUtilityContext context, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest, QueryCompletion *qc)
void PreventCommandIfReadOnly(const char *cmdname)
void ProcessUtility(PlannedStmt *pstmt, const char *queryString, bool readOnlyTree, ProcessUtilityContext context, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest, QueryCompletion *qc)
void PreventCommandIfParallelMode(const char *cmdname)
bool UtilityReturnsTuples(Node *parsetree)
static void ExecDropStmt(DropStmt *stmt, bool isTopLevel)
bool CommandIsReadOnly(PlannedStmt *pstmt)
static void CheckRestrictedOperation(const char *cmdname)
CommandTag CreateCommandTag(Node *parsetree)
static CommandTag AlterObjectTypeCommandTag(ObjectType objtype)
void ProcessUtilityForAlterTable(Node *stmt, AlterTableUtilityContext *context)
ProcessUtility_hook_type ProcessUtility_hook
void PreventCommandDuringRecovery(const char *cmdname)
Query * UtilityContainsQuery(Node *parsetree)
TupleDesc UtilityTupleDescriptor(Node *parsetree)
LogStmtLevel GetCommandLogLevel(Node *parsetree)
static void ProcessUtilitySlow(ParseState *pstate, PlannedStmt *pstmt, const char *queryString, ProcessUtilityContext context, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest, QueryCompletion *qc)
#define COMMAND_OK_IN_PARALLEL_MODE
#define COMMAND_OK_IN_RECOVERY
#define COMMAND_IS_STRICTLY_READ_ONLY
void(* ProcessUtility_hook_type)(PlannedStmt *pstmt, const char *queryString, bool readOnlyTree, ProcessUtilityContext context, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest, QueryCompletion *qc)
#define COMMAND_IS_NOT_READ_ONLY
@ PROCESS_UTILITY_SUBCOMMAND
@ PROCESS_UTILITY_TOPLEVEL
@ PROCESS_UTILITY_QUERY_NONATOMIC
#define COMMAND_OK_IN_READ_ONLY_TXN
void ExecVacuum(ParseState *pstate, VacuumStmt *vacstmt, bool isTopLevel)
ObjectAddress DefineView(ViewStmt *stmt, const char *queryString, int stmt_location, int stmt_len)
void WarnNoTransactionBlock(bool isTopLevel, const char *stmtType)
void UserAbortTransactionBlock(bool chain)
bool PrepareTransactionBlock(const char *gid)
void RequireTransactionBlock(bool isTopLevel, const char *stmtType)
void DefineSavepoint(const char *name)
void CommandCounterIncrement(void)
void PreventInTransactionBlock(bool isTopLevel, const char *stmtType)
void ReleaseSavepoint(const char *name)
bool IsTransactionBlock(void)
bool IsInParallelMode(void)
void BeginTransactionBlock(void)
void RollbackToSavepoint(const char *name)
bool EndTransactionBlock(bool chain)
bool RecoveryInProgress(void)
#define CHECKPOINT_IMMEDIATE