diff options
author | Magnus Hagander <magnus@hagander.net> | 2018-04-05 18:59:32 +0200 |
---|---|---|
committer | Magnus Hagander <magnus@hagander.net> | 2018-04-05 19:02:45 +0200 |
commit | eed1ce72e1593d3e8b7461d7744808d4d6bf402b (patch) | |
tree | 19b57473d3ac769d9e03562924a2ab33ab0bc6b0 /src/include | |
parent | 1664ae1978bf0f5ee940dc2fc8313e6400a7e7da (diff) | |
download | postgresql-eed1ce72e1593d3e8b7461d7744808d4d6bf402b.tar.gz postgresql-eed1ce72e1593d3e8b7461d7744808d4d6bf402b.zip |
Allow background workers to bypass datallowconn
THis adds a "flags" field to the BackgroundWorkerInitializeConnection()
and BackgroundWorkerInitializeConnectionByOid(). For now only one flag,
BGWORKER_BYPASS_ALLOWCONN, is defined, which allows the worker to ignore
datallowconn.
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/miscadmin.h | 2 | ||||
-rw-r--r-- | src/include/postmaster/bgworker.h | 7 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index a429a19964e..b5ad8419684 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -421,7 +421,7 @@ extern AuxProcType MyAuxProcType; extern void pg_split_opts(char **argv, int *argcp, const char *optstr); extern void InitializeMaxBackends(void); extern void InitPostgres(const char *in_dbname, Oid dboid, const char *username, - Oid useroid, char *out_dbname); + Oid useroid, char *out_dbname, bool override_allow_connections); extern void BaseInit(void); /* in utils/init/miscinit.c */ diff --git a/src/include/postmaster/bgworker.h b/src/include/postmaster/bgworker.h index a8753df8d16..9c49bb7f4b0 100644 --- a/src/include/postmaster/bgworker.h +++ b/src/include/postmaster/bgworker.h @@ -140,10 +140,13 @@ extern PGDLLIMPORT BackgroundWorker *MyBgworkerEntry; * If dbname is NULL, connection is made to no specific database; * only shared catalogs can be accessed. */ -extern void BackgroundWorkerInitializeConnection(const char *dbname, const char *username); +extern void BackgroundWorkerInitializeConnection(const char *dbname, const char *username, uint32 flags); /* Just like the above, but specifying database and user by OID. */ -extern void BackgroundWorkerInitializeConnectionByOid(Oid dboid, Oid useroid); +extern void BackgroundWorkerInitializeConnectionByOid(Oid dboid, Oid useroid, uint32 flags); + +/* Flags to BackgroundWorkerInitializeConnection et al */ +#define BGWORKER_BYPASS_ALLOWCONN 1 /* Block/unblock signals in a background worker process */ extern void BackgroundWorkerBlockSignals(void); |