1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-04-23 06:45:40 +03:00

1192 Commits

Author SHA1 Message Date
dan
3e875ef3b5 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.
FossilOrigin-Name: 3053a4ad15343a56efa430503797b77bb6d1e770
2010-07-05 19:03:35 +00:00
drh
8220da7b8b When rolling back page 1 from a journal, restore the "nReserve" setting
in case it has been corrupted by a prior crash.

FossilOrigin-Name: c0d124da88e84e68679c2f3f4b2b35c03aecc916
2010-07-05 17:43:32 +00:00
dan
3f94b60961 Fix an assert in pager.c. And various test cases that fail with the in-memory journal permutation.
FossilOrigin-Name: 78fc35ff4b01d4a583009ec8b8bf876738ca7b92
2010-07-03 13:45:52 +00:00
drh
40e459e041 Remove code accidently appended to pager.c.
FossilOrigin-Name: 7cbe175a69738499f9218ec56f1a39f040aea9dc
2010-07-03 12:26:33 +00:00
drh
5fc4c689c3 Remove an unused call to sqlite3PageBegin() from pager_write(). Replace it
with an assert().

FossilOrigin-Name: 01c1278263fdd8454763be15bddd2558e720e6e0
2010-07-02 15:35:58 +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
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
38e1a279c9 Fix some errors when compiling with SQLITE_OMIT_WAL.
FossilOrigin-Name: 3b68cb9c656db8c5c481199919a98f5764f7ebfa
2010-06-28 11:23:09 +00:00
drh
ff82894faa Suppress various compiler warnings.
FossilOrigin-Name: e82d008eaffb5522080cad6c69c1b194b78eadbd
2010-06-26 21:34:06 +00:00
drh
7d113eb0ab Suppress a couple uninitialized variable warnings.
FossilOrigin-Name: 29571e228cc85f7768c3ad57d0c7af96b5a54983
2010-06-26 20:00:54 +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
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
drh
7cf4c7adf0 Disable memory-pressure induced cache spill during savepoint rollback.
FossilOrigin-Name: a55eb4c3e9fa4ea43b8f8182eb9e39138df03f52
2010-06-24 14:52:25 +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
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
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
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
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
e08341c664 Change things so that journal2.test works with ENABLE_ATOMIC_WRITE.
FossilOrigin-Name: a64d96db09ef2b7651fa4e98d3c7bf3ae5d3fe96
2010-06-21 12:34:29 +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
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
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
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
drh
0b9b4301b8 Refactor and simplify the logic used to change journalmode.
FossilOrigin-Name: 95cc3f6fdec5494560c3cd4439d06870d1c62506
2010-06-11 17:01:24 +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
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
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
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
drh
61e4acecf4 Fix issues with locking_mode=EXCLUSIVE in WAL.
FossilOrigin-Name: 8deba0cebd135a18da68530fab9e7d19dc21ddcb
2010-05-31 20:28:37 +00:00
drh
73b64e4d2e 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.

FossilOrigin-Name: ef3ba7a17ff90674d702e5694b9e792851ab6998
2010-05-30 19:55:15 +00:00
drh
82043b3077 Remove unreachable code associated with WAL from the pager.
FossilOrigin-Name: 54c1718e6d15a20414cae15895eb5e83217722e2
2010-05-25 02:24:01 +00:00
dan
71d8991932 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.
FossilOrigin-Name: 8a53f12c83a107684b99f4a9de371b5ea3ca810a
2010-05-24 13:57:42 +00:00
drh
9ff27ecdb2 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.

FossilOrigin-Name: 2b7e3b4a30d6a7c4a8a4b8e7dd2ed728b565c96d
2010-05-19 19:26:05 +00:00
drh
d9e5c4f6ed Refactoring the VFS-SHM methods used by WAL. This version compiles and
runs non-WAL test cases but crashes and burns on wal.test.

FossilOrigin-Name: 2b00152c1ac0b3735aa6cfab61259ff04d81c701
2010-05-12 18:01:39 +00:00
drh
be5481578a When an attempt to change journal_mode fails due to locks, be sure to
leave internal structures in a consistent state.

FossilOrigin-Name: cf3d1e0b8a739302cf2848ac3e6eaaae04e6a44c
2010-05-11 14:00:39 +00:00
dan
5543759b1b Changes so that WAL and exclusive-locking mode work together.
FossilOrigin-Name: 71e7b1cf9f4cd02a2a9bc8a3e58acd7a7e3c7e60
2010-05-11 12:19:26 +00:00
shaneh
fd06863881 Changes to support SQLITE_OMIT_WAL.
FossilOrigin-Name: 32a8501d78714cc390eba5f993f329ef3b499878
2010-05-06 19:20:29 +00:00
dan
d41a29a653 Further coverage tests.
FossilOrigin-Name: 98a9713e0030a36ea99a18a12a2e7685c6db72b3
2010-05-06 15:56:28 +00:00