diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2018-10-19 00:50:17 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2018-10-19 00:50:17 -0400 |
commit | 09397f0ed6c4fd3b76658058e4e914b80a509237 (patch) | |
tree | 30814a42491cdcf5b38bee2da57aaac4b6c7af46 | |
parent | 34f9944c207f9f710eb7f65d22805f42d46e479e (diff) | |
download | postgresql-09397f0ed6c4fd3b76658058e4e914b80a509237.tar.gz postgresql-09397f0ed6c4fd3b76658058e4e914b80a509237.zip |
Add missing quote_identifier calls for CREATE TRIGGER ... REFERENCING.
Mixed-case names for transition tables weren't dumped correctly.
Oversight in commit 8c48375e5, per bug #15440 from Karl Czajkowski.
In passing, I couldn't resist a bit of code beautification.
Back-patch to v10 where this was introduced.
Discussion: https://postgr.es/m/15440-02d1468e94d63d76@postgresql.org
-rw-r--r-- | src/backend/utils/adt/ruleutils.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index da07fbd7251..1264b966c63 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -952,22 +952,24 @@ pg_get_triggerdef_worker(Oid trigid, bool pretty) value = fastgetattr(ht_trig, Anum_pg_trigger_tgoldtable, tgrel->rd_att, &isnull); if (!isnull) - tgoldtable = NameStr(*((NameData *) DatumGetPointer(value))); + tgoldtable = NameStr(*DatumGetName(value)); else tgoldtable = NULL; value = fastgetattr(ht_trig, Anum_pg_trigger_tgnewtable, tgrel->rd_att, &isnull); if (!isnull) - tgnewtable = NameStr(*((NameData *) DatumGetPointer(value))); + tgnewtable = NameStr(*DatumGetName(value)); else tgnewtable = NULL; if (tgoldtable != NULL || tgnewtable != NULL) { appendStringInfoString(&buf, "REFERENCING "); if (tgoldtable != NULL) - appendStringInfo(&buf, "OLD TABLE AS %s ", tgoldtable); + appendStringInfo(&buf, "OLD TABLE AS %s ", + quote_identifier(tgoldtable)); if (tgnewtable != NULL) - appendStringInfo(&buf, "NEW TABLE AS %s ", tgnewtable); + appendStringInfo(&buf, "NEW TABLE AS %s ", + quote_identifier(tgnewtable)); } if (TRIGGER_FOR_ROW(trigrec->tgtype)) |