aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2008-05-03 23:19:20 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2008-05-03 23:19:20 +0000
commitc88850f4a07dc95b4143808bec3f12ace66179d9 (patch)
treece068169e8e30ce3f709c81b5f8ff0521254012d /src
parentbdc7dd6799ce6effc48de58ca9ecbec82461d8b6 (diff)
downloadpostgresql-c88850f4a07dc95b4143808bec3f12ace66179d9.tar.gz
postgresql-c88850f4a07dc95b4143808bec3f12ace66179d9.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/adt/ruleutils.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index 26bda928fa6..5426d86230c 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.272 2008/03/28 00:21:56 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.273 2008/05/03 23:19:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2443,9 +2443,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 = "";
@@ -2517,12 +2521,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);