Revision history for Trog-SQLite
0.005 2026-10-26 TEODESIAN
- dbh sets AutoInactiveDestroy, so a forked child that calls forget,
or exits, no longer closes the handle of its parent. DBI rolled back
the parent's open transaction from the child, and the parent then
committed it without the pages that the transaction had already
written to the WAL, and with a damaged database.
- dbh takes an optional hash of options. With integrity_check, it runs
PRAGMA integrity_check before the schema and dies if the check fails.
integrity_check, the function, runs the check on any handle.
- dbh notices that it runs in a forked child, and opens a new handle
for it. A child that called dbh without calling forget first got
its parent's handle, and two processes then used one connection.
0.004 2026-10-23 TEODESIAN
- transaction runs a sub in one transaction, and rolls it back if the
sub dies. Inside a transaction that the caller began, it runs the
sub in that one, and leaves the commit to the caller.
0.003 2026-10-22 TEODESIAN
- The test of an error other than a lock opens a file that is not a
database, not a read-only file. Root writes a read-only file, so the
test failed when root installed the distribution.
0.002 2026-10-22 TEODESIAN
- dbh waits for a write lock before it sets the journal mode to WAL.
SQLite fails that change at once with SQLITE_BUSY, and does not wait
for busy_timeout, so a process that opened a new database while
another one wrote to it died with "database is locked". wal tries
again for as long as busy_timeout, with Sub::Retry.
0.001 2026-10-18 TEODESIAN
- Initial release, from the copies in tCMS and trog-provisioner.
- Versioned schema updates: NAME.vN.update.sql beside NAME.sql, each run
once, in order, in its own transaction, and recorded in
trog_sqlite_schema_version.
- Handles have RaiseError on, and busy_timeout is set before the schema,
so that a second process waits for the updates of the first.
- bulk_insert quotes the table and the columns as identifiers, fills each
batch up to the parameter limit, and returns 1.
Keyboard Shortcuts
Global
s
Focus search bar
?
Bring up this help dialog
GitHub
gp
Go to pull requests
gi
Go to GitHub issues (only if GitHub is preferred repository)