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
This commit is contained in:
parent
d1e869d1ef
commit
06292bb949
@ -954,22 +954,24 @@ pg_get_triggerdef_worker(Oid trigid, bool pretty)
|
|||||||
value = fastgetattr(ht_trig, Anum_pg_trigger_tgoldtable,
|
value = fastgetattr(ht_trig, Anum_pg_trigger_tgoldtable,
|
||||||
tgrel->rd_att, &isnull);
|
tgrel->rd_att, &isnull);
|
||||||
if (!isnull)
|
if (!isnull)
|
||||||
tgoldtable = NameStr(*((NameData *) DatumGetPointer(value)));
|
tgoldtable = NameStr(*DatumGetName(value));
|
||||||
else
|
else
|
||||||
tgoldtable = NULL;
|
tgoldtable = NULL;
|
||||||
value = fastgetattr(ht_trig, Anum_pg_trigger_tgnewtable,
|
value = fastgetattr(ht_trig, Anum_pg_trigger_tgnewtable,
|
||||||
tgrel->rd_att, &isnull);
|
tgrel->rd_att, &isnull);
|
||||||
if (!isnull)
|
if (!isnull)
|
||||||
tgnewtable = NameStr(*((NameData *) DatumGetPointer(value)));
|
tgnewtable = NameStr(*DatumGetName(value));
|
||||||
else
|
else
|
||||||
tgnewtable = NULL;
|
tgnewtable = NULL;
|
||||||
if (tgoldtable != NULL || tgnewtable != NULL)
|
if (tgoldtable != NULL || tgnewtable != NULL)
|
||||||
{
|
{
|
||||||
appendStringInfoString(&buf, "REFERENCING ");
|
appendStringInfoString(&buf, "REFERENCING ");
|
||||||
if (tgoldtable != NULL)
|
if (tgoldtable != NULL)
|
||||||
appendStringInfo(&buf, "OLD TABLE AS %s ", tgoldtable);
|
appendStringInfo(&buf, "OLD TABLE AS %s ",
|
||||||
|
quote_identifier(tgoldtable));
|
||||||
if (tgnewtable != NULL)
|
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))
|
if (TRIGGER_FOR_ROW(trigrec->tgtype))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user