diff options
author | Peter Eisentraut <peter@eisentraut.org> | 2020-03-11 16:36:40 +0100 |
---|---|---|
committer | Peter Eisentraut <peter@eisentraut.org> | 2020-03-13 14:01:10 +0100 |
commit | 8e8a0becb335529c66a9f82f88e1419e49b458ae (patch) | |
tree | 20eb3ec548fcf2d37ae150f44c1c7949ee9fda5a /src/backend/utils/init/miscinit.c | |
parent | 1cc9c2412cc9a2fbe6a381170097d315fd40ccca (diff) | |
download | postgresql-8e8a0becb335529c66a9f82f88e1419e49b458ae.tar.gz postgresql-8e8a0becb335529c66a9f82f88e1419e49b458ae.zip |
Unify several ways to tracking backend type
Add a new global variable MyBackendType that uses the same BackendType
enum that was previously only used by the stats collector. That way
several duplicate ways of checking what type a particular process is
can be simplified. Since it's no longer just for stats, move to
miscinit.c and rename existing functions to match the expanded
purpose.
Reviewed-by: Julien Rouhaud <rjuju123@gmail.com>
Reviewed-by: Kuntal Ghosh <kuntalghosh.2007@gmail.com>
Reviewed-by: Alvaro Herrera <alvherre@2ndquadrant.com>
Discussion: https://www.postgresql.org/message-id/flat/c65e5196-4f04-4ead-9353-6088c19615a3@2ndquadrant.com
Diffstat (limited to 'src/backend/utils/init/miscinit.c')
-rw-r--r-- | src/backend/utils/init/miscinit.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index cd099b0c709..a7b7b12249d 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -57,6 +57,8 @@ ProcessingMode Mode = InitProcessing; +BackendType MyBackendType; + /* List of lock files to be removed at proc exit */ static List *lock_files = NIL; @@ -187,6 +189,59 @@ SwitchBackToLocalLatch(void) SetLatch(MyLatch); } +const char * +GetBackendTypeDesc(BackendType backendType) +{ + const char *backendDesc = "unknown process type"; + + switch (backendType) + { + case B_INVALID: + backendDesc = "not initialized"; + break; + case B_AUTOVAC_LAUNCHER: + backendDesc = "autovacuum launcher"; + break; + case B_AUTOVAC_WORKER: + backendDesc = "autovacuum worker"; + break; + case B_BACKEND: + backendDesc = "client backend"; + break; + case B_BG_WORKER: + backendDesc = "background worker"; + break; + case B_BG_WRITER: + backendDesc = "background writer"; + break; + case B_CHECKPOINTER: + backendDesc = "checkpointer"; + break; + case B_STARTUP: + backendDesc = "startup"; + break; + case B_WAL_RECEIVER: + backendDesc = "walreceiver"; + break; + case B_WAL_SENDER: + backendDesc = "walsender"; + break; + case B_WAL_WRITER: + backendDesc = "walwriter"; + break; + case B_ARCHIVER: + backendDesc = "archiver"; + break; + case B_STATS_COLLECTOR: + backendDesc = "stats collector"; + break; + case B_LOGGER: + backendDesc = "logger"; + break; + } + + return backendDesc; +} /* ---------------------------------------------------------------- * database path / name support stuff |