From 64719a18dbe36871635bbebd718a1267b9447bcd Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Tue, 18 May 2010 18:40:51 +0000
Subject: [PATCH] Use a 'datallowconn' check for avoiding 'template0', rather
 than hardcoding a 'template0' check, per suggestion from Alvaro.

This might fix a problem where someone has allowed 'template0'
connections, but it is a cleaner approach even if doesn't fix the
bug.
---
 contrib/pg_upgrade/pg_upgrade.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/contrib/pg_upgrade/pg_upgrade.c b/contrib/pg_upgrade/pg_upgrade.c
index e35cd5a8943..fc692fc96a1 100644
--- a/contrib/pg_upgrade/pg_upgrade.c
+++ b/contrib/pg_upgrade/pg_upgrade.c
@@ -304,15 +304,14 @@ set_frozenxids(migratorContext *ctx)
 	PQclear(executeQueryOrDie(ctx, conn,
 							  "UPDATE pg_catalog.pg_database "
 							  "SET	datfrozenxid = '%u' "
-	/* cannot connect to 'template0', so ignore */
-							  "WHERE	datname != 'template0'",
+							  "WHERE datallowconn = true",
 							  ctx->old.controldata.chkpnt_nxtxid));
 
 	/* get database names */
 	dbres = executeQueryOrDie(ctx, conn,
 							  "SELECT	datname "
 							  "FROM	pg_catalog.pg_database "
-							  "WHERE	datname != 'template0'");
+							  "WHERE datallowconn = true");
 
 	/* free dbres below */
 	PQfinish(conn);
-- 
GitLab