Make standalone backends ignore pg_database.datallowconn, so that there
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 5 May 2005 19:53:37 +0000 (19:53 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 5 May 2005 19:53:37 +0000 (19:53 +0000)
is a way to recover from disabling connections to all databases at once.

src/backend/utils/init/postinit.c

index 286e7d32f192d9e9bc535a839ab4695759d88157..8fbc0ac2247d2e33ba67b940324d39e504879514 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.139.4.2 2005/03/18 16:16:20 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.139.4.3 2005/05/05 19:53:37 tgl Exp $
  *
  *
  *-------------------------------------------------------------------------
@@ -122,9 +122,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",