Using SQLite 3.20.1 I notice a flood of log events sometimes when I call PRAGMA
Warning 0x5: statement aborts at 1: [PRAGMA optimize;] database is locked
And a few times
Warning 0x5: statement aborts at 2: [PRAGMA optimize;] database is locked
And even once
Warning 0x5: statement aborts at 35: [PRAGMA optimize;] database is locked
We use the default busy-handler w/timeout=250ms and call sqlite_exec("PRAGMA
optimize;") in a loop until success or non-busy/locked error or some ungodly
amount of time elapses (~5min). The logs indicate PRAGMA optimize; fails due to
SQLITE_BUSY w/o ever going through the busy-handler, and then we spin trying a
few thousand times.
Docs for PRAGMA optimize; says nothing about busy|locked scenarios, nor any
need to call this in a transaction (nor even if that's legal). Ditto ANALYZE
docs say nothing about busy|locked scenarios
What's expected if PRAGMA optimize hits a busy|locked scenario?
What am I the caller expected to do?
sqlite-users mailing list