Commit Graph

8112 Commits

Author SHA1 Message Date
dan
f412ee2ea4 Run tkt-9d68c883.test along with the other pager.c coverage tests. Add a test case to pager1.test.
FossilOrigin-Name: c6714b0dbdc782e721662ec166d9f161bc05c6df
2010-07-02 13:49:09 +00:00
dan
c396d4af58 Additional test cases to cover branches in pager.c.
FossilOrigin-Name: eddfb2b4062f8a8b907f0c7bc08a05c16692e900
2010-07-02 11:27:43 +00:00
drh
b2961b00f3 Add a NEVER to sqlite3PagerCommitPhaseTwo() because it is now no longer
possible to invoke that function without holding a RESERVED lock.

FossilOrigin-Name: 6ae7617298c70f8e03dd0ed73b8153d4871fb023
2010-07-02 01:18:12 +00:00
drh
32f2964390 If you delete a database file but not its *-wal file, then open the database
(thus creating a new empty database file) the *-wal file is automatically
deleted.

FossilOrigin-Name: 95c69dfbddaf4367cd699dfe8fcf8e06030c1f53
2010-07-01 19:45:34 +00:00
dan
d0b0d4dc23 Add tests to pager1.test and pagerfault.test.
FossilOrigin-Name: c6e75950928954fbb1590f952e3cdbcb0753b745
2010-07-01 19:01:56 +00:00
dan
89ccf4481b Add pager test cases. Change a condition in pager.c to NEVER().
FossilOrigin-Name: a8f6341d3b12d64ef56ed05226e3b4f183b8957d
2010-07-01 15:09:47 +00:00
dan
6b63ab47d7 Add further test cases. Fix an assert() in pager.c.
FossilOrigin-Name: 8e65c0e3dac400f6a0ec3b7494fba62c14ed6182
2010-06-30 10:36:18 +00:00
dan
3ad5fd2502 Do not call pager_open_journal() from within PagerBegin() if the connection is in exclusive-access mode. It will be called from within PagerWrite() just as it is for non-exclusive mode anyway.
FossilOrigin-Name: cdf2c5c2dd2e4404ffb85a680d31307afea266eb
2010-06-30 04:36:03 +00:00
dan
ba3cbf3d4b Add coverage test cases. Have sqlite3_backup_step() transform SQLITE_IOERR_NOMEM to SQLITE_NOMEM before returning.
FossilOrigin-Name: 5e19bc360e098ec06a72f4a86254d8e62e93ea57
2010-06-30 04:29:03 +00:00
dan
c8ce39723d Add tests to pager1.test and pagerfault.test.
FossilOrigin-Name: 008513ee6115f8d6f4b4e1428c1c638282b971a3
2010-06-29 10:30:23 +00:00
dan
d353331aba Add extra pager tests.
FossilOrigin-Name: 6b7e419ddc241f457dd69878f09f5c51c70aa379
2010-06-28 19:04:02 +00:00
dan
38e1a279c9 Fix some errors when compiling with SQLITE_OMIT_WAL.
FossilOrigin-Name: 3b68cb9c656db8c5c481199919a98f5764f7ebfa
2010-06-28 11:23:09 +00:00
dan
9c788140f7 Remove debugging code from test script.
FossilOrigin-Name: a85ae33246226801f88c1e377725c192711797cc
2010-06-28 11:06:53 +00:00
dan
1db95106ee Currently, if SQLite cannot find a table or index referred to by a query, it reloads the database schema from disk to see if the table or index has been added since the schema was cached in memory. Extend this behaviour to columns (which may have been added using ALTER TABLE) and fix some obscure cases related to tables and indexes (INDEXED BY, DROP TABLE etc.).
FossilOrigin-Name: 4932f22848b3d15a2b6dc5fa2cd69ce19182e2a4
2010-06-28 10:15:19 +00:00
drh
7750ab48f5 Make walIndexTryHdr() a private function. Fix an issue with SQLITE_MUTEX_NOOP.
FossilOrigin-Name: ec65bbd06bdd3bf16a742c5bb1fab0dce756c01a
2010-06-26 22:16:02 +00:00
drh
ff82894faa Suppress various compiler warnings.
FossilOrigin-Name: e82d008eaffb5522080cad6c69c1b194b78eadbd
2010-06-26 21:34:06 +00:00
drh
37f9918758 Fix two asserts on the scratch allocator to allow for up to two outstanding
scratch allocations per thread.

