Rusqlite and "old" sqlite3 versions

I'm encountering some issues with rusqlite which on the surface appears to be related to running against "old" dynamically linked sqlite versions. I put "old" in quotes because I don't really consider them to be old (for instance version 3.22.0; the version in Ubuntu 18.04 LTS Desktop).

My applications experiencing these issues do not use any new or modern features; they could probably use some of the very earliest sqlite3 versions without modifications.

The problems I'm having are rather weird; in one case it complains about SQL logic error, and in another case I get an empty result set (the same query yields results when running from the sqlite3 command line tool). (Just to be clear; there's not SQL logic error; the query works fine when running the sqlite3 command line tool).

The reason I'm leaning toward it being an issue with being "old" is that if I switch to features = [ "bundled" ] the problems go away. This in itself doesn't really say much, but I had a rusqlite applications running on two different macs; one with a recently updated sqlite3 (via pkgsrc) and the other with an "old" sqlite3 (also from pkgsrc). The former worked flawlessly, the latter experienced issues. When I upgraded the the outdated one the problems went away.

This is very peculiar, because I'm used to sqlite3 Just Working(tm), regardless of which version I'm using (as I mentioned earlier, featurewise, everything I'm doing wrt API and queries is basically stone-age stuff).

I'm seeing these kinds of issues on both Ubuntu and macOS.

I can just use the bundled version to work around this issue, but this is nagging me -- it doesn't feel like it makes sense. The rusqlite Cargo.toml implies that it supports far older versions than the ones I've been having issues with.

Does anyone have any explanation for this?

Rusqlite should be fine with SQLite version >= 3.6.8.
Could you please provide some code to reproduce your issues ?

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.