SQLite

Timeline
Login

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

360 check-ins using file src/select.c version c03d8a05

2010-06-26
22:16
Make walIndexTryHdr() a private function. Fix an issue with SQLITE_MUTEX_NOOP. (check-in: ec65bbd0 user: drh tags: trunk)
21:34
Suppress various compiler warnings. (check-in: e82d008e user: drh tags: trunk)
20:25
Fix two asserts on the scratch allocator to allow for up to two outstanding scratch allocations per thread. (check-in: f149b498 user: drh tags: trunk)
20:00
Suppress a couple uninitialized variable warnings. (check-in: 29571e22 user: drh tags: trunk)
19:03
Add test file tkt-d11f09d36e.test. (check-in: 6e469b63 user: dan tags: trunk)
19:02
Remove a NEVER() in pager that can in fact be reached in obscure failure cases. (check-in: 42b8bd1c user: drh tags: trunk)
17:15
Fix a case where the doNotSyncSpill flag may remain permanently set following an IO error. (check-in: 56c7d111 user: dan tags: trunk)
15:42
When synchronous=NORMAL, use the same journal file format as with synchronous=FULL (i.e. multiple journal headers within the one journal). Fix for [d11f09d36e]. (check-in: 2eaf5ee0 user: dan tags: trunk)
2010-06-25
19:09
Further test cases for pager1.test and pagerfault.test. (check-in: bfd563c4 user: dan tags: trunk)
16:34
Reduce the average (but not maximum) size of the allocations made as part of a checkpoint. (check-in: 4a7fd91b user: dan tags: trunk)
15:16
Reduce the size of the large allocation (approx 8KB for every 4000 frames in the log) that occurs during checkpoint. Use the 'scratch' memory for this allocation instead of the general purpose allocation. (check-in: 29887487 user: dan tags: trunk)
14:17
Fix up a branch in sqlite3ValueFromExpr() so that we can achieve full branch test coverage regardless of whether or not SQLITE_ENABLE_STAT2 is used. (check-in: af471ed7 user: drh tags: trunk)
12:52
Change the name of the shared-memory file on windows from *-wal-index to *-shm, for consistency with unix. (check-in: 5995cb15 user: drh tags: trunk)
11:35
Modify the merge-sort in wal.c so that it does not use recursion. (check-in: daea6c05 user: dan tags: trunk)
2010-06-24
19:16
Add test cases to pager1.test and pagerfault.test. (check-in: 4941e437 user: dan tags: trunk)
18:36
Revert to allowing a cache spill during writes of multiple pages within a single sector as long as the spill does not require a journal sync and a new journal header. (check-in: 7d83fbae user: drh tags: trunk)
17:37
Modify ctime.test to work with SQLITE_THREADSAFE=2. (check-in: c6db3b30 user: dan tags: trunk)
14:52
Disable memory-pressure induced cache spill during savepoint rollback. (check-in: a55eb4c3 user: drh tags: trunk)
13:24
Add a coverage test to pagerfault.test. (check-in: b58db67e user: dan tags: trunk)
10:50
Add coverage tests. Remove a NEVER macro from pager.c, as the condition can now be true in wal mode. (check-in: 7aac9ad6 user: dan tags: trunk)
02:46
Make sure the wal-index reader detects an incorrect version number even if it had to hold a lock in order to read the wal-index. Also, expand and enhance various comments in wal.c. (check-in: 2e6a462c user: drh tags: trunk)
2010-06-23
22:00
Fix and/or improve comments in wal.c. No code changes. (check-in: ee9991be user: drh tags: trunk)
19:27
Add test case for SQLITE_FULL errors to pagerfault.test. Remove a NEVER macro in pager.c that this hits. (check-in: 3e9680c4 user: dan tags: trunk)
17:59
Include the SOURCE_ID value in the log messages output for corruption, misuse, and CANTOPEN errors. (check-in: 1727a81f user: drh tags: trunk)
17:58
Adjust the shared-memory locking range to account for the new version number values in the wal-index header. (check-in: a6dc0df3 user: drh tags: trunk)
15:55
Add a version number to the wal-index header. If SQLite encounters a version number in either the wal or wal-index files that it does not understand, the operation is abandoned and SQLITE_CANTOPEN returned. (check-in: 8d0f8a7f user: dan tags: trunk)
15:18
Fix the xCurrentTimeInt64 interface on windows. It was off by a factor of 10. (check-in: 51ef43b9 user: drh tags: trunk)
15:04
Simplifications to the pager_delmaster() implementation. (check-in: 8bfbdec6 user: drh tags: trunk)
2010-06-22
21:15
Disable code used only by the codec when the codec is not deployed. (check-in: 2c90276e user: drh tags: trunk)
15:18
Add codec support to wal mode. (check-in: 393741eb user: dan tags: trunk)
14:49
When trying to transition from journal_mode MEMORY to WAL, use OFF as an intermediate journal mode. (check-in: 4775b8f9 user: drh tags: trunk)
13:46
Some changes to test scripts related to codec enabled versions of sqlite. (check-in: 85dd51a7 user: dan tags: trunk)
11:10
Fix problem with handling of -vfs option in tcl interface. (check-in: 8f98e8b5 user: dan tags: trunk)
2010-06-21
21:45
Minor tweaks to get the pager working for corner cases when the SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN flag is set. (check-in: 82b38fca user: drh tags: trunk)
20:19
Fix comment inside the pager_unlock() routine. Always close the master journal file before trying to delete it. (check-in: f820b815 user: drh tags: trunk)
18:29
Add test cases to pager1.test and pager2.test. (check-in: cc9ddae6 user: dan tags: trunk)
12:47
Merge the experimental UNDELETABLE_WHEN_OPEN optimization into the trunk. (check-in: ee0acef1 user: drh tags: trunk)
12:34
Change things so that journal2.test works with ENABLE_ATOMIC_WRITE. (Closed-Leaf check-in: a64d96db user: dan tags: experimental)
07:45
Add further pager tests. (check-in: 4104b175 user: dan tags: experimental)
06:00
Merge latest trunk change. (check-in: f6d26e07 user: dan tags: experimental)
05:40
Fix jrnlmode2.test so that it works on systems where UNDELETABLE_WHEN_OPEN is defined. (check-in: 59be370e user: dan tags: experimental)
2010-06-19
23:53
Fix an uninitialized variable in os_unix.c. (check-in: 822a0283 user: drh tags: trunk)
19:06
Fix an assert() failure that could occur if compiling with OMIT_SHARED_CACHE. (check-in: 3e76a9f2 user: dan tags: experimental)
18:12
Change the name of IOCAP_SAFE_DELETE to IOCAP_UNDELETABLE_WHEN_OPEN. Have the xDeviceCharacteristics() method of the win32 VFS return this flag. (check-in: 5a5ff4e3 user: dan tags: experimental)
17:26
Add tests to pager1.test and pagerfault.test. (check-in: f5df83fd user: dan tags: experimental)
15:10
Change the unix VFS to always allocate shared-memory using a file in the same directory as the database. Otherwise, a chroot might cause different processes to use different shared memory files resulting in database corruption. (check-in: 2241788b user: drh tags: trunk)
11:30
Add tests to pager1.test and pagerfault.test. (check-in: 58c0b5bf user: dan tags: experimental)
2010-06-18
18:59
Add tests to pager1.test. (check-in: 582fca89 user: dan tags: experimental)
16:13
Rearrange some code in OP_JournalMode to avoid incorrect returns from subsequent invocations of "PRAGMA journal_mode" following an IO error. (check-in: ce0a4a9b user: dan tags: experimental)
11:10
Change the implementation of the unix implementation of xAccess() so that it returns 0 (does not exist) to an SQLITE_ACCESS_EXISTS query on a file that exists but is zero bytes in size. (check-in: 077b0e5b user: dan tags: experimental)
2010-06-17
17:05
Apply [b9b11855e8] (the alternate fix to [fc62af4523]) to the trunk. (check-in: 9a949a3a user: dan tags: trunk)
16:44
Merge trunk change [7c3a86b9c7]. (check-in: bd7bc4e0 user: dan tags: experimental)
16:44
A different fix to [fc62af4523]. When changing from journal_mode=PERSIST or TRINCATE to some other rollback mode, delete the journal file only if a RESERVED lock can be obtained on the database file first. (check-in: b9b11855 user: dan tags: experimental)
16:08
Fix the tkt-fc62af4523.test to work around non-randomness of the randomblob() function when in testing mode. (check-in: 7c3a86b9 user: drh tags: trunk)
11:36
Fix bug in journal2.test. (check-in: c1e04f1d user: dan tags: experimental)
10:52
Merge trunk updates with experimental branch. Also add tests to journal2.test. (check-in: 9f6ea1de user: dan tags: experimental)
10:42
Do not delete the journal file in "PRAGMA journal_mode" commands. This fixes [fc62af4523]. (check-in: 1ec74591 user: dan tags: trunk)
10:24
Add test case for [fc62af4523]. (check-in: cccd32c6 user: dan tags: trunk)
06:19
Merge fix [f80c3f922a] with experimental changes. (check-in: 20133e9c user: dan tags: experimental)
02:13
Bug fix: Only trust the database size number at offset 28 if the change counter at offset 24 matches the version number counter at offset 92. This prevents corruption in the case of two applications writing to the database where one is an older version of SQLite and the other is a newer version. (check-in: f80c3f92 user: drh tags: trunk)
2010-06-16
19:04
Experimental change: On systems where it is not possible to unlink a file while one or more processes has it open (i.e. not unix), avoid closing the journal file each time the database is unlocked and reopening it at the start of each transaction. (check-in: bede8c8a user: dan tags: experimental)
12:30
Add extra test cases to pager1.test. (check-in: ad320957 user: dan tags: trunk)
10:55
Fix a memory leak that can occur in os_unix.c if an IO error occurs within the xUnlock method. (check-in: 6c5c04ee user: dan tags: trunk)
2010-06-15
19:07
Rationalize a common pattern in tcl test cases into proc do_multiclient_test. (check-in: efe44564 user: dan tags: trunk)
18:00
Fix a problem introduced into lock2.test by the previous commit. (check-in: c1c9f6fa user: dan tags: trunk)
17:44
Add test file pager1.test, containing tests of inter-process locking in non-wal mode. (check-in: 6e43eed9 user: dan tags: trunk)
14:21
Run extra iterations in wal3.test to ensure test coverage. (check-in: ea80cbe5 user: dan tags: trunk)
14:06
Merge in [2c5e48a485]. Merge in [2c5e48a485]. Merge in [2c5e48a485]. (check-in: 03c0f4fd user: dan tags: trunk)
13:56
Changes to the way tcl test scripts work. No changes to production code. (Closed-Leaf check-in: 2c5e48a4 user: dan tags: experimental)
12:09
Minor tweaks to the interface documentation - adding hyperlinks. (check-in: 07b2fdd1 user: drh tags: trunk)
11:21
Updates to comments and testcase() macros in wal.c. (check-in: 4d90cc0b user: drh tags: trunk)
2010-06-14
18:06
Fix an error in the walfault.test script introduced by the previous check-in. (check-in: a2b9374f user: drh tags: trunk)
18:01
Move the xShmMap method to in between xShmLock and xShmBarrier, since it seems to fit in there logically. (check-in: 58dfd83d user: drh tags: trunk)
17:09
Merge the experimental shared-memory mmap-by-chunk changes into the trunk. (check-in: f295e7ed user: drh tags: trunk)
16:16
Add the new xShmMap (formerly xShmPage) to os_win.c. (check-in: 13e7a824 user: dan tags: experimental)
14:07
Remove xShmGet/Size/Release from the sqlite3_vfs structure. Change the name of xShmPage to xShmMap. Remove some code that is now unused from os_unix.c and some of the test VFS implementations. (check-in: fc0cabc1 user: dan tags: experimental)
11:49
Update some comments in wal.c. No code changes. (check-in: 1ce9c92b user: dan tags: experimental)
11:18
Change the interface to internal function walGetHash() to make it easier to follow. (check-in: 5e8e2e97 user: dan tags: experimental)
10:30
Add the xShmPage method to the "crash" vfs in test6.c. (check-in: 1008f536 user: dan tags: experimental)
07:53
Add some fault-injection tests to improve coverage. (check-in: 37b26d12 user: dan tags: experimental)
2010-06-12
12:02
Fix some problems with handling IO errors on the experimental branch. (check-in: eade8bc2 user: dan tags: experimental)
2010-06-11
19:04
Experimental change to the xShmXXX parts of the VFS interface. (check-in: ca68472d user: dan tags: experimental)
17:01
Refactor and simplify the logic used to change journalmode. (check-in: 95cc3f6f user: drh tags: trunk)
2010-06-10
16:25
Adding original art for the new SQLite logo. (check-in: af353bd8 user: drh tags: trunk)
14:07
Add the SQLITE_TESTCTRL_PGHDRSZ verb for sqlite3_test_control() used to get the size of pcache headers for testing purposes. (check-in: 5d694f04 user: drh tags: trunk)
10:51
Update the test VFS in test_journal.c so that it implements the xCurrentTimeInt64 method. (check-in: ec3b4a7e user: drh tags: trunk)
06:53
Store the MemPage structure in memory following, instead of preceding, the page data for cached pages. This reduces the likelihood of a corrupt database page image causing SQLite to read past the end of a buffer. (check-in: 0ce42e76 user: dan tags: trunk)
01:07
Remove a condition that must always be true. Replace it with an assert(). (check-in: 7abcd54e user: drh tags: trunk)
2010-06-09
19:01
Fix test script problems causing errors in the "inmemory_journal" permutations. (check-in: ea05b7f9 user: dan tags: trunk)
16:58
When restarting (wrapping) a log file, set all unused aReadMark[] slots to READMARK_NOT_USED instead of 0. Setting them to 0 does not cause a problem, but may cause SQLite to obtain and release a few more file locks than would otherwise be necessary. (check-in: 0797b10c user: dan tags: trunk)
15:47
Fix for ticket [f973c7ac31]. (check-in: 6eb058dd user: dan tags: trunk)
14:45
Shift the meaning of aReadMark[] back so that +1 offset from mxFrame is removed. Add the new READMARK_NOT_USED value (0xffffffff) instead of zero to signal an aReadMark[] that is not in use. (check-in: c576827d user: drh tags: trunk)
11:28
Simpler fix for the race condition also fixed by [7c102c7b5f] (check-in: 3c2de820 user: dan tags: trunk)
11:02
Fix for race condition in WAL locking code. (Closed-Leaf check-in: 7c102c7b user: dan tags: mistake)
2010-06-08
15:50
Close database opened by tester.tcl when it is sourced in all.test. Because test scripts are now run in slave interpreters, this connection was not being closed by the first script run as it was previously. (check-in: b072e9f6 user: dan tags: trunk)
15:16
Changes to wal3.test to support small default cache size settings. And builds that create autovacuum databases by default. (check-in: ac4cc257 user: dan tags: trunk)
2010-06-07
19:26
In os_unix.c, call munmap() to unmap a shared-memory region prior to closing the associated file descriptor. (check-in: 95cc976f user: dan tags: trunk)
17:47
Change all.test, quick.test and permutations.test so that they use a separate interpreter for each test file. (check-in: 7c33eb5a user: dan tags: trunk)
14:28
Refactor some of the global variables and commands used by tester.tcl. (check-in: c2edf8e1 user: dan tags: trunk)
06:11
Add a couple of extra coverage tests for wal.c. (check-in: cfe60254 user: dan tags: trunk)
2010-06-05
19:18
Add further test cases for the logic in sqlite3WalBeginReadTransaction(). (check-in: a49713db user: dan tags: trunk)
18:34
Clarify the purpose of a test for a race-condition in sqlite3WalBeginReadTransaction(). (check-in: c041c6a9 user: dan tags: trunk)
18:12
Remove a condition from sqlite3WalRead() that is unreachable as of the changes to clear entries out of the wal-index hash tables on transaction or savepoint rollback. (check-in: 39420473 user: dan tags: trunk)
14:42
Mark a condition in wal.c as ALWAYS(). (check-in: 3fe0cc78 user: dan tags: trunk)
11:53
Add extra coverage test cases for wal.c. No changes to production code. (check-in: f9d4ae0e user: dan tags: trunk)
2010-06-04
18:38
Clarify an assert in sqlite3WalExclusiveMode(). (check-in: 25585069 user: dan tags: trunk)
17:16
Remove an unnecessary branch from wal.c. (check-in: 8e54786c user: dan tags: trunk)
15:59
Add an English language error message to corresponding to SQLITE_PROTOCOL. "locking protocol". (check-in: ca327e32 user: dan tags: trunk)
12:22
Add test for the code that detects an inconsistent pair of wal-index headers to wal2.test. (check-in: 157feba1 user: dan tags: trunk)
11:56
If an attempt to sync the database file as part of a checkpoint fails, do not update the shared "nBackfill" variable. Otherwise, another process could wrap the log and overwrite content before it is synced into the database. (check-in: b813233d user: dan tags: trunk)
10:37
Fix a problem where an SQLITE_BUSY in the checkpoint code was being treated as an IO error (abandoning, instead of just limiting, the checkpoint). (check-in: 02c4040c user: dan tags: trunk)
2010-06-03
19:10
Fix another problem in test_vfs.c. (check-in: df7d5989 user: dan tags: trunk)
18:20
Have test_vfs.c simulate IO errors in xShmLock. (check-in: fcbf7cf1 user: dan tags: trunk)
18:02
Performance fix for winShmClose(). (check-in: ed7774de user: drh tags: trunk)
16:58
Add extra tests for removing elements from wal-index hash tables as part of a rollback. (check-in: af3e598a user: dan tags: trunk)
12:35
Delay opening the sub-journal until SQLite actually needs to write data to it. (check-in: c43deb33 user: dan tags: trunk)
12:09
Remove global variables when compiled with SQLITE_OMIT_WSD (check-in: dd10a547 user: drh tags: trunk)
09:25
Enhancements to test_vfs.c and walfault.test. (check-in: ac0de2f3 user: dan tags: trunk)
09:17
If an error (OOM or SQLITE_FULL error) occurs while executing an SQL statement and a statement-transaction is automatically rolled back as a result, if a second error occurs during the statement rollback do a full transaction rollback instead. Otherwise the client can be left with an inconsistent cache. This can affect both WAL and rollback modes. (check-in: eb80ddc6 user: dan tags: trunk)
09:01
If a malloc fails while allocating a savepoint object at the pager level, do not try to roll that savepoint back later on. (check-in: 91cb08ff user: dan tags: trunk)
2010-06-02
20:38
When a lock fails due to an I/O error (not an SQLITE_BUSY) then the checkpoint should fail. (check-in: c6eb0a27 user: drh tags: trunk)
18:59
Fix a problem with rolling back to a savepoint opened before the writer decided to wrap the log file. (check-in: 6b4aed6a user: dan tags: trunk)
17:15
If an error occurs while writing frames to the log to commit a transaction, do not mark the pages as clean in the cache. Otherwise, the subsequent rollback does not roll them back (leaving the client to continue with a cache that makes it appear that the transaction was committed - inconsistent with the database on disk). (check-in: cb571c1b user: dan tags: trunk)
16:40
Added implementation of vfslog_time() for Windows testing. (check-in: b3109f85 user: shaneh tags: trunk)
16:39
Updated wal2.test for windows testing. (check-in: c3606f39 user: shaneh tags: trunk)
15:59
Make sure the directory used by os_unix.c for shared-memory files is always the same, regardless of individual client permissions and environment variable settings. (check-in: f97bd520 user: drh tags: trunk)
15:43
When walTryBeginRead() encounters an I/O error trying to set a lock (as opposed to SQLITE_BUSY) be sure to propagate that error back up the call stack. (check-in: aa2c2b67 user: drh tags: trunk)
14:45
Changes to make WAL more robust against SHM locking failures and OOM errors. (check-in: ebf40413 user: drh tags: trunk)
14:43
In the rowhash.test, make sure global variables are cleared prior to use. (check-in: 28efe0a4 user: drh tags: trunk)
12:58
Undo one of the "const" markers from the previous check-in because the value needs to be changable, even if it is not actually ever changed in the current implementation. (check-in: c24ac356 user: drh tags: trunk)
05:53
Add some 'const' markers to static data that is really constant. (check-in: e7073e23 user: dan tags: trunk)
2010-06-01
21:02
The shared-memory used by WAL on linux now really is shared memory in /dev/shm. On other unix flavors, the file is in a temporary directory rather than in the same directory as the database. (check-in: fc18c4aa user: drh tags: trunk)
19:15
Changes to the way faults are injected into xShmXXX VFS calls. (check-in: 716d99f3 user: dan tags: trunk)
17:46
Change the OOM and IO error test cases in walfault.test so that each test case runs both types of error simulation. (check-in: b627e153 user: dan tags: trunk)
15:44
Delay the decision to restart the log file until data is actually ready to be written to the log file (instead of at the start of a write transaction). (check-in: b1abfaaf user: dan tags: trunk)
15:24
The incremental checkpoint feature is not perfect yet, but it is working well enough to merge it into the trunk. (check-in: 1d3e569e user: drh tags: trunk)
14:30
Merge with [15abbc3416]. (Closed-Leaf check-in: f4b9003a user: dan tags: wal-incr-ckpt)
14:12
If an attempt to get a read-lock on the WAL fails with SQLITE_BUSY_RECOVER, call the busy-handler at the btree level. (check-in: ce644965 user: dan tags: wal-incr-ckpt)
13:17
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 tags: wal-incr-ckpt)
12:58
Fix an off-by-one boundary-value issue in walCleanupHash(). (check-in: f039552e user: drh tags: wal-incr-ckpt)
11:08
Do not hold the shared-memory mutex in os_unix.c if returning NULL. (check-in: 9622dd46 user: dan tags: wal-incr-ckpt)
10:44
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 tags: wal-incr-ckpt)
07:51
Fixes to the test cases in wal2.test. (check-in: cd5fbcbc user: dan tags: wal-incr-ckpt)
01:08
Comment edits and cleanup in wal.c. No functional code changes. (check-in: e8e666ab user: drh tags: wal-incr-ckpt)
00:28
Attempt to get the filectrl.test script running. (check-in: e46a8f2b user: drh tags: wal-incr-ckpt)
00:03
Fix os_unix.c so that it will compile and build on a Mac. (check-in: bc707c83 user: drh tags: wal-incr-ckpt)
2010-05-31
20:28
Fix issues with locking_mode=EXCLUSIVE in WAL. (check-in: 8deba0ce user: drh tags: wal-incr-ckpt)
18:24
Add an "isInit" field in the wal-index header that must be non-zero for a valid header. Use this to detect an uninitialized wal-index. (check-in: a16fde19 user: drh tags: wal-incr-ckpt)
16:56
Fix an inconsistent #ifdef in wal.c. Fix os_unix.c so that it does not allow moving an SHM lock directly exclusive to shared without going through unlocked. (check-in: 552658da user: drh tags: wal-incr-ckpt)
16:41
Avoid dropping the checkpoint lock after a recovery run as a precursor to a checkpoint operation. (check-in: cc25cfa0 user: dan tags: wal-incr-ckpt)
16:17
Zero the checkpoint header as the last step of successful WAL recovery. Avoid an unnecessary lock/unlock in WalBeginReadTransaction. (check-in: db3509c5 user: dan tags: wal-incr-ckpt)
16:10
Get the new xShmLock interface design working on os_win.c. (check-in: 149a7082 user: drh tags: wal-incr-ckpt)
14:39
Make sure WAL alway requests enough shared-memory space. (check-in: 138f1283 user: drh tags: wal-incr-ckpt)
14:28
Remove the tests that enable tracing based on the existance of the "vdbe_*" files when in SQLITE_DEBUG mode. (check-in: cdbb4e7c user: drh tags: wal-incr-ckpt)
14:18
Update another test case in wal.test. (check-in: 99fde69e user: dan tags: wal-incr-ckpt)
13:11
Change WAL test cases to account for the improved concurrency in the new checkpoint logic. (check-in: 2d6f2485 user: drh tags: wal-incr-ckpt)
12:30
Do not fail a checkpoint just because active readers prevent backfill. (check-in: 9aa4243e user: drh tags: wal-incr-ckpt)
12:15
Add WALTRACE() macros to help with debugging and analysis. (check-in: 765c3318 user: drh tags: wal-incr-ckpt)
12:02
Another minor fix to checkpoint on the WAL branch. (check-in: 853f1e3f user: dan tags: wal-incr-ckpt)
11:39
Fix a bug in checkpoint introduced by [181ceb32ea]. (check-in: b499dbc8 user: dan tags: wal-incr-ckpt)
11:16
Fix some asserts and other things in the new WAL branch. (check-in: 181ceb32 user: dan tags: wal-incr-ckpt)
06:38
Changes to the way one of the WAL/OOM tests works. (check-in: 15abbc34 user: dan tags: trunk)
01:41
WAL runs but quickly deadlocks. (check-in: ace58acb user: drh tags: wal-incr-ckpt)
2010-05-30
19:55
Initial code for incremental checkpoint in WAL mode. This check-in compiles on unix and runs as long as you do not engage WAL mode. WAL mode crashes and burns. Consider this check-in a baseline implementation for getting the new capability up and running. (check-in: ef3ba7a1 user: drh tags: wal-incr-ckpt)
2010-05-29
08:40
Add tests to fkey2.test to check that ON CONFLICT clauses do not affect SQLite's behaviour when an FK constraint is violated. (check-in: e9e5b100 user: dan tags: trunk)
06:18
Minor changes to checksum related test cases. (check-in: 60c22bde user: dan tags: trunk)
2010-05-28
11:16
Add a test to walcksum.test to stress the checksum calculation. (check-in: 778d0c17 user: dan tags: trunk)
2010-05-26
17:31
Make sure the wal-index mapping is always large enough to cover the entire active area of the wal-index. (check-in: 42705bab user: drh tags: trunk)
15:06
Change the semantics of xShmGet() such that it will never increase the size of shared memory. xShmSize() must be used to grow the size of shared memory. A shared memory segment size cannot be shrunk (except by dropping it). (check-in: 72de0073 user: drh tags: trunk)
2010-05-25
15:53
Updated header comments in wal.c. No functional code changes. (check-in: 687632a6 user: drh tags: trunk)
15:23
Add a busy-handler to a test case in walthread.test to prevent errors. (check-in: d3d348aa user: dan tags: trunk)
13:49
Modify walcrash2.test so that it works with DEFAULT_AUTOVACUUM=1. (check-in: 77438882 user: dan tags: trunk)
13:40
Update header comments in wal.c to correctly describe the WAL file format. Update the locking region offsets in os_unix.c and os_win.c and add assert() statement to verify that the locking region offsets are correct. (check-in: 40030c07 user: drh tags: trunk)
10:50
If a writer exits unexpectedly in the middle of a transaction, have the following writer remove any wal-index hash-table entries left by the interrupted transaction. (check-in: ed77556a user: dan tags: trunk)
02:24
Remove unreachable code associated with WAL from the pager. (check-in: 54c1718e user: drh tags: trunk)
2010-05-24
20:27
OOM errors during an auto-checkpoint are benign. (check-in: 3d252ce5 user: drh tags: trunk)
20:24
Remove the walmode.test case from the inmemory_journal test of permutations.test. (check-in: 27ba9c21 user: drh tags: trunk)
17:00
Fix the wal2.test script so that it works in auto_vacuum mode. (check-in: 6a818afb user: drh tags: trunk)
13:57
Change the checksum used in WAL files so that each frames checksum depends on the content of the WAL header and all frame headers and content up to and including the frame to which the checksum is attached. (check-in: 8a53f12c user: dan tags: trunk)
13:28
Make sure a WAL frame of all zeros is detected as an invalid frame. (check-in: 02d99ad4 user: drh tags: trunk)
12:34
Fix up test_osinst.c to work with SQLITE_OMIT_VIRTUALTABLE. (check-in: 51fd3815 user: drh tags: trunk)
10:39
Change the WAL file format to support two kinds of checksums - one that is fast to calculate on little-endian architectures and another that is fast on big-endian architectures. A flag in the wal-header indicates which the file uses. (check-in: 65ba804d user: dan tags: trunk)
2010-05-22
08:22
Add a couple of missing methods to test_osinst.c.. (check-in: 5c9e9c06 user: dan tags: trunk)
00:55
Add several EXPENSIVE_ASSERT code blocks to validate the wal-index hash table. Fix the bugs that these code blocks fine. Rename walClearHash() to walCleanupHash() and simplify its interface. (check-in: 7aade899 user: drh tags: trunk)
2010-05-21
19:15
Fix another bug in walClearHash(). (check-in: 40f80ffe user: dan tags: trunk)
18:24
Comment out the SQLITE_FCNTL_SIZE_HINT from os_unix.c since it does not seem to provide any performance gain there. (check-in: 7d01309d user: drh tags: trunk)
16:23
Correct an off-by-one bug in the previous commit. (check-in: 75a1130d user: dan tags: trunk)
15:31
Remove entries from wal-index hash tables when a rollback or savepoint rollback occurs. (check-in: 36795c2b user: dan tags: trunk)
13:16
Fix the wal-index header read routine so that it correctly detects a zero header as being malformed and in need of a wal-index rebuild. (check-in: 1a4eb3a3 user: drh tags: trunk)
2010-05-20
23:51
Add a new xShmBarrier method to the VFS - a shared-memory fence operation. Implement the same in both unix and win32. Use it to make the WAL subsystem more robust. (check-in: 1bd011c9 user: drh tags: trunk)
21:21
Make use of the extra information in the WAL header and frame header to enhance robustness. (check-in: 9580ecb7 user: drh tags: trunk)
16:45
Convert the wal-header and frame-header to 24 bytes. Extra information in both headers is designed to enhance robustness after crashes, though the extra information is currently unused. This is a snapshot of a work in progress. (check-in: 66970643 user: drh tags: trunk)
2010-05-19
23:41
Merge WIN32 WAL support into trunk. Still some issues with locking to resolve. (check-in: 43377663 user: shaneh tags: trunk)
19:39
Add the SQLITE_FCNTL_SIZE_HINT to the os_win.c VFS. (check-in: 9894118d user: drh tags: trunk)
19:26
Add the SQLITE_FCNTL_SIZE_HINT operator to sqlite3_file_control() and use it to give the VFS hints about the ultimate size of a database file when the file is growing. (check-in: 2b7e3b4a user: drh tags: trunk)
19:09
Fix a bug in the new checkpoint computation. Also update the checkpoint algorithm in the test scripts to align with the new implementation. (check-in: 8b6056f2 user: drh tags: trunk)
18:08
Revise the checksumming algorithm in wal.c. More variable refactoring. (check-in: 542b90eb user: drh tags: trunk)
17:49
Refactoring some variable names in wal.c. (check-in: 1d201ff5 user: drh tags: trunk)
01:53
Add a large comment to wal.c describing the WAL and wal-index file formats. (check-in: a71a22b5 user: drh tags: trunk)
2010-05-18
23:29
Update the wal-index hash format so that hash-table space is reused following a rollback, thus preventing hash table overflows. Add assert()s to verify that hash tables do not overfill. Further refactoring of the wal-index code. (check-in: ada9a8c7 user: drh tags: trunk)
18:01
Refactoring of the WalIterator implementation. (check-in: b5b60fdc user: drh tags: trunk)
13:27
Mark the shared-memory in the WAL implementation as volatile. (check-in: 0a678790 user: drh tags: trunk)
12:56
Comment clarifications in wal.c. (check-in: a029be10 user: drh tags: trunk)
2010-05-17
20:16
Remove an unreachable test from wal.c. (check-in: 7162c456 user: drh tags: trunk)
2010-05-15
10:24
Add a note to the documentation of sqlite3_wal_hook() to say not to return SQLITE_ROW or SQLITE_DONE. Or any other value that is not a valid SQLite error code. (check-in: 2f0b6cbf user: dan tags: trunk)
01:09
Silently ignore errors trying to set the default journal_mode while doing an ATTACH. (check-in: b9af4ad2 user: drh tags: trunk)
2010-05-14
20:15
Fix a typo that (by bad luck) was not a syntax error but which caused some important lines of code to be skipped when SQLITE_DEBUG was not used. (check-in: 9ef99d97 user: drh tags: trunk)
19:24
Make sure the value of an INTEGER PRIMARY KEY column supplied to triggers and especially to FK constraints really contains the ROWID and not the NULL that is stored in the column itself. Ticket [dd08e5a988d00dec]. (check-in: 636f8609 user: drh tags: trunk)
16:34
Pull in all the latest changes from the trunk. Update the win32 SHM methods to work with the new interface design. (Closed-Leaf check-in: 4b69f2cd user: drh tags: wal-win32)
14:52
Simplifications to the SHM implementation in os_unix.c, taking advantage of the removal of the LinuxThreads mess. (check-in: d1debe5d user: drh tags: trunk)
12:43
Simplify os_unix.c by removing support for LinuxThreads. Linux systems must either use NPTL or else not share database connections across threads. (check-in: e294b696 user: drh tags: trunk)
11:30
Change the OSTRACEn() macro to OSTRACE(()). Also rename some internal fields and variables in os_unix.c to be more meaningful and searchable. (check-in: 5fe529f2 user: drh tags: trunk)
10:43
Fix test_osinst.c so that it does not depend on gettimeofday() unless SQLITE_OS_UNIX is defined and NO_GETTOD is not defined. (check-in: 2a4014b7 user: dan tags: trunk)
08:39
Add xShmXXX methods to test_osinst.c. (check-in: b8a9b37a user: dan tags: trunk)
2010-05-13
20:19
Make debugging elements of the sqlite3_mutex object volatile and make them only appear when compiling with SQLITE_DEBUG. Ticket [51914f6acd2cb462]. (check-in: e823c60c user: drh tags: trunk)
15:44
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 tags: trunk)
09:40
Remerge mistaken test_osinst.c changes. (check-in: e8c10d3c user: dan tags: trunk)
09:32
Fix mistake in test_osinst.c. (Closed-Leaf check-in: 4c3e1378 user: dan tags: mistake)
09:11
Make sure xShmGet is never called while already holding the shared-memory segment. (check-in: 92ebdbc5 user: drh tags: trunk)
08:53
The refactored of VFS SHM primitives are now working so merge the wal-refactor branch back into the trunk. (check-in: bce21c18 user: drh tags: trunk)
08:33
Change the xShmSize() implementation in os_unix.c so that it will only increase and never decrease the size of a shared-memory segment. (Closed-Leaf check-in: 149d2ae4 user: drh tags: wal-refactor)
07:08
Fix for a segfault that can follow a malloc failure. (check-in: 3cab9022 user: dan tags: wal-refactor)
06:19
Modify the VFS in test_vfs.c to match the refactoring of the xShmXXX methods. (check-in: 25e72f81 user: dan tags: wal-refactor)
2010-05-12
19:02
(Moved to the mistake branch due to compile errors in test_osinst.c.) Change the vfs instrumentation code in test_osinst.c to make it easier to deploy. Add a vtab implementation for reading the binary log file format. (check-in: ee13c884 user: dan tags: mistake)
18:30
Fix for the test_devsym.c test module for the VFS-SHM refactoring. (check-in: 49d62933 user: drh tags: wal-refactor)
18:10
A couple simple fixes to get wal.test mostly working. (check-in: c7445812 user: drh tags: wal-refactor)
18:01
Refactoring the VFS-SHM methods used by WAL. This version compiles and runs non-WAL test cases but crashes and burns on wal.test. (check-in: 2b00152c user: drh tags: wal-refactor)
17:14
Updates to WAL support in os_win.c: pulled in latest changes from src/os_unix.c; updated tracing; misc. improvements. (check-in: 76504726 user: shaneh tags: wal-win32)
13:50
Remove the OP_Variable optimization of check-in [48b77b04935d894] since it can lead to malfunctions as described in ticket [26ff0c82d1e90]. (check-in: 7838163d user: drh tags: trunk)
06:54
Remove a branch made redundant by the earlier exclusive-mode changes. (check-in: c501b2ed user: dan tags: trunk)
2010-05-11
16:29
Have os_unix.c use the suffix "-wal-index" for wal-index files instead of "-wal-inde". (check-in: 885e854e user: dan tags: trunk)
14:00
When an attempt to change journal_mode fails due to locks, be sure to leave internal structures in a consistent state. (check-in: cf3d1e0b user: drh tags: trunk)
12:19
Changes so that WAL and exclusive-locking mode work together. (check-in: 71e7b1cf user: dan tags: trunk)
02:49
Initial port of WAL VFS support from os_unix.c to os_win.c. (check-in: 111ad59f user: shaneh tags: wal-win32)
02:46
Updates to WAL TCL test scripts to support running on Windows. (check-in: 6a563080 user: shaneh tags: trunk)
2010-05-10
19:51
Fix an off-by-one error while constructing the name of the mmap file for the wal-index under os_unix.c. (check-in: 6e3735f7 user: drh tags: trunk)
18:10
Merge [96d6eaf4d2] and [40b0a6357b]. (check-in: c67756c4 user: dan tags: trunk)
17:29
Fix an uninitialized variable in OSX proxy locking. (check-in: 96d6eaf4 user: drh tags: trunk)
14:46
Modify the format of the wal-index to use a hash table to index log file segments. (check-in: 40b0a635 user: dan tags: trunk)
14:10
If an ATTACH command fails due to OP_JournalMode but still attaches the database, make sure VACUUM still detaches it when done. (check-in: 6ecdc7ba user: drh tags: trunk)
11:20
Enhance the OP_JournalMode opcode with an ignore-errors option and use that option the ATTACH command. (check-in: 0bdea4cf user: drh tags: trunk)
2010-05-07
20:34
When running a checkpoint while in locking_mode=EXCLUSIVE, be sure to move the wal-index lock to UNLOCK from READ prior to promoting to CHECKPOINT. (check-in: be114bdf user: drh tags: trunk)
20:02
Change the xShmOpen() method of the VFS to take the database file name as its argument, not the WAL file name. Also fix some unrelated compiler warnings. (check-in: a65c2939 user: drh tags: trunk)
18:23
Additional tweaks to API documentation. No functional code changes. (check-in: e1230782 user: drh tags: trunk)
13:57
Updates to documentation on the C interfaces supporting WAL. No functional changes to code. (check-in: 681ba20c user: drh tags: trunk)
13:52
Fix a recently introduced problem in wal.test. (check-in: 79b52d0f user: dan tags: trunk)
12:49
Change wal.test and walhook.test so that they work with DEFAULT_AUTOVACUUM=1 builds. (check-in: 4cde9290 user: dan tags: trunk)
09:43
Test another IO error case in wal.c. (check-in: 8b3b5ab8 user: dan tags: trunk)
06:59
Fix a problem with checkpointing large log files created by an external process. (check-in: 8f94bde5 user: dan tags: trunk)
05:46
Since walIndexTryHdr() can no longer encounter any error conditions, change tehe function signature so that it does not return an error code. This removes unreachable branches from other code. (check-in: 061a282c user: dan tags: trunk)
00:28
Another attempt to fix permutations.test so that it excludes WAL tests from the journaltest permutation. (check-in: 58c40442 user: drh tags: trunk)
2010-05-06
22:21
Remove savepoint6.test from the set of tests run by journaltest since savepoint6.test uses journal_mode=WAL. (check-in: 811b45a9 user: drh tags: trunk)
21:37
The PRAGMA journal_mode=WAL; command now makes WAL the default journal mode for new databases added with ATTACH, so the behavior is consistent with the other journal modes. (check-in: c3520460 user: drh tags: trunk)
20:19
Make sure to do a clean shutdown of the library upon existing the shell in order to remove WAL files. (check-in: c1762dda user: drh tags: trunk)
19:55
Exclude all WAL tests from the journaltest permutation. (check-in: 46c97d7e user: drh tags: trunk)
19:20
Changes to support SQLITE_OMIT_WAL. (check-in: 32a8501d user: shaneh tags: trunk)
19:04
Updates to the VFS SHM locking documentation. (check-in: 9927ce42 user: drh tags: trunk)
18:48
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 tags: trunk)
18:27
If recovery is run before a checkpoint, change back to a CHECKPOINT lock before performing the actual checkpoint. (check-in: dc98ee16 user: dan tags: trunk)
18:04
Only pass -1 as the size parameter to xShmGet when the caller does not care what size mapping is returned. Only call xShmSize when the underlying allocation (not the mapping) should be resized. (check-in: 637f51dd user: dan tags: trunk)
17:28
Fix a bug whereby an old snapshot could be checkpointed (and subsequent transactions discarded) if the last connection to disconnect from a WAL database happended to be holding an out-of-date wal-index header. (check-in: d0c0034b user: dan tags: trunk)
16:06
After throwing an error to say that one cannot change into WAL mode within a tranactions, do not then go and change into WAL mode. (check-in: 56a17dae user: drh tags: trunk)
15:56
Further coverage tests. (check-in: 98a9713e user: dan tags: trunk)
15:36
Update configure scripts for WAL support. (check-in: 2edc5129 user: shaneh tags: trunk)
14:42
Add tests to cover a couple of branches in wal.c. (check-in: 429f437f user: dan tags: trunk)
13:36
Unset a tcl variable before reusing it in wal.test. (check-in: e83efb23 user: dan tags: trunk)
12:15
Add tests for some lock-contention cases. (check-in: f0fcb9c9 user: dan tags: trunk)
11:56
Remove the noop-mutex implementations of mutex_held() and mutex_notheld() since they are both unreachable. (check-in: 6767b62a user: drh tags: trunk)
11:55
Add two text files containing pager design notes to the doc/ subfolder. (check-in: ed817fc8 user: drh tags: trunk)
11:32
Add test cases to test the libraries handling of corrupt wal-index headers. (check-in: 9465b267 user: dan tags: trunk)
07:43
Add tests for handling errors returned by xShm VFS methods. (check-in: fbbcacb1 user: dan tags: trunk)
2010-05-05
20:00
Change the behavior of the sqlite3_wal_hook() callback. It should now return SQLITE_OK or an error code and the error code is propagated back up the stack. If a checkpoint is desired, the callback should invoke sqlite3_wal_callback() itself. (check-in: 1b14195e user: drh tags: trunk)
19:09
Further simplifications to the SHM locking logic. Remove the SQLITE_SHM_QUERY option. Unify the WRITE to READ and RECOVER to READ transitions. (check-in: e9bfa6e4 user: drh tags: trunk)
19:04
Test the handling of errors returned by the xShmXXX() APIs. (check-in: 72663123 user: dan tags: trunk)
18:46
Do not compare page sizes on source and destination of backup until transactions are started and the page sizes are locked. This is a fix to check-in [7bd44794c4]. (check-in: ec715778 user: drh tags: trunk)
18:20
Simplifications to the SHM locking implementation in os_unix.c. (check-in: 9de05bfb user: drh tags: trunk)
16:23
Prohibit backup if the destination is using WAL and has a different page size from the source. (check-in: 7bd44794 user: drh tags: trunk)
15:33
When closing a WAL database, if the exclusive lock on the database file is obtained and the database successfully checkpointed, delete the wal-index file from the file system. (check-in: 2ac5d96c user: dan tags: trunk)
04:11
Make sure the page size of the main database is fixed following a failed VACUUM attempt. Otherwise, two consecutive failed VACUUM attempts with attempted page_size changes on encrypted or WAL databases could result in database corruption. (check-in: 208e7d5d user: drh tags: trunk)
03:39
Do not attempt to modify the page_size when running VACUUM on a WAL database. (check-in: 58a1a59b user: drh tags: trunk)
00:22
Get the previous mutex fix working with SQLITE_DEBUG and with the amalgamation. (check-in: df19928f user: drh tags: trunk)
00:05
When the in single-threaded mode, the sqlite3_mutex_alloc() interface still returns a non-NULL value. The mutex doesn't do anything, but it tests non-NULL. This way, extensions (or VFSes) that use sqlite3_mutex_alloc() can tell the difference between an OOM error and mutexes being disabled. (check-in: 451fd175 user: drh tags: trunk)
2010-05-04
18:50
When sqlite3PagerPagecount() is called without any locks, always return the physical file size, not the logical file size. (check-in: 4016b422 user: drh tags: trunk)
17:38
Be sure to release all wal-index locks before closing the wal-index. (check-in: b15b67fa user: drh tags: trunk)
17:20
Relax an over-zealous assert() in sqlite3WalUndo(). (check-in: 8f9d22d5 user: drh tags: trunk)
16:33
Take care not to invoke the xShmClose method of the VFS with a NULL shared memory object. (check-in: 1465d384 user: drh tags: trunk)
15:20
Add a test case to verify that log files containing pages that are not a power-of-two bytes in size are handled correctly. (check-in: c2bf693f user: dan tags: trunk)
14:47
Fix problems with recovering wal files that use a page-size other than the default. (check-in: 1a391f3c user: dan tags: trunk)
11:06
Fix a typo in walfault.test. (check-in: 232dbe8e user: dan tags: trunk)
10:36
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 tags: trunk)
2010-05-03
19:20
Unset some global TCL variables prior to use in test where prior tests can have those same variables set to an array value. (check-in: 49bef00e user: drh tags: trunk)
19:17
Fix a bug in the computation of the current time for the alternative CURRENT_TIMESTAMP functions used when SQLITE_OMIT_DATETIME is defined. (check-in: e7ded46b user: drh tags: trunk)
18:51
Documentation stubs for sqlite3_wal_autocheckpoint and sqlite3_wal_checkpoint. (check-in: 31376242 user: drh tags: trunk)
18:22
Fix a bug in the xCurrentTime() method of the os_unix.c VFS. (check-in: 551df11a user: drh tags: trunk)
18:01
Add a test to simulate an OOM during log recovery to walfault.test. (check-in: 7ed85e87 user: dan tags: trunk)
17:24
Clear global variable "seconds" before use in walthread.test. (check-in: a35551a5 user: drh tags: trunk)
17:18
Fix a couple of errors in WAL code that can occur in an OOM situation. (check-in: 9d3f3736 user: dan tags: trunk)
16:36
Update the crash-test VFS in test6.c to pass-through the shared-memory methods to the real underlying VFS. This fixes the walcrash.test script. (check-in: ea09ff37 user: drh tags: trunk)
16:30
Change the VFS definition so that all methods take a VFS object pointer as their first parameter. (check-in: 43b5b07f user: drh tags: trunk)
15:58
Have sqlite3_wal_checkpoint() handle a zero-length string in the same way as a NULL pointer. Fix "PRAGMA wal_checkpoint" so that it checkpoints all attached databases. (check-in: 7fecd21f user: dan tags: trunk)
14:32
Use VFS method xCurrentTimeInt64 instead of xCurrentTime when it is available. Provide an implementation of xCurrentTimeInt64 for os_unix.c. (check-in: ab77b3ae user: drh tags: trunk)
14:08
Merge the write-ahead-logging changes into the trunk. (check-in: de9ae443 user: drh tags: trunk)
14:05
If the sqlite3_wal_checkpoint() API is passed a NULL pointer in place of a database name, attempt to checkpoint all attached databases. (Closed-Leaf check-in: 27a5c09c user: dan tags: wal)
13:37
Make sure the mutex is held while calling sqlite3ApiExit() in sqlite3_wal_checkpoint(). Other cleanup of WAL logic. (check-in: 11a85b82 user: drh tags: wal)
12:14
Have sqlite3_wal_checkpoint() populate the database handle error message and error code (as returned by sqlite3_errmsg() and sqlite3_errcode()). (check-in: ff234cf5 user: dan tags: wal)
11:05
Add the "PRAGMA wal_autocheckpoint" command. Rename "PRAGMA checkpoint" to "PRAGMA wal_checkpoint". (check-in: 714e5947 user: dan tags: wal)
08:19
Merge two wal leaves. (check-in: 23c0e6c3 user: dan tags: wal)
08:04
Add the sqlite3_wal_checkpoint() and sqlite3_wal_autocheckpoint() APIs. (check-in: 9803196d user: dan tags: wal)
2010-05-01
20:17
Change the SHM interface so that it does not take the name of the shared object but rather the name of the WAL file and derives its own name from that. Remove the xShmDelete method from the VFS and replace it with a delete flag on xShmClose. (check-in: 94dea5f9 user: drh tags: wal)
18:23
Remove the xShmPush and xShmPull methods from the VFS. (check-in: 69e07fdb user: drh tags: wal)
17:57
Define an invariant to guarantee deadlock-free operation of SHM in os_unix.c and check that invariant with assert() statements. (check-in: 6af2dca7 user: drh tags: wal)
17:50
Rework mutexes on the SHM implemention for os_unix to avoid a deadlock during WAL recovery. (check-in: 1a0f69be user: drh tags: wal)
16:40
Support compile-time option SQLITE_OMIT_WAL, for building without WAL support. (check-in: 9b230c43 user: dan tags: wal)
11:33
Fix a typo in the walmode.test test script introducted yesterday. (check-in: dcabc90c user: drh tags: wal)
11:19
Fix the sqlite3_mutex_alloc() interface to return NULL (not segfault) when operating in threadsafe mode. (This is a general-purpose bug fix which really ought to be ported to trunk.) (check-in: 64840a3c user: drh tags: wal)
08:30
Add test case demonstrating deadlock during recovery of very large log files. No fix yet. (check-in: 63ea318e user: dan tags: wal)
00:59
Do not allow journal_mode=WAL if the underlying VFS does not support xShmOpen. (check-in: d1fcccec user: drh tags: wal)
2010-04-30
22:28
Merge in changes from the trunk. (check-in: 76bf0eee user: drh tags: wal)
21:03
Avoid assertion faults in queries using indices with redundant columns. Ticket [3dbdcdb14e7f41]. (check-in: 946e06cd user: drh tags: trunk)
17:47
Change the SHM VFS logic in os_unix.c so that it does not hold an exclusive lock n the mapped memory when also holding a CHECKPOINT lock. This improves concurrency between readers and checkpointers. (check-in: 8660cda6 user: drh tags: wal)
17:28
Remove some obsolete debugging parameters. (check-in: a012aed4 user: drh tags: wal)
17:05
Fix a problem with resizing the wal-index mapping after the mapping has been extended by an external process. (check-in: 79d356fe user: dan tags: wal)
16:50
Fix a problem with calculating the required size of the wal-index when appending frames. (check-in: 9526b111 user: dan tags: wal)
16:48
In the debugging output for SHM-LOCK in os_unix.c, use symbolic names for the lock states rather than raw numbers. (check-in: 2afc33de user: drh tags: wal)
16:41
Fix a problem in the previous commit. Both unixShm.lockState and unixShm.readLock should be set to READ when downgrading from a WRITE to a READ lock (check-in: 90119fec user: dan tags: wal)
16:38
Fix a bug whereby upgrading from a READ_FULL to a WRITE lock, and then back to a read lock was dropping all WAL locks. (check-in: 55f5af5e user: dan tags: wal)
16:24
Reapply commits [837d82a929] and [c05e7dca17] that were accidentally overwritten. (check-in: 598de527 user: dan tags: wal)
16:19
Add xShmXXX() methods to the test VFS in test_devsym.test. (check-in: 1d203424 user: dan tags: wal)
16:12
Correctly record the fact that the SHM lock reached PENDING if it did so but failed to reach CHECKPOINT. (check-in: d9250e84 user: drh tags: wal)
15:54
Fix a couple uninitialized variables in the xShmLock method of the unix VFS. Improved debugging logic for xShmLock. (check-in: 69567c5f user: drh tags: wal)
15:49
When closing a WAL connection, attempt an exclusive lock on the database file. If the lock is obtained, checkpoint the database and delete the wal and wal-index files. (check-in: c05e7dca user: dan tags: wal)
15:24
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 tags: wal)
14:39
Separate the concepts of underlying storage size and mapped size in the VFS shared-memory implementation. (check-in: 4cbe49f1 user: drh tags: wal)
11:43
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 tags: wal)
10:24
Fix an assert() in sqlite3WalRead(). (check-in: 2e7a0050 user: dan tags: wal)
10:06
Add missing mutexes to unixShmClose(). (check-in: a4741cb5 user: dan tags: wal)
09:52
Fix a couple of assert() statements in os_unix.c and wal.c. Combine sqlite3WalIsDirty() with sqlite3WalUndo(). (check-in: a8f958be user: dan tags: wal)
09:32
Add a missing walIndexUnmap() to sqlite3WalSnapshotOpen(). (check-in: 72b95fde user: dan tags: wal)
06:02
Merge latest bugfix into wal branch. (check-in: 265e66e6 user: dan tags: wal)
05:57
Zero the "immediate FK constraint counter" associated with a statement object when sqlite3_reset() is called. Fix for [c39ff61c43]. (check-in: f660be61 user: dan tags: trunk)
02:13
The first 6 WAL tests now work. It's a start. (check-in: a92c1851 user: drh tags: wal)
2010-04-29
22:34
Refactor wal.c to use the VFS. This check-in compiles and links and works ok as long as you leave WAL turned off, but WAL does not work. (check-in: 62db5fa3 user: drh tags: wal)
16:40
Untested implementation of the shared-memory dead-man-switch. (check-in: 70661128 user: drh tags: wal)
15:17
Progress towards a VFS that will support WAL. Locking code is in place but is untested. Still no support for the DMS. (check-in: 1bde41cf user: drh tags: wal)
14:58
Close all open database connections at the end of wal.test. (check-in: 3cc55a75 user: dan tags: wal)
14:51
Fix a bug in the WAL checkpoint code causing SQLite to use an inconsistent cache in a subsequent transaction. (check-in: d1cadeed user: dan tags: wal)
08:47
Add tests to walthread.test. (check-in: 9e891e75 user: dan tags: wal)
2010-04-28
18:17
Add a test to walthread.test for changing between WAL and rollback modes. (check-in: da229e44 user: dan tags: wal)
17:49
Merge two "wal" leaves. (check-in: 13d2d5a6 user: dan tags: wal)
17:48
Change walthread.test so that tests can be run with either multiple threads or multiple processes. (check-in: 25f85f68 user: dan tags: wal)
17:21
Changes to the interface design for the xShmLock method of the VFS. (check-in: 348409de user: drh tags: wal)
14:42
Rename the sqlite3_log_hook() to sqlite3_wal_hook(). Added comments to wal.h. (check-in: bbc38511 user: drh tags: wal)
2010-04-27
18:49
Merge two "wal" leaves. (check-in: 8c2d43ba user: dan tags: wal)
18:43
Add a test to check that a checkpointer releases its locks before returning, even if it has been prevented by a conflicting lock from checkpointing the database. (check-in: be44349d user: dan tags: wal)
14:37
Fix a problem with identifying a corrupt database in WAL mode. (check-in: c8658da4 user: dan tags: wal)
11:49
Add the xShmRelease() method to the VFS. The os_unix.c implementation of the shared memory logic is still non-functional. (check-in: ed715b47 user: drh tags: wal)
06:49
Run trans.test and avtrans.test as part of the "wal" permutation. (check-in: c8893310 user: dan tags: wal)
05:42
Fix a problem that occurs when one process causes the log-summary file to grow and then a second process attempts to read the database. (check-in: b51a5f8b user: dan tags: wal)
01:56
Merge in recent changes from the trunk (check-in: 7a0ac682 user: drh tags: wal)
2010-04-26
19:17
Optimization: Convert an ORDER BY clause into a no-op if the query also contains a GROUP BY clause that will force the same output order. (check-in: ca9d86ba user: drh tags: trunk)