apache / age

Graph database optimized for fast analysis and real-time data processing. It is provided as an extension to PostgreSQL.
https://age.apache.org
Apache License 2.0
3.14k stars 412 forks source link

PostgreSQL 17 not supported #2111

Open JamesInform opened 2 months ago

JamesInform commented 2 months ago

Hi all

I built age for PostgreSQL 17. Basically compiling worked without errors.

But when I try to create the extension I get the following error:

image

When will a PostgreSQL 17 compatible version of age be available?

Cheers, James

jrgemignani commented 2 months ago

@JamesInform Right now, PG 17 isn't in our roadmap. This could change in the future, but due to current resources, it is considered lower priority.

uhayat commented 1 month ago

@JamesInform I created a PR (2118) to resolve this issue. Currently there is no separate branch for branch for PG17, so I added PG17 version number check.

@jrgemignani do we have a plan when should be create a separate branch, or who could create separate branch, or should this PR merged to master as is?

df7cb commented 3 weeks ago

It's not ready for PG17 yet. Running the regression tests against PG17:

2024-10-28 09:43:48.644 UTC client backend[346252] pg_regress/expr ERROR:  labels() argument must be a vertex
2024-10-28 09:43:48.644 UTC client backend[346252] pg_regress/expr STATEMENT:  SELECT * from cypher('list', $$RETURN labels("string")$$) as (Labels agtype);
TRAP: failed Assert("HeapTupleIsValid(proctup)"), File: "src/backend/utils/ag_func.c", Line: 48, PID: 346252
postgres: myon contrib_regression [local] SELECT(ExceptionalCondition+0x75) [0x555e07a0fe45]
/usr/lib/postgresql/17/lib/age.so(+0x5be85) [0x7f0b17033e85]
/usr/lib/postgresql/17/lib/age.so(+0x2a04b) [0x7f0b1700204b]
postgres: myon contrib_regression [local] SELECT(range_table_entry_walker_impl+0x26) [0x555e077458b6]
postgres: myon contrib_regression [local] SELECT(range_table_walker_impl+0x6a) [0x555e07745a2a]
/usr/lib/postgresql/17/lib/age.so(+0x2ac0f) [0x7f0b17002c0f]
postgres: myon contrib_regression [local] SELECT(parse_analyze_fixedparams+0xac) [0x555e075f4a2c]
postgres: myon contrib_regression [local] SELECT(pg_analyze_and_rewrite_fixedparams+0x2a) [0x555e078b2b4a]
postgres: myon contrib_regression [local] SELECT(+0x55b193) [0x555e078b3193]
postgres: myon contrib_regression [local] SELECT(PostgresMain+0x161f) [0x555e078b4ccf]
postgres: myon contrib_regression [local] SELECT(BackendMain+0x51) [0x555e078af321]
postgres: myon contrib_regression [local] SELECT(postmaster_child_launch+0xc8) [0x555e07805bf8]
postgres: myon contrib_regression [local] SELECT(+0x4b1d0a) [0x555e07809d0a]
postgres: myon contrib_regression [local] SELECT(PostmasterMain+0xe8c) [0x555e0780bb9c]
postgres: myon contrib_regression [local] SELECT(main+0x20a) [0x555e074d12aa]
/lib/x86_64-linux-gnu/libc.so.6(+0x29d68) [0x7f0b22c33d68]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x85) [0x7f0b22c33e25]
postgres: myon contrib_regression [local] SELECT(_start+0x21) [0x555e074d1871]
2024-10-28 09:43:50.074 UTC postmaster[346211] LOG:  server process (PID 346252) was terminated by signal 6: Aborted
2024-10-28 09:43:50.074 UTC postmaster[346211] DETAIL:  Failed process was running: SELECT * FROM json('1');

AGE is one of the last PostgreSQL packages in Debian not yet supporting PG17 yet, so getting this fixed would be appreciated. Thanks.

jrgemignani commented 3 weeks ago

@uhayat

This is the problem with attempting to add fixes to a version (PG16 in this case) to allow it to run on another version (PG17 in this case) without checking to see if it actually fixes the newer version. I mistakenly assumed that this was done.

jrgemignani commented 3 weeks ago

@JamesInform @df7cb Currently, there isn't an eta for, nor a roadmap to, an Apache AGE version for PG17 or any continuing support. The core R&D team that was driving Apache AGE (paid to work on this project) was eliminated earlier this month.

This means that future features, updates, bug fixes, etc. will be at a lot slower pace, if at all. Unfortunately, I cannot coerce or hold volunteers to any particular schedule.

jrgemignani commented 3 weeks ago

I was thinking of closing this issue, but I will leave it open for comments or inquiries.

df7cb commented 3 weeks ago

@jrgemignani thanks for the honest info.

uhayat commented 3 weeks ago

@jrgemignani thanks for the review. I agree that PR only fixed the compilation problem mention in the ticket but does not cover the whole PG 17 support. I will see if i can come up with full support. Based on the change we can see if it needs a separate branch for PG 17 or not. I will update here.

jirutka commented 3 weeks ago

This means I have to drop postgresql-age from the upcoming Alpine Linux v3.21. :(

uhayat commented 2 weeks ago

Hi, A new PR is create (https://github.com/apache/age/pull/2130) for PG 17 support and tested locally on multiple environment. Feedback would be appreciated.

df7cb commented 2 weeks ago

@uhayat works excellently, thanks!

https://pgdgbuild.dus.dg-i.net/job/postgresql-16-age-binaries/12/ (PG16+17, despite the name)

uhayat commented 1 week ago

@df7cb nice to see that. I wish there is similar setup for PGDG Yum as well. I see there is directory for age in rpm repo but never seen live RPMs. I guess I need to contact Devrim to check status. if there is any blocker or some patch I may provide. I will create a separate issue for tracking.