aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2008-05-03 23:19:33 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2008-05-03 23:19:33 +0000
commit932a50feeee93d8de9c36ebedb5039c0f3abee28 (patch)
tree122e7289cdcbfb8e101ea2e46f6b9622b278c4fc /src/backend
parent29bf7b00a8291e7b5aa2fe1c636358fa98619558 (diff)
downloadpostgresql-932a50feeee93d8de9c36ebedb5039c0f3abee28.tar.gz
postgresql-932a50feeee93d8de9c36ebedb5039c0f3abee28.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/backend')
-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 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);