diff --git a/src/bin/pg_dump/common.c b/src/bin/pg_dump/common.c
index b02217e81d5bebdf6e8258c1a223d1d3944b047a..1fcc39fcb87c2c80d04bb6b9d01f48665205c74c 100644
--- a/src/bin/pg_dump/common.c
+++ b/src/bin/pg_dump/common.c
@@ -202,10 +202,6 @@ getSchemaData(Archive *fout, int *numTablesPtr)
 		write_msg(NULL, "reading table inheritance information\n");
 	inhinfo = getInherits(fout, &numInherits);
 
-	if (g_verbose)
-		write_msg(NULL, "reading rewrite rules\n");
-	getRules(fout, &numRules);
-
 	/*
 	 * Identify extension member objects and mark them as not to be dumped.
 	 * This must happen after reading all objects that can be direct members
@@ -240,6 +236,10 @@ getSchemaData(Archive *fout, int *numTablesPtr)
 		write_msg(NULL, "reading triggers\n");
 	getTriggers(fout, tblinfo, numTables);
 
+	if (g_verbose)
+		write_msg(NULL, "reading rewrite rules\n");
+	getRules(fout, &numRules);
+
 	*numTablesPtr = numTables;
 	return tblinfo;
 }