cybertec-postgresql / pg_squeeze

A PostgreSQL extension for automatic bloat cleanup
Other
470 stars 31 forks source link

PostgreSQL 15 support #54

Closed devrimgunduz closed 2 years ago

devrimgunduz commented 2 years ago

Hi,

1.4.1 does not build against v15. 15.0 is due in 2 weeks. Can you please take a look? Thanks! Devrim

/usr/lib64/ccache/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -O2 -I. -I./ -I/usr/pgsql-15/include/server -I/usr/pgsql-15/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o pgstatapprox.bc pgstatapprox.c pg_squeeze.c: In function 'squeeze_table_internal': pg_squeeze.c:704:22: error: too few arguments to function 'GetFlushRecPtr' 704 | end_of_wal = GetFlushRecPtr(); | ^~~~~~ In file included from /usr/pgsql-15/include/server/utils/rel.h:18, from /usr/pgsql-15/include/server/access/tableam.h:24, from /usr/pgsql-15/include/server/access/heapam.h:22, from pg_squeeze.h:18, from pg_squeeze.c:10: /usr/pgsql-15/include/server/access/xlog.h:242:19: note: declared here 242 | extern XLogRecPtr GetFlushRecPtr(TimeLineID insertTLI); | ^~~~~~ pg_squeeze.c: In function 'perform_initial_load': pg_squeeze.c:2081:17: error: too many arguments to function 'check_index_is_clusterable' 2081 | check_index_is_clusterable(rel_src, RelationGetRelid(cluster_idx), | ^~~~~~ In file included from pg_squeeze.c:33: /usr/pgsql-15/include/server/commands/cluster.h:36:13: note: declared here 36 | extern void check_index_is_clusterable(Relation OldHeap, Oid indexOid, | ^~~~~~ pg_squeeze.c:2423:30: error: too few arguments to function 'GetFlushRecPtr' 2423 | end_of_wal = GetFlushRecPtr(); | ^~~~~~ /usr/pgsql-15/include/server/access/xlog.h:242:19: note: declared here 242 | extern XLogRecPtr GetFlushRecPtr(TimeLineID insertTLI); | ^~~~~~ pg_squeeze.c: In function 'build_transient_indexes': pg_squeeze.c:2927:30: error: too few arguments to function 'GetFlushRecPtr' 2927 | end_of_wal = GetFlushRecPtr(); | ^~~~~~ /usr/pgsql-15/include/server/access/xlog.h:242:19: note: declared here 242 | extern XLogRecPtr GetFlushRecPtr(TimeLineID insertTLI); | ^~~~~~ pg_squeeze.c: In function 'perform_final_merge': pg_squeeze.c:3096:9: warning: implicit declaration of function 'XLogBeginInsert'; did you mean 'XLogBeginRead'? [-Wimplicit-function-declaration] 3096 | XLogBeginInsert(); | ^~~~~~~ | XLogBeginRead pg_squeeze.c:3097:9: warning: implicit declaration of function 'XLogRegisterData'; did you mean 'XLogRecGetData'? [-Wimplicit-function-declaration] 3097 | XLogRegisterData(&dummy_rec_data, 1); | ^~~~ | XLogRecGetData pg_squeeze.c:3098:27: warning: implicit declaration of function 'XLogInsert' [-Wimplicit-function-declaration] 3098 | xlog_insert_ptr = XLogInsert(RM_XLOG_ID, XLOG_NOOP); | ^~~~~~ pg_squeeze.c:3100:22: error: too few arguments to function 'GetFlushRecPtr' 3100 | end_of_wal = GetFlushRecPtr(); | ^~~~~~ /usr/pgsql-15/include/server/access/xlog.h:242:19: note: declared here 242 | extern XLogRecPtr GetFlushRecPtr(TimeLineID insertTLI); | ^~~~~~ pg_squeeze.c: In function 'get_heap_freespace': pg_squeeze.c:3508:17: warning: implicit declaration of function 'RelationOpenSmgr'; did you mean 'RelationGetSmgr'? [-Wimplicit-function-declaration] 3508 | RelationOpenSmgr(rel); | ^~~~ | RelationGetSmgr make[1]: [: pg_squeeze.o] Error 1 make[1]: Waiting for unfinished jobs.... pg_squeeze.c:704:30: error: too few arguments to function call, single argument 'insertTLI' was not specified end_of_wal = GetFlushRecPtr();


/usr/pgsql-15/include/server/access/xlog.h:242:19: note: 'GetFlushRecPtr' declared here
extern XLogRecPtr GetFlushRecPtr(TimeLineID *insertTLI);
                  ^
pg_squeeze.c:2082:19: error: too many arguments to function call, expected 3, have 4
                                                                   false, NoLock);
                                                                          ^~~~~~
/usr/pgsql-15/include/server/storage/lockdefs.h:34:20: note: expanded from macro 'NoLock'
#define NoLock                                  0
                                                ^
/usr/pgsql-15/include/server/commands/cluster.h:36:13: note: 'check_index_is_clusterable' declared here
extern void check_index_is_clusterable(Relation OldHeap, Oid indexOid,
            ^
pg_squeeze.c:2423:31: error: too few arguments to function call, single argument 'insertTLI' was not specified
                end_of_wal = GetFlushRecPtr();
                             ~~~~~~~~~~~~~~ ^
/usr/pgsql-15/include/server/access/xlog.h:242:19: note: 'GetFlushRecPtr' declared here
extern XLogRecPtr GetFlushRecPtr(TimeLineID *insertTLI);
                  ^
pg_squeeze.c:2927:31: error: too few arguments to function call, single argument 'insertTLI' was not specified
                end_of_wal = GetFlushRecPtr();
                             ~~~~~~~~~~~~~~ ^
/usr/pgsql-15/include/server/access/xlog.h:242:19: note: 'GetFlushRecPtr' declared here
extern XLogRecPtr GetFlushRecPtr(TimeLineID *insertTLI);
                  ^
pg_squeeze.c:3096:2: warning: implicit declaration of function 'XLogBeginInsert' is invalid in C99 [-Wimplicit-function-declaration]
        XLogBeginInsert();
        ^
pg_squeeze.c:3097:2: warning: implicit declaration of function 'XLogRegisterData' is invalid in C99 [-Wimplicit-function-declaration]
        XLogRegisterData(&dummy_rec_data, 1);
        ^
pg_squeeze.c:3098:20: warning: implicit declaration of function 'XLogInsert' is invalid in C99 [-Wimplicit-function-declaration]
        xlog_insert_ptr = XLogInsert(RM_XLOG_ID, XLOG_NOOP);
                          ^
pg_squeeze.c:3100:30: error: too few arguments to function call, single argument 'insertTLI' was not specified
        end_of_wal = GetFlushRecPtr();
                     ~~~~~~~~~~~~~~ ^
/usr/pgsql-15/include/server/access/xlog.h:242:19: note: 'GetFlushRecPtr' declared here
extern XLogRecPtr GetFlushRecPtr(TimeLineID *insertTLI);
                  ^
pg_squeeze.c:3508:3: warning: implicit declaration of function 'RelationOpenSmgr' is invalid in C99 [-Wimplicit-function-declaration]
                RelationOpenSmgr(rel);
                ^
ahouska commented 2 years ago

The branch 1.5 (https://github.com/cybertec-postgresql/pg_squeeze/tree/REL1_5) should be used for PG 15 (as well as for the other active PG versions). It worked several months ago. I'll do some more verification and testing early next week, and create a tag.

devrimgunduz commented 2 years ago

@ahouska thanks!

ahouska commented 2 years ago

This is the 1.5.0 package: https://github.com/cybertec-postgresql/pg_squeeze/releases/tag/REL1_5_0

It should work with all the supported version of PG.

Can you please also update the source location in the PGDG repository?

devrimgunduz commented 2 years ago

Thanks, it works! Updated packages will appear later today.