-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Remove libc crate dependency by upgrading libsqlite3-sys #785
Conversation
Hey, thanks for the PR. 0.7 requires bindgen generating at compile time rather than using the bundled bindings, right? That caused huge issues for us and we abandoned that approach for MySQL and PG.
I'm not opposed to it, but IIRC your API is based off of the rust-postgres crate, correct? That makes it pretty fundamentally incompatible for us unfortunately. |
Oh hey it looks like you ran into all the same pains. XD /~https://github.com/jgallagher/rusqlite/pull/247 |
Not anymore! 0.7.0 did, but we had huge problems running bindgen at compile time too. 0.7.1 goes back to shipping prebuilt bindings (with a better system for dealing with older SQLite versions). |
Excellent! I will merge once CI is green. Thanks for following up!!!! <3 |
It is, yeah. Is there a short synopsis for "fundamentally incompatible"? That seems surprising. |
It's been a while since I've gone into it in depth but I remember the biggest issues being |
8996f28b might have some insights, as it's the commit where I switched to libpq for postgres |
Lol ok past Sean, whatever you say... (I love reading old commits) |
Ah, yeah, this has come up before. Do you solve this by having statements and rows hang on to
This one is tougher to get around, although the part of |
SQLite is the only adapter where we even have to worry about that, and yeah it holds onto an
Yeah, that would be the standard way to do it. Ironically, the fact that we don't have to use the query string for our cache is one of our big wins, that's actually visible performance-wise on SQLite. /~https://github.com/diesel-rs/diesel/blob/master/diesel/src/connection/statement_cache.rs#L99-L105
The index is less relevant (again, SQLite is a bit special here, it's the only backend where the API even cares about the index), but yeah our |
This is followup from jgallagher/rusqlite#237 and #715.
I haven't really looked into what it would entail, but is there any interest in using
rusqlite
for diesel's SQLite backend instead oflibsqlite3-sys
directly?