As a freelance developer in the late 1990s, Hipp disliked relying on a database server that could be unavailable and make his application fail. After a client contract ended, he built an SQL engine that worked directly with files on disk and released it as open source. Interest grew into paid support work, and by about 2007 he had a small team working on SQLite full-time.
SQLite's Origin, Rigorous Testing, and Future
Speaker
D. Richard Hipp, SQLite’s creator and a member of the team that supports it full-time, talks with Callstack’s host about SQLite’s origins, testing practices, and long-term support.
Hipp says revisiting old code can feel like a time warp because he does not keep a clear chronology of events. SQLite uses a version control system he wrote himself rather than Git. Its website’s “This Day in History” feature shows past project activity, and Hipp has pledged to support SQLite through 2050.
SQLite has close to 100,000 handwritten test cases, according to Hipp. A customer in aviation introduced him to the DO-178B safety standard and modified condition/decision coverage, which he then applied to SQLite. He had hoped to sell test artifacts to aviation companies, but instead found that rigorous testing helped bugs subside.
As SQLite’s test coverage reached 100%, bug reports from Android dwindled, Hipp says. The broad test suite also lets the team refactor substantial parts of the code with more confidence. Running tests across many cores on Linux takes a couple of hours, and the team also tests Windows, Mac, ARM, x86, PowerPC, and Raspberry Pi, including on an old MacBook used for big-endian testing.
Takeaways
- A local database engine can avoid making application reliability depend on a separate server.
- A clear history of changes can help maintainers make sense of a long-lived codebase.
- High test coverage can reduce incoming bug reports and make major refactoring safer.
- Testing on older and different-endian hardware can catch compatibility problems that modern machines may miss.
Mentioned in this talk
Search inside this talk
What was claimed 11
- builtD. Richard Hipp built SQLiteoriginal author and creator
“I was working as a freelance application developer. This was back in the late 1990s into 2000.”
YouTube Verified4 sources· Talk, Web· archived
- builtD. Richard Hipp built Fossilcreator
“my own version control system that I wrote myself”
YouTube Verified2 sources· Talk, Web· archived
- launchedD. Richard Hipp launched SQLiteas open source
“I'm just going to implement this and see what happens.”
YouTube Unverified1 source· Talk
- usesD. Richard Hipp uses Fossil
“We use my own version control system that I wrote myself.”
YouTube Unverified1 source· Talk
- featureSQLite: Hipp pledged to support it through 2050
“I have pledged to try to support SQLite through the year 2050.”
YouTube Unverified1 source· Talk
- metricSQLite: Close to 100,000 individual handwritten test cases
“it's pushing 100,000 or getting close.”
YouTube Unverified1 source· Talk
- usesD. Richard Hipp uses DO-178Bused its testing standard as a model for SQLite testing
“One of our customers was in the aviation field, and they taught me about an aviation safety standard called DO-178B”
YouTube Unverified1 source· Talk
- uses100% coverage
“I’m going to do that for SQLite.”
YouTube Unverified1 source· Talk
- uses
“They were using SQLite”
YouTube Unverified1 source· Talk
- featureSQLite: Tested on Windows, Windows on ARM, Mac on ARM and x86, PowerPC, and Raspberry Pi
“We also want to test on Windows, Windows on ARM, and Mac, on both ARM and x86. We test on PowerPC.”
YouTube Unverified1 source· Talk
- metricSQLite: Full test suite takes a couple of hours on Linux when split across many cores
“on Linux it takes a couple of hours”
YouTube Unverified1 source· Talk