FossilOrigin-Name: f149b498b6ada3fc9f71ee104c351554c80c7f8a
2010-06-26 20:25:30 +00:00
drh
7d113eb0ab Suppress a couple uninitialized variable warnings.
FossilOrigin-Name: 29571e228cc85f7768c3ad57d0c7af96b5a54983
2010-06-26 20:00:54 +00:00
dan
4013130485 Add test file tkt-d11f09d36e.test.
FossilOrigin-Name: 6e469b63fab3cd63b23110aaceccfed0587c6a87
2010-06-26 19:03:30 +00:00
drh
afb15027e8 Remove a NEVER() in pager that can in fact be reached in obscure failure
cases.

FossilOrigin-Name: 42b8bd1c70d8dbbc4a59e2fdee8654c4fe84f979
2010-06-26 19:02:33 +00:00
dan
6ce60746c1 Fix a case where the doNotSyncSpill flag may remain permanently set following aIO error.
FossilOrigin-Name: 56c7d111bf7013be95a4c2a657a4861eee91db91
2010-06-26 17:15:07 +00:00
dan
273f3f0d1a 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].
FossilOrigin-Name: 2eaf5ee0d9338de8a77fb3e06ad2f2b0daa6fcbe
2010-06-26 15:42:33 +00:00
dan
f9b4419d39 Further test cases for pager1.test and pagerfault.test.
FossilOrigin-Name: bfd563c4714d86805fa09ce9f4f807e5d502a99b
2010-06-25 19:09:48 +00:00
dan
52d6fc0eda Reduce the average (but not maximum) size of the allocations made as part of a checkpoint.
FossilOrigin-Name: 4a7fd91b7ab2c5d21fbac7f6f123820c8f4ec7f6
2010-06-25 16:34:32 +00:00
dan
bdf1e2437e 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.
FossilOrigin-Name: 29887487ed549f97c3c9b37f852bae179b6ea9a9
2010-06-25 15:16:25 +00:00
drh
4a466d3ef3 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.

FossilOrigin-Name: af471ed79f539ff495f6d4cb3b69188c8af7ae3d
2010-06-25 14:17:58 +00:00
drh
d36f660d5b Change the name of the shared-memory file on windows from *-wal-index to
*-shm, for consistency with unix.

FossilOrigin-Name: 5995cb15080cfb707ddda501f975673f658106f7
2010-06-25 12:52:47 +00:00
dan
f544b4c4b8 Modify the merge-sort in wal.c so that it does not use recursion.
FossilOrigin-Name: daea6c054cee3564d8460d876b78a325ebc382dd
2010-06-25 11:35:52 +00:00
dan
ec6ffc1a6a Add test cases to pager1.test and pagerfault.test.
FossilOrigin-Name: 4941e437d2638f36ac8510d4a5b4c780afc798bb
2010-06-24 19:16:06 +00:00
drh
314f30db22 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.

FossilOrigin-Name: 7d83fbae9802a56b2121d0775de54fccd743d971
2010-06-24 18:36:33 +00:00
dan
cfa800cb36 Modify ctime.test to work with SQLITE_THREADSAFE=2.
FossilOrigin-Name: c6db3b303182202a8b03512e448607bce71de914
2010-06-24 17:37:57 +00:00
drh
7cf4c7adf0 Disable memory-pressure induced cache spill during savepoint rollback.
FossilOrigin-Name: a55eb4c3e9fa4ea43b8f8182eb9e39138df03f52
2010-06-24 14:52:25 +00:00
dan
0a6052ec51 Add a coverage test to pagerfault.test.
FossilOrigin-Name: b58db67e972b5660e62a9b7daa2c1e87c3cf0a68
2010-06-24 13:24:26 +00:00
dan
dca321aed4 Add coverage tests. Remove a NEVER macro from pager.c, as the condition can now be true in wal mode.
FossilOrigin-Name: 7aac9ad6dd14b1c56eb8e4750ac769c6197c30bd
2010-06-24 10:50:17 +00:00
drh
a927e94e71 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.

