/ File History
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History of src/wal.c

2019-07-16
19:44
Add new assert() statements in an attempt to help static analyzers avoid false-positives. file: [bbd6838b] check-in: [9e664585] user: drh branch: trunk, size: 149041
2019-05-14
21:51
Merge the latest trunk enhancements into begin-concurrent. file: [624b4369] check-in: [5d3a6e18] user: drh branch: begin-concurrent, size: 158411
19:39
Merge recent enhancements from trunk into apple-osx. file: [6697e13d] check-in: [40362d51] user: drh branch: apple-osx, size: 150129
2019-04-17
21:12
Small performance and size optimization in sqlite3WalFindFrame(). file: [b09a2a9c] check-in: [03f2e788] user: drh branch: trunk, size: 148978
2019-04-15
15:28
Merge all recent enhancements. file: [3836d850] check-in: [1cd536ec] user: drh branch: begin-concurrent-pnu-wal2, size: 192563
15:17
Merge the latest trunk enhancements. file: [20ddea6a] check-in: [8950f119] user: drh branch: wal2, size: 179923
14:59
Merge the latest enhancements from trunk. file: [a2311c44] check-in: [7c328e88] user: drh branch: begin-concurrent, size: 158413
14:49
Bring in the latest enhancements from trunk. file: [8afec523] check-in: [378230ae] user: drh branch: apple-osx, size: 150131
2019-04-13
14:07
Fixes for harmless compiler warnings. file: [9eccc7eb] check-in: [c28c973a] user: drh branch: trunk, size: 148980
2019-04-04
21:40
Merge all the latest changes and enhancements from trunk. file: [f331eccd] check-in: [521d5186] user: drh branch: apple-osx, size: 150095
2019-04-03
17:54
Add a defense-in-depth NEVER() test to the WAL cleanup code. file: [dbfeac3d] check-in: [1109942a] user: drh branch: branch-3.27, size: 148944
17:48
Add a defense-in-depth NEVER() test to the WAL cleanup code. file: [8bf87820] check-in: [8d3af201] user: drh branch: trunk, size: 148944
2019-03-26
13:28
Bring this branch into closer alignment with begin-concurrent. file: [9ad123ad] check-in: [6433d366] user: drh branch: begin-concurrent-pnu, size: 158222
2019-01-04
19:39
Fix the experimental sqlite3_wal_info() API so that it works with wal2 mode. file: [c620be75] check-in: [079daedb] user: dan branch: begin-concurrent-pnu-wal2, size: 192280
2019-01-02
19:46
Merge changes from begin-concurrent-wal2. Also modify the unix-excl shm-locks on this branch so that it is not an error to attempt to release an EXCLUSIVE lock that is not held. file: [85bb10e5] check-in: [86685679] user: dan branch: begin-concurrent-pnu-wal2, size: 192242
2018-12-29
20:47
Merge latest begin-concurrent changes with this branch. file: [d1908ffa] check-in: [1625887c] user: dan branch: begin-concurrent-wal2, size: 192365
20:42
Fix a problem causing a corrupt pager-cache if an OOM or IO error was encountered while committing a concurrent transacation. file: [2d5771a6] check-in: [48ca30f9] user: dan branch: begin-concurrent, size: 158075
16:34
Increase coverage provided by permutation "coverage-wal" on this branch. file: [59889122] check-in: [f664f940] user: dan branch: begin-concurrent-wal2, size: 192200
2018-12-27
17:11
Merge latest wal2 changes with this branch. file: [80b66beb] check-in: [ea96001e] user: dan branch: begin-concurrent-wal2, size: 191305
16:49
Increase test coverage of wal.c provided by permutation "coverage-wal" on this branch. file: [8bfa18a1] check-in: [2f7f893a] user: dan branch: wal2, size: 179732
2018-12-26
20:42
Improve testing of the wal.c changes on this branch. file: [9b0402f6] check-in: [63483e22] user: dan branch: wal2, size: 179672
19:10
Merge latest trunk changes with this branch. file: [328101a4] check-in: [404f9d99] user: dan branch: wal2, size: 179692
2018-12-22
15:50
Enhance the wal2 header comment in wal.c to explain how the wal-hook is invoked in wal2 mode. file: [93dc58d2] check-in: [118aa7e3] user: dan branch: wal2, size: 179555
2018-12-18
19:46
Add the "mutexfree-shmlock" patch to this branch. file: [da000d7e] check-in: [c3191fc8] user: dan branch: begin-concurrent-pnu-wal2, size: 189863
18:01
Merge the wal2 feature into this branch. file: [dca50fc1] check-in: [a2c618c0] user: dan branch: begin-concurrent-pnu-wal2, size: 190133
2018-12-17
18:26
Add wal2 related tests to this branch. file: [2640020e] check-in: [56458220] user: dan branch: begin-concurrent-wal2, size: 189986
2018-12-15
20:59
Merge latest wal2 changes into this branch. file: [2a9139e0] check-in: [06bb80ee] user: dan branch: begin-concurrent-wal2, size: 189952
20:20
Further test cases for wal2 mode. file: [beca1487] check-in: [9cb5f8da] user: dan branch: wal2, size: 178391
2018-12-14
19:53
Add further tests for wal2 mode. file: [1deb1d32] check-in: [54e628f9] user: dan branch: wal2, size: 178359
2018-12-13
16:26
Add tests cases for recovery in wal2 mode. file: [93389c39] check-in: [34f56f8a] user: dan branch: wal2, size: 178371
2018-12-12
20:39
Add new test file wal2big.test. file: [7106d08d] check-in: [e3e50bcd] user: dan branch: wal2, size: 178409
2018-12-11
17:56
Change the way wal2 locks work to ensure a reader only ever has to lock a single slot. file: [22850fcd] check-in: [18b2c23a] user: dan branch: wal2, size: 178491
2018-12-10
15:58
Merge the latest version of mutexfree-shmlock with this branch. file: [47e3230d] check-in: [6007abfe] user: dan branch: begin-concurrent-pnu-mutexfree-shmlock, size: 157723
15:24
Rework the SQLITE_MUTEXFREE_SHMLOCK code to reduce contention. file: [d1c4f4ed] check-in: [d9157dd1] user: dan branch: mutexfree-shmlock, size: 148519
2018-12-07
20:25
Add multi-threaded performance test program "tserver" to this branch. Fix bugs in the begin-concurrent/wal2 integration revealed by the same. file: [1a564ef4] check-in: [7bd3b356] user: dan branch: begin-concurrent-wal2, size: 189559
2018-12-05
17:20
Fix a problem causing "PRAGMA journal_mode" to report the wrong journal mode (wal instead of wal2) under some circumstances. file: [43a7e48c] check-in: [bf309107] user: dan branch: begin-concurrent-wal2, size: 189315
17:14
Fix a problem causing "PRAGMA journal_mode" to report the wrong journal mode (wal instead of wal2) under some circumstances. file: [c01f6293] check-in: [1d8d4f68] user: dan branch: wal2, size: 177928
16:45
Fixes for snapshots API on this branch. Also ensure that the snapshots API cannot be used with wal2 mode databases (for now anyhow). file: [171d066c] check-in: [d8c2d55f] user: dan branch: begin-concurrent-wal2, size: 189119
16:31
Fixes for snapshots API on this branch. Also ensure that the snapshots API cannot be used with wal2 mode databases (for now anyhow). file: [2b9b1bc7] check-in: [19c61ab7] user: dan branch: wal2, size: 177732
13:49
Merge enhancements from trunk, especially the sqlite3_normalized_sql() enhancement. file: [59b20f8f] check-in: [342c9538] user: drh branch: begin-concurrent-pnu, size: 157993
2018-12-04
19:41
First attempt at making features work together. Only the most minimal testing so far. file: [4b7ad0e6] check-in: [fd707001] user: dan branch: begin-concurrent-wal2, size: 188739
13:51
Fix a problem with SQLITE_ENABLE_EXPENSIVE_ASSERT builds on this branch. file: [6675d84d] check-in: [ddb4a6fb] user: dan branch: begin-concurrent, size: 157846
2018-12-03
20:49
Merge the wal2 and begin-concurrent code. Both features work, but not at the same time. file: [88e424b4] check-in: [b7281a1c] user: dan branch: begin-concurrent-wal2, size: 186513
20:38
Minor change to wal.c on this branch to make it more similar to trunk. file: [8a12219e] check-in: [6a7af3ea] user: dan branch: begin-concurrent, size: 157865
2018-12-01
20:14
Sync this branch with the latest trunk. file: [e5b19ec1] check-in: [7a44fa5a] user: dan branch: wal2, size: 177352
2018-11-30
16:26
Merge the mutex-free PRNG change into this branch. file: [f53ac2b6] check-in: [81e626f4] user: dan branch: begin-concurrent-pnu, size: 158350
2018-10-09
22:50
Merge changes for the 3.25.0 release. file: [df8a22fe] check-in: [ddf6a54e] user: drh branch: apple-osx, size: 149940
2018-09-28
20:58
Merge latest trunk into this branch. file: [41de6742] check-in: [86750c92] user: dan branch: begin-concurrent, size: 158203
2018-09-12
00:21
Fix a harmless compiler warning that arose from the ENABLE_CURSOR_HINTS fix of check-in [0af18674ca5b34e67e] file: [3f4f653d] check-in: [f578e62a] user: drh branch: trunk, size: 148789
2018-08-31
19:00
If a call to sqlite3_snapshot_open() fails because the requested snapshot no longer exists, return SQLITE_ERROR_SNAPSHOT instead of SQLITE_BUSY_SNAPSHOT. file: [df50883d] check-in: [e0792312] user: dan branch: trunk, size: 148788
2018-08-30
20:28
Try to identify the places in WAL code where thread-safety depends on the underlying architecture supporting atomic load and store of aligned 32-bit values. file: [f58ff398] check-in: [47d44be4] user: drh branch: trunk, size: 148785
2018-08-28
11:23
Fix a problem causing spurious SQLITE_CORRUPT errors when using the snapshot API to read from old database snapshots. file: [46bfc942] check-in: [535155be] user: dan branch: trunk, size: 148327
2018-08-15
14:03
Allow sqlite3_snapshot_open() to be called to change the snapshot after a read transaction is already open on database. file: [e4bcbd90] check-in: [41399169] user: dan branch: trunk, size: 148299
2018-08-08
20:46
Minor style improvements. file: [c617d787] check-in: [60bbca2b] user: mistachkin branch: trunk, size: 147153
2018-08-06
17:12
Allow sqlite3_snapshot_open() to be called to change the snapshot after a read transaction is already open on database. file: [d0d54111] check-in: [051ac015] user: dan branch: exp-snapshot-open, size: 148297
2018-07-10
15:45
Merge latest trunk changes into this branch. file: [a4908921] check-in: [e9a3e864] user: dan branch: begin-concurrent, size: 156565
2018-06-09
16:49
Slightly smaller and faster code by encapsulating wal-index hash table location information in a separate WalHashLoc object rather than passing around the various elements as separate variables. file: [d44a0811] check-in: [538a365b] user: drh branch: trunk, size: 147151
2018-03-20
13:52
Merge all recent enhancements from trunk. file: [05d9364f] check-in: [b0c2f760] user: drh branch: begin-concurrent, size: 156724
2018-03-14
17:17
Merge the latest enhancements from trunk. file: [fe018727] check-in: [a658f80c] user: drh branch: apple-osx, size: 148436
2018-03-05
23:23
Fix walIteratorInit() so that it always leaves the iterator as a NULL pointer if an OOM occurs. This fixes an assertion fault introduced by check-in [044b0b65e716bff]. file: [aa9cffc7] check-in: [e5ce256a] user: drh branch: trunk, size: 147285
2018-03-02
17:59
Update this branch with recent checkpoint related changes from trunk. file: [b6ad12df] check-in: [fb6b7938] user: dan branch: begin-concurrent, size: 156713
17:40
Merge latest trunk changes into this branch. file: [44e8d9f9] check-in: [36801eff] user: dan branch: begin-concurrent, size: 156542
16:52
In a checkpoint, figure out if it is possible to checkpoint any frames at all before creating the wal-iterator. file: [60e5c938] check-in: [044b0b65] user: dan branch: trunk, size: 147274
15:42
Optimize the obscure case of running a checkpoint against a very large wal file for which a large percentage of the frames have already been checkpointed. file: [6390a0f2] check-in: [0f5057df] user: dan branch: trunk, size: 147275
2018-02-21
01:48
Remove an unreachable branch in the walIndexPage() logic. file: [0ba9af25] check-in: [4e61a973] user: drh branch: trunk, size: 147103
01:05
Small performance improvement in sqltie3WalFindFrame(). file: [634908f6] check-in: [52013cad] user: drh branch: trunk, size: 147135
2018-02-20
22:20
Make the walIndexPage() routine about 3x faster by factoring out the seldom used reallocation logic into a separate subroutine. file: [fff06582] check-in: [e2b10714] user: drh branch: trunk, size: 147124
2017-11-28
13:48
Merge the snapshots-always-lock-the-wal-file change into this branch. file: [605f85c9] check-in: [3ec976e0] user: dan branch: apple-osx, size: 147797
13:39
Lock the wal file for all snapshot transactions, even if they would not otherwise require this, preventing checkpointers and writers from wrapping the wal file. This means that if one connection has an open snapshot transaction it is guaranteed that a second connection can open a transaction on the same snapshot. file: [5a3f464e] check-in: [b81a3149] user: dan branch: trunk, size: 146646
2017-11-14
20:36
Merge the patch that enables reading a read-only WAL-mode database, without any special query parameters, as long as the -shm and -wal files are on disk. file: [f940fd2e] check-in: [8c2a769c] user: drh branch: apple-osx, size: 147865
20:00
Merge all changes from trunk prior to the read-only WAL enhancement. file: [ec9f4e5d] check-in: [1754faef] user: drh branch: apple-osx, size: 137853
03:42
Improvement to a comment. No changes to code. file: [beeb71e4] check-in: [486949fc] user: drh branch: readonly-wal-recovery, size: 146714
2017-11-13
05:51
Remove some branches in walTryBeginRead() that were added by check-in [ce5d13c2de] but became unreachable with the addition of logic in check-in [18b26843] that enabled read-only clients to parse the WAL file into a heap-memory WAL-index, thus guaranteeing that the WAL-index header is always available. file: [31ae1a82] check-in: [9c6b38b9] user: drh branch: readonly-wal-recovery, size: 146490
2017-11-11
20:11
In wal.c: improved comments, new assert() and testcase() macros, and replace some magic numbers with appropriate symbolic constants. file: [213ddce0] check-in: [13ec8a77] user: drh branch: readonly-wal-recovery, size: 146463
13:30
Further comment improvements in wal.c. No code changes. file: [0e19d4fb] check-in: [34638800] user: drh branch: readonly-wal-recovery, size: 145719
2017-11-10
20:00
Improved comments and variable names in the read-only WAL logic. file: [47f8a449] check-in: [d3c25740] user: drh branch: readonly-wal-recovery, size: 145472
2017-11-08
19:26
Extra comments on the sqlite3OsShmMap() call in walBeginUnlocked(). No changes to code. file: [6903d391] check-in: [033ee92b] user: drh branch: readonly-wal-recovery, size: 144046
17:32
Change the name of SQLITE_READONLY_CANTLOCK to SQLITE_READONLY_CANTINIT. file: [b1fef64a] check-in: [6d7f94fa] user: drh branch: readonly-wal-recovery, size: 143499
2017-11-07
21:25
Update an assert in wal.c. file: [6227c952] check-in: [94527b89] user: dan branch: readonly-wal-recovery, size: 143499
21:15
Handle the race condition that may occur if another process connects and then checkpoints and truncates the wal file while a readonly-shm client is building its heap-memory wal-index. file: [b3cd00a1] check-in: [5a6703fc] user: dan branch: readonly-wal-recovery, size: 143469
2017-11-06
20:02
Merge latest trunk changes into this branch. file: [a0f3b4c9] check-in: [7f217eda] user: dan branch: begin-concurrent, size: 146141
19:49
Add further test cases for the new code on this branch. And a couple of fixes. file: [32ee6550] check-in: [71af9acb] user: dan branch: readonly-wal-recovery, size: 143329
2017-11-04
21:06
Add further tests for the code added on this branch. file: [0b3c6b80] check-in: [a6716fcd] user: dan branch: readonly-wal-recovery, size: 143595
18:10
In cases where a readonly_shm client cannot take the DMS lock on the *-shm file, have it parse the wal file and create a wal-index to access it in heap memory. file: [2b287b52] check-in: [18b26843] user: dan branch: readonly-wal-recovery, size: 143268
2017-11-03
19:34
Fix some comments in new code on this branch. No changes to code. file: [298acb22] check-in: [cbec1bfe] user: dan branch: fcntl_shm_read, size: 141319
17:17
Allow readonly_shm connections to access the *-shm file using read() even if it is unable to take a DMS lock. file: [84172f85] check-in: [9b0d5c4f] user: dan branch: fcntl_shm_read, size: 141244
2017-11-02
11:12
Avoid locking shm-lock WAL_READ_LOCK(0) during recovery. Doing this allows recovery to proceed while a readonly_shm connection in unlocked mode has an ongoing read transaction. file: [38480e7b] check-in: [5190d84a] user: dan branch: readonly-wal-recovery, size: 137287
2017-11-01
20:59
If a readonly_shm connection cannot map the *-shm file because no other process is holding the DMS lock, have it read from the database file only, ignoring any content in the wal file. file: [1521bdcf] check-in: [ce5d13c2] user: dan branch: readonly-wal-recovery, size: 137104
2017-10-31
12:06
Fix a minor comment typo. No changes to code. file: [cc9b1120] check-in: [5f79e6d9] user: drh branch: trunk, size: 136702
2017-10-30
20:44
Clarify some comments describing the WAL index file. No changes to code. file: [712947ad] check-in: [3be3aad9] user: drh branch: trunk, size: 136703
2017-10-09
19:49
Add a header comment to wal.c describing the differences between wal and wal2 mode. file: [c025455c] check-in: [9c80cd20] user: dan branch: wal2, size: 164334
2017-10-07
19:55
Ignore the *-wal2 file if the *-wal file is zero bytes in size. file: [11314f64] check-in: [f7360fad] user: dan branch: wal2, size: 156820
2017-10-06
14:08
Fix a bug in recovering wal2 mode databases introduced by the previous commit. file: [287feccc] check-in: [9e1502e1] user: dan branch: wal2, size: 156268
13:43
Fix frame overwriting in wal2 mode. file: [1fdb379a] check-in: [a4b02bc9] user: dan branch: wal2, size: 156298
2017-10-05
18:14
Fix test case failures on this branch. file: [3455865c] check-in: [16decc13] user: dan branch: wal2, size: 156262
2017-10-04
20:57
Add experimental mode that uses two wal files. Activated using "PRAGMA journal_mode = wal2". file: [5ca52853] check-in: [e2fc5c81] user: dan branch: wal2, size: 155952
2017-09-23
07:46
Experimental change so that snapshot transactions always lock the wal file - preventing writers or truncate-checkpointers from wrapping it. file: [0ceefa9f] check-in: [d71eeaab] user: dan branch: snapshots-lock-wal, size: 135921
2017-09-21
14:03
The sqlite3_snapshot_describe() interface useful for debugging snapshot logic. file: [0f3fc405] check-in: [3fbfa9a8] user: drh branch: sqlite3_snapshot_describe, size: 136514
2017-09-09
08:03
Use a mutex-free PRNG for the random() and randomblob() SQL functions and for the randomness used during checkpoint operations. file: [2a205ec9] check-in: [e63d1a7c] user: drh branch: mutex-free-randomness, size: 136136
06:10
Merge trunk enhancements file: [e56b8fe5] check-in: [6a0b9d9d] user: drh branch: apple-osx, size: 137140
2017-08-28
17:19
Merge recent enhancements from trunk. file: [e439b123] check-in: [d53108e7] user: drh branch: begin-concurrent, size: 145428
2017-08-25
01:14
Update the mechanism used to keep track of what kind of syncing to do for WAL transaction commits and checkpoint operations. Use the checkpoint-style of syncing to sync the header of a new or restarted WAL file. file: [839db097] check-in: [bf65dae8] user: drh branch: wal-sync-refactor, size: 135989
2017-08-24
20:54
Fix an incorrect hyperlink in a comment. file: [4c7c13a3] check-in: [25292b9a] user: drh branch: trunk, size: 136056
2017-08-11
21:16
Fix a problem allowing a conflicting transaction to be committed in the case where more than one 32KB shared-memory page has been written to since the transaction was started. file: [ab94c3cc] check-in: [38dd9b50] user: dan branch: begin-concurrent, size: 145500
2017-07-20
19:08
Fix compiler warnings. file: [57c8c072] check-in: [44c760d1] user: drh branch: begin-concurrent, size: 145489
2017-07-08
20:46
Support read-only MVCC transactions in server-mode. Started using "BEGIN READONLY". file: [1b208938] check-in: [5a043aa8] user: dan branch: server-process-edition, size: 138422
2017-05-29
19:23
Instead of a root page number, log the object (table or index) name if a page level locking conflict is detected. file: [e006353c] check-in: [9ad846e5] user: dan branch: begin-concurrent, size: 145448
14:27
Enhance the log messages emitted when a page conflict is detected. file: [4b857e74] check-in: [92618492] user: dan branch: begin-concurrent, size: 146212
2017-05-23
19:23
Add experimental new API sqlite3_wal_info(). file: [0c4faf36] check-in: [5b9d498f] user: dan branch: begin-concurrent, size: 145545
2017-05-15
19:32
Avoid writer starvation by adding a RESERVED state to page locks. file: [8f716542] check-in: [9b7f8024] user: dan branch: server-edition, size: 138419
2017-05-13
19:07
Avoid running recovery while there is another read/write client. file: [bbf37fd2] check-in: [a38858a2] user: dan branch: server-edition, size: 138264
2017-05-12
18:52
Require exclusive access to the db to wrap the wal file. Have "PRAGMA wal_checkpoint = restart" block for this. file: [c2c7289a] check-in: [cbf44ed9] user: dan branch: server-edition, size: 137817
2017-05-10
16:18
Fix a problem causing a lock to be held past the end of a transaction. Use a blocking lock to take the read-lock on page 1 taken by all transactions. file: [b78eab7b] check-in: [2584df3d] user: dan branch: server-edition, size: 137350
13:46
Use a blocking call to obtain the wal-mode WRITER lock in some cases. file: [8db0fb21] check-in: [4464ca1d] user: dan branch: server-edition, size: 137336
2017-05-09
16:32
Fix a problem with wrapping the log file in server mode. file: [85d564eb] check-in: [270b7d1e] user: dan branch: server-edition, size: 137169
2017-05-08
20:15
Add some support for wal mode to the hack on this branch. file: [126aadd3] check-in: [b733afc1] user: dan branch: server-edition, size: 137064
2017-01-09
06:33
Upgrade this branch to 3.16 plus the various fixes that appeared after its release. file: [2858e71b] check-in: [d0e212d0] user: dan branch: begin-concurrent, size: 145133
2016-11-26
20:44
Merge all recent trunk changes, and especially the new sqlite3_snapshot_recover() interface. file: [dad22331] check-in: [41a3af54] user: drh branch: apple-osx, size: 137212
2016-11-22
21:11
Enclose the sqlite3WalSnapshotRecover() routine within file: [40c543f0] check-in: [e7be3183] user: drh branch: serializable-snapshot, size: 136061
2016-11-19
18:31
Remove the requirement to open the wal file before sqlite3_snapshot_recover() is called. Also add some comments to new functions. file: [56bba6f4] check-in: [28393c41] user: dan branch: serializable-snapshot, size: 135995
16:35
Fix a problem causing sqlite3_snapshot_recover() to return SQLITE_IOERR_SHORT_READ. file: [006eec60] check-in: [525f75fa] user: dan branch: serializable-snapshot, size: 135606
14:53
Fix a bug in sqlite3_snapshot_recover() that could cause subsequent read transactions to use out-of-data cache entries. file: [df90cfbe] check-in: [9abeb798] user: dan branch: serializable-snapshot, size: 135340
2016-11-18
20:49
Add experimental sqlite3_snapshot_recover() API. file: [5ef877f3] check-in: [174a6076] user: dan branch: serializable-snapshot, size: 135044
2016-11-15
17:37
Experimental changes toward making snapshots serializable. file: [88f8d8ad] check-in: [b6a81fa1] user: drh branch: serializable-snapshot, size: 133121
2016-11-11
17:08
Fix a problem with switching from wal to rollback mode when SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE is configured. file: [7e855731] check-in: [46e00162] user: dan branch: trunk, size: 132970
2016-11-04
19:09
Merge recent trunk changes, including all the fixes that appeared in version 3.15.1. file: [b782fa38] check-in: [0e5ffd91] user: drh branch: apple-osx, size: 134152
2016-10-31
16:16
Add the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE sqlite3_dbconfig() option - for disabling SQLite's default checkpoint-on-close behaviour. file: [358ab4d2] check-in: [093d2fc2] user: dan branch: no-ckpt-on-close, size: 133001
2016-08-12
16:21
Have wal file checkpoints exit early if the sqlite3_interrupt() API function is called. file: [0b44e897] check-in: [8a5f41c7] user: dan branch: interruptible-checkpoint, size: 132956
2016-08-11
19:12
Merge version 3.14 plus some subsequent patches (including the page-cache performance patch) from trunk. file: [8605bf47] check-in: [d9f8918c] user: drh branch: begin-concurrent, size: 141675
2016-08-04
14:08
Add extra logging calls to this branch. file: [430abe09] check-in: [491f1ef3] user: dan branch: debug, size: 119190
2016-07-16
11:47
Temporarily add extra sqlite3_log() calls to this version to help with debugging a performance problem. file: [e77da6ef] check-in: [613c1cea] user: dan branch: debug, size: 119037
2016-06-15
10:21
Merge changes from trunk. file: [25bc1cea] check-in: [0f707d15] user: drh branch: apple-osx, size: 133754
2016-05-24
16:20
Fix an obscure problem with transactions written in "PRAGMA synchronous=full" mode on systems that do not support POWERSAFE_OVERWRITE causing an xSync() call to be omitted if the last frame written by a transaction is aligned to a sector boundary. This means that if a power failure or OS crash occurs very soon after such a transaction is committed, it may be lost following system recovery. file: [02eeecc2] check-in: [37de3eab] user: dan branch: trunk, size: 132603
2016-04-21
15:35
Merge all recent enhancements from trunk. file: [5c7bde7a] check-in: [a15c49ae] user: drh branch: apple-osx, size: 133628
2016-04-20
12:16
Merge all recent enhancements from trunk. file: [69cbc05a] check-in: [1f709fbf] user: drh branch: begin-concurrent, size: 141549
2016-04-11
19:59
Add the sqlite3_snapshot_cmp() API. file: [4db22ed7] check-in: [c698a21a] user: dan branch: snapshot-cmp, size: 132477
2016-03-16
19:34
Merge the latest enhancements from trunk. file: [12931b1b] check-in: [a7978ab6] user: drh branch: begin-concurrent, size: 140904
2016-03-08
16:35
Merge changes from trunk, especially the SQLITE_DEFAULT_SYNCHRONOUS enhancements. file: [c09752ca] check-in: [29741941] user: drh branch: apple-osx, size: 132983
2016-02-18
01:36
Merge recent performance enhancements and the enhanced API_ARMOR from trunk. file: [0eaa33b3] check-in: [b7fa0fb3] user: drh branch: apple-osx, size: 132996
01:22
Memory leak associated with SQLITE_WRITE_WALFRAME_PREBUFFERED file: [f55f9f4e] check-in: [7bcd3ab5] user: drh branch: apple-osx, size: 132951
2016-02-15
18:15
Add the SQLITE_NOMEM_BKPT macro to enhance the ability to debug OOM errors. Only effective with compiling with SQLITE_DEBUG. file: [10deb6b4] check-in: [9b345476] user: drh branch: trunk, size: 131832
17:44
Merge version 3.11.0 file: [68eb8a4a] check-in: [c393ddc7] user: drh branch: begin-concurrent, size: 140859
17:40
Merge 3.11.0 changes. file: [459a1287] check-in: [5cecc509] user: drh branch: apple-osx, size: 132753
15:06
Make sure the codec is invoked when overwriting existing frames of the WAL file. Yikes! file: [1dd3f1ae] check-in: [f694e60a] user: drh branch: trunk, size: 131787
2016-02-13
23:43
Enhance ability to debug out-of-memory errors. file: [75a8e53f] check-in: [6a9c4a3e] user: mistachkin branch: noMemBkpt, size: 131676
2016-01-14
15:46
Merge the latest enhancements and fixes from trunk. file: [2390cb2e] check-in: [fccc5f20] user: dan branch: begin-concurrent, size: 140703
15:03
Merge the latest enhancements and fixes from trunk. file: [9bd7a20c] check-in: [d85774e0] user: drh branch: apple-osx, size: 132597
2016-01-13
18:12
Add the SQLITE_FCNTL_JOURNAL_POINTER file control. file: [d21b99fd] check-in: [ad3daa54] user: drh branch: trunk, size: 131631
2016-01-12
02:28
Make sure all bytes of the WAL file are initialized even if the checksums are not being computed until commit due to WAL overwrite. file: [ec116eb4] check-in: [1f44a9bd] user: drh branch: trunk, size: 131510
2016-01-11
12:49
Merge enhancements from trunk, and in particular the WAL overwrite feature. file: [82dec806] check-in: [79125ec9] user: drh branch: apple-osx, size: 132607
00:52
Improved testability. file: [92ca9e79] check-in: [e83d3a2a] user: drh branch: wal-overwrite-frames, size: 131470
2016-01-09
23:55
All WAL frame overwrites even if there are active savepoints. This is safe because a ROLLBACK TO will cause all reverted pages to be rewritten to the WAL file prior to COMMIT. file: [e1f55f68] check-in: [99b31a6b] user: drh branch: wal-overwrite-frames, size: 131442
18:57
If it is known that checksums will be recalculated on transaction commit, skip calculating checksums when appending frames to the wal file. When recalculating checksums, recalculate them starting with the first overwritten frame - not the first frame in the transaction. file: [38ca0c41] check-in: [16b34f25] user: dan branch: wal-overwrite-frames, size: 131509
16:39
If a single page is written to the wal file more than once, have each subsequent copy overwrite the original frame. file: [88661c24] check-in: [5d113aef] user: dan branch: wal-overwrite-frames, size: 131734
2016-01-08
02:27
Add the experimental SQLITE_FCNTL_JOURNAL_POINTER file control for obtaining the sqlite3_file pointer associated with a rollback journal or WAL file. file: [407f6f39] check-in: [a02ace9a] user: drh branch: file-control-journal, size: 127938
2016-01-01
13:31
Merge all recent trunk enhancements. file: [b0800431] check-in: [5b700f31] user: drh branch: apple-osx, size: 128954
2015-12-16
19:55
Merge recent enhancements from trunk. file: [773ba7c0] check-in: [cb22efaf] user: drh branch: begin-concurrent, size: 136911
2015-12-11
14:59
Add a new assert() statement to the snapshot-specific part of sqlite3WalBeginReadTrans(). file: [974928c9] check-in: [d8a12023] user: dan branch: trunk, size: 127817
12:53
Merge recent trunk enhancements, and in particular the snapshot interface. file: [360acd6c] check-in: [7e7b2406] user: drh branch: apple-osx, size: 128916
03:16
Fix a variable type mismatch problem in the snapshot logic. file: [cb709aa4] check-in: [93fb8010] user: drh branch: snapshot-get, size: 127779
01:22
Fix a bad assert related to snapshots. file: [9f656837] check-in: [767ee30e] user: drh branch: snapshot-get, size: 127779
2015-12-10
22:48
Snapshot documentation updates. Comment changes only - no changes to code. file: [4ecd256a] check-in: [ef51a398] user: drh branch: snapshot-get, size: 127755
19:11
Return SQLITE_BUSY (not SQLITE_BUSY_SNAPSHOT) if sqlite3_snapshot_open() fails to obtain the shared checkpointer lock. file: [94576d27] check-in: [5343060b] user: dan branch: snapshot-get, size: 127526
15:45
Have sqlite3_snapshot_open() avoid a race condition by taking a shared CHECKPOINTER lock while checking pInfo->nBackfillAttempted. file: [32ee7dc4] check-in: [8084eae0] user: dan branch: snapshot-get, size: 127460
03:16
Fix spacing typo in comment. No changes to code. file: [964af619] check-in: [3a18526f] user: mistachkin branch: snapshot-get, size: 126663
02:15
Add the nBackfillAttempted field in formerly unused space in WalCkptInfo and use that field to close the race condition on opening a snapshot. file: [115765a3] check-in: [cb68e9d0] user: drh branch: snapshot-get, size: 126663
2015-12-09
20:05
Update sqlite3_snapshot_open() to reduce the chances of reading a corrupt snapshot created by a checkpointer process exiting unexpectedly. file: [0bd8aa8e] check-in: [7315f7cb] user: dan branch: snapshot-get, size: 126649
2015-12-07
14:33
Add tests for snapshot_get(), _open() and _free(). file: [abce6690] check-in: [502cc6f3] user: dan branch: snapshot-get, size: 124547
2015-12-05
20:51
Add untested implementations of experimental APIs sqlite3_snapshot_get(), _open() and _free(). file: [b9b1d5a1] check-in: [0715eb00] user: dan branch: snapshot-get, size: 124502
2015-12-02
20:53
Merge recent enhancements from trunk. file: [bacf8a69] check-in: [9130661a] user: drh branch: begin-concurrent, size: 131598
20:22
Merge all recent trunk enhancements, especially the unix VFS changes. file: [e93f9b7f] check-in: [e1fb33c7] user: drh branch: apple-osx, size: 123641
16:10
Remove more (dead) SQLITE_FCNTL_WAL_BLOCK logic from wal.c - code that was missed during the [e1d5320ca08933] check-in. file: [15698023] check-in: [58c15c6a] user: drh branch: trunk, size: 122504
2015-09-15
19:16
Merge enhancements from trunk. file: [fd2351d7] check-in: [fc4d1de8] user: drh branch: begin-concurrent, size: 131708
17:20
Merge trunk enhancements into the apple-osx branch. file: [929c1d7e] check-in: [f12b8a0f] user: drh branch: apple-osx, size: 123751
2015-09-09
19:44
Fix an assert() enabled by SQLITE_ENABLE_EXPENSIVE_ASSERT in wal.c. file: [18b0ed49] check-in: [8d2ed150] user: dan branch: trunk, size: 122614
2015-09-03
15:17
Changes from ENABLE_CONCURRENT (default off) to OMIT_CONCURRENT (default on). This is not a clear-cut decision and might be changed back. file: [5a862985] check-in: [f8ae9bfd] user: drh branch: begin-concurrent, size: 131662
2015-09-01
18:40
Merge the latest trunk enhancements. file: [d973cff4] check-in: [4af79477] user: drh branch: apple-osx, size: 123705
18:01
Merge the latest trunk enhancements. file: [00352cb9] check-in: [3dea0474] user: drh branch: begin-concurrent, size: 131629
17:48
Fixes so that it builds without warnings both with and without SQLITE_ENABLE_CONCURRENT. file: [d632ee33] check-in: [5ed2a445] user: drh branch: begin-concurrent, size: 130488
2015-08-28
02:12
Merge trunk enhancements into the apple-osx branch. Most tests works, but there are yet a few issues to be resolved. file: [22a901a0] check-in: [da864658] user: drh branch: apple-osx, size: 122564
2015-08-26
18:02
Fix a problem allowing some conflicting transactions to be committed. file: [44ec009f] check-in: [a0566382] user: dan branch: begin-concurrent, size: 130495
2015-08-24
19:56
Change "BEGIN UNLOCKED" to "BEGIN CONCURRENT". file: [a21412a8] check-in: [ba1ab858] user: dan branch: begin-concurrent, size: 130478
19:08
Fix handling of attempts to modify the database schema, application_id or user_version within an UNLOCKED transaction. file: [fd9a3b9f] check-in: [5b9f2721] user: dan branch: begin-concurrent, size: 130454
16:00
Fix compilation without SQLITE_ENABLE_UNLOCKED. Also other code organization issues. file: [7b8c8d1c] check-in: [04113557] user: dan branch: begin-concurrent, size: 129767
06:43
Fix another problem involving unlocked transactions and wal-file restarts. file: [b8811f66] check-in: [4460764e] user: dan branch: begin-concurrent, size: 127984
2015-08-22
20:32
Fix a problem to do with detecting unlocked transaction conflicts if another client restarts the wal while the transaction is running. file: [4c69d27e] check-in: [e3968b25] user: dan branch: begin-concurrent, size: 126593
2015-08-21
20:11
Fix many minor issues in the unlocked transaction code. file: [0ba4899f] check-in: [53aaeea6] user: dan branch: begin-concurrent, size: 126680
14:21
Add extra tests and a fix for rollbacks of UNLOCKED transactions. file: [37b25bbb] check-in: [82cd837e] user: dan branch: begin-concurrent, size: 127553
2015-08-19
20:27
When committing an unlocked transaction, relocate newly allocated database pages within the file to avoid conflicting with committed transactions. There are lots of things still to fix in this code. file: [8bb1130d] check-in: [3bbc31d5] user: dan branch: begin-concurrent, size: 126565
2015-08-13
20:23
When searching the wal file for a frame, do not search that part that was already checkpointed when the snapshot being read was at the head of the wal file. file: [8cd07f1f] check-in: [90760e72] user: dan branch: wal-read-change, size: 122568
2015-08-12
19:42
Avoid reading frames that have already been checkpointed from the wal file. file: [9eb48748] check-in: [5669ac4a] user: dan branch: wal-read-change, size: 121576
2015-07-29
12:14
Only allow UNLOCKED transactions to commit if none of the pages read by the transaction have been modified since it was opened. file: [4497b466] check-in: [0b971842] user: dan branch: begin-concurrent, size: 126360
2015-07-28
16:46
Add some test cases and fix some small problems with BEGIN UNLOCKED transactions. file: [a2e35f04] check-in: [6da0e962] user: dan branch: begin-concurrent, size: 127232
2015-07-27
19:31
Add an experimental "BEGIN UNLOCKED" command. file: [d588e26e] check-in: [80794216] user: dan branch: begin-concurrent, size: 125712
2015-07-21
19:22
Fix harmless compiler warning in MSVC 2015. file: [6fb6b689] check-in: [01c8b9cc] user: mistachkin branch: trunk, size: 121427
2015-07-17
01:16
Avoid a harmless compiler warning. file: [590e85f3] check-in: [2288842b] user: drh branch: trunk, size: 121427
2015-07-15
18:35
Fix some harmless compiler warnings. file: [6c9354c7] check-in: [110cd84f] user: drh branch: trunk, size: 121419
2015-04-29
16:50
Use sqlite3_malloc64() in place of sqlite3_malloc() internally. file: [ce2cb2d0] check-in: [48f553b0] user: drh branch: trunk, size: 121325
2015-04-13
23:11
Merge all recent trunk enhances into the apple-osx branch. file: [de15f46d] check-in: [e709d3b4] user: drh branch: apple-osx, size: 122454
17:43
Add a comment to wal.c to explain why a race condition is safe. file: [753995db] check-in: [bc33af86] user: dan branch: trunk, size: 121317
2015-03-17
18:35
Merge all recent trunk changes, and in particular the blocking WAL lock change, into the apple-osx branch. file: [5351d6e7] check-in: [8abbeadb] user: drh branch: apple-osx, size: 121926
2015-03-10
20:22
Arrange for some of the transient locks in WAL mode to block, as a single to the OS to fix priority inversions. file: [878c8e1a] check-in: [c6e6d5f4] user: drh branch: wal-blocking-lock, size: 120789
2015-02-07
19:17
Remove "PRAGMA pager_ota_mode". file: [7a8a4e7a] check-in: [8ac58e46] user: dan branch: ota-update-no-pager_ota_mode, size: 129029
2015-02-06
16:03
Merge all recent trunk enhancements into the apple-osx branch. file: [61a28dad] check-in: [44711921] user: drh branch: apple-osx, size: 121816
2015-01-30
16:36
Merge all recent trunk changes, and especially the SQLITE_TESTCTRL_INITMODE enhancement. file: [735d081f] check-in: [36436dde] user: drh branch: ota-update, size: 129055
2015-01-29
19:12
Ensure that "PRAGMA wal_checkpoint = TRUNCATE|FULL|RESTART" block on other connections and truncate the wal file as required even if the entire wal file has already been checkpointed. file: [39303f2c] check-in: [53429689] user: dan branch: trunk, size: 120679
2015-01-28
15:30
When a "full", "restart" or "truncate" checkpoint is attempted, return SQLITE_BUSY if a reader prevents the checkpointer from copying any frames at all into the database file. file: [4d1a785a] check-in: [f2700040] user: dan branch: ota-update, size: 129050
12:27
Correctly detect errors returned by walCheckpointStart() due to OOM. file: [e4779a5c] check-in: [8e878c20] user: drh branch: ota-update, size: 129008
12:00
Merge in all changes from trunk. file: [0d9591fd] check-in: [17c69be8] user: drh branch: ota-update, size: 129018
2015-01-02
19:17
Merge the latest changes from trunk into the apple-osx branch. file: [895b26c4] check-in: [df3cdf9f] user: drh branch: apple-osx, size: 121632
2014-12-29
11:50
Reinstate an assert() by adding an "|| CORRUPT_DB" term. file: [85353539] check-in: [95ce2034] user: drh branch: trunk, size: 120495
2014-12-08
07:50
Update this branch with latest trunk changes. file: [632d9afe] check-in: [69a312ad] user: dan branch: ota-update, size: 129045
2014-12-04
23:42
Import from trunk support for SQLITE_CHECKPOINT_TRUNCATE and fixes for a couple of obscure bugs. file: [75f2d8b1] check-in: [463ad971] user: drh branch: apple-osx, size: 121659
04:50
Add an implementation mark and fix a comment describing the OP_Checkpoint opcode. file: [84769234] check-in: [7475b90c] user: drh branch: trunk, size: 120522
2014-12-03
19:25
Add evidence marks and assert()s used as evidence for checkpoint requirements. file: [fc62ec9d] check-in: [b2da8afc] user: drh branch: trunk, size: 120395
2014-12-02
19:35
When attempting to restart a wal file, make any required calls to sqlite3_randomness() before waiting on or checking for wal file readers. This restores the behaviour exhibited by the trunk. file: [e396f310] check-in: [6ee08769] user: dan branch: checkpoint-truncate, size: 119875
19:04
Add the SQLITE_CHECKPOINT_TRUNCATE option. file: [f09818db] check-in: [8e20a434] user: dan branch: checkpoint-truncate, size: 119599
16:38
Merge all recent enhancements and bug fixes from trunk into the apple-osx branch. file: [d7c4c36a] check-in: [43c4ba26] user: drh branch: apple-osx, size: 119281
2014-11-22
09:09
Add SQLITE_ENABLE_OTA pre-processor directives so that this branch may be compiled with or without OTA. file: [d5c581b6] check-in: [600cefdd] user: dan branch: ota-update, size: 126666
2014-11-21
14:37
Merge latest trunk changes with this branch. file: [e8fe2d73] check-in: [7ef44c5b] user: dan branch: ota-update, size: 124472
2014-11-19
14:05
Add an ALWAYS on an always-true branch in wal.c. Fix the ANALYZE command so that it resets the "unordered" and "noskipscan" flags on indices when reloading the sqlite_stat1 table. file: [486e644b] check-in: [9ed97a85] user: drh branch: trunk, size: 118144
2014-11-18
21:27
Merge recent trunk enhancements. file: [bb8e3f9a] check-in: [ccb601f6] user: drh branch: apple-osx, size: 119273
02:44
Add an ALWAYS() to an always-true conditional in the WAL rollback logic. file: [095d41f7] check-in: [c5eae8a6] user: drh branch: branch-3.8.7, size: 118168
2014-11-11
22:55
Enhance ROLLBACK so that pending queries are allowed to continue as long as the schema does not change. This is a cherry-pick of check-in [b5df5ac052]. file: [73051f12] check-in: [d4b2d5d0] user: drh branch: branch-3.8.7, size: 118160
01:33
Experimental changes that permit read operations to continue after a ROLLBACK, as long as the schema is unchanged. file: [fa090966] check-in: [fa6e6a9a] user: drh branch: read-after-rollback, size: 118136
2014-11-04
14:22
Change the definition of SQLITE_CONFIG_SCRATCH so that at most one scratch buffer is used per thread. Use the generic heap memory allocator for the WalIterator object when running a checkpoint. file: [825c9480] check-in: [391c9b85] user: drh branch: trunk, size: 118171
2014-10-22
15:33
Add tests to check error handling in OTA. file: [2787dfce] check-in: [ec7321ae] user: dan branch: ota-update, size: 124523
11:30
Sync the database file in sqlite3_ckpt_close(), even if the checkpoint has not finished. file: [99c5b0a6] check-in: [e2729d62] user: dan branch: ota-update, size: 124512
2014-10-21
19:35
Test that sqlite3ota_open() works with URI paths. Fix some other issues. file: [cbce609e] check-in: [6fd09854] user: dan branch: ota-update, size: 124352
2014-10-20
16:24
Have the ota extension perform an incremental checkpoint after generating the wal file. file: [a5dbbbd8] check-in: [0bf1301a] user: dan branch: ota-update, size: 124304
2014-09-21
23:08
Merge in all recent changes from trunk. file: [1c4bcbbe] check-in: [3967ebe8] user: drh branch: apple-osx, size: 119332
2014-09-16
20:02
Clarify the effects of the pager_ota_mode pragma. Add tests and fixes for the same. file: [8bd0ced6] check-in: [decaccc3] user: dan branch: ota-update, size: 118997
2014-09-15
19:34
Remove the experimental sqlite3_transaction_save() and restore() APIs. file: [3c56c85d] check-in: [48d201cd] user: dan branch: ota-update, size: 118374
15:34
Merge latest trunk changes with this branch. file: [6f5ff511] check-in: [55b8011d] user: dan branch: ota-update, size: 123145
2014-09-06
16:39
Fix typos in comments. No code changes. file: [10e7de7c] check-in: [e62aab5e] user: peter.d.reid branch: trunk, size: 118195
2014-09-02
19:59
Add an experimental extension for applying bulk updates to databases. file: [93b4fcb5] check-in: [2954ab50] user: dan branch: ota-update, size: 123140
2014-06-30
19:57
Merge the latest trunk changes into the apple-osx branch. file: [785b8a1f] check-in: [f426876f] user: drh branch: apple-osx, size: 119327
2014-06-12
17:10
Increase the WAL-mode SQLITE_PROTOCOL timeout to 10 seconds. file: [264df50a] check-in: [2aeacf81] user: drh branch: trunk, size: 118190
2014-05-08
23:01
Initial attempt to merge in all trunk changes over the previous 1.5 years. This check-in compiles but there are compiler warnings and "make test" segfaults after only running a few test modules. file: [29854e65] check-in: [9411d7dc] user: drh branch: apple-osx, size: 119358
2014-02-13
19:27
Ensure that if the "psow=0" URI option or FCNTL_POWERSAFE_OVERWRITE file-control is used to clear the power-safe overwrite flag, extra padding frames are added to the WAL file. file: [76e7fc6d] check-in: [48c821fd] user: dan branch: trunk, size: 118221
18:46
Avoid passing a flags argument with the internal WAL_SYNC_TRANSACTIONS bit set when calling sqlite3OsSync(). file: [d89e386e] check-in: [e3b79e92] user: dan branch: trunk, size: 118228
2013-06-27
11:46
Add extended error code SQLITE_BUSY_SNAPSHOT - returned in WAL mode when a read-transaction cannot be upgraded to a write-transaction because it is reading from a snapshot other than the most recently committed. file: [7dc3966e] check-in: [361c2296] user: dan branch: trunk, size: 118209
2013-04-10
23:48
Add new primary error codes SQLITE_NOTICE and SQLITE_WARNING for use with sqlite3_log(). Add new extended error codes SQLITE_NOTICE_RECOVER_WAL and SQLITE_NOTICE_RECOVER_ROLLBACK to use with sqlite3_log() messages that occur on each recovery. file: [436bfceb] check-in: [be7d2c54] user: drh branch: trunk, size: 118200
2013-04-01
16:56
Ensure that a checkpoint does not use an out-of-date mapping. file: [94b5fed2] check-in: [a1040f03] user: dan branch: experimental-mmap, size: 118174
2013-03-27
19:53
Modify various test cases so that they work if the file is extended in units of the system page-size. file: [04029f26] check-in: [0e3d5119] user: dan branch: two-mappings, size: 118066
2013-03-23
21:00
Replace the sqlite3_io_methods.xMremap interface with sqlite3_io_methods.xFetch and xUnfetch. file: [e84eff49] check-in: [1431be95] user: dan branch: experimental-mmap, size: 118064
17:29
Improve a comment in wal.c. No code changes. file: [923d9099] check-in: [60b9f5e4] user: dan branch: experimental-mmap, size: 118446
2013-03-22
18:20
Allow the database file to be memory mapped in wal mode. file: [7fec703b] check-in: [d190ddab] user: dan branch: experimental-mmap, size: 118089
2012-10-15
11:28
Fix a failing assert() in wal.c. file: [f5c7b502] check-in: [8745530b] user: dan branch: trunk, size: 117965
2012-10-01
06:50
Ensure that the value returned by xSectorSize() is reasonable (currently defined as between 2^5 and 2^16 bytes) before using it to calculate the amount of padding to add to a wal file. file: [e1fe8f92] check-in: [6b4ff83b] user: dan branch: trunk, size: 117935
2012-08-31
14:10
Merge in latest trunk changes. file: [61b556fa] check-in: [bc9b9cd0] user: dan branch: apple-osx, size: 119074
2012-08-25
10:01
Fix all known instances of 'repeated the' style typos in comments. No changes to code. file: [5acb3e7b] check-in: [9b19b847] user: mistachkin branch: trunk, size: 117937
2012-07-17
17:46
Cherrypick [8c9ee1d78f] and [e416359633] from trunk: Ensure that there is always at least one aReadMark slot usable by an unprivileged reader while a checkpoint is running. Also, if one or more transactions are recovered from a log file, initialize one of the aReadMark slots to contain mxFrame as part of the recovery process. file: [c981d242] check-in: [65035912] user: drh branch: apple-osx, size: 119080
14:37
Ensure that there is always at least one aReadMark slot usable by an unprivileged reader while a checkpoint is running. Also, if one or more transactions are recovered from a log file, initialize one of the aReadMark slots to contain mxFrame as part of the recovery process. file: [9294df6f] check-in: [e4163596] user: dan branch: trunk, size: 117943
02:56
Amplification of a comment in wal.c. Change the aReadMark[] processing so that one read mark is left at zero when a WAL resets. file: [16345cdc] check-in: [8c9ee1d7] user: drh branch: trunk, size: 117851
2012-05-09
22:36
Added support for SQLITE_ENABLE_PERSIST_WAL compile time macro, retrieving lastErrno from WAL file and setting last errno when writes fail due to space constraints file: [1ff2ebb4] check-in: [65479294] user: adam branch: apple-osx, size: 118886
2012-04-02
23:42
bad assert file: [b5ba968e] check-in: [0c0150f2] user: adam branch: apple-osx, size: 118716
23:35
Merge in latest changes, autologging options, read only file system wal support, test config conditionalization, WAL frame write prebuffering file: [c13ee6f7] check-in: [d51c086e] user: adam branch: apple-osx, size: 118783
2012-03-05
16:39
Pull in all the latest trunk changes. file: [8a89f4f6] check-in: [504bf490] user: drh branch: apple-osx, size: 118027
2012-02-28
17:57
Fix spurious errors that may occur if an empty database is opened and then initialized as a WAL database by a second connection. file: [7bb3ad80] check-in: [16330a2f] user: dan branch: trunk, size: 117749
2012-02-24
14:33
Add #ifdef SQLITE_ENABLE_ZIPVFS around those bits of code that are only used by ZIPVFS. file: [c164c39e] check-in: [3130275c] user: drh branch: trunk, size: 117732
2012-02-23
16:45
Fix a typo made inside an assert() statement in the previous commit. file: [ef05bdbf] check-in: [f0640615] user: dan branch: trunk, size: 117697
15:35
Add the sqlite3PagerWalFramesize() function to pager.c. This is used by zipvfs. file: [176b50fc] check-in: [786e24dc] user: dan branch: trunk, size: 117713
2012-01-14
14:13
Merge the latest trunk changes into the apple-osx branch. file: [24b994ef] check-in: [2cc414cd] user: drh branch: apple-osx, size: 117660
2012-01-10
17:59
Refactor sqlite3OsFileControlNoFail() into sqlite3FileControlHint(). file: [5f7bcc06] check-in: [722735a4] user: drh branch: trunk, size: 117382
16:56
Add function sqlite3OsFileControlNoFail(), which is the same as sqlite3OsFileControl() except that it does not simulate OOM errors. This saves adding calls to the BenignMalloc() functions around each of the invocations of sqliteOsFileControl() that ignore the return code. file: [1e96783f] check-in: [af59b182] user: dan branch: trunk, size: 117386
00:24
Remove the BenignMalloc() from around the call to FCNTL_OVERWRITE. Add new ones around sqlite3OsDelete(). Fix an assert that causes problems for the nx-devkit. file: [32dd3bda] check-in: [38bc4236] user: drh branch: trunk, size: 117352
2012-01-03
21:54
Pull all the latest trunk changes over into the apple-osx branch. file: [59d2f71c] check-in: [8a048423] user: drh branch: apple-osx, size: 117564
2012-01-01
13:58
Tweaks to improve testability. file: [932f0950] check-in: [e3a929e4] user: drh branch: trunk, size: 117286
2011-12-23
13:32
Avoid excess syncs when padding a transaction in a WAL. file: [4800adb0] check-in: [1f24ae71] user: drh branch: trunk, size: 117286
02:07
Merge the POWERSAFE_OVERWRITE features and the use of statvfs() from the statvfs branch into trunk. file: [66e2afee] check-in: [2370d70e] user: drh branch: trunk, size: 117273
01:04
Change the name ZERO_DAMAGE to the more descriptive POWERSAFE_OVERWRITE. The query parameter used to control this device characteristic is now "psow". file: [13c34ed7] check-in: [6191c5e4] user: drh branch: statvfs, size: 117262
2011-12-22
01:46
Remove a redundant assignment operator. file: [842901b4] check-in: [19a6852a] user: drh branch: statvfs, size: 117236
2011-12-20
22:18
Remove the code that tries to detect OOO header writes on a WAL recovery. The code is made obsolete by syncing the WAL header. file: [86193db3] check-in: [7ac713a1] user: drh branch: statvfs, size: 117253
20:13
Refactor the sqlite3WalFrames() routine for clarity of presentation. Do the padded transaction sync as the write pointer crosses the final sector boundary instead of at the end, for efficiency. Always sync the WAL header immediately after it is written. file: [311c36af] check-in: [92c73b42] user: drh branch: statvfs, size: 117470
13:13
Assert that the isCommit parameter to sqlite3WalFrames() is zero if and only if the nTruncate parameter is zero. file: [5525f049] check-in: [979daf92] user: drh branch: trunk, size: 115871
2011-12-17
20:02
For improved clarity of presentation, refactor some of the code associated with ZERO_DAMAGE and sector-size. file: [645fdf75] check-in: [1dde96c9] user: drh branch: statvfs, size: 115957
19:49
Add SQLITE_IOCAP_ZERO_DAMAGE and enable it for both unix and windows. Use this device characteristic to reduce the required work in journaling. A side effect is that this changes the default page exists back to 1024 even with the use of statvfs(). file: [dc06acfa] check-in: [a0be6ea4] user: drh branch: statvfs, size: 115908
13:45
Merge in changes that cause the first sector of the WAL file to be synced when the WAL restarts. This is a fix for the power-loss corruption problem described in ticket [ff5be73dee086] file: [89a60a8b] check-in: [44ca4d12] user: drh branch: trunk, size: 115681
01:31
Make sure the Salt-1 value in the WAL file is sequentially numbered at each checkpoint, as it says it should be in the documentation. file: [8f6fd490] check-in: [7b63b11b] user: drh branch: trunk, size: 113243
2011-12-16
21:26
Enhance the WAL header sync so that it honors the various synchronous pragmas, settings, and device characteristics. file: [20022b73] check-in: [9799241f] user: drh branch: wal-header-sync, size: 115412
19:34
Proposed changes that ensure that the WAL header is written prior to the first commit mark. file: [a1157f28] check-in: [91d0437c] user: drh branch: wal-header-sync, size: 114842
15:38
Merge the fix for [a1fa75cbdd02] from the experimental branch. Also fix the persistent-wal mode feature of truncating the WAL on close so that it always truncates the WAL to zero bytes. file: [8575f2bd] check-in: [09ccc4a1] user: drh branch: trunk, size: 113222
13:24
Experimental fix for [a1fa75cbdd]. file: [dc5c0606] check-in: [6492af76] user: dan branch: experimental, size: 112611
2011-12-08
21:08
Merge the latest trunk changes into the apple-osx branch. file: [84d32c7a] check-in: [59e0d4f3] user: drh branch: apple-osx, size: 112465
19:50
In persistent WAL mode, truncate the WAL file to the size specified by the journal_size_limit pragma when disconnecting from the WAL. file: [7e6e7fe6] check-in: [9687b305] user: drh branch: trunk, size: 112187
2011-11-12
16:46
Remove a couple of incorrect assert statements so that the test suite will run with -DSQLITE_DEFAULT_CACHE_SIZE=0. file: [5fe1ba55] check-in: [87614b62] user: drh branch: trunk, size: 112241
2011-10-21
17:18
Merge the latest trunk changes into the apple-osx branch. file: [ae927208] check-in: [be62ef05] user: drh branch: apple-osx, size: 112478
2011-10-14
21:49
Add assert() statements and eliminate needless variable assignments in order to get the clang scan-build utility to report zero problems against the SQLite core. Clang's static analysis did find one real problem - but it was in the command-line shell, not in the SQLite core. file: [9658df8d] check-in: [60fee957] user: drh branch: trunk, size: 112200
2011-10-10
22:11
Merging in cherry picked diffs for persist wal, alloc padding, wal-safe vacuum and sqlite3_file_control based lockstate checking file: [eea77c32] check-in: [db5b7b77] user: adam branch: apple-osx-377, size: 112506
2011-08-02
18:25
Merge all the latest trunk changes into the apple-osx branch. file: [92c7c876] check-in: [77376b33] user: drh branch: apple-osx, size: 112314
2011-07-26
16:03
Prototype change for a new sqlite3_file_control() that will cause the -wal and -shm files to persist after the last database connection closes. file: [31547561] check-in: [e34c553b] user: drh branch: persistent-wal-patch, size: 112228
2011-06-24
20:47
Merging local changes to apple-osx file: [876f9b68] check-in: [34f0efa2] user: adam branch: apple-osx, size: 112187
2011-06-02
17:24
Fix a faulty assert() in the WAL-mode logic for read-only shared memory. file: [0c70ad7b] check-in: [a13cfe61] user: drh branch: trunk, size: 112101
2011-06-01
20:01
Simplify the wal-readonly branch so that it does not require changes to anything other than os_unix.c and wal.c and a couple of new error codes. file: [fd63d072] check-in: [d6b4709d] user: drh branch: wal-readonly, size: 112061
2011-05-31
17:08
Merge the latest trunk changes into the wal-readonly branch. file: [861ea987] check-in: [2c6b5a28] user: drh branch: wal-readonly, size: 113278
2011-05-25
20:25
Ignore malloc failures within the WAL file truncation attempt for journal_size_limit. file: [ab1d8c5a] check-in: [dd19105a] user: drh branch: trunk, size: 111324
2011-05-19
02:34
Bring the apple-wal-readonly branch up to date with the latest changes in apple-osx, and especially the fix for disappearing WAL transactions. file: [11c17da2] check-in: [57912327] user: drh branch: apple-wal-readonly, size: 113204
2011-05-16
21:00
Enhance WAL mode so that the WAL file honors the journal size limit set by PRAGMA journal_size_limit. file: [de27c34c] check-in: [db7e500f] user: drh branch: trunk, size: 111250
2011-05-11
17:36
Add missing comments associated with readonly shm changes. file: [6d8ee757] check-in: [6a2ea52e] user: dan branch: wal-readonly, size: 112305
14:57
Only open a read-only connection to shared-memory if the "readonly_shm=1" option is specified as part of the database file URI (and if a read-write connection fails). file: [adc6c83b] check-in: [671ba5fc] user: dan branch: wal-readonly, size: 111849
2011-05-10
17:31
Add experimental support for read-only connections to WAL databases. file: [2574b16e] check-in: [bb59f986] user: dan branch: wal-readonly, size: 111462
2011-03-06
21:28
Remove dead code identified by the clang static analyzer. file: [7334009b] check-in: [01a79d5a] user: drh branch: trunk, size: 110351
2011-02-20
03:20
Backport the changes of checkin [cf86affcb7d308949] ("Make wal_checkpoint a no-op if a prior checkpoint has already copied all WAL content into the database.") to the 3.7.4 release. file: [5b0f0a2a] check-in: [e6e540ab] user: drh branch: branch-3.7.4, size: 105182
03:11
Backport the SQLITE_PROTOCOL fix and the extra defensive measure to version 3.7.4. file: [20a07fb2] check-in: [bcc22c4b] user: drh branch: branch-3.7.4, size: 105167
2011-02-19
23:18
An SQLITE_PROTOCOL error counts as a locking error for verification purposes. file: [5386fb5e] check-in: [e87d499a] user: drh branch: trunk, size: 110379
17:02
Change a testcase() added by the previous checkin into an assert(). file: [9025ab8d] check-in: [6f3dad32] user: drh branch: trunk, size: 110327
16:51
Add testcase macros to verify that all return values from walTryBeginRead() are tested. file: [c7edd9ba] check-in: [262b6fca] user: drh branch: trunk, size: 110290
15:22
Changes to make WAL more robust against SQLITE_PROTOCOL errors. file: [3502efa1] check-in: [fd578a32] user: drh branch: trunk, size: 110000
14:19
Changes which attempt to address an obscure SQLITE_PROTOCOL error. file: [cb338d8f] check-in: [1725aa75] user: drh branch: wal-trace-375, size: 107182
2011-02-07
15:12
Change blocking-checkpoint tests so that they run once using "PRAGMA wal_checkpoint" and once using calls to sqlite3_wal_checkpoint_v2(). Also fix edge cases surrounding the output variables set by wal_checkpoint_v2(). file: [aca10a60] check-in: [5a4b6652] user: dan branch: trunk, size: 109173
2011-02-02
19:17
Fix minor problems with the output of "PRAGMA wal_checkpoint". In both code and tests. file: [8704a563] check-in: [aef61036] user: dan branch: trunk, size: 109157
16:34
Merge in the blocking-checkpoint enhancement, including the new sqlite3_wal_checkpoint_v2() interface and the PRAGMA wal_checkpoint(full) statement. file: [e6a609ab] check-in: [bac7342c] user: drh branch: trunk, size: 109186
2011-01-05
13:07
Cherrypick the WAL error logging from the pre-3.7.5 line into a branch for version 3.7.2. Include the sqlite3_vsnprintf() interface. This checkin is intended for debugging and not for release. file: [1076d7d8] check-in: [6549e767] user: drh branch: wal-trace-372, size: 103751
12:50
Add detailed error logging to WAL in an effort to track down an obscure SQLITE_PROTOCOL problem. This code is intended for debugging and not for release. file: [2db71704] check-in: [2c2afdd0] user: drh branch: wal-trace-375, size: 106392
2010-12-16
02:06
Make wal_checkpoint a no-op if a prior checkpoint has already copied all WAL content into the database. This prevents a concurrent write to the database from resetting the wal-index out from under the WalIterator of the checkpoint as it is initializing. file: [dbca424f] check-in: [cf86affc] user: drh branch: trunk, size: 105315
2010-12-15
21:02
Enhanced comments in wal.c and declare some procedure parameters "const". No changes to the generated code. file: [1c846e56] check-in: [d0e4375b] user: drh branch: trunk, size: 105300
2010-11-18
19:28
Fixes for SQLITE_BUSY handling in blocking checkpoint code. file: [23facfd0] check-in: [4c663a4d] user: dan branch: blocking-checkpoint, size: 107728
12:11
Modify the interface to the blocking wal-checkpoint functionality. file: [8eca619a] check-in: [72787c01] user: dan branch: blocking-checkpoint, size: 106698
2010-11-16
18:56
Add experimental command "PRAGMA wal_blocking_checkpoint", which uses the busy-handler to block until all readers have finished in order to ensure the next writer will be able to wrap around to the start of the log file. file: [400624ce] check-in: [7e3fc2c8] user: dan branch: blocking-checkpoint, size: 106043
2010-11-09
01:53
Back out the prior attempt to enable full-fsync for WAL and attempt the same thing using a completely different approach. file: [419914f4] check-in: [f59949fa] user: drh branch: apple-osx-exp, size: 102713
2010-11-01
17:38
If a database file with the WAL flag set is opened in exclusive-locking mode, use heap memory to store the wal-index instead of shared-memory. file: [f26b8d29] check-in: [8dd5c691] user: dan branch: trunk, size: 103961
2010-10-05
15:41
If walLockExclusive() fails for reasons other than SQLITE_BUSY inside of walRestartLog() then propagate that error back up to the application. file: [0dc7eb9e] check-in: [04dcba6b] user: drh branch: trunk, size: 102738
2010-09-01
02:38
Fix some compiler warnings under MSVC. file: [7081f148] check-in: [afdc82a9] user: shaneh branch: trunk, size: 102679
2010-08-18
02:28
Fix some compiler warnings in the MSVC build. file: [5ac2119e] check-in: [1f5662b7] user: shaneh branch: trunk, size: 102674
2010-08-17
14:52
Invoke sqlite3_log() whenever one or more frames are recovered from a WAL file. file: [109c4521] check-in: [e05089aa] user: dan branch: trunk, size: 102660
2010-08-16
16:31
Fix a typo in a comment in wal.c. No code changes. file: [241b963c] check-in: [d854a3d4] user: drh branch: trunk, size: 102243
14:18
Add ALWAYS() macros in wal.c to cover branches that are no longer reachable following the pager refactoring. file: [6b170507] check-in: [24f24c92] user: drh branch: trunk, size: 102240
2010-08-14
21:21
Adjustments for better 64K page size handling. file: [c2d20c37] check-in: [faf1974e] user: drh branch: trunk, size: 102224
2010-08-12
02:41
Increase the maximum page size from 32k to 64k. file: [c79ae356] check-in: [45362437] user: drh branch: trunk, size: 101666
2010-08-09
07:51
Fix a problem causing the return code of an xSync call to be ignored in wal.c. file: [582acbaa] check-in: [f1b2b5f9] user: dan branch: experimental, size: 101449
07:07
In WAL mode, ignore any error returned by an xFileControl(FCNTL_SIZE_HINT) call. This matches the behaviour in rollback mode. file: [4ac3c3d7] check-in: [158a3097] user: dan branch: experimental, size: 101473
2010-08-07
16:17
Fix minor problems and update comments in pager.c. file: [ef5e37b8] check-in: [92e45637] user: dan branch: experimental, size: 101478
2010-08-03
06:42
Incremental checkin on pager state refactoring. file: [6e04bccc] check-in: [0a636798] user: dan branch: experimental, size: 101439
2010-07-28
14:26
Support FCNTL_CHUNK_SIZE on windows too. file: [72cb5df7] check-in: [a038688c] user: dan branch: experimental, size: 101454
2010-07-15
18:20
Changes to wal.c so that SQLite can read even if the WAL file is opened read-only, provided the wal-index (shm file) is opened read/write. file: [0925601f] check-in: [932d19da] user: dan branch: trunk, size: 100849
17:54
Handle the case where xShmMap returns SQLITE_BUSY. file: [66e9034a] check-in: [75f53548] user: dan branch: trunk, size: 100720
2010-07-14
16:37
Test the libraries response to read-only or unreadable database, WAL and wal-index files. If a WAL file cannot be opened in read/write mode, return SQLITE_CANTOPEN to the caller. file: [656d50bb] check-in: [45bb84c6] user: dan branch: trunk, size: 100209
14:48
On unix, try to create the *-wal and *-shm files with the same permissions as the associated database file. file: [60932f29] check-in: [e5d180ee] user: dan branch: trunk, size: 100126
00:14
Change the name of the xShmClose VFS method to xShmUnmap, everywhere. file: [7dce9040] check-in: [c2d27cf5] user: drh branch: experimental, size: 100135
2010-07-13
18:44
Changes so that the xShmOpen VFS method is no longer required. Its job can be done by the first call to xShmMap. Rename xShmClose to xShmUnmap. file: [1a63156c] check-in: [f4780bde] user: dan branch: experimental, size: 100135
2010-07-09
12:57
Fix warning under MSVC. file: [c1783e40] check-in: [0c32c4bb] user: shaneh branch: trunk, size: 100324
03:19
Reformat WAL code for clearer presentation. Update comments for correctness. Add checks to ensure that corruption in shared-memory does not result in an infinite loop. file: [0cd5cd46] check-in: [40eaada7] user: drh branch: trunk, size: 100317
2010-07-07
21:06
Make the initial salt values in the WAL header random values, not zero. file: [5a58352a] check-in: [baa5eddd] user: drh branch: trunk, size: 99960
14:40
Remove two more testcase() macros that require 4GiB WAL files to hit. file: [7af0b976] check-in: [16e18f27] user: drh branch: trunk, size: 99959
14:35
Remove a testcase() macro that would require a 4GiB WAL to reach. file: [950f8d84] check-in: [15f9c271] user: drh branch: trunk, size: 99901
13:43
Add testcase macros to ensure that large-file cases are tested in WAL. file: [ad263575] check-in: [8156b57a] user: drh branch: trunk, size: 99876
09:48
Fix a problem with writing to databases larger than 2^32 bytes with WAL mode. file: [480c42c6] check-in: [b956ddca] user: dan branch: trunk, size: 99588
2010-07-05
19:03
Allocate a buffer containing the full path-name to the associated WAL file when a pager is created. This saves having to construct a new buffer each time a new read-transaction is opened and SQLite checks for the existance of a WAL file. file: [585f3723] check-in: [3053a4ad] user: dan branch: trunk, size: 99533
2010-07-02
18:15
Fix a couple more compiler warnings under MSVC. file: [737408e8] check-in: [26bc27e3] user: shaneh branch: mistake, size: 99718
17:05
Fix some warnings when compiling under MSVC. file: [a56876d4] check-in: [70833877] user: shaneh branch: mistake, size: 99694
2010-06-26
22:16
Make walIndexTryHdr() a private function. Fix an issue with SQLITE_MUTEX_NOOP. file: [7666c113] check-in: [ec65bbd0] user: drh branch: trunk, size: 99620
21:34
Suppress various compiler warnings. file: [b6ce9893] check-in: [e82d008e] user: drh branch: trunk, size: 99613
20:00
Suppress a couple uninitialized variable warnings. file: [c177bd9a] check-in: [29571e22] user: drh branch: trunk, size: 99606
2010-06-25
16:34
Reduce the average (but not maximum) size of the allocations made as part of a checkpoint. file: [22522709] check-in: [4a7fd91b] user: dan branch: trunk, size: 99606
15:16
Reduce the size of the large allocation (approx 8KB for every 4000 frames in the log) that occurs during checkpoint. Use the 'scratch' memory for this allocation instead of the general purpose allocation. file: [7f2c67f1] check-in: [29887487] user: dan branch: trunk, size: 99449
11:35
Modify the merge-sort in wal.c so that it does not use recursion. file: [a6648b66] check-in: [daea6c05] user: dan branch: trunk, size: 99477
2010-06-24
02:46
Make sure the wal-index reader detects an incorrect version number even if it had to hold a lock in order to read the wal-index. Also, expand and enhance various comments in wal.c. file: [40e6d0ac] check-in: [2e6a462c] user: drh branch: trunk, size: 97929
2010-06-23
22:00
Fix and/or improve comments in wal.c. No code changes. file: [51b5d225] check-in: [ee9991be] user: drh branch: trunk, size: 96562
15:55
Add a version number to the wal-index header. If SQLite encounters a version number in either the wal or wal-index files that it does not understand, the operation is abandoned and SQLITE_CANTOPEN returned. file: [563b7030] check-in: [8d0f8a7f] user: dan branch: trunk, size: 96132
2010-06-22
21:15
Disable code used only by the codec when the codec is not deployed. file: [70ffd43c] check-in: [2c90276e] user: drh branch: trunk, size: 94381
15:18
Add codec support to wal mode. file: [dcc18b61] check-in: [393741eb] user: dan branch: trunk, size: 94245
2010-06-15
11:21
Updates to comments and testcase() macros in wal.c. file: [4ea519e6] check-in: [4d90cc0b] user: drh branch: trunk, size: 94087
2010-06-14
14:07
Remove xShmGet/Size/Release from the sqlite3_vfs structure. Change the name of xShmPage to xShmMap. Remove some code that is now unused from os_unix.c and some of the test VFS implementations. file: [c261aeb2] check-in: [fc0cabc1] user: dan branch: experimental, size: 94024
11:49
Update some comments in wal.c. No code changes. file: [f8ba403d] check-in: [1ce9c92b] user: dan branch: experimental, size: 94025
11:18
Change the interface to internal function walGetHash() to make it easier to follow. file: [eb0a433a] check-in: [5e8e2e97] user: dan branch: experimental, size: 93503
10:30
Add the xShmPage method to the "crash" vfs in test6.c. file: [7cf566b5] check-in: [1008f536] user: dan branch: experimental, size: 93648
07:53
Add some fault-injection tests to improve coverage. file: [75c55049] check-in: [37b26d12] user: dan branch: experimental, size: 93658
2010-06-12
12:02
Fix some problems with handling IO errors on the experimental branch. file: [ca3e0bf6] check-in: [eade8bc2] user: dan branch: experimental, size: 93541
2010-06-11
19:04
Experimental change to the xShmXXX parts of the VFS interface. file: [0aa36473] check-in: [ca68472d] user: dan branch: experimental, size: 92702
2010-06-09
16:58
When restarting (wrapping) a log file, set all unused aReadMark[] slots to READMARK_NOT_USED instead of 0. Setting them to 0 does not cause a problem, but may cause SQLite to obtain and release a few more file locks than would otherwise be necessary. file: [2cdfea9a] check-in: [0797b10c] user: dan branch: trunk, size: 94924
14:45
Shift the meaning of aReadMark[] back so that +1 offset from mxFrame is removed. Add the new READMARK_NOT_USED value (0xffffffff) instead of zero to signal an aReadMark[] that is not in use. file: [25ce19c8] check-in: [c576827d] user: drh branch: trunk, size: 94770
11:28
Simpler fix for the race condition also fixed by [7c102c7b5f] file: [70edade3] check-in: [3c2de820] user: dan branch: trunk, size: 94364
11:02
Fix for race condition in WAL locking code. file: [3f9c563f] check-in: [7c102c7b] user: dan branch: mistake, size: 94582
2010-06-05
19:18
Add further test cases for the logic in sqlite3WalBeginReadTransaction(). file: [d1a6aa3f] check-in: [a49713db] user: dan branch: trunk, size: 94278
18:34
Clarify the purpose of a test for a race-condition in sqlite3WalBeginReadTransaction(). file: [a97ac7ee] check-in: [c041c6a9] user: dan branch: trunk, size: 94254
18:12
Remove a condition from sqlite3WalRead() that is unreachable as of the changes to clear entries out of the wal-index hash tables on transaction or savepoint rollback. file: [22a58cdf] check-in: [39420473] user: dan branch: trunk, size: 93092
14:42
Mark a condition in wal.c as ALWAYS(). file: [3a448ad3] check-in: [3fe0cc78] user: dan branch: trunk, size: 93245
2010-06-04
18:38
Clarify an assert in sqlite3WalExclusiveMode(). file: [e237581e] check-in: [25585069] user: dan branch: trunk, size: 92515
17:16
Remove an unnecessary branch from wal.c. file: [ea912c55] check-in: [8e54786c] user: dan branch: trunk, size: 92214
11:56
If an attempt to sync the database file as part of a checkpoint fails, do not update the shared "nBackfill" variable. Otherwise, another process could wrap the log and overwrite content before it is synced into the database. file: [f34425da] check-in: [b813233d] user: dan branch: trunk, size: 92264
10:37
Fix a problem where an SQLITE_BUSY in the checkpoint code was being treated as an IO error (abandoning, instead of just limiting, the checkpoint). file: [453811af] check-in: [02c4040c] user: dan branch: trunk, size: 92273
2010-06-02
20:38
When a lock fails due to an I/O error (not an SQLITE_BUSY) then the checkpoint should fail. file: [be73c9a8] check-in: [c6eb0a27] user: drh branch: trunk, size: 92376
18:59
Fix a problem with rolling back to a savepoint opened before the writer decided to wrap the log file. file: [82da8997] check-in: [6b4aed6a] user: dan branch: trunk, size: 92268
15:43
When walTryBeginRead() encounters an I/O error trying to set a lock (as opposed to SQLITE_BUSY) be sure to propagate that error back up the call stack. file: [125cc67e] check-in: [aa2c2b67] user: drh branch: trunk, size: 91900
14:45
Changes to make WAL more robust against SHM locking failures and OOM errors. file: [e36af9e7] check-in: [ebf40413] user: drh branch: trunk, size: 91772
2010-06-01
15:44
Delay the decision to restart the log file until data is actually ready to be written to the log file (instead of at the start of a write transaction). file: [2bd4ef3b] check-in: [b1abfaaf] user: dan branch: trunk, size: 91176
13:17
Fix a bug introduced by the previous check-in but only seen if SQLITE_ENABLE_EXPENSIVE_ASSERTS is turned on. file: [131a5eaa] check-in: [9c9ec899] user: drh branch: wal-incr-ckpt, size: 89753
12:58
Fix an off-by-one boundary-value issue in walCleanupHash(). file: [2a122212] check-in: [f039552e] user: drh branch: wal-incr-ckpt, size: 89741
10:44
If the checkpoint fails to obtain an exclusive lock on one of the read-lock bytes, do not consider this an error. file: [a18a2059] check-in: [9e95e357] user: dan branch: wal-incr-ckpt, size: 89527
01:08
Comment edits and cleanup in wal.c. No functional code changes. file: [d03eebb9] check-in: [e8e666ab] user: drh branch: wal-incr-ckpt, size: 89534
2010-05-31
20:28
Fix issues with locking_mode=EXCLUSIVE in WAL. file: [b3f312fe] check-in: [8deba0ce] user: drh branch: wal-incr-ckpt, size: 89254
18:24
Add an "isInit" field in the wal-index header that must be non-zero for a valid header. Use this to detect an uninitialized wal-index. file: [a20a069a] check-in: [a16fde19] user: drh branch: wal-incr-ckpt, size: 88395
16:56
Fix an inconsistent #ifdef in wal.c. Fix os_unix.c so that it does not allow moving an SHM lock directly exclusive to shared without going through unlocked. file: [0ccac001] check-in: [552658da] user: drh branch: wal-incr-ckpt, size: 88325
16:41
Avoid dropping the checkpoint lock after a recovery run as a precursor to a checkpoint operation. file: [fa5f1784] check-in: [cc25cfa0] user: dan branch: wal-incr-ckpt, size: 88382
16:17
Zero the checkpoint header as the last step of successful WAL recovery. Avoid an unnecessary lock/unlock in WalBeginReadTransaction. file: [85d6de5b] check-in: [db3509c5] user: dan branch: wal-incr-ckpt, size: 87707
16:10
Get the new xShmLock interface design working on os_win.c. file: [07896216] check-in: [149a7082] user: drh branch: wal-incr-ckpt, size: 87471
14:39
Make sure WAL alway requests enough shared-memory space. file: [a5c23eb5] check-in: [138f1283] user: drh branch: wal-incr-ckpt, size: 87449
12:30
Do not fail a checkpoint just because active readers prevent backfill. file: [0b3cf784] check-in: [9aa4243e] user: drh branch: wal-incr-ckpt, size: 87417
12:15
Add WALTRACE() macros to help with debugging and analysis. file: [880542c1] check-in: [765c3318] user: drh branch: wal-incr-ckpt, size: 87254
12:02
Another minor fix to checkpoint on the WAL branch. file: [ae5ff8e4] check-in: [853f1e3f] user: dan branch: wal-incr-ckpt, size: 85286
11:39
Fix a bug in checkpoint introduced by [181ceb32ea]. file: [e7dcdd7a] check-in: [b499dbc8] user: dan branch: wal-incr-ckpt, size: 85289
11:16
Fix some asserts and other things in the new WAL branch. file: [23b3733a] check-in: [181ceb32] user: dan branch: wal-incr-ckpt, size: 85288
01:41
WAL runs but quickly deadlocks. file: [016ea4ed] check-in: [ace58acb] user: drh branch: wal-incr-ckpt, size: 85028
2010-05-30
19:55
Initial code for incremental checkpoint in WAL mode. This check-in compiles on unix and runs as long as you do not engage WAL mode. WAL mode crashes and burns. Consider this check-in a baseline implementation for getting the new capability up and running. file: [ef02a5f4] check-in: [ef3ba7a1] user: drh branch: wal-incr-ckpt, size: 84930
2010-05-26
17:31
Make sure the wal-index mapping is always large enough to cover the entire active area of the wal-index. file: [ce631adb] check-in: [42705bab] user: drh branch: trunk, size: 72363
15:06
Change the semantics of xShmGet() such that it will never increase the size of shared memory. xShmSize() must be used to grow the size of shared memory. A shared memory segment size cannot be shrunk (except by dropping it). file: [603f6ad6] check-in: [72de0073] user: drh branch: trunk, size: 72015
2010-05-25
15:53
Updated header comments in wal.c. No functional code changes. file: [910ec66f] check-in: [687632a6] user: drh branch: trunk, size: 71960
13:40
Update header comments in wal.c to correctly describe the WAL file format. Update the locking region offsets in os_unix.c and os_win.c and add assert() statement to verify that the locking region offsets are correct. file: [5088dfa9] check-in: [40030c07] user: drh branch: trunk, size: 71581
10:50
If a writer exits unexpectedly in the middle of a transaction, have the following writer remove any wal-index hash-table entries left by the interrupted transaction. file: [d75a06a3] check-in: [ed77556a] user: dan branch: trunk, size: 70944
2010-05-24
13:57
Change the checksum used in WAL files so that each frames checksum depends on the content of the WAL header and all frame headers and content up to and including the frame to which the checksum is attached. file: [c09f4e33] check-in: [8a53f12c] user: dan branch: trunk, size: 70019
13:28
Make sure a WAL frame of all zeros is detected as an invalid frame. file: [e8c58e52] check-in: [02d99ad4] user: drh branch: trunk, size: 68955
10:39
Change the WAL file format to support two kinds of checksums - one that is fast to calculate on little-endian architectures and another that is fast on big-endian architectures. A flag in the wal-header indicates which the file uses. file: [93e13dfc] check-in: [65ba804d] user: dan branch: trunk, size: 68766
2010-05-22
00:55
Add several EXPENSIVE_ASSERT code blocks to validate the wal-index hash table. Fix the bugs that these code blocks fine. Rename walClearHash() to walCleanupHash() and simplify its interface. file: [8371cedf] check-in: [7aade899] user: drh branch: trunk, size: 66900
2010-05-21
19:15
Fix another bug in walClearHash(). file: [ad8e423a] check-in: [40f80ffe] user: dan branch: trunk, size: 65689
16:23
Correct an off-by-one bug in the previous commit. file: [2b984834] check-in: [75a1130d] user: dan branch: trunk, size: 65689
15:31
Remove entries from wal-index hash tables when a rollback or savepoint rollback occurs. file: [c05f4091] check-in: [36795c2b] user: dan branch: trunk, size: 65690
13:16
Fix the wal-index header read routine so that it correctly detects a zero header as being malformed and in need of a wal-index rebuild. file: [1c3abcea] check-in: [1a4eb3a3] user: drh branch: trunk, size: 64041
2010-05-20
23:51
Add a new xShmBarrier method to the VFS - a shared-memory fence operation. Implement the same in both unix and win32. Use it to make the WAL subsystem more robust. file: [2352dd3a] check-in: [1bd011c9] user: drh branch: trunk, size: 63709
21:21
Make use of the extra information in the WAL header and frame header to enhance robustness. file: [fd4377f7] check-in: [9580ecb7] user: drh branch: trunk, size: 63098
16:45
Convert the wal-header and frame-header to 24 bytes. Extra information in both headers is designed to enhance robustness after crashes, though the extra information is currently unused. This is a snapshot of a work in progress. file: [25969e59] check-in: [66970643] user: drh branch: trunk, size: 63640
2010-05-19
19:09
Fix a bug in the new checkpoint computation. Also update the checkpoint algorithm in the test scripts to align with the new implementation. file: [b77f0682] check-in: [8b6056f2] user: drh branch: trunk, size: 62371
18:08
Revise the checksumming algorithm in wal.c. More variable refactoring. file: [5fd58539] check-in: [542b90eb] user: drh branch: trunk, size: 62371
17:49
Refactoring some variable names in wal.c. file: [105bad78] check-in: [1d201ff5] user: drh branch: trunk, size: 63094
01:53
Add a large comment to wal.c describing the WAL and wal-index file formats. file: [59463e08] check-in: [a71a22b5] user: drh branch: trunk, size: 63122
2010-05-18
23:29
Update the wal-index hash format so that hash-table space is reused following a rollback, thus preventing hash table overflows. Add assert()s to verify that hash tables do not overfill. Further refactoring of the wal-index code. file: [6ef67313] check-in: [ada9a8c7] user: drh branch: trunk, size: 58458
18:01
Refactoring of the WalIterator implementation. file: [cfbb818b] check-in: [b5b60fdc] user: drh branch: trunk, size: 55930
13:27
Mark the shared-memory in the WAL implementation as volatile. file: [03c150ff] check-in: [0a678790] user: drh branch: trunk, size: 52189
12:56
Comment clarifications in wal.c. file: [5bdd0270] check-in: [a029be10] user: drh branch: trunk, size: 52063
2010-05-17
20:16
Remove an unreachable test from wal.c. file: [431efda4] check-in: [7162c456] user: drh branch: trunk, size: 52405
2010-05-13
15:44
Allow sqlite3WalCheckpoint() to be called even if the WAL is in the SQLITE_SHM_READ state, as sometimes happens after an error. file: [b59d841e] check-in: [175b296f] user: drh branch: trunk, size: 52477
09:11
Make sure xShmGet is never called while already holding the shared-memory segment. file: [ec1a6f94] check-in: [92ebdbc5] user: drh branch: trunk, size: 52463
07:08
Fix for a segfault that can follow a malloc failure. file: [3806c5ed] check-in: [3cab9022] user: dan branch: wal-refactor, size: 52438
2010-05-12
18:10
A couple simple fixes to get wal.test mostly working. file: [c66ba0b7] check-in: [c7445812] user: drh branch: wal-refactor, size: 52436
18:01
Refactoring the VFS-SHM methods used by WAL. This version compiles and runs non-WAL test cases but crashes and burns on wal.test. file: [5f52f5ea] check-in: [2b00152c] user: drh branch: wal-refactor, size: 52434
06:54
Remove a branch made redundant by the earlier exclusive-mode changes. file: [2f747b6a] check-in: [c501b2ed] user: dan branch: trunk, size: 52474
2010-05-11
12:19
Changes so that WAL and exclusive-locking mode work together. file: [7042647f] check-in: [71e7b1cf] user: dan branch: trunk, size: 52232
2010-05-10
14:46
Modify the format of the wal-index to use a hash table to index log file segments. file: [65d1376c] check-in: [40b0a635] user: dan branch: trunk, size: 50722
2010-05-07
20:34
When running a checkpoint while in locking_mode=EXCLUSIVE, be sure to move the wal-index lock to UNLOCK from READ prior to promoting to CHECKPOINT. file: [66147e8b] check-in: [be114bdf] user: drh branch: trunk, size: 45692
20:02
Change the xShmOpen() method of the VFS to take the database file name as its argument, not the WAL file name. Also fix some unrelated compiler warnings. file: [6704aa53] check-in: [a65c2939] user: drh branch: trunk, size: 45500
09:43
Test another IO error case in wal.c. file: [53b74615] check-in: [8b3b5ab8] user: dan branch: trunk, size: 45489
06:59
Fix a problem with checkpointing large log files created by an external process. file: [5321afde] check-in: [8f94bde5] user: dan branch: trunk, size: 45470
05:46
Since walIndexTryHdr() can no longer encounter any error conditions, change tehe function signature so that it does not return an error code. This removes unreachable branches from other code. file: [57ff8253] check-in: [061a282c] user: dan branch: trunk, size: 45513
2010-05-06
18:48
Instead of transitioning to RECOVER state from CHECKPOINT when a recovery is required, perform the recovery while holding the CHECKPOINT lock. file: [1fc462b7] check-in: [bb0b6021] user: dan branch: trunk, size: 44414
18:27
If recovery is run before a checkpoint, change back to a CHECKPOINT lock before performing the actual checkpoint. file: [0463fb96] check-in: [dc98ee16] user: dan branch: trunk, size: 44331
18:04
Only pass -1 as the size parameter to xShmGet when the caller does not care what size mapping is returned. Only call xShmSize when the underlying allocation (not the mapping) should be resized. file: [1730243c] check-in: [637f51dd] user: dan branch: trunk, size: 44289
17:28
Fix a bug whereby an old snapshot could be checkpointed (and subsequent transactions discarded) if the last connection to disconnect from a WAL database happended to be holding an out-of-date wal-index header. file: [d7250e0d] check-in: [d0c0034b] user: dan branch: trunk, size: 44333
15:56
Further coverage tests. file: [d152a78f] check-in: [98a9713e] user: dan branch: trunk, size: 43891
14:42
Add tests to cover a couple of branches in wal.c. file: [cc0c1528] check-in: [429f437f] user: dan branch: trunk, size: 43824
12:15
Add tests for some lock-contention cases. file: [5fa16130] check-in: [f0fcb9c9] user: dan branch: trunk, size: 43914
11:32
Add test cases to test the libraries handling of corrupt wal-index headers. file: [2db3bd80] check-in: [9465b267] user: dan branch: trunk, size: 43889
07:43
Add tests for handling errors returned by xShm VFS methods. file: [65a29bce] check-in: [fbbcacb1] user: dan branch: trunk, size: 43905
2010-05-05
19:04
Test the handling of errors returned by the xShmXXX() APIs. file: [85311299] check-in: [72663123] user: dan branch: trunk, size: 43755
15:33
When closing a WAL database, if the exclusive lock on the database file is obtained and the database successfully checkpointed, delete the wal-index file from the file system. file: [faafbea1] check-in: [2ac5d96c] user: dan branch: trunk, size: 43286
2010-05-04
17:38
Be sure to release all wal-index locks before closing the wal-index. file: [73d17ad0] check-in: [b15b67fa] user: drh branch: trunk, size: 43251
17:20
Relax an over-zealous assert() in sqlite3WalUndo(). file: [864f1e20] check-in: [8f9d22d5] user: drh branch: trunk, size: 43039
16:33
Take care not to invoke the xShmClose method of the VFS with a NULL shared memory object. file: [7f5d355c] check-in: [1465d384] user: drh branch: trunk, size: 43114
14:47
Fix problems with recovering wal files that use a page-size other than the default. file: [558700d2] check-in: [1a391f3c] user: dan branch: trunk, size: 43094
11:06
Fix a typo in walfault.test. file: [1d0abe01] check-in: [232dbe8e] user: dan branch: trunk, size: 42842
10:36
Test that the correct number of padding frames are appended to the log file after committing a transaction in synchronous=FULL mode. file: [fcd2c4ce] check-in: [a60104aa] user: dan branch: trunk, size: 42666
2010-05-03
17:18
Fix a couple of errors in WAL code that can occur in an OOM situation. file: [f2dd17d7] check-in: [9d3f3736] user: dan branch: trunk, size: 42605
16:30
Change the VFS definition so that all methods take a VFS object pointer as their first parameter. file: [5face3be] check-in: [43b5b07f] user: drh branch: trunk, size: 42587
2010-05-01
20:17
Change the SHM interface so that it does not take the name of the shared object but rather the name of the WAL file and derives its own name from that. Remove the xShmDelete method from the VFS and replace it with a delete flag on xShmClose. file: [dadd533e] check-in: [94dea5f9] user: drh branch: wal, size: 42521
16:40
Support compile-time option SQLITE_OMIT_WAL, for building without WAL support. file: [4a9b7fb0] check-in: [9b230c43] user: dan branch: wal, size: 42656
2010-04-30
17:05
Fix a problem with resizing the wal-index mapping after the mapping has been extended by an external process. file: [2115a90d] check-in: [79d356fe] user: dan branch: wal, size: 42564
16:50
Fix a problem with calculating the required size of the wal-index when appending frames. file: [f4bdb4f8] check-in: [9526b111] user: dan branch: wal, size: 42552
16:24
Reapply commits [837d82a929] and [c05e7dca17] that were accidentally overwritten. file: [efe21d70] check-in: [598de527] user: dan branch: wal, size: 42540
16:12
Correctly record the fact that the SHM lock reached PENDING if it did so but failed to reach CHECKPOINT. file: [f0888961] check-in: [d9250e84] user: drh branch: wal, size: 41051
15:49
When closing a WAL connection, attempt an exclusive lock on the database file. If the lock is obtained, checkpoint the database and delete the wal and wal-index files. file: [e4a52d13] check-in: [c05e7dca] user: dan branch: wal, size: 42529
15:24
If a reader attempts to upgrade to a writer, but is not reading the most recent database snapshot, return SQLITE_BUSY. file: [94ebe9e4] check-in: [837d82a9] user: dan branch: wal, size: 41546
14:39
Separate the concepts of underlying storage size and mapped size in the VFS shared-memory implementation. file: [a4c64358] check-in: [4cbe49f1] user: drh branch: wal, size: 41038
11:43
Add a missing walIndexUnmap() call to the checkpoint code. Change a couple of SQLITE_CANTOPEN constants to SQLITE_CANTOPEN_BKPT. file: [9327e0d4] check-in: [1f9e8c5c] user: dan branch: wal, size: 40416
10:24
Fix an assert() in sqlite3WalRead(). file: [153dc952] check-in: [2e7a0050] user: dan branch: wal, size: 40388
09:52
Fix a couple of assert() statements in os_unix.c and wal.c. Combine sqlite3WalIsDirty() with sqlite3WalUndo(). file: [6f0fdfac] check-in: [a8f958be] user: dan branch: wal, size: 40353
09:32
Add a missing walIndexUnmap() to sqlite3WalSnapshotOpen(). file: [b617892b] check-in: [72b95fde] user: dan branch: wal, size: 40589
02:13
The first 6 WAL tests now work. It's a start. file: [d9d76a81] check-in: [a92c1851] user: drh branch: wal, size: 40505
2010-04-29
22:34
Refactor wal.c to use the VFS. This check-in compiles and links and works ok as long as you leave WAL turned off, but WAL does not work. file: [1c984ba3] check-in: [62db5fa3] user: drh branch: wal, size: 40281
14:51
Fix a bug in the WAL checkpoint code causing SQLite to use an inconsistent cache in a subsequent transaction. file: [b1c6868b] check-in: [d1cadeed] user: dan branch: wal, size: 65678
2010-04-28
17:48
Change walthread.test so that tests can be run with either multiple threads or multiple processes. file: [d63318e8] check-in: [25f85f68] user: dan branch: wal, size: 65184
2010-04-27
18:49
Merge two "wal" leaves. file: [1576b36d] check-in: [8c2d43ba] user: dan branch: wal, size: 65185
05:42
Fix a problem that occurs when one process causes the log-summary file to grow and then a second process attempts to read the database. file: [26d2a702] check-in: [b51a5f8b] user: dan branch: wal, size: 65182
2010-04-26
16:57
Fixes for problems with small caches and SAVEPOINT rollback in WAL mode. file: [ce03bdd7] check-in: [6a944f02] user: dan branch: wal, size: 64355
10:40
Add mutexes to fix a race condition in wal.c. This isn't a very good fix. file: [f93ce896] check-in: [3d159939] user: dan branch: wal, size: 63790
00:19
Change the names of the log.c and log.h source files to wal.c and wal.h. file: [df5283ae] check-in: [56fe5d76] user: drh branch: wal, size: 63075 Renamed from src/log.c