-
Notifications
You must be signed in to change notification settings - Fork 27
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
Bundle httpfs by default #105
base: main
Are you sure you want to change the base?
Conversation
Hi! Thanks for the contribution, but I am not sure this makes particularly sense to bake httpfs in. If the request is only around fetching extension, would it not make more sense to have a node-specific functionality to fetch a given extension from the https endpoint via node fetch ? I need to think how to structure this at the duckdb general level, but it would make sense, to customize to This also offers a workaround of sort:
|
Thanks for the comment. Yeah, the above implementation would work in duckdb to call back into node world to actually do the extension fetching. However, it seems a bit unnecessary, when we have the Is there any particular reason Currently, this is the workaround we're taking however this relies on knowing up-front the duckdb version / platform:
edit: just for clarity our app is a native node app (electron) rather than something embedded in plain chrome |
Also I don't see why node should behave differently than other extensions here. Possible viable improvements that I can see as doable:
I think 1 might make sense to have in any case, 2 requires some more toughs, 3 can be likely consider already user-side / contributions are welcome. |
I agree with this in a general sense, however I'm not sure how much change we can expect from such an integral extension as I might have a look at 3.) we do recompile duckdb so if there was a way to conditionally include |
I think having an option to include With the caveat that you will be bulding a different package, and you will have to run the vendoring + build step yourself. I can think about other solutions, currently some flexibility is missing. |
I added some logic to optionally compile It's configurable so any extension can be added which is supported by duckdb out of the box. Unsure on how the release process works I added all the vendored files in there as well? |
@@ -44,6 +73,7 @@ | |||
libraries = cache['libraries'] | |||
windows_options = cache['windows_options'] | |||
cflags = cache['cflags'] | |||
optional_extensions = cache['optional_extensions'] | |||
elif 'DUCKDB_NODE_BINDIR' in os.environ: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No idea about these ifs and elses. Makes it very hard to reason about code with re-assigning variables. Haven't found explicit usage of it, but wasn't confident of deleting these.
This would be really useful for us, as we use duckdb behind a corporate proxy. There's only proxied internet access. Once we have httpfs installed, installing other plugins is easy by setting the default repo url. Is there any particular reason this was explicitly not bundled?
Also seems to be an issue: #29