From 20a3830b81d07aca1b8c3e954b4bc49d0847c51d Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Sun, 27 May 2012 06:35:10 -0400
Subject: [PATCH] Add C comment explaining why we can't exclude checking
 functions in the pg_catalog schema, even though they are not explicitly
 dumped (they are implicitly dumped, e.g. create language plperl).

---
 contrib/pg_upgrade/function.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/contrib/pg_upgrade/function.c b/contrib/pg_upgrade/function.c
index e38071ed95f..afa75431253 100644
--- a/contrib/pg_upgrade/function.c
+++ b/contrib/pg_upgrade/function.c
@@ -142,7 +142,12 @@ get_loadable_libraries(void)
 		DbInfo	   *active_db = &old_cluster.dbarr.dbs[dbnum];
 		PGconn	   *conn = connectToServer(&old_cluster, active_db->db_name);
 
-		/* Fetch all libraries referenced in this DB */
+		/*
+		 *	Fetch all libraries referenced in this DB.  We can't exclude
+		 *	the "pg_catalog" schema because, while such functions are not
+		 *	explicitly dumped by pg_dump, they do reference implicit objects
+		 *	that pg_dump does dump, e.g. creation of the plperl language.
+		 */
 		ress[dbnum] = executeQueryOrDie(conn,
 										"SELECT DISTINCT probin "
 										"FROM	pg_catalog.pg_proc "
-- 
GitLab