FossilOrigin-Name: 2e6a462cebc05bfd4648d26dd5ae70b68844aa5f
2010-06-24 02:46:48 +00:00
drh
cd28508e58 Fix and/or improve comments in wal.c. No code changes.
FossilOrigin-Name: ee9991be082202c6637adb47affc777e7917be04
2010-06-23 22:00:35 +00:00
dan
346e426753 Add test case for SQLITE_FULL errors to pagerfault.test. Remove a NEVER macro in pager.c that this hits.
FossilOrigin-Name: 3e9680c4c18140d083b24e05a21ea6792aef2487
2010-06-23 19:27:36 +00:00
drh
75e876be30 Include the SOURCE_ID value in the log messages output for corruption, misuse,
and CANTOPEN errors.

FossilOrigin-Name: 1727a81fed65bebfea43e0bda271584096d82785
2010-06-23 17:59:51 +00:00
drh
bd9676c19e Adjust the shared-memory locking range to account for the new version number
values in the wal-index header.

FossilOrigin-Name: a6dc0df304876b51cef5402b0e21330f10aabccf
2010-06-23 17:58:38 +00:00
dan
10f5a50e57 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.
FossilOrigin-Name: 8d0f8a7f70d6fb42369411a934b30f8c8ca8322f
2010-06-23 15:55:43 +00:00
drh
b316cb22de Fix the xCurrentTimeInt64 interface on windows. It was off by a factor of 10.
FossilOrigin-Name: 51ef43b9f7db8fabf73d9c8a76dae6c275e50d58
2010-06-23 15:18:11 +00:00
drh
a64febe1d2 Simplifications to the pager_delmaster() implementation.
FossilOrigin-Name: 8bfbdec647d29f0eb103ba7deb9116c44193f2e1
2010-06-23 15:04:27 +00:00
drh
a715211820 Disable code used only by the codec when the codec is not deployed.
FossilOrigin-Name: 2c90276e340aa19d78d2e33c9f759f8eda0b82a3
2010-06-22 21:15:49 +00:00
dan
47ee386f06 Add codec support to wal mode.
FossilOrigin-Name: 393741eba353d5d242b8e3c96db3ea2b92228036
2010-06-22 15:18:44 +00:00
drh
242c4f7702 When trying to transition from journal_mode MEMORY to WAL, use OFF as an
intermediate journal mode.

FossilOrigin-Name: 4775b8f9a9d9b66fcd5abf3af111fcad249e662e
2010-06-22 14:49:39 +00:00
dan
68928b6c3e Some changes to test scripts related to codec enabled versions of sqlite.
FossilOrigin-Name: 85dd51a75c75b2a123744f646e04538e4e5d89b3
2010-06-22 13:46:43 +00:00
dan
3c3dd7b927 i
Fix problem with handling of -vfs option in tcl interface.

FossilOrigin-Name: 8f98e8b5a557db5759747f3aae5ea01fb0d1f455
2010-06-22 11:10:40 +00:00
drh
39cf51097f Minor tweaks to get the pager working for corner cases when the
SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN flag is set.

FossilOrigin-Name: 82b38fca1aea345ade954517661145f1859e701c
2010-06-21 21:45:37 +00:00
drh
de3c301d63 Fix comment inside the pager_unlock() routine. Always close the master
journal file before trying to delete it.

