Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generic Extension Strategy #70

Open
amerryma opened this issue Apr 4, 2024 · 6 comments
Open

Generic Extension Strategy #70

amerryma opened this issue Apr 4, 2024 · 6 comments

Comments

@amerryma
Copy link

amerryma commented Apr 4, 2024

Lets say I have a few extensions that the pglite repo doesn't know about, will the expected workflow be to fork pglite, add those extensions as part of the build process, then build it myself?

I have a bunch of extensions I'd like to see used in my pglite db, but doesn't seem like those should be part of the default offering.

@samwillis
Copy link
Collaborator

Hey, yes we have a few options for doing generic extensions and a few problems to solve to enable them.

So far to enable pl/pgsql we had to statically link the extension to the build. It should be possible to dynamically link extensions but I believe #56 is what cased issues when I tried to enable this.

One thing to consider is that for the main binary to support arbitrary dynamically loaded extensions we would have to disable any dead code elimination, this will make the build larger. I suspect we will have to have a special WASM binary that enables loadable extensions and others that have a few key ones statically likened, and a minimal build too.

@amerryma
Copy link
Author

amerryma commented Apr 8, 2024

Ok, great, I'll keep an eye on this space. And just FYI the extensions would be:

plpgsql_check
pg_net
pg_graphql

@yihong0618
Copy link

Ok, great, I'll keep an eye on this space. And just FYI the extensions would be:

plpgsql_check pg_net pg_graphql

these extensions are hander cause then use pgrx develop....

@mingfang
Copy link

My vote is for
AGE https://github.com/apache/age
and
Search https://github.com/paradedb/paradedb

@lastmjs
Copy link

lastmjs commented Apr 29, 2024

Will the Wasm component model be the nicest long-term solution here? My understanding is that this allows some form of dynamic linking. Each extension might be its own Wasm binary that can be dynamically loaded plug-and-play style for the developer.

@samwillis
Copy link
Collaborator

@lastmjs yes ideally we will have dynamic loading of extensions. There is some complexity around this as it will likely add a little overhead.

The current intention is that core extension such as pl/pgsql will be staticky linked (we have this one already working with static linking)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants