in ext/pg_query/pg_query_deparse.c [5471:5591]
static void deparseAlterObjectSchemaStmt(StringInfo str, AlterObjectSchemaStmt *alter_object_schema_stmt)
{
List *l = NULL;
ListCell *lc = NULL;
appendStringInfoString(str, "ALTER ");
switch (alter_object_schema_stmt->objectType)
{
case OBJECT_AGGREGATE:
appendStringInfoString(str, "AGGREGATE ");
deparseAggregateWithArgtypes(str, castNode(ObjectWithArgs, alter_object_schema_stmt->object));
break;
case OBJECT_COLLATION:
appendStringInfoString(str, "COLLATION ");
deparseAnyName(str, castNode(List, alter_object_schema_stmt->object));
break;
case OBJECT_CONVERSION:
appendStringInfoString(str, "CONVERSION ");
deparseAnyName(str, castNode(List, alter_object_schema_stmt->object));
break;
case OBJECT_DOMAIN:
appendStringInfoString(str, "DOMAIN ");
deparseAnyName(str, castNode(List, alter_object_schema_stmt->object));
break;
case OBJECT_EXTENSION:
appendStringInfoString(str, "EXTENSION ");
appendStringInfoString(str, quote_identifier(strVal(alter_object_schema_stmt->object)));
break;
case OBJECT_FUNCTION:
appendStringInfoString(str, "FUNCTION ");
deparseFunctionWithArgtypes(str, castNode(ObjectWithArgs, alter_object_schema_stmt->object));
break;
case OBJECT_OPERATOR:
appendStringInfoString(str, "OPERATOR ");
deparseOperatorWithArgtypes(str, castNode(ObjectWithArgs, alter_object_schema_stmt->object));
break;
case OBJECT_OPCLASS:
l = castNode(List, alter_object_schema_stmt->object);
appendStringInfoString(str, "OPERATOR CLASS ");
deparseAnyNameSkipFirst(str, l);
appendStringInfoString(str, " USING ");
appendStringInfoString(str, quote_identifier(strVal(linitial(l))));
break;
case OBJECT_OPFAMILY:
l = castNode(List, alter_object_schema_stmt->object);
appendStringInfoString(str, "OPERATOR FAMILY ");
deparseAnyNameSkipFirst(str, l);
appendStringInfoString(str, " USING ");
appendStringInfoString(str, quote_identifier(strVal(linitial(l))));
break;
case OBJECT_PROCEDURE:
appendStringInfoString(str, "PROCEDURE ");
deparseFunctionWithArgtypes(str, castNode(ObjectWithArgs, alter_object_schema_stmt->object));
break;
case OBJECT_ROUTINE:
appendStringInfoString(str, "ROUTINE ");
deparseFunctionWithArgtypes(str, castNode(ObjectWithArgs, alter_object_schema_stmt->object));
break;
case OBJECT_TABLE:
appendStringInfoString(str, "TABLE ");
if (alter_object_schema_stmt->missing_ok)
appendStringInfoString(str, "IF EXISTS ");
deparseRangeVar(str, alter_object_schema_stmt->relation, DEPARSE_NODE_CONTEXT_NONE);
break;
case OBJECT_STATISTIC_EXT:
appendStringInfoString(str, "STATISTICS ");
deparseAnyName(str, castNode(List, alter_object_schema_stmt->object));
break;
case OBJECT_TSPARSER:
appendStringInfoString(str, "TEXT SEARCH PARSER ");
deparseAnyName(str, castNode(List, alter_object_schema_stmt->object));
break;
case OBJECT_TSDICTIONARY:
appendStringInfoString(str, "TEXT SEARCH DICTIONARY ");
deparseAnyName(str, castNode(List, alter_object_schema_stmt->object));
break;
case OBJECT_TSTEMPLATE:
appendStringInfoString(str, "TEXT SEARCH TEMPLATE ");
deparseAnyName(str, castNode(List, alter_object_schema_stmt->object));
break;
case OBJECT_TSCONFIGURATION:
appendStringInfoString(str, "TEXT SEARCH CONFIGURATION ");
deparseAnyName(str, castNode(List, alter_object_schema_stmt->object));
break;
case OBJECT_SEQUENCE:
appendStringInfoString(str, "SEQUENCE ");
if (alter_object_schema_stmt->missing_ok)
appendStringInfoString(str, "IF EXISTS ");
deparseRangeVar(str, alter_object_schema_stmt->relation, DEPARSE_NODE_CONTEXT_NONE);
break;
case OBJECT_VIEW:
appendStringInfoString(str, "VIEW ");
if (alter_object_schema_stmt->missing_ok)
appendStringInfoString(str, "IF EXISTS ");
deparseRangeVar(str, alter_object_schema_stmt->relation, DEPARSE_NODE_CONTEXT_NONE);
break;
case OBJECT_MATVIEW:
appendStringInfoString(str, "MATERIALIZED VIEW ");
if (alter_object_schema_stmt->missing_ok)
appendStringInfoString(str, "IF EXISTS ");
deparseRangeVar(str, alter_object_schema_stmt->relation, DEPARSE_NODE_CONTEXT_NONE);
break;
case OBJECT_FOREIGN_TABLE:
appendStringInfoString(str, "FOREIGN TABLE ");
if (alter_object_schema_stmt->missing_ok)
appendStringInfoString(str, "IF EXISTS ");
deparseRangeVar(str, alter_object_schema_stmt->relation, DEPARSE_NODE_CONTEXT_NONE);
break;
case OBJECT_TYPE:
appendStringInfoString(str, "TYPE ");
deparseAnyName(str, castNode(List, alter_object_schema_stmt->object));
break;
default:
Assert(false);
break;
}
appendStringInfoString(str, " SET SCHEMA ");
appendStringInfoString(str, quote_identifier(alter_object_schema_stmt->newschema));
}