FossilOrigin-Name: f820b815c9bff368eb1ccb850966a812151e610e
2010-06-21 20:19:25 +00:00
dan
0e986f51a4 Add test cases to pager1.test and pager2.test.
FossilOrigin-Name: cc9ddae6d72b214f52b8949e644b91f4ab340a28
2010-06-21 18:29:40 +00:00
drh
24f0f7716a Merge the experimental UNDELETABLE_WHEN_OPEN optimization into the trunk.
FossilOrigin-Name: ee0acef1faffd480fd2136f81fb2b6f6a17b5388
2010-06-21 12:47:41 +00:00
dan
e08341c664 Change things so that journal2.test works with ENABLE_ATOMIC_WRITE.
FossilOrigin-Name: a64d96db09ef2b7651fa4e98d3c7bf3ae5d3fe96
2010-06-21 12:34:29 +00:00
dan
153eda0aa4 Add further pager tests.
FossilOrigin-Name: 4104b175a8c3560a7680f3d2b54416821bb2e19d
2010-06-21 07:45:47 +00:00
dan
248af428ea Merge latest trunk change.
FossilOrigin-Name: f6d26e07b70965e332b1589804ca938593a5f432
2010-06-21 06:00:15 +00:00
dan
672b41beaa Fix jrnlmode2.test so that it works on systems where UNDELETABLE_WHEN_OPEN is defined.
FossilOrigin-Name: 59be370e52ec814c45efa6cbac45b6df94661b54
2010-06-21 05:40:49 +00:00
drh
19515c8da1 Fix an uninitialized variable in os_unix.c.
FossilOrigin-Name: 822a0283c6bc1c75001f3d1c528a4ff89c6b039c
2010-06-19 23:53:11 +00:00
dan
c548b78310 Fix an assert() failure that could occur if compiling with OMIT_SHARED_CACHE.
FossilOrigin-Name: 3e76a9f2c041a6d36614f540bb89588703d85925
2010-06-19 19:06:33 +00:00
dan
8ce49d6ac0 Change the name of IOCAP_SAFE_DELETE to IOCAP_UNDELETABLE_WHEN_OPEN. Have the xDeviceCharacteristics() method of the win32 VFS return this flag.
FossilOrigin-Name: 5a5ff4e3e4c707464f227907d0aefb8ef42180dd
2010-06-19 18:12:02 +00:00
dan
146ed78b78 Add tests to pager1.test and pagerfault.test.
FossilOrigin-Name: f5df83fd875073eee8e2269e87e2a8c9c7abc981
2010-06-19 17:26:37 +00:00
drh
7234c6d6f6 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.

FossilOrigin-Name: 2241788bc85fbc48e9cfecb95fe0a858338e37cb
2010-06-19 15:10:09 +00:00
dan
de4996e2ee Add tests to pager1.test and pagerfault.test.
FossilOrigin-Name: 58c0b5bfed8c67cc3f2f4a6784d08c14e652c265
2010-06-19 11:30:41 +00:00
dan
1f4cb65a9e Add tests to pager1.test.
FossilOrigin-Name: 582fca89195af54e9668af249691654cfea63d04
2010-06-18 18:59:49 +00:00
dan
d956efebea Rearrange some code in OP_JournalMode to avoid incorrect returns from subsequent invocations of "PRAGMA journal_mode" following an IO error.
FossilOrigin-Name: ce0a4a9b5f981d066822a9ae63740c91b35bfc60
2010-06-18 16:13:45 +00:00
dan
83acd423a1 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.
FossilOrigin-Name: 077b0e5bcd849130c8df373fc2134c4b44351882
2010-06-18 11:10:06 +00:00
dan
be5c10477c Apply [b9b11855e8] (the alternate fix to [fc62af4523]) to the trunk.
FossilOrigin-Name: 9a949a3a5c32b8bfbb94e10e18d050ec80a25553
2010-06-17 17:05:53 +00:00
dan
cd27cffa97 Merge trunk change [7c3a86b9c7].
FossilOrigin-Name: bd7bc4e0e28bc749034ff1a9290a69330c5d8ca4
2010-06-17 16:44:52 +00:00
dan
731bf5bcf8 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.
FossilOrigin-Name: b9b11855e8a9522309dd30e5256bb67d67e1353a
2010-06-17 16:44:21 +00:00
drh
0cf68fa4c6 Fix the tkt-fc62af4523.test to work around non-randomness of the
randomblob() function when in testing mode.

FossilOrigin-Name: 7c3a86b9c7e2a35ce755c32b38e911e79d843fad
2010-06-17 16:08:53 +00:00
dan
b70f82a7a5 Fix bug in journal2.test.
FossilOrigin-Name: c1e04f1d4e8575ebc41b5b4403dbfe3f60d578dc
2010-06-17 11:36:28 +00:00
dan
24827d0c0f Merge trunk updates with experimental branch.
FossilOrigin-Name: 9f6ea1de5abab0ca28688e257ddf03c66413cf6e
2010-06-17 10:52:07 +00:00
dan
7c6d618615 Do not delete the journal file in "PRAGMA journal_mode" commands. This fixes [fc62af4523].
FossilOrigin-Name: 1ec74591a93e8b27ad3ac739914a48a91972e82c
2010-06-17 10:42:06 +00:00
dan
cb0a7a7267 Add test case for [fc62af4523].
FossilOrigin-Name: cccd32c692057beb08a994102c6a10126ddeb937
2010-06-17 10:24:27 +00:00
dan
c002518074 Merge fix [f80c3f922a] with experimental changes.
FossilOrigin-Name: 20133e9ca98f5e6c42051ed3d65e4eb71d5366a5
2010-06-17 06:19:53 +00:00
drh
b28e59bbbb 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.

