5 ms·
Hopefully there aren't many people designing data models with NULL primary keys. However, if SQLite never enforced non-NULL behavior then it's certainly possib
by skue 12y ago
Hopefully there aren't many people designing data models with NULL primary keys.
However, if SQLite never enforced non-NULL behavior then it's certainly possible that along the way some applications could have written an errant record to a database with a NULL primary key (instead of treating it as an error case). And if a "fixed" version of SQLite3 ever shipped, then these previously-valid data files would suddenly become invalid.
Imagine being an app developer and having random customers whose data files suddenly break because the OS happened to upgrade the SQLite3 library to a version that included this fix. I completely understand why the the SQLite maintainers may have decided it wasn't worth the hassle to fix things prior to SQLite4.
- furyofantares 12y ago> the OS happened to upgrade the SQLite3 library I don't think this actually detracts from your point, but, are there cases where that can actually happen? Isn't SQLite always statically linked with the applicaton?
- panzi 12y agoE.g. on iOS and Android you get access to the system's SQLite library and apparently can't even opt-out (because it is used by system APIs that you will use, if I understand correctly). See: https://news.ycombinator.com/item?id=7756332 https://news.ycombinator.com/item?id=7756332
- dragonwriter 12y ago> Isn't SQLite always statically linked with the applicaton? SQLite can be dynamically linked, though static linking is probably more common.
- rat87 12y agoaccording to `apt-cache rdepends slite3` on ubuntu 14.04 packages including the following link to sqlite dynamic packages(this may be partially due to debian heavily discouraging statistically linked packages. zabbix-proxy-sqlite3 yokadi uwsgi usermetricsservice trove-common sympa sqliteman sisu-sqlite rt4-db-sqlite roundcube-sqlite3 redmine-sqlite ratbox-services-sqlite postfix-cluebringer-sqlite3 pdns-backend-sqlite3 pbnj opendnssec-enforcer-sqlite3 lire krecipes kamailio-sqlite-modules inspircd imms-common hud-tools gbrowse eurephia dotclear beancounter adminer bacula-director-sqlite3
- emillon 12y agosqlite3 is the package that provides the command-line tool. A lot more packages depend on the dynamic library: "apt-cache rdepends libsqlite3-0 | wc -l" returns 407 results.