PostgreSQL 17 support
Opened this issue · 6 comments
Hi,
8.4.6 fails to build against PostgreSQL 17. v17 beta2 is already out. Can you please take a look?
Thanks, Devrim
/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"./" -I"-I/usr/include/R" -I/usr/include/R -I. -I./ -I/usr/pgsql-17/include/server -I/usr/pgsql-17/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -DWITH_GZFILEOP -I/usr/include -DPKGLIBDIR="/usr/pgsql-17/lib" -DDLSUFFIX=".so" -DR_HOME_DEFAULT="/usr/lib64/R" -flto=thin -emit-llvm -c -o pg_rsupport.bc pg_rsupport.c
In file included from plr.h:117,
from plr.c:33:
plr.c: In function ‘plr_convertargs’:
/usr/include/R/Rdefines.h:148:33: warning: ‘el’ may be used uninitialized [-Wmaybe-uninitialized]
148 | #define GET_LENGTH(x) Rf_length(x)
| ^~~~~~~~~~~~
plr.c:1628:25: note: ‘el’ was declared here
1628 | el;
| ^~
pg_userfuncs.c:414:2: error: call to undeclared function 'tuplestore_donestoring'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
414 | tuplestore_donestoring(tupstore);
| ^
1 error generated.
make[1]: *** [/usr/pgsql-17/lib/pgxs/src/makefiles/../../src/Makefile.global:1085: pg_userfuncs.bc] Error 1
make[1]: *** Waiting for unfinished jobs....
pg_conversion.c:2137:2: error: call to undeclared function 'tuplestore_donestoring'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
2137 | tuplestore_donestoring(tupstore);
| ^
pg_conversion.c:2200:2: error: call to undeclared function 'tuplestore_donestoring'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
2200 | tuplestore_donestoring(tupstore);
| ^
pg_conversion.c:2260:2: error: call to undeclared function 'tuplestore_donestoring'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
2260 | tuplestore_donestoring(tupstore);
| ^
3 errors generated.
make[1]: *** [/usr/pgsql-17/lib/pgxs/src/makefiles/../../src/Makefile.global:1085: pg_conversion.bc] Error 1
pg_userfuncs.c: In function ‘plr_environ’:
pg_userfuncs.c:414:9: error: implicit declaration of function ‘tuplestore_donestoring’; did you mean ‘tuplestore_rescan’? [-Wimplicit-function-declaration]
414 | tuplestore_donestoring(tupstore);
| ^~~~~~~~~~~~~~~~~~~~~~
| tuplestore_rescan
make[1]: *** [: pg_userfuncs.o] Error 1
pg_conversion.c: In function ‘get_frame_tuplestore’:
pg_conversion.c:2137:9: error: implicit declaration of function ‘tuplestore_donestoring’; did you mean ‘tuplestore_rescan’? [-Wimplicit-function-declaration]
2137 | tuplestore_donestoring(tupstore);
| ^~~~~~~~~~~~~~~~~~~~~~
| tuplestore_rescan
make[1]: *** [: pg_conversion.o] Error 1
sure, thanks for the report
Dave is building every day using the pg "master".
How exactly are you trying to build plr?
plr/.github/workflows/build.yml uses pg master
https://github.com/davecramer/plr/blob/release_17/.github/workflows/build.yml#L25C10-L25C34
git clone --depth=1 https://github.com/postgres/postgres.git
Job
https://github.com/davecramer/plr/actions/runs/10161280166/job/28099428293#step:5:28
# using postmaster on Unix socket, default port
ok 1 - plr 1985 ms
ok 2 - bad_fun 126 ms
ok 3 - opt_window 128 ms
ok 4 - do 125 ms
ok 5 - out_args 127 ms
ok 6 - plr_transaction 147 ms
ok 7 - opt_window_frame 128 ms
1..7
# All 7 tests passed.
The Job workflow file
https://github.com/davecramer/plr/actions/runs/10161280166/workflow
The Job workflow file uses pg master
https://github.com/davecramer/plr/actions/runs/10161280166/workflow#L31
git clone --depth=1 https://github.com/postgres/postgres.git
Can you build in the same way as the workflow file?
Next, can you build using pg 17 beta2?
One needs to replace
git clone --depth=1 https://github.com/postgres/postgres.git
with
git clone --branch REL_17_BETA2 --depth=1 https://github.com/postgres/postgres.git
Compare?
@AndreMikulec He needs a tag to build off of, we need to release 8_4_7 which is why I was trying to get CI to build clean.
I think we can release and fix it later. Most of the CI is succeeding.
Thoughts ?
Dave,
What is being done about 8_4_7?
I did not see any plr C code changes here except pg versions and file renaming.
https://github.com/davecramer/plr/commits/release_17/
Within a week, I will try to make a pull request. based off (but actually from my online clone of postgres-plr):
https://github.com/AndreMikulec/plr/tree/July_2024_updated_builds
and SOME successful 17 recent actions
https://github.com/AndreMikulec/plr/actions
There are no code changes other than versioning and sql files.
So really I can back out any changes to CI and just merge that and tag it.
I'm OK with the current failing tests.
REL_17_ had built here on ubuntu x64.
https://github.com/postgres-plr/plr/actions/runs/10238114376/job/28322183597
@devrimgunduz, please verify, and if successful one may close the issue.