-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Support installation of extensions from central repository #2569
Conversation
…extension instead of redefining this in every source file
… nasty include order stuff" This reverts commit 3a92b82.
This PR adds support for (remotely) installable extensions. The For example: INSTALL tpch;
LOAD tpch; Extensions will be downloaded by default from Extensions can also be installed by providing a local path ( In order to facilitate these installable extensions, we now ship How it worksThis PR contains a lot of changes. The bulk of these changes is getting these installable/loadable extensions to work on Windows. The main problem is that external extensions face a chicken-and-egg problem. The extensions need to call into methods provided by DuckDB (e.g. registering functions in the catalog). However, the extension is loaded by DuckDB. DuckDB itself might be located anywhere, and could be statically compiled into a source program, which means there might not be a On POSIX systems, this is solved quite elegantly by leaving the symbols as undefined. When the extension is loaded the undefined symbols are resolved and everything works as-is. On Windows, this is not supported. However, we can simulate this behavior using delay loading. We compile the extension using the This solves the problem, but delayloading has a few restrictions. First, as with all Windows DLL stuff, all non-inlined functions need to be marked with Second, data cannot be delay loaded, only classes/functions. This means that if we have e.g. a global array, we cannot export this using This PR resolves this problem by moving several of the commonly used data elements to to |
No description provided.