FossilOrigin-Name: f80c3f922a114e738613955a939db46cf0847038
2010-06-17 02:13:39 +00:00
dan
2a321c7547 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.
FossilOrigin-Name: bede8c8a148fb9be5ffbf38df7fa733e35cc68c3
2010-06-16 19:04:23 +00:00
dan
53f04f3b3f Add extra test cases to pager1.test.
FossilOrigin-Name: ad3209572d0e6afe5c8b52313e334509661045e2
2010-06-16 12:30:10 +00:00
dan
b0ac3e3a17 Fix a memory leak that can occur in os_unix.c if an IO error occurs within the xUnlock method.
FossilOrigin-Name: 6c5c04eea1f0e8d61883ee8675c249fbf895dc01
2010-06-16 10:55:42 +00:00
dan
a4a9095ec0 Rationalize a common pattern in tcl test cases into proc do_multiclient_test.
FossilOrigin-Name: efe44564983f115017658dd8a130226366d42bab
2010-06-15 19:07:42 +00:00
dan
2fce9ab3f8 Fix a problem introduced into lock2.test by the previous commit.
FossilOrigin-Name: c1c9f6fa9d75df740e577dbc5e6a24b91ad2bdd0
2010-06-15 18:00:06 +00:00
dan
e91a54e1be Add test file pager1.test, containing tests of inter-process locking in non-wal mode.
FossilOrigin-Name: 6e43eed9310bae9ca5e91f8fd9eafc45a16b7019
2010-06-15 17:44:47 +00:00
dan
3a3803b61a Run extra iterations in wal3.test to ensure test coverage.
FossilOrigin-Name: ea80cbe51e33d6a3f15a4ad56f360fc5323866de
2010-06-15 14:21:17 +00:00
dan
422309c447 Merge in [2c5e48a485].
Merge in [2c5e48a485].
Merge in [2c5e48a485].

FossilOrigin-Name: 03c0f4fd9cbb655477b63ebbb6af7822715644aa
2010-06-15 14:06:06 +00:00
drh
cc3af5156e Minor tweaks to the interface documentation - adding hyperlinks.
FossilOrigin-Name: 07b2fdd1cebbdbde5098a662eea65a0c9e8b5442
2010-06-15 12:09:06 +00:00
drh
ffca43014b Updates to comments and testcase() macros in wal.c.
FossilOrigin-Name: 4d90cc0bc07e791b2838fc384866bd5c2282f681
2010-06-15 11:21:54 +00:00
dan
0626dfc3dc Changes to the way tcl test scripts work. No changes to production code.
FossilOrigin-Name: 2c5e48a4855e2ec4572697c8fcfe4433e302ef33
2010-06-15 06:56:37 +00:00
drh
f886b4f851 Fix an error in the walfault.test script introduced by the previous check-in.
FossilOrigin-Name: a2b9374fc6f0aba2d465d432e1124bd957aab548
2010-06-14 18:06:20 +00:00
drh
6b017cc6d4 Move the xShmMap method to in between xShmLock and xShmBarrier, since it seems
to fit in there logically.

