1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-14 00:22:38 +03:00
Commit Graph

277 Commits

Author SHA1 Message Date
dan
b6d2f9c5ef Only open a read-only connection to shared-memory if the "readonly_shm=1" option is specified as part of the database file URI (and if a read-write connection fails).
FossilOrigin-Name: 671ba5fc59f7a958e5a4138d2425b1173a442ad7
2011-05-11 14:57:33 +00:00
dan
4edc6bf3ee Add experimental support for read-only connections to WAL databases.
FossilOrigin-Name: bb59f9862da45d25fb51d7821130854828c91c98
2011-05-10 17:31:29 +00:00
drh
c126e63e4f Remove dead code identified by the clang static analyzer.
FossilOrigin-Name: 01a79d5a7af48fb7e50291c0c7c6283d3fb359d0
2011-03-06 21:28:32 +00:00
drh
03c6967f34 An SQLITE_PROTOCOL error counts as a locking error for verification
purposes.

FossilOrigin-Name: e87d499a4f8a456111c1f96ca6da31d0810fb7c8
2011-02-19 23:18:12 +00:00
drh
c90e0811d8 Change a testcase() added by the previous checkin into an assert().
FossilOrigin-Name: 6f3dad32aa0e1e9ee374302c82bea9bd60d5854b
2011-02-19 17:02:44 +00:00
drh
ab1cc7462f Add testcase macros to verify that all return values from
walTryBeginRead() are tested.

FossilOrigin-Name: 262b6fca0b7a251c02604c684a9f7e7a1434d630
2011-02-19 16:51:45 +00:00
drh
658d76c9f8 Changes to make WAL more robust against SQLITE_PROTOCOL errors.
FossilOrigin-Name: fd578a32f8e9f04957359e73f244a60f02afe08c
2011-02-19 15:22:14 +00:00
dan
9c5e3680df Change blocking-checkpoint tests so that they run once using "PRAGMA wal_checkpoint" and once using calls to sqlite3_wal_checkpoint_v2(). Also fix edge cases surrounding the output variables set by wal_checkpoint_v2().
FossilOrigin-Name: 5a4b6652cf3780ffed6fe0fe669e8090b0b71e81
2011-02-07 15:12:12 +00:00
dan
d42892ebaf Fix minor problems with the output of "PRAGMA wal_checkpoint". In both code and tests.
FossilOrigin-Name: aef61036b31963e4c3ff4e8acf8c1734dc9394af
2011-02-02 19:17:39 +00:00
drh
87fa53ee8d Merge in the blocking-checkpoint enhancement, including the new
sqlite3_wal_checkpoint_v2() interface and the
PRAGMA wal_checkpoint(full) statement.

FossilOrigin-Name: bac7342c368a7c4f5f2878e08d9581dcbf57dd58
2011-02-02 16:34:08 +00:00
drh
7d20844542 Make wal_checkpoint a no-op if a prior checkpoint has already copied all
WAL content into the database.  This prevents a concurrent write to the
database from resetting the wal-index out from under the WalIterator of
the checkpoint as it is initializing.

FossilOrigin-Name: cf86affcb7d3089496e9849cbf43a211097e4f64
2010-12-16 02:06:29 +00:00
drh
d9c9b78e6c Enhanced comments in wal.c and declare some procedure parameters "const".
No changes to the generated code.

FossilOrigin-Name: d0e4375b8a784d4e4ae66caababac919edd61883
2010-12-15 21:02:06 +00:00
dan
f2b8dd588d Fixes for SQLITE_BUSY handling in blocking checkpoint code.
FossilOrigin-Name: 4c663a4dcc77e00558edd94f58410605b95db33a
2010-11-18 19:28:01 +00:00
dan
cdc1f049bf Modify the interface to the blocking wal-checkpoint functionality.
FossilOrigin-Name: 72787c010c8944e8fcf9c98aa4482f129142d8e9
2010-11-18 12:11:05 +00:00
dan
a58f26f93f Add experimental command "PRAGMA wal_blocking_checkpoint", which uses the busy-handler to block until all readers have finished in order to ensure the next writer will be able to wrap around to the start of the log file.
FossilOrigin-Name: 7e3fc2c833a5baa08820c499867b6902bdc2ed5a
2010-11-16 18:56:51 +00:00
dan
8c40800439 If a database file with the WAL flag set is opened in exclusive-locking mode, use heap memory to store the wal-index instead of shared-memory.
FossilOrigin-Name: 8dd5c69198619866923c6053b71899c1fb8c4c67
2010-11-01 17:38:24 +00:00
drh
4533cd052d If walLockExclusive() fails for reasons other than SQLITE_BUSY inside of
walRestartLog() then propagate that error back up to the application.

FossilOrigin-Name: 04dcba6b3379d2168609950ed919c8f743705333
2010-10-05 15:41:05 +00:00
shaneh
bd2aaf9ab1 Fix some compiler warnings under MSVC.
FossilOrigin-Name: afdc82a99eba260aed8ae2cca4bcec629f384098
2010-09-01 02:38:21 +00:00
shaneh
1df2db7fd1 Fix some compiler warnings in the MSVC build.
FossilOrigin-Name: 1f5662b7db5d623c8d99c45a8d97a0aa4427593f
2010-08-18 02:28:48 +00:00
dan
eb8763d7b3 Invoke sqlite3_log() whenever one or more frames are recovered from a WAL file.
FossilOrigin-Name: e05089aaefe02ec59a1923812349471a78075d29
2010-08-17 14:52:22 +00:00
drh
6cef0cf7a9 Fix a typo in a comment in wal.c. No code changes.
FossilOrigin-Name: d854a3d41c68f785c909c159cd9ca2154c64001a
2010-08-16 16:31:43 +00:00
drh
7e9e70b170 Add ALWAYS() macros in wal.c to cover branches that are no longer reachable
following the pager refactoring.

