Add support for subextensions #893
Merged
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.
This PR adds support for subextensions in pg_duckdb. Subextensions can now register their own TAMs to trigger DuckDB execution, similar to how DuckDB temp tables are handled:
RegisterDuckdbTableAm()
to register their DuckDB-specific TAMsIsDuckdbTable()
insrc/pgduckdb_hooks.cpp
to check if it's a DuckDB-specific TAM. A query needs DuckDB execution when there are any DuckDB-specific TAMs<schema>.<table>
with DuckDB-specific TAM<tam>
will be translated to a DuckDB table<tam>.<schema>.<table>
(special handling for DuckDB temp table is preserved)<tam>
database, enabling custom scans against their DuckDB-specific TAMsEven better, the DuckDB extension can detect at runtime whether it is running inside Postgres with pg_duckdb or in standalone DuckDB, and adjust its logic accordingly. This allows the same extension to be used seamlessly in both environments