/ History for src/wal.c
Login

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

History for src/wal.c

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