FossilOrigin-Name: 58dfd83d8b7905391e2a06bb918ffa209c6de6b5
2010-06-14 18:01:46 +00:00
drh
6f72beb20c Merge the experimental shared-memory mmap-by-chunk changes into the trunk.
FossilOrigin-Name: f295e7ed5f04f6b8bffdaff8b565be3836ce4e80
2010-06-14 17:09:53 +00:00
dan
9785fc9510 Add the new xShmMap (formerly xShmPage) to os_win.c.
FossilOrigin-Name: 13e7a8242206bca4b5bf356ef074e66474d39609
2010-06-14 16:16:33 +00:00
dan
188019153d 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.
FossilOrigin-Name: fc0cabc15c97dde6a852b4f07df6d30f1d2c04bc
2010-06-14 14:07:50 +00:00
dan
ad3cadd8b2 Update some comments in wal.c. No code changes.
FossilOrigin-Name: 1ce9c92bffa5d7f8431c005b29d698b0f5b95875
2010-06-14 11:49:26 +00:00
dan
d60bf11036 Change the interface to internal function walGetHash() to make it easier to follow.
FossilOrigin-Name: 5e8e2e978ea48ce4ad93a936c838934f33d665df
2010-06-14 11:18:50 +00:00
dan
067f3165d8 Add the xShmPage method to the "crash" vfs in test6.c.
FossilOrigin-Name: 1008f536440840da7d56c01ec147a25295fd1fd4
2010-06-14 10:30:12 +00:00
dan
5d656852f7 Add some fault-injection tests to improve coverage.
FossilOrigin-Name: 37b26d125f4b1d8e75bb38800fefd145611f94aa
2010-06-14 07:53:26 +00:00
dan
4280eb3004 Fix some problems with handling IO errors on the experimental branch.
FossilOrigin-Name: eade8bc238df580412f5cf1b91a91532ae671e46
2010-06-12 12:02:35 +00:00
dan
13a3cb82ce Experimental change to the xShmXXX parts of the VFS interface.
FossilOrigin-Name: ca68472db01c14a899892007d1cbaff5e86ae193
2010-06-11 19:04:21 +00:00
drh
0b9b4301b8 Refactor and simplify the logic used to change journalmode.
FossilOrigin-Name: 95cc3f6fdec5494560c3cd4439d06870d1c62506
2010-06-11 17:01:24 +00:00
drh
5130c31b0c Adding original art for the new SQLite logo.
FossilOrigin-Name: af353bd89e5ec89f113d217225cc59cbc8373d64
2010-06-10 16:25:55 +00:00
drh
23e35723a7 Add the SQLITE_TESTCTRL_PGHDRSZ verb for sqlite3_test_control() used to get
the size of pcache headers for testing purposes.

FossilOrigin-Name: 5d694f04fecf47ca325e108d463c24f42def55d5
2010-06-10 14:07:40 +00:00
drh
007d6c3a36 Update the test VFS in test_journal.c so that it implements the
xCurrentTimeInt64 method.

FossilOrigin-Name: ec3b4a7e5d3d7bd737d356b8a09ce94f8f0f8ce0
2010-06-10 10:51:27 +00:00
dan
026e598d0f 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.
FossilOrigin-Name: 0ce42e76654d9ba52dac74c940d38b17866016ba
2010-06-10 06:53:26 +00:00
drh
0350c7fa26 Remove a condition that must always be true. Replace it with an assert().
FossilOrigin-Name: 7abcd54ec09e8025193d1e0ea57775051d823801
2010-06-10 01:07:42 +00:00
dan
3ccd20a7a9 Fix test script problems causing errors in the "inmemory_journal" permutations.
FossilOrigin-Name: ea05b7f929e4696175dbc3ded36dba8ed2a6b575
2010-06-09 19:01:02 +00:00
dan
199100e2cd 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.
FossilOrigin-Name: 0797b10c0cc08ae38e26685d1f8331e37d428781
2010-06-09 16:58:49 +00:00
dan
6ac4339439 Fix for ticket [f973c7ac31].
FossilOrigin-Name: 6eb058dda8d5f87b02378d8efd821fe64a525dcc
2010-06-09 15:47:11 +00:00
drh
db7f647e41 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.

