Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit f1acd90

Browse files
Jan WieckJan Wieck
Jan Wieck
authored and
Jan Wieck
committed
Disable/reenable triggers for data only dump.
Jan
1 parent d8733ce commit f1acd90

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/bin/pg_dump/pg_dump.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
*
2323
*
2424
* IDENTIFICATION
25-
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.143 2000/02/04 18:49:34 wieck Exp $
25+
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.144 2000/02/07 16:30:58 wieck Exp $
2626
*
2727
* Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
2828
*
@@ -809,9 +809,21 @@ main(int argc, char **argv)
809809
else
810810
tblinfo = dumpSchema(NULL, &numTables, tablename, aclsSkip);
811811

812-
if (!schemaOnly)
812+
if (!schemaOnly) {
813+
if (dataOnly)
814+
fprintf(g_fout, "UPDATE \"pg_class\" SET \"reltriggers\" = 0 WHERE \"relname\" !~ '^pg_';\n");
815+
813816
dumpClasses(tblinfo, numTables, g_fout, tablename, oids);
814817

818+
if (dataOnly) {
819+
fprintf(g_fout, "BEGIN TRANSACTION;\n");
820+
fprintf(g_fout, "CREATE TEMP TABLE \"tr\" (\"tmp_relname\" name, \"tmp_reltriggers\" smallint);\n");
821+
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");
822+
fprintf(g_fout, "UPDATE \"pg_class\" SET \"reltriggers\" = TMP.\"tmp_reltriggers\" FROM \"tr\" TMP WHERE \"pg_class\".\"relname\" = TMP.\"tmp_relname\";\n");
823+
fprintf(g_fout, "COMMIT TRANSACTION;\n");
824+
}
825+
}
826+
815827
if (!dataOnly) /* dump indexes and triggers at the end
816828
* for performance */
817829
{

0 commit comments

Comments
 (0)