From: Tom Lane Date: Sat, 3 May 2008 23:19:33 +0000 (+0000) Subject: The 8.2 patch that added support for an alias on the target table of X-Git-Tag: REL8_2_8~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=932a50feeee93d8de9c36ebedb5039c0f3abee28;p=thirdparty%2Fpostgresql.git The 8.2 patch that added support for an alias on the target table of UPDATE/DELETE forgot to teach ruleutils.c to display the alias. Per bug #4141 from Mathias Seiler. --- diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 1cb8311e878..47d56aaf445 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -2,7 +2,7 @@ * ruleutils.c - Functions to convert stored expressions/querytrees * back to source text * - * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.235.2.4 2008/01/06 01:03:23 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.235.2.5 2008/05/03 23:19:33 tgl Exp $ **********************************************************************/ #include "postgres.h" @@ -2529,9 +2529,13 @@ get_update_query_def(Query *query, deparse_context *context) appendStringInfoChar(buf, ' '); context->indentLevel += PRETTYINDENT_STD; } - appendStringInfo(buf, "UPDATE %s%s SET ", + appendStringInfo(buf, "UPDATE %s%s", only_marker(rte), generate_relation_name(rte->relid)); + if (rte->alias != NULL) + appendStringInfo(buf, " %s", + quote_identifier(rte->alias->aliasname)); + appendStringInfoString(buf, " SET "); /* Add the comma separated list of 'attname = value' */ sep = ""; @@ -2603,12 +2607,15 @@ get_delete_query_def(Query *query, deparse_context *context) Assert(rte->rtekind == RTE_RELATION); if (PRETTY_INDENT(context)) { - context->indentLevel += PRETTYINDENT_STD; appendStringInfoChar(buf, ' '); + context->indentLevel += PRETTYINDENT_STD; } appendStringInfo(buf, "DELETE FROM %s%s", only_marker(rte), generate_relation_name(rte->relid)); + if (rte->alias != NULL) + appendStringInfo(buf, " %s", + quote_identifier(rte->alias->aliasname)); /* Add the USING clause if given */ get_from_clause(query, " USING ", context);