Commit Graph

750 Commits

Author SHA1 Message Date
drh 0cf68a9b17 Unconditionally include the pTmpSpace size in the estimate of the pager
memory used.

FossilOrigin-Name: 4b97f8640e9167cd355a24836fe74e4224cf12b9
2010-07-29 10:13:25 +00:00
drh 233f816b84 Improve the accuracy of the Pager heap usage estimate.
FossilOrigin-Name: ae89777e7f8bae2cdd3407395ea84c1b39577c4b
2010-07-28 17:36:11 +00:00
dan da9fe0c327 Changes so that the xShmOpen VFS method is no longer required. Its job can be done by the first call to xShmMap. Rename xShmClose to xShmUnmap.
FossilOrigin-Name: f4780bde62c6c19146d2723c101540b8db898d38
2010-07-13 18:44:03 +00:00
drh a485cccd0a Add a test case to cover code that was left untested by the journal_mode
simplification.

FossilOrigin-Name: bcdddba4f011cf008d29918bcac59131007a8138
2010-07-08 19:19:51 +00:00
dan ab7e8d85a9 When rolling back a savepoint, reset the changeCountDone flag.
FossilOrigin-Name: fb62f4e3a7ceaa60ff6af2196ccf35b48759307e
2010-07-07 17:53:51 +00:00
dan 7fb574ecf7 Do not make the SQLITE_FCNTL_SIZE_HINT call if an error has already occurred during transaction commit.
FossilOrigin-Name: e92de834a39be07da5f0848d7ec5f1f6dff902a5
2010-07-07 16:18:45 +00:00
drh 146151cd23 Avoid the need for a NEVER() from pager_write_pagelist() by passing in
pPager as an extra parameter.

FossilOrigin-Name: b3179379437dbcb1d8e7f1f8f631a3e7df1a5c9a
2010-07-07 14:19:13 +00:00
dan db10f08282 Simplify the previous commit by removing the pagerCheckForOrDeleteWAL() wrapper.
FossilOrigin-Name: a1324d125e2dd7004eaf8680f5f832ef17285087
2010-07-05 19:13:26 +00:00
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