From 81c641ffdcbc7342aaba4e62cb0499ee49061416 Mon Sep 17 00:00:00 2001 From: Georgy Shelkovy Date: Wed, 27 Jul 2022 12:37:52 +0500 Subject: [PATCH] PostgreSQL 15 support. Pass extra argument to InitPostgres as per upstream commit 31ed3cf746a. --- collector.c | 7 +------ compat.c | 20 ++++++++++++++++++++ pg_wait_sampling.h | 5 +++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/collector.c b/collector.c index bbf2741..9bb8cfb 100644 --- a/collector.c +++ b/collector.c @@ -350,12 +350,7 @@ collector_main(Datum main_arg) pqsignal(SIGTERM, handle_sigterm); pqsignal(SIGUSR1, procsignal_sigusr1_handler); BackgroundWorkerUnblockSignals(); - -#if PG_VERSION_NUM >= 110000 - InitPostgres(NULL, InvalidOid, NULL, InvalidOid, NULL, false); -#else - InitPostgres(NULL, InvalidOid, NULL, InvalidOid, NULL); -#endif + InitPostgresCompat(NULL, InvalidOid, NULL, InvalidOid, false, false, NULL); SetProcessingMode(NormalProcessing); /* Make pg_wait_sampling recognisable in pg_stat_activity */ diff --git a/compat.c b/compat.c index 7004d7e..f2a57ae 100644 --- a/compat.c +++ b/compat.c @@ -1,5 +1,7 @@ #include "postgres.h" + #include "access/tupdesc.h" +#include "miscadmin.h" #include "pg_wait_sampling.h" @@ -33,3 +35,21 @@ CreateTemplateTupleDescCompat(int nattrs, bool hasoid) return CreateTemplateTupleDesc(nattrs, hasoid); #endif } + +inline void +InitPostgresCompat(const char *in_dbname, Oid dboid, + const char *username, Oid useroid, + bool load_session_libraries, + bool override_allow_connections, + char *out_dbname) +{ +#if PG_VERSION_NUM >= 150000 + InitPostgres(in_dbname, dboid, username, useroid, load_session_libraries, + override_allow_connections, out_dbname); +#elif PG_VERSION_NUM >= 110000 + InitPostgres(in_dbname, dboid, username, useroid, out_dbname, + override_allow_connections); +#else + InitPostgres(in_dbname, dboid, username, useroid, out_dbname); +#endif +} diff --git a/pg_wait_sampling.h b/pg_wait_sampling.h index 4c0ddac..bb0e1d8 100644 --- a/pg_wait_sampling.h +++ b/pg_wait_sampling.h @@ -88,5 +88,10 @@ extern shm_mq_result shm_mq_send_compat(shm_mq_handle *mqh, Size nbytes, const void *data, bool nowait, bool force_flush); extern TupleDesc CreateTemplateTupleDescCompat(int nattrs, bool hasoid); +extern void InitPostgresCompat(const char *in_dbname, Oid dboid, + const char *username, Oid useroid, + bool load_session_libraries, + bool override_allow_connections, + char *out_dbname); #endif