pg_failover_slots
pg_failover_slots copied to clipboard
PostgreSQL 18 support
Hi,
v18 beta1 is out and pg_failover_slots fail to compile against it. The logs are below. Can you please take a look? Thanks!
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -Wmissing-variable-declarations -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fPIC -fvisibility=hidden -I /usr/pgsql-18/include -I. -I./ -I/usr/pgsql-18/include/server -I/usr/pgsql-18/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -DWITH_GZFILEOP -I/usr/include -c -o pg_failover_slots.o pg_failover_slots.c
/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -Wno-format-truncation -O2 -I /usr/pgsql-18/include -I. -I./ -I/usr/pgsql-18/include/server -I/usr/pgsql-18/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -DWITH_GZFILEOP -I/usr/include -flto=thin -emit-llvm -c -o pg_failover_slots.bc pg_failover_slots.c
pg_failover_slots.c:716:49: error: too few arguments to function call, expected 3, have 2
716 | ReplicationSlotAcquire(remote_slot->name, true);
| ~~~~~~~~~~~~~~~~~~~~~~ ^
/usr/pgsql-18/include/server/replication/slot.h:278:13: note: 'ReplicationSlotAcquire' declared here
278 | extern void ReplicationSlotAcquire(const char *name, bool nowait,
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
279 | bool error_if_invalid);
| ~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[1]: *** [/usr/pgsql-18/lib/pgxs/src/makefiles/../../src/Makefile.global:1104: pg_failover_slots.bc] Error 1
make[1]: *** Waiting for unfinished jobs....
pg_failover_slots.c:102:7: warning: no previous declaration for ‘standby_slot_names’ [-Wmissing-variable-declarations]
102 | List *standby_slot_names = NIL;
| ^~~~~~~~~~~~~~~~~~
pg_failover_slots.c:103:5: warning: no previous declaration for ‘standby_slots_min_confirmed’ [-Wmissing-variable-declarations]
103 | int standby_slots_min_confirmed;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
pg_failover_slots.c:104:12: warning: no previous declaration for ‘standby_slot_names_oldest_flush_lsn’ [-Wmissing-variable-declarations]
104 | XLogRecPtr standby_slot_names_oldest_flush_lsn = InvalidXLogRecPtr;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pg_failover_slots.c:107:5: warning: no previous declaration for ‘worker_nap_time’ [-Wmissing-variable-declarations]
107 | int worker_nap_time;
| ^~~~~~~~~~~~~~~
pg_failover_slots.c:108:7: warning: no previous declaration for ‘pg_failover_maintenance_db’ [-Wmissing-variable-declarations]
108 | char *pg_failover_maintenance_db;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
pg_failover_slots.c:111:7: warning: no previous declaration for ‘pg_failover_slots_dsn’ [-Wmissing-variable-declarations]
111 | char *pg_failover_slots_dsn;
| ^~~~~~~~~~~~~~~~~~~~~
pg_failover_slots.c:112:7: warning: no previous declaration for ‘pg_failover_slot_names’ [-Wmissing-variable-declarations]
112 | char *pg_failover_slot_names;
| ^~~~~~~~~~~~~~~~~~~~~~
pg_failover_slots.c:117:7: warning: no previous declaration for ‘pg_failover_slots_version_str’ [-Wmissing-variable-declarations]
117 | char *pg_failover_slots_version_str;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pg_failover_slots.c: In function ‘synchronize_one_slot’:
pg_failover_slots.c:716:17: error: too few arguments to function ‘ReplicationSlotAcquire’; expected 3, have 2
716 | ReplicationSlotAcquire(remote_slot->name, true);
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/pgsql-18/include/server/replication/logical.h:15,
from /usr/pgsql-18/include/server/replication/decode.h:14,
from pg_failover_slots.c:38:
/usr/pgsql-18/include/server/replication/slot.h:278:13: note: declared here
278 | extern void ReplicationSlotAcquire(const char *name, bool nowait,
| ^~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [<builtin>: pg_failover_slots.o] Error 1
Just a heads-up: PostgreSQL 18 RC1 will be out this Thursday (4 September). GA is currently planned at 25 September
ping. v18 is due next week.
@devrimgunduz PR #55
Thanks @eulerto . Apparently @petere committed it. We need a new release for packaging. Thanks!