in ext/pg_query/pg_query_deparse.c [9540:9900]
static void deparseStmt(StringInfo str, Node *node)
{
// Note the following grammar names are missing in the list, because they
// get mapped to other node types:
//
// - AlterForeignTableStmt (=> AlterTableStmt)
// - AlterGroupStmt (=> AlterRoleStmt)
// - AlterCompositeTypeStmt (=> AlterTableStmt)
// - AnalyzeStmt (=> VacuumStmt)
// - CreateGroupStmt (=> CreateRoleStmt)
// - CreateMatViewStmt (=> CreateTableAsStmt)
// - CreateUserStmt (=> CreateRoleStmt)
// - DropCastStmt (=> DropStmt)
// - DropOpClassStmt (=> DropStmt)
// - DropOpFamilyStmt (=> DropStmt)
// - DropPLangStmt (=> DropPLangStmt)
// - DropTransformStmt (=> DropStmt)
// - RemoveAggrStmt (=> DropStmt)
// - RemoveFuncStmt (=> DropStmt)
// - RemoveOperStmt (=> DropStmt)
// - RevokeStmt (=> GrantStmt)
// - RevokeRoleStmt (=> GrantRoleStmt)
// - VariableResetStmt (=> VariableSetStmt)
//
// And the following grammar names error out in the parser:
// - CreateAssertionStmt (not supported yet)
switch (nodeTag(node))
{
case T_AlterEventTrigStmt:
deparseAlterEventTrigStmt(str, castNode(AlterEventTrigStmt, node));
break;
case T_AlterCollationStmt:
deparseAlterCollationStmt(str, castNode(AlterCollationStmt, node));
break;
case T_AlterDatabaseStmt:
deparseAlterDatabaseStmt(str, castNode(AlterDatabaseStmt, node));
break;
case T_AlterDatabaseSetStmt:
deparseAlterDatabaseSetStmt(str, castNode(AlterDatabaseSetStmt, node));
break;
case T_AlterDefaultPrivilegesStmt:
deparseAlterDefaultPrivilegesStmt(str, castNode(AlterDefaultPrivilegesStmt, node));
break;
case T_AlterDomainStmt:
deparseAlterDomainStmt(str, castNode(AlterDomainStmt, node));
break;
case T_AlterEnumStmt:
deparseAlterEnumStmt(str, castNode(AlterEnumStmt, node));
break;
case T_AlterExtensionStmt:
deparseAlterExtensionStmt(str, castNode(AlterExtensionStmt, node));
break;
case T_AlterExtensionContentsStmt:
deparseAlterExtensionContentsStmt(str, castNode(AlterExtensionContentsStmt, node));
break;
case T_AlterFdwStmt:
deparseAlterFdwStmt(str, castNode(AlterFdwStmt, node));
break;
case T_AlterForeignServerStmt:
deparseAlterForeignServerStmt(str, castNode(AlterForeignServerStmt, node));
break;
case T_AlterFunctionStmt:
deparseAlterFunctionStmt(str, castNode(AlterFunctionStmt, node));
break;
case T_AlterObjectDependsStmt:
deparseAlterObjectDependsStmt(str, castNode(AlterObjectDependsStmt, node));
break;
case T_AlterObjectSchemaStmt:
deparseAlterObjectSchemaStmt(str, castNode(AlterObjectSchemaStmt, node));
break;
case T_AlterOwnerStmt:
deparseAlterOwnerStmt(str, castNode(AlterOwnerStmt, node));
break;
case T_AlterOperatorStmt:
deparseAlterOperatorStmt(str, castNode(AlterOperatorStmt, node));
break;
case T_AlterTypeStmt:
deparseAlterTypeStmt(str, castNode(AlterTypeStmt, node));
break;
case T_AlterPolicyStmt:
deparseAlterPolicyStmt(str, castNode(AlterPolicyStmt, node));
break;
case T_AlterSeqStmt:
deparseAlterSeqStmt(str, castNode(AlterSeqStmt, node));
break;
case T_AlterSystemStmt:
deparseAlterSystemStmt(str, castNode(AlterSystemStmt, node));
break;
case T_AlterTableStmt:
deparseAlterTableStmt(str, castNode(AlterTableStmt, node));
break;
case T_AlterTableSpaceOptionsStmt: // "AlterTblSpcStmt" in gram.y
deparseAlterTableSpaceOptionsStmt(str, castNode(AlterTableSpaceOptionsStmt, node));
break;
case T_AlterPublicationStmt:
deparseAlterPublicationStmt(str, castNode(AlterPublicationStmt, node));
break;
case T_AlterRoleSetStmt:
deparseAlterRoleSetStmt(str, castNode(AlterRoleSetStmt, node));
break;
case T_AlterRoleStmt:
deparseAlterRoleStmt(str, castNode(AlterRoleStmt, node));
break;
case T_AlterSubscriptionStmt:
deparseAlterSubscriptionStmt(str, castNode(AlterSubscriptionStmt, node));
break;
case T_AlterStatsStmt:
deparseAlterStatsStmt(str, castNode(AlterStatsStmt, node));
break;
case T_AlterTSConfigurationStmt:
deparseAlterTSConfigurationStmt(str, castNode(AlterTSConfigurationStmt, node));
break;
case T_AlterTSDictionaryStmt:
deparseAlterTSDictionaryStmt(str, castNode(AlterTSDictionaryStmt, node));
break;
case T_AlterUserMappingStmt:
deparseAlterUserMappingStmt(str, castNode(AlterUserMappingStmt, node));
break;
case T_CallStmt:
deparseCallStmt(str, castNode(CallStmt, node));
break;
case T_CheckPointStmt:
deparseCheckPointStmt(str, castNode(CheckPointStmt, node));
break;
case T_ClosePortalStmt:
deparseClosePortalStmt(str, castNode(ClosePortalStmt, node));
break;
case T_ClusterStmt:
deparseClusterStmt(str, castNode(ClusterStmt, node));
break;
case T_CommentStmt:
deparseCommentStmt(str, castNode(CommentStmt, node));
break;
case T_ConstraintsSetStmt:
deparseConstraintsSetStmt(str, castNode(ConstraintsSetStmt, node));
break;
case T_CopyStmt:
deparseCopyStmt(str, castNode(CopyStmt, node));
break;
case T_CreateAmStmt:
deparseCreateAmStmt(str, castNode(CreateAmStmt, node));
break;
case T_CreateTableAsStmt: // "CreateAsStmt" in gram.y
deparseCreateTableAsStmt(str, castNode(CreateTableAsStmt, node));
break;
case T_CreateCastStmt:
deparseCreateCastStmt(str, castNode(CreateCastStmt, node));
break;
case T_CreateConversionStmt:
deparseCreateConversionStmt(str, castNode(CreateConversionStmt, node));
break;
case T_CreateDomainStmt:
deparseCreateDomainStmt(str, castNode(CreateDomainStmt, node));
break;
case T_CreateExtensionStmt:
deparseCreateExtensionStmt(str, castNode(CreateExtensionStmt, node));
break;
case T_CreateFdwStmt:
deparseCreateFdwStmt(str, castNode(CreateFdwStmt, node));
break;
case T_CreateForeignServerStmt:
deparseCreateForeignServerStmt(str, castNode(CreateForeignServerStmt, node));
break;
case T_CreateForeignTableStmt:
deparseCreateForeignTableStmt(str, castNode(CreateForeignTableStmt, node));
break;
case T_CreateFunctionStmt:
deparseCreateFunctionStmt(str, castNode(CreateFunctionStmt, node));
break;
case T_CreateOpClassStmt:
deparseCreateOpClassStmt(str, castNode(CreateOpClassStmt, node));
break;
case T_CreateOpFamilyStmt:
deparseCreateOpFamilyStmt(str, castNode(CreateOpFamilyStmt, node));
break;
case T_CreatePublicationStmt:
deparseCreatePublicationStmt(str, castNode(CreatePublicationStmt, node));
break;
case T_AlterOpFamilyStmt:
deparseAlterOpFamilyStmt(str, castNode(AlterOpFamilyStmt, node));
break;
case T_CreatePolicyStmt:
deparseCreatePolicyStmt(str, castNode(CreatePolicyStmt, node));
break;
case T_CreatePLangStmt:
deparseCreatePLangStmt(str, castNode(CreatePLangStmt, node));
break;
case T_CreateSchemaStmt:
deparseCreateSchemaStmt(str, castNode(CreateSchemaStmt, node));
break;
case T_CreateSeqStmt:
deparseCreateSeqStmt(str, castNode(CreateSeqStmt, node));
break;
case T_CreateStmt:
deparseCreateStmt(str, castNode(CreateStmt, node), false);
break;
case T_CreateSubscriptionStmt:
deparseCreateSubscriptionStmt(str, castNode(CreateSubscriptionStmt, node));
break;
case T_CreateStatsStmt:
deparseCreateStatsStmt(str, castNode(CreateStatsStmt, node));
break;
case T_CreateTableSpaceStmt:
deparseCreateTableSpaceStmt(str, castNode(CreateTableSpaceStmt, node));
break;
case T_CreateTransformStmt:
deparseCreateTransformStmt(str, castNode(CreateTransformStmt, node));
break;
case T_CreateTrigStmt:
deparseCreateTrigStmt(str, castNode(CreateTrigStmt, node));
break;
case T_CreateEventTrigStmt:
deparseCreateEventTrigStmt(str, castNode(CreateEventTrigStmt, node));
break;
case T_CreateRoleStmt:
deparseCreateRoleStmt(str, castNode(CreateRoleStmt, node));
break;
case T_CreateUserMappingStmt:
deparseCreateUserMappingStmt(str, castNode(CreateUserMappingStmt, node));
break;
case T_CreatedbStmt:
deparseCreatedbStmt(str, castNode(CreatedbStmt, node));
break;
case T_DeallocateStmt:
deparseDeallocateStmt(str, castNode(DeallocateStmt, node));
break;
case T_DeclareCursorStmt:
deparseDeclareCursorStmt(str, castNode(DeclareCursorStmt, node));
break;
case T_DefineStmt:
deparseDefineStmt(str, castNode(DefineStmt, node));
break;
case T_DeleteStmt:
deparseDeleteStmt(str, castNode(DeleteStmt, node));
break;
case T_DiscardStmt:
deparseDiscardStmt(str, castNode(DiscardStmt, node));
break;
case T_DoStmt:
deparseDoStmt(str, castNode(DoStmt, node));
break;
case T_DropOwnedStmt:
deparseDropOwnedStmt(str, castNode(DropOwnedStmt, node));
break;
case T_DropStmt:
deparseDropStmt(str, castNode(DropStmt, node));
break;
case T_DropSubscriptionStmt:
deparseDropSubscriptionStmt(str, castNode(DropSubscriptionStmt, node));
break;
case T_DropTableSpaceStmt:
deparseDropTableSpaceStmt(str, castNode(DropTableSpaceStmt, node));
break;
case T_DropRoleStmt:
deparseDropRoleStmt(str, castNode(DropRoleStmt, node));
break;
case T_DropUserMappingStmt:
deparseDropUserMappingStmt(str, castNode(DropUserMappingStmt, node));
break;
case T_DropdbStmt:
deparseDropdbStmt(str, castNode(DropdbStmt, node));
break;
case T_ExecuteStmt:
deparseExecuteStmt(str, castNode(ExecuteStmt, node));
break;
case T_ExplainStmt:
deparseExplainStmt(str, castNode(ExplainStmt, node));
break;
case T_FetchStmt:
deparseFetchStmt(str, castNode(FetchStmt, node));
break;
case T_GrantStmt:
deparseGrantStmt(str, castNode(GrantStmt, node));
break;
case T_GrantRoleStmt:
deparseGrantRoleStmt(str, castNode(GrantRoleStmt, node));
break;
case T_ImportForeignSchemaStmt:
deparseImportForeignSchemaStmt(str, castNode(ImportForeignSchemaStmt, node));
break;
case T_IndexStmt:
deparseIndexStmt(str, castNode(IndexStmt, node));
break;
case T_InsertStmt:
deparseInsertStmt(str, castNode(InsertStmt, node));
break;
case T_ListenStmt:
deparseListenStmt(str, castNode(ListenStmt, node));
break;
case T_RefreshMatViewStmt:
deparseRefreshMatViewStmt(str, castNode(RefreshMatViewStmt, node));
break;
case T_LoadStmt:
deparseLoadStmt(str, castNode(LoadStmt, node));
break;
case T_LockStmt:
deparseLockStmt(str, castNode(LockStmt, node));
break;
case T_NotifyStmt:
deparseNotifyStmt(str, castNode(NotifyStmt, node));
break;
case T_PrepareStmt:
deparsePrepareStmt(str, castNode(PrepareStmt, node));
break;
case T_ReassignOwnedStmt:
deparseReassignOwnedStmt(str, castNode(ReassignOwnedStmt, node));
break;
case T_ReindexStmt:
deparseReindexStmt(str, castNode(ReindexStmt, node));
break;
case T_RenameStmt:
deparseRenameStmt(str, castNode(RenameStmt, node));
break;
case T_RuleStmt:
deparseRuleStmt(str, castNode(RuleStmt, node));
break;
case T_SecLabelStmt:
deparseSecLabelStmt(str, castNode(SecLabelStmt, node));
break;
case T_SelectStmt:
deparseSelectStmt(str, castNode(SelectStmt, node));
break;
case T_TransactionStmt:
deparseTransactionStmt(str, castNode(TransactionStmt, node));
break;
case T_TruncateStmt:
deparseTruncateStmt(str, castNode(TruncateStmt, node));
break;
case T_UnlistenStmt:
deparseUnlistenStmt(str, castNode(UnlistenStmt, node));
break;
case T_UpdateStmt:
deparseUpdateStmt(str, castNode(UpdateStmt, node));
break;
case T_VacuumStmt:
deparseVacuumStmt(str, castNode(VacuumStmt, node));
break;
case T_VariableSetStmt:
deparseVariableSetStmt(str, castNode(VariableSetStmt, node));
break;
case T_VariableShowStmt:
deparseVariableShowStmt(str, castNode(VariableShowStmt, node));
break;
case T_ViewStmt:
deparseViewStmt(str, castNode(ViewStmt, node));
break;
// These node types are created by DefineStmt grammar for CREATE TYPE in some cases
case T_CompositeTypeStmt:
deparseCompositeTypeStmt(str, castNode(CompositeTypeStmt, node));
break;
case T_CreateEnumStmt:
deparseCreateEnumStmt(str, castNode(CreateEnumStmt, node));
break;
case T_CreateRangeStmt:
deparseCreateRangeStmt(str, castNode(CreateRangeStmt, node));
break;
default:
// No other node types are supported at the top-level
Assert(false);
}
}