diff options
Diffstat (limited to 'src/bin/pg_dump/pg_dump.c')
| -rw-r--r-- | src/bin/pg_dump/pg_dump.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index e25bf7ab0b..5b3b36757d 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -12,7 +12,7 @@ * by PostgreSQL * * IDENTIFICATION - * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.552 2009/10/14 22:14:23 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.553 2009/11/20 20:38:11 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -4305,10 +4305,15 @@ getTriggers(TableInfo tblinfo[], int numTables) resetPQExpBuffer(query); if (g_fout->remoteVersion >= 80500) { + /* + * NB: think not to use pretty=true in pg_get_triggerdef. It + * could result in non-forward-compatible dumps of WHEN clauses + * due to under-parenthesization. + */ appendPQExpBuffer(query, "SELECT tgname, " "tgfoid::pg_catalog.regproc AS tgfname, " - "pg_catalog.pg_get_triggerdef(oid, true) AS tgdef, " + "pg_catalog.pg_get_triggerdef(oid, false) AS tgdef, " "tgenabled, tableoid, oid " "FROM pg_catalog.pg_trigger t " "WHERE tgrelid = '%u'::pg_catalog.oid " @@ -11323,6 +11328,7 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo) appendPQExpBuffer(query, " OR UPDATE"); else appendPQExpBuffer(query, " UPDATE"); + findx++; } if (TRIGGER_FOR_TRUNCATE(tginfo->tgtype)) { @@ -11330,6 +11336,7 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo) appendPQExpBuffer(query, " OR TRUNCATE"); else appendPQExpBuffer(query, " TRUNCATE"); + findx++; } appendPQExpBuffer(query, " ON %s\n", fmtId(tbinfo->dobj.name)); |