FossilOrigin-Name: c576827d55c156572b76cf7063e9f253ca6e7403
2010-06-09 14:45:12 +00:00
dan
15651f61df Simpler fix for the race condition also fixed by [7c102c7b5f]
FossilOrigin-Name: 3c2de820034e01c2e939bd90a05a58159f60df50
2010-06-09 11:28:43 +00:00
dan
e4bddc1fab 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.
FossilOrigin-Name: b072e9f69ad5ec68b8ec4c716556070001f885e0
2010-06-08 15:50:53 +00:00
dan
c60f10a27f Changes to wal3.test to support small default cache size settings. And builds that create autovacuum databases by default.
FossilOrigin-Name: ac4cc2574bafce30390a34f13228380d017791cb
2010-06-08 15:16:10 +00:00
dan
7df6c2c04b In os_unix.c, call munmap() to unmap a shared-memory region prior to closing the associated file descriptor.
FossilOrigin-Name: 95cc976f1520bdaedd8f93b0e9fbef94e4e2c8cc
2010-06-07 19:26:54 +00:00
dan
430e74cd9b Change all.test, quick.test and permutations.test so that they use a separate interpreter for each test file.
FossilOrigin-Name: 7c33eb5a5add8fe76dd412ecab5b6ff8cd78a98d
2010-06-07 17:47:26 +00:00
dan
c1a60c51dc Refactor some of the global variables and commands used by tester.tcl.
FossilOrigin-Name: c2edf8e17f874d0ca4e94b75575bf6e14eea1f05
2010-06-07 14:28:16 +00:00
dan
23f719207f Add a couple of extra coverage tests for wal.c.
FossilOrigin-Name: cfe60254df50f086014b115f1a2d9e31c85d67fd
2010-06-07 06:11:39 +00:00
dan
640aac48f3 Add further test cases for the logic in sqlite3WalBeginReadTransaction().
FossilOrigin-Name: a49713db39d0d6940b368206d4e669aa69aa1fe5
2010-06-05 19:18:59 +00:00
dan
eb8cb3a851 Clarify the purpose of a test for a race-condition in walIndexReadHdr().
FossilOrigin-Name: c041c6a9786bc9ebb82527f7a2c96d255aec927f
2010-06-05 18:34:26 +00:00
dan
493cc590b6 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.
FossilOrigin-Name: 394204735a842b04b677cca20485b1578e475d4c
2010-06-05 18:12:23 +00:00
dan
0626bd65fb Mark a condition in wal.c as ALWAYS().
FossilOrigin-Name: 3fe0cc784ac586358c08f87fba458dfbb5eec6f2
2010-06-05 14:42:57 +00:00
dan
ef4ee8f274 Add extra coverage test cases for wal.c. No changes to production code.
FossilOrigin-Name: f9d4ae0e8cc5d32c52eb78799f7959dd236ea9de
2010-06-05 11:53:34 +00:00
dan
3cac5dc9bc Clarify an assert in sqlite3WalExclusiveMode().
FossilOrigin-Name: 255850699ddbf4aad8cc3223aefbada35daa0703
2010-06-04 18:37:59 +00:00
dan
0153a9bc04 Remove an unnecessary branch from wal.c.
FossilOrigin-Name: 8e54786c9a0c5c399f228f56c73271f84d75694b
2010-06-04 17:16:52 +00:00
dan
0dc7b74fbe Add an English language error message to corresponding to SQLITE_PROTOCOL. "locking protocol".
FossilOrigin-Name: ca327e32cfe1633f2c9d3f058e411f108aaa2b3c
2010-06-04 15:59:58 +00:00
dan
23dced35ea Add test for the code that detects an inconsistent pair of wal-index headers to wal2.test.
FossilOrigin-Name: 157feba10f7ac01eecf79715c44bb16c98958280
2010-06-04 12:22:35 +00:00
dan
d764c7de25 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.
FossilOrigin-Name: b813233d7604a5fd91e1af91d5d812032eec700a
2010-06-04 11:56:22 +00:00
dan
83f42d1b38 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).
FossilOrigin-Name: 02c4040ce2b4c970b3dee09f7c9ad5a2a3a9aa49
2010-06-04 10:37:05 +00:00
dan
d03f523d3b Fix another problem in test_vfs.c.
FossilOrigin-Name: df7d59899ceb2743764b0433cb68f4bc33f16344
2010-06-03 19:10:08 +00:00
dan
961ff45104 Have test_vfs.c simulate IO errors in xShmLock.
FossilOrigin-Name: fcbf7cf189506e43fc2f0820aedffb195038d3a9
2010-06-03 18:20:19 +00:00
drh
05cb5b244b Performance fix for winShmClose().
FossilOrigin-Name: ed7774de04978803e979580240148eba1de9166d
2010-06-03 18:02:48 +00:00
dan
db9d981a8d Add extra tests for removing elements from wal-index hash tables as part of a rollback.
FossilOrigin-Name: af3e598ad9315a4642dd8fa098dfdbd727770aed
2010-06-03 16:58:46 +00:00
dan
459564f43f Delay opening the sub-journal until SQLite actually needs to write data to it.
FossilOrigin-Name: c43deb33ae5f191ea2e054181759beeeb9ea71bf
2010-06-03 12:35:28 +00:00
drh
f83dc1ef3f Remove global variables when compiled with SQLITE_OMIT_WSD
FossilOrigin-Name: dd10a547f10364058025c48b28d8fd240bf46aff
2010-06-03 12:09:52 +00:00
dan
1f55e28d2a Enhancements to test_vfs.c and walfault.test.
FossilOrigin-Name: ac0de2f39e948f3b00e96eebf56ebee70472020d
2010-06-03 09:25:10 +00:00
dan
40ad9d2870 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.
FossilOrigin-Name: eb80ddc665132c607c258b59131025a296269dad
2010-06-03 09:17:38 +00:00
dan
8e64db2b09 If a malloc fails while allocating a savepoint object at the pager level, do not try to roll that savepoint back later on.
FossilOrigin-Name: 91cb08ffb6332a142542c012b58aa49206ee5704
2010-06-03 09:01:11 +00:00
drh
2d37e1cfb9 When a lock fails due to an I/O error (not an SQLITE_BUSY) then the checkpoint
should fail.

