diff options
Diffstat (limited to 'src/backend/postmaster/postmaster.c')
-rw-r--r-- | src/backend/postmaster/postmaster.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 0761b38bf88..3d7fec995ae 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -5562,6 +5562,11 @@ void BackgroundWorkerInitializeConnection(const char *dbname, const char *username, uint32 flags) { BackgroundWorker *worker = MyBgworkerEntry; + bits32 init_flags = 0; /* never honor session_preload_libraries */ + + /* ignore datallowconn? */ + if (flags & BGWORKER_BYPASS_ALLOWCONN) + init_flags |= INIT_PG_OVERRIDE_ALLOW_CONNS; /* XXX is this the right errcode? */ if (!(worker->bgw_flags & BGWORKER_BACKEND_DATABASE_CONNECTION)) @@ -5571,8 +5576,7 @@ BackgroundWorkerInitializeConnection(const char *dbname, const char *username, u InitPostgres(dbname, InvalidOid, /* database to connect to */ username, InvalidOid, /* role to connect as */ - false, /* never honor session_preload_libraries */ - (flags & BGWORKER_BYPASS_ALLOWCONN) != 0, /* ignore datallowconn? */ + init_flags, NULL); /* no out_dbname */ /* it had better not gotten out of "init" mode yet */ @@ -5589,6 +5593,11 @@ void BackgroundWorkerInitializeConnectionByOid(Oid dboid, Oid useroid, uint32 flags) { BackgroundWorker *worker = MyBgworkerEntry; + bits32 init_flags = 0; /* never honor session_preload_libraries */ + + /* ignore datallowconn? */ + if (flags & BGWORKER_BYPASS_ALLOWCONN) + init_flags |= INIT_PG_OVERRIDE_ALLOW_CONNS; /* XXX is this the right errcode? */ if (!(worker->bgw_flags & BGWORKER_BACKEND_DATABASE_CONNECTION)) @@ -5598,8 +5607,7 @@ BackgroundWorkerInitializeConnectionByOid(Oid dboid, Oid useroid, uint32 flags) InitPostgres(NULL, dboid, /* database to connect to */ NULL, useroid, /* role to connect as */ - false, /* never honor session_preload_libraries */ - (flags & BGWORKER_BYPASS_ALLOWCONN) != 0, /* ignore datallowconn? */ + init_flags, NULL); /* no out_dbname */ /* it had better not gotten out of "init" mode yet */ |