diff options
author | Philip Warner <pjw@rhyme.com.au> | 2001-03-18 03:45:12 +0000 |
---|---|---|
committer | Philip Warner <pjw@rhyme.com.au> | 2001-03-18 03:45:12 +0000 |
commit | 5c1b00450c9b6c0e1f70db26e92fd79f7119223b (patch) | |
tree | 95f23ff1088c8c2bd3bdce154f0e32d77f705357 | |
parent | fd5bac6d2713cee93afe0adba6ac514f29530015 (diff) | |
download | postgresql-5c1b00450c9b6c0e1f70db26e92fd79f7119223b.tar.gz postgresql-5c1b00450c9b6c0e1f70db26e92fd79f7119223b.zip |
Fixed but in _enableTriggersIfNecessary introduced by previous patches by me
which caused segfault in a data-only retore with BLOBs
-rw-r--r-- | src/bin/pg_dump/pg_backup_archiver.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c index 3e7c1b06d4d..51f0aff0aac 100644 --- a/src/bin/pg_dump/pg_backup_archiver.c +++ b/src/bin/pg_dump/pg_backup_archiver.c @@ -471,10 +471,17 @@ static void _enableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te, RestoreO * command when one is available. */ ahprintf(AH, "-- Enable triggers\n"); - ahprintf(AH, "UPDATE pg_class SET reltriggers = " + if (te && te->name && strlen(te->name) > 0) + { + ahprintf(AH, "UPDATE pg_class SET reltriggers = " "(SELECT count(*) FROM pg_trigger where pg_class.oid = tgrelid) " "WHERE relname = '%s';\n\n", te->name); + } else { + ahprintf(AH, "UPDATE \"pg_class\" SET \"reltriggers\" = " + "(SELECT count(*) FROM pg_trigger where pg_class.oid = tgrelid) " + "WHERE \"relname\" !~ '^pg_';\n\n"); + } /* * Restore the user connection from the start of this procedure |