FossilOrigin-Name: c6eb0a27270df69018576232d8f97c16d63d8f6e
2010-06-02 20:38:20 +00:00
dan
6e6bd5658f Fix a problem with rolling back to a savepoint opened before the writer decided to wrap the log file.
FossilOrigin-Name: 6b4aed6aae7dc9e92807d27375cbe1e83c15841b
2010-06-02 18:59:03 +00:00
dan
10ec894c3a 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).
FossilOrigin-Name: cb571c1b71a37b3a10d640987c77a6eec508235d
2010-06-02 17:15:24 +00:00
shaneh
2796d336d2 Added implementation of vfslog_time() for Windows testing.
FossilOrigin-Name: b3109f85bde0b24bfbcfe6c0f7bbe973be196c1d
2010-06-02 16:40:54 +00:00
shaneh
a1a889ecb4 Updated wal2.test for windows testing.
FossilOrigin-Name: c3606f3985e4ab38479409c13f3a01d1be4f8189
2010-06-02 16:39:53 +00:00
drh
c11895b808 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.

FossilOrigin-Name: f97bd520f06a16c61ccdd9ebeda7e138896b9ac2
2010-06-02 15:59:05 +00:00
drh
38933f2c11 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.

FossilOrigin-Name: aa2c2b67a7f50c97a44cca1af5c437bf5410869c
2010-06-02 15:43:18 +00:00
drh
aab4c02e47 Changes to make WAL more robust against SHM locking failures and OOM errors.
FossilOrigin-Name: ebf4041383c3cdddb5861960359abd209d4a1028
2010-06-02 14:45:51 +00:00
drh
048129dcb9 In the rowhash.test, make sure global variables are cleared prior to use.
FossilOrigin-Name: 28efe0a40405567f3eaf334b6603282d5adac792
2010-06-02 14:43:30 +00:00
drh
0af3723478 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.

FossilOrigin-Name: c24ac3563f46fc6bcf7e45ee171afd3ae7d2faa8
2010-06-02 12:58:22 +00:00
dan
558814f8c6 Add some 'const' markers to static data that is really constant.
FossilOrigin-Name: e7073e23b80e7cae0c76d42f014ee9b2d40a8f2f
2010-06-02 05:53:53 +00:00
drh
8b3cf82ddf 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.

FossilOrigin-Name: fc18c4aadb908c3b6f9b6481a2efca6a0daadc64
2010-06-01 21:02:51 +00:00
dan
0235ab9944 Changes to the way faults are injected into xShmXXX VFS calls.
FossilOrigin-Name: 716d99f3929b466c7a17190e0f18de8ab0e7f1fa
2010-06-01 19:15:18 +00:00
dan
a4bc123f83 Change the OOM and IO error test cases in walfault.test so that each test case runs both types of error simulation.
FossilOrigin-Name: b627e1536822bb7e3ef91867661a53be0efc13ef
2010-06-01 17:46:38 +00:00
dan
9971e710e4 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).
FossilOrigin-Name: b1abfaaf5309cc0d0dda4fb2c237862c8cf83261
2010-06-01 15:44:57 +00:00
drh
964bf9c8bb The incremental checkpoint feature is not perfect yet, but it is working
well enough to merge it into the trunk.

FossilOrigin-Name: 1d3e569e59ba89cc167f0a48951ecd82f10322ba
2010-06-01 15:24:29 +00:00
dan
98fbfe703e Merge with [15abbc3416].
FossilOrigin-Name: f4b9003a2d3db88eaabb4b291e6cea8e8ea6ff51
2010-06-01 14:30:49 +00:00