@@ -420,7 +420,7 @@ static void _disableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te, Restore
420
420
*/
421
421
422
422
if (te && te -> name && strlen (te -> name ) > 0 )
423
- ahprintf (AH , "UPDATE \"pg_class\" SET \"reltriggers\" = 0 WHERE \"relname\" ~* '%s';\n" ,
423
+ ahprintf (AH , "UPDATE \"pg_class\" SET \"reltriggers\" = 0 WHERE \"relname\" = '%s';\n \n" ,
424
424
te -> name );
425
425
else
426
426
ahprintf (AH , "UPDATE \"pg_class\" SET \"reltriggers\" = 0 WHERE \"relname\" !~ '^pg_';\n\n" );
@@ -471,26 +471,10 @@ static void _enableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te, RestoreO
471
471
* command when one is available.
472
472
*/
473
473
ahprintf (AH , "-- Enable triggers\n" );
474
- ahprintf (AH , "BEGIN TRANSACTION;\n" );
475
- ahprintf (AH , "CREATE TEMP TABLE \"tr\" (\"tmp_relname\" name, \"tmp_reltriggers\" smallint);\n" );
476
-
477
- /*
478
- * Just update the affected table, if known.
479
- */
480
- if (te && te -> name && strlen (te -> name ) > 0 )
481
- ahprintf (AH , "INSERT INTO \"tr\" SELECT C.\"relname\", count(T.\"oid\") FROM \"pg_class\" C,"
482
- " \"pg_trigger\" T WHERE C.\"oid\" = T.\"tgrelid\" AND C.\"relname\" ~* '%s' "
483
- " GROUP BY 1;\n" , te -> name );
484
- else
485
- ahprintf (AH , "INSERT INTO \"tr\" SELECT C.\"relname\", count(T.\"oid\") FROM \"pg_class\" C,"
486
- " \"pg_trigger\" T WHERE C.\"oid\" = T.\"tgrelid\" AND C.\"relname\" !~ '^pg_' "
487
- " GROUP BY 1;\n" );
488
-
489
- ahprintf (AH , "UPDATE \"pg_class\" SET \"reltriggers\" = TMP.\"tmp_reltriggers\" "
490
- "FROM \"tr\" TMP WHERE "
491
- "\"pg_class\".\"relname\" = TMP.\"tmp_relname\";\n" );
492
- ahprintf (AH , "DROP TABLE \"tr\";\n" );
493
- ahprintf (AH , "COMMIT TRANSACTION;\n\n" );
474
+ ahprintf (AH , "UPDATE pg_class SET reltriggers = "
475
+ "(SELECT count(*) FROM pg_trigger where pg_class.oid = tgrelid) "
476
+ "WHERE relname = '%s';\n\n" ,
477
+ te -> name );
494
478
495
479
/*
496
480
* Restore the user connection from the start of this procedure
0 commit comments