diff options
author | Jan Wieck <JanWieck@Yahoo.com> | 2000-02-07 16:30:58 +0000 |
---|---|---|
committer | Jan Wieck <JanWieck@Yahoo.com> | 2000-02-07 16:30:58 +0000 |
commit | f1acd900add0c33635079084a7e97363b18a529b (patch) | |
tree | b35c07f98afac801053aea5bda9e6a769746d0f5 /src | |
parent | d8733ce674f62f0e13cfc97d0340b43e1906f458 (diff) | |
download | postgresql-f1acd900add0c33635079084a7e97363b18a529b.tar.gz postgresql-f1acd900add0c33635079084a7e97363b18a529b.zip |
Disable/reenable triggers for data only dump.
Jan
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/pg_dump/pg_dump.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 65f9cde5c2c..5bf495e5b0f 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -22,7 +22,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.143 2000/02/04 18:49:34 wieck Exp $ + * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.144 2000/02/07 16:30:58 wieck Exp $ * * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb * @@ -809,9 +809,21 @@ main(int argc, char **argv) else tblinfo = dumpSchema(NULL, &numTables, tablename, aclsSkip); - if (!schemaOnly) + if (!schemaOnly) { + if (dataOnly) + fprintf(g_fout, "UPDATE \"pg_class\" SET \"reltriggers\" = 0 WHERE \"relname\" !~ '^pg_';\n"); + dumpClasses(tblinfo, numTables, g_fout, tablename, oids); + if (dataOnly) { + fprintf(g_fout, "BEGIN TRANSACTION;\n"); + fprintf(g_fout, "CREATE TEMP TABLE \"tr\" (\"tmp_relname\" name, \"tmp_reltriggers\" smallint);\n"); + fprintf(g_fout, "INSERT INTO \"tr\" SELECT C.\"relname\", count(T.\"oid\") FROM \"pg_class\" C, \"pg_trigger\" T WHERE C.\"oid\" = T.\"tgrelid\" AND C.\"relname\" !~ '^pg_' GROUP BY 1;\n"); + fprintf(g_fout, "UPDATE \"pg_class\" SET \"reltriggers\" = TMP.\"tmp_reltriggers\" FROM \"tr\" TMP WHERE \"pg_class\".\"relname\" = TMP.\"tmp_relname\";\n"); + fprintf(g_fout, "COMMIT TRANSACTION;\n"); + } + } + if (!dataOnly) /* dump indexes and triggers at the end * for performance */ { |