Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi everyone,
This PR introduces the DuckPGQ extension, which supports the SQL/PGQ syntax for more succinct pattern-matching and path-finding syntax in graph queries. I have included some initial examples in the documentation and plan to expand on these in the future.
The extension is unique in its build process. It doesn't build against duckdb/duckdb but rather against a fork, cwida/duckdb-pgq. Apart from the parser (lib_pg_parser) and transformer, this fork is binary-compatible with DuckDB. This compatibility allows the extension to be loaded into any DuckDB instance like any other extension. Here’s how you can do it (after launching with the
unsigned
flag):This method has been functional from version 0.10.1 up to and including 1.0.0.
@carlopi has noted that Go/Rust might face issues due to building with link-time optimizations, which I will investigate further. However, I don't believe this is a blocker for this PR.
I understand that this approach is somewhat unconventional for the extension framework. However, after discussing with @carlopi, we decided to submit this PR to have a discussion and gather feedback.
Looking forward to your thoughts and feedback!