SQLite 3.39.3
sqlite.org
sqlite.org
I'm not sure why a minor SQLite bugfix release needs to be posted here.
If an AI were trained to write hit HN posts, "Writing Rust Extensions For SQLite" would probably be in the top results.
https://ricardoanderegg.com/posts/extending-sqlite-with-rust...
"Why I'm quitting my job to migrate from Rust to Common Lisp for my crypto and SQLite based 'self-hosting email sucks' themed nft tweet generating SaaS platform to prepare it for IPO, after $faang_corp cancelled my account."
* Something about self-driving cars
* Something about Uber
* A casual "Im so cool" reference to the SF Bay Area, like Folsom street or something
* Accidentally letting slip you're in your late teens but giving business advice anyways
Then there’s branchless boundary conditions e.g. your software might fuck up on overflow, but there’s no branching, at least not in your code. Just things which get incoherent in ways you had not anticipated.
Think about it for a second. Imagine you have
function(bool foo, bool bar) {
if(foo) {
//Something
} else {
//Something else
}
if(bar) {
//Something
} else {
//Something else
}
}If you add two unit tests that test foo(true,true) and foo(false, false) you get 100% line and branch coverage, but only hit 50% path coverage.
Karma, probably.
Also I think some HN features are gated on karma? I’d like a feature where the markup isn’t complete shit but apparently I don’t have enough karma for that.
I would never touch a .0 release of a new version of SQLite. No shame against them or their fantastic quality--it's just that I have lived through literal decades of watching minor database bugs shatter data value and undermine all efficiency.
When I see a .3 or better, I start thinking a version is usable. The fact the SQLite moves their quality needle this quickly is encouraging.
But maybe .4 can go more quietly.
Because of the DO-178B status, SQLite is sufficiently reliable to be used with in-flight avionics (on Airbus A350 models, noted so far).
The test suite requires every branch instruction to be exercised at the machine-language level, in both directions if conditional.
The software that we are used to is not held to this exacting standard.
If we were talking about Oracle or SQL Server, .0 version hesitance is valid, and SQLite tests have crashed both of them, repeatedly. Obviously, they cannot be used with applications requiring DO-178B compliance.
This document is part of that testing compliance:
RIGHT and FULL probably should have come first, but this works for my tastes.
Add (long overdue) support for RIGHT and FULL OUTER JOIN.
Add new binary comparison operators IS NOT DISTINCT FROM and IS DISTINCT FROM that are equivalent to IS and IS NOT, respective, for compatibility with PostgreSQL and SQL standards.
Add a new return code (value "3") from the sqlite3_vtab_distinct() interface that indicates a query that has both DISTINCT and ORDER BY clauses.
Added the sqlite3_db_name() interface.
The unix os interface resolves all symbolic links in database filenames to create a canonical name for the database before the file is opened.
If the SQLITE_OPEN_NOFOLLOW flag is used with sqlite3_open_v2() or similar, the open will fail if any element of the path is a symbolic link.
Defer materializing views until the materialization is actually needed, thus avoiding unnecessary work if the materialization turns out to never be used.
The HAVING clause of a SELECT statement is now allowed on any aggregate query, even queries that do not have a GROUP BY clause.
Many microoptimizations collectively reduce CPU cycles by about 2.3%.
From the changelog.
Turns out the developers sell licenses and a few proprietary extensions - I never knew about CEROD or SEE before. https://www.sqlite.org/purchase/license?
I wonder if proceeds from this commercialisation alone are sufficient to keep the OSS effort going or whether the devs also have other paid endeavours.
Also, they have some big names who have paid them a lot of money to keep the project alive for the next few decades. Airbus the plane manufacturer is one example.
There are these two podcast episodes [1] featuring sqlite founder Richard Hipp which I encourage you to listen. He is a thoroughbred.