Make standalone backends ignore pg_database.datallowconn, so that there
authorTom Lane
Thu, 5 May 2005 19:53:26 +0000 (19:53 +0000)
committerTom Lane
Thu, 5 May 2005 19:53:26 +0000 (19:53 +0000)
is a way to recover from disabling connections to all databases at once.

src/backend/utils/init/postinit.c

index 2030106f970140fa83c49fa987f23cf4f943d0d2..fef1565a04baf965cdd7fb4b33e048e1655358d4 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.145 2005/04/14 20:03:26 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.146 2005/05/05 19:53:26 tgl Exp $
  *
  *
  *-------------------------------------------------------------------------
@@ -165,9 +165,11 @@ ReverifyMyDatabase(const char *name)
 
    /*
     * Also check that the database is currently allowing connections.
+    * (We do not enforce this in standalone mode, however, so that there is
+    * a way to recover from "UPDATE pg_database SET datallowconn = false;")
     */
    dbform = (Form_pg_database) GETSTRUCT(tup);
-   if (!dbform->datallowconn)
+   if (IsUnderPostmaster && !dbform->datallowconn)
        ereport(FATAL,
                (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
         errmsg("database \"%s\" is not currently accepting connections",