cybertec-postgresql / pg_squeeze

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

make fails with pg_squeeze.c:2629:3: error: too few arguments to function ‘NewHeapCreateToastTable’ #57

Closed mattbunter closed 1 year ago

mattbunter commented 1 year ago

Postgres 13 - Cybertec Encrypted Binaries Ubuntu 20.04.5 LTS (Focal Fossa) V 1.5.0 of pg_squeeze

After having put PG_CONFIG ?= /usr/lib/postgresql/13/bin/pg_config And trying PG_CONFIG = /usr/lib/postgresql/13/bin/pg_config

The make command gives us the following :

gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -I. -I./ -I/usr/include/postgresql/13/server -I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -c -o pg_squeeze.o pg_squeeze.c pg_squeeze.c: In function ‘create_transient_table’: pg_squeeze.c:2629:3: error: too few arguments to function ‘NewHeapCreateToastTable’ 2629 | NewHeapCreateToastTable(result, reloptions, AccessExclusiveLock); | ^~~~~~~ In file included from pg_squeeze.c:35: /usr/include/postgresql/13/server/catalog/toasting.h:26:13: note: declared here 26 | extern void NewHeapCreateToastTable(Oid relOid, Datum reloptions, | ^~~~~~~ make: *** [: pg_squeeze.o] Error 1

Install worked on same OS with same Postgres but using V 1.4.1, should we try this version instead or is there a solution?

ahouska commented 1 year ago

What's the output of the following command?

/usr/lib/postgresql/13/bin/pg_config --version

Also, please find pg_config.h under /usr/include/postgresql/13/ and tell me the value of PG_VERSION_NUM

mattbunter commented 1 year ago

Hello,

PostgreSQL 13.7 (Ubuntu 13.7-1)

/ PostgreSQL version as a number /

define PG_VERSION_NUM 130000

ahouska commented 1 year ago

Please check to which installation the pg_config.h file belongs (rpm -qf pg_config.h). It's weird that the version number in pg_config.h does not match the number reported by the pg_config utility.

mattbunter commented 1 year ago

Hello,

We are using your Cybertec Encrypted Binaries on Ubuntu 20.04

[postgres@toto-postgres1 ~]$ dpkg -S /usr/include/postgresql/13/server/pg_config.h postgresql-server-dev-13: /usr/include/postgresql/13/server/pg_config.h

ahouska commented 1 year ago

So it seems that you only have the postgresql-server-dev-13 package for PostgreSQL 13.0 while you need it for 13.7 (or later).

mattbunter commented 1 year ago

Oh dear. OK, we'll have to update and then get back if we still have the problem. Thankyou.

mattbunter commented 1 year ago

image

mattbunter commented 1 year ago

The package seems to be the correct version. Can I just modify the line in pg_config.h? Anything else to do afterwards?

mattbunter commented 1 year ago

I have still not received any feedback regarding this issue. These are the Postgresql 13 binaries that were supplied by Cybertec - we have not modified any C header files. Can you please clarify how we go about fixing this issue? Would you like me to open a Support Ticket (we pay for support of your encrypted binaries)?

ahouska commented 1 year ago

Sorry for the delay, I thought I already responded (maybe I just forgot to push the "submit" button). Yes, you can edit the header file manually, but be aware that your change will be lost if you update the postgresql-server-dev-13 package with another minor 13.x release in the future. (I'm not sure though if minor upgrade of the server does enforce upgrade of the -dev package.)

mattbunter commented 1 year ago

Cheers. CHanged the PG_VERSION_NUM and make and make install both worked.