-
Notifications
You must be signed in to change notification settings - Fork 44
feat: Add python FFI interface and expose sqlite and duckdb table providers #264
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
feat: Add python FFI interface and expose sqlite and duckdb table providers #264
Conversation
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.
Overall, this looks very nice. I suggest we merge this in but do not yet publish to pypi. There should be no breaking changes to the rust code, so anyone who depends on it should be okay. I think we will need to bump the minor version number if you haven't done so (I didn't check).
@phillipleblanc Would you be comfortable if we merged in partially complete work on the python side so we can have a series of smaller PRs until we're ready to publish?
Yes, that works for me - just mark this PR as ready to review and tag me when you are ready to merge. Thanks for working on this! |
@timsaucer @phillipleblanc This PR is ready for review! |
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.
I have just a couple of smaller suggestions. This feels like a huge leap forward in making these table providers accessible. I do recommend updating the title of this PR.
Also coming in DF 47, whenever it releases, we will have FFI catalog providers. Some of these interfaces might work well to support that as well. But that is future work. For now, this is excellent. Well done.
Thank you @CrystalZhou0529 and @timsaucer! |
Expose table providers in Python via FFI
Summary
duckdbconn.rs
to start new tokio runtime when triggered from PyO3Testing
Follow-up works
The rest will be left for future works: #279
new_memory()
ornew(":memory:")