FossilOrigin-Name: 24f24c927c77bb3bb4d26a23dd5d94f964db8033
2010-08-16 14:17:59 +00:00
drh
9b78f79183 Adjustments for better 64K page size handling.
FossilOrigin-Name: faf1974e2de321bfefb68b81d702ae69771933ef
2010-08-14 21:21:24 +00:00
drh
b2eced5de2 Increase the maximum page size from 32k to 64k.
FossilOrigin-Name: 45362437d491fbe0f033a67b398f8ba68cbf1b3b
2010-08-12 02:41:12 +00:00
dan
007820d65d Fix a problem causing the return code of an xSync call to be ignored in wal.c.
FossilOrigin-Name: f1b2b5f9c3a5561ea6108283ae08404106c3f8bc
2010-08-09 07:51:40 +00:00
dan
7a76197f40 In WAL mode, ignore any error returned by an xFileControl(FCNTL_SIZE_HINT) call. This matches the behaviour in rollback mode.
FossilOrigin-Name: 158a309737bd4cdc033cd504a6d0cc43c15b6e17
2010-08-09 07:07:37 +00:00
dan
73d66fdb22 Fix minor problems and update comments in pager.c.
FossilOrigin-Name: 92e456374b052aceff356d10317b5b94fcdeaa5c
2010-08-07 16:17:48 +00:00
dan
763afe62e1 Incremental checkin on pager state refactoring.
FossilOrigin-Name: 0a636798bdb6961a47327091715b254f79add823
2010-08-03 06:42:39 +00:00
dan
502019c8bb Support FCNTL_CHUNK_SIZE on windows too.
FossilOrigin-Name: a038688c991435967b935946c2283707820bb5da
2010-07-28 14:26:17 +00:00
dan
1e5de5a13d Changes to wal.c so that SQLite can read even if the WAL file is opened read-only, provided the wal-index (shm file) is opened read/write.
FossilOrigin-Name: 932d19da73c9673cdd4cc01289b17761c23d23cb
2010-07-15 18:20:53 +00:00
dan
7d4514a4e1 Handle the case where xShmMap returns SQLITE_BUSY.
FossilOrigin-Name: 75f5354876c4300a8e53fe551dc837dd383d1e38
2010-07-15 17:54:14 +00:00
dan
50833e32c1 Test the libaries response to read-only or unreadable database, WAL and wal-index files. If a WAL file cannot be opened in read/write mode, return SQLITE_CANTOPEN to the caller.
FossilOrigin-Name: 45bb84c6283d803fc29077fdc2d06fa50ec06a59
2010-07-14 16:37:17 +00:00
dan
ddb0ac4b9f On unix, try to create the *-wal and *-shm files with the same permissions as the associated database file.
FossilOrigin-Name: e5d180eed245437b61bfb257ee01e2571c93afe7
2010-07-14 14:48:58 +00:00
drh
e11fedc589 Change the name of the xShmClose VFS method to xShmUnmap, everywhere.
FossilOrigin-Name: c2d27cf51d33e6f38bab37008d39074051f75274
2010-07-14 00:14:30 +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
shaneh
55897967cc Fix warning under MSVC.
FossilOrigin-Name: 0c32c4bbdd74297767dcf4ec4295f9cc72875af0
2010-07-09 12:57:53 +00:00
drh
519426aaf8 Reformat WAL code for clearer presentation. Update comments for correctness.
Add checks to ensure that corruption in shared-memory does not result in
an infinite loop.

FossilOrigin-Name: 40eaada7ec45e70bdf64d060051f24c5c5e3faf3
2010-07-09 03:19:07 +00:00
drh
2327f5a454 Make the initial salt values in the WAL header random values, not zero.
FossilOrigin-Name: baa5eddd0539342945c14a2793c2579efb7e3b26
2010-07-07 21:06:48 +00:00
drh
e9187b4371 Remove two more testcase() macros that require 4GiB WAL files to hit.
FossilOrigin-Name: 16e18f2706e67210eae62edfb748758fd27f23d7
2010-07-07 14:39:59 +00:00
drh
09b5dbc519 Remove a testcase() macro that would require a 4GiB WAL to reach.
FossilOrigin-Name: 15f9c2713bdfd3d6c8d8d4298f101d128e39b99a
2010-07-07 14:35:58 +00:00
drh
3e8e7ecbc4 Add testcase macros to ensure that large-file cases are tested in WAL.
FossilOrigin-Name: 8156b57ac33161ae6dd8a9413127ecce3c9eae83
2010-07-07 13:43:19 +00:00
dan
bd0e9070e5 Fix a problem with writing to databases larger than 2^32 bytes with WAL mode.
FossilOrigin-Name: b956ddca75d64ba662fa0b03b643822d836b6501
2010-07-07 09:48:44 +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
shaneh
8a300f8095 Fix a couple more compiler warnings under MSVC.
FossilOrigin-Name: 26bc27e3f4c8a666f3358f73fc21eccdec3508f6
2010-07-02 18:15:31 +00:00
shaneh
5eba1f60fe Fix some warnings when compiling under MSVC.
FossilOrigin-Name: 708338773919fa024abbba55180654beb60e6d84
2010-07-02 17:05:03 +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
7d113eb0ab Suppress a couple uninitialized variable warnings.
FossilOrigin-Name: 29571e228cc85f7768c3ad57d0c7af96b5a54983
2010-06-26 20:00:54 +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