On Wed, 2018-02-14 at 08:13 -0600, Joshua Watt wrote:
> Hello,
> 
> I observed the following behavior when using the wal_checkpoint
> PRAGMA
> in TRUNCATE mode:
>  
> SQLite version 3.22.0 2018-01-22 18:45:57
> Enter ".help" for usage hints.
> Connected to a transient in-memory database.
> Use ".open FILENAME" to reopen on a persistent database.
> sqlite> .open test.db
> sqlite> PRAGMA journal_mode = WAL;
> wal
> sqlite> create table test ( key INTEGER PRIMARY KEY, val INTEGER );
> sqlite> insert into test values ( 5, 6 );
> sqlite> insert into test values ( 6, 6 );
> sqlite> PRAGMA wal_checkpoint(TRUNCATE);
> 0|0|0
>  
> According to the documentation, the second and third values should
> correspond to the number of pages in the write-ahead log and the
> number
> of pages that have been moved back to the database file.  This works
> as
> expected in the other modes, but in TRUNCATE mode the second and
> third
> return values are always zero.
>  
> I believe this is because walCheckpoint() triggers a call to
> walRestartHdr() if the mode is SQLITE_CHEKPOINT_TRUNCATE.  Once
> walCheckpoint() returns, sqlite3WalCheckpoint() attempts to extract
> the
> values from the already restarted wal header.
> 
> Has anyone else expirenced this issue?

Ping?

> 
> Thanks,
> Joshua Watt
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to