Thread: postgresql custom variable in pg_settings table
Hello,
We custom set variable
Added patroni.nodes_count = 2 in postgresql.conf
postgres=# show patroni.nodes_count;
patroni.nodes_count
---------------------
2
(1 row)
postgres=# select current_setting('patroni.nodes_count');
current_setting
-----------------
2
(1 row)
patroni.nodes_count
---------------------
2
(1 row)
postgres=# select current_setting('patroni.nodes_count');
current_setting
-----------------
2
(1 row)
But can not select it from pg_settings, as we use pgwatch2 to monitor, to avoid pgwatch2 script change prefer to use pg_setting not current_setting() function, is it possible to get the custom variable from pg_setting please? Thanks
Best Regards
SY
On 1/9/24 09:38, Yi Sun wrote:
Hello,We custom set variableAdded patroni.nodes_count = 2 in postgresql.confpostgres=# show patroni.nodes_count;
patroni.nodes_count
---------------------
2
(1 row)
postgres=# select current_setting('patroni.nodes_count');
current_setting
-----------------
2
(1 row)But can not select it from pg_settings, as we use pgwatch2 to monitor, to avoid pgwatch2 script change prefer to use pg_setting not current_setting() function, is it possible to get the custom variable from pg_setting please? Thanks
You may look into pg_file_settings :
select setting from pg_file_settings where name = 'patroni.nodes_count';
Best RegardsSY
On Tue, Jan 9, 2024 at 3:38 PM Yi Sun <yinan81@gmail.com> wrote: > > Hello, > > > > But can not select it from pg_settings, as we use pgwatch2 to monitor, to avoid pgwatch2 script change prefer to use pg_settingnot current_setting() function, is it possible to get the custom variable from pg_setting please? Thanks the following minimum c function doing that. you can use LOAD (https://www.postgresql.org/docs/16/sql-load.html) to load it, which will make it session persistent. to make it always persistent, you need to make it in the shared_preload_libraries. of course, you can define more Custom Variables. #include "postgres.h" #include "funcapi.h" #include "fmgr.h" #include "utils/guc.h" PG_MODULE_MAGIC; static int test_guc = 2; void _PG_init(void) { /* Define custom GUC variables. */ DefineCustomIntVariable("patroni.count", "test .", "Valid range is 1 .. 11.", &test_guc, 2, 1, 11, PGC_USERSET, 0, NULL, NULL, NULL); MarkGUCPrefixReserved("patroni"); }