drh
afb39a4cdc
Modify the sqlite3OsFileControl() interface to detect unopened sqlite3_file
...
objects and return SQLITE_NOTFOUND.
FossilOrigin-Name: 1fc72b707d4f4df049c19b023ae3f70cb45d6a6768bb68efc519cfdcd2d2ecda
2018-03-29 13:47:01 +00:00
drh
fd72563d0a
Avoid a race condition that might cause a busy_timeout to last longer than
...
it should.
FossilOrigin-Name: b81960561b47a1b49646f2f8870dd0684dc4ca7c0b9e11076fd713de66b75972
2018-03-26 20:43:05 +00:00
drh
80262896d6
Refactor some internal object element names used by the busy handler, to
...
simplify analysis.
FossilOrigin-Name: 6c40c5574f4ae9795a142d01a8f84afd1b72678ea5f6bfca14a8646c4e862605
2018-03-26 16:37:53 +00:00
drh
ffc78a41ea
Add the SQLITE_DBSTATUS_CACHE_SPILL option to sqlite3_db_status()
...
FossilOrigin-Name: 3faeb851374471a6f94a6fab3a62c73d03330eae6fc72cd1a277b03ad12dcdd0
2018-03-14 14:53:50 +00:00
drh
9c6396ecc7
Improved documentation for sqlite3_serialize() and sqlite3_deserialize().
...
Change the name of the compile-time option to enable these interfaces
from SQLITE_ENABLE_MEMDB to SQLITE_ENABLE_DESERIALIZE.
FossilOrigin-Name: f07e97aed435b02e1473053c0257ec5c89bf0b3e46076b7a9382de432bbc2497
2018-03-06 21:43:19 +00:00
drh
2825e4ebb1
Merge the latest enhancements from trunk.
...
FossilOrigin-Name: c8083de14b54fba1071385f8530d03d5684efd4963fde0f83ddc53ae3118a75b
2018-03-01 13:44:40 +00:00
mistachkin
b189e4101c
Fix typo in comment. Skip tests added by check-in [4761db83b6] when running on Windows.
...
FossilOrigin-Name: 468a389cdc8b6f92c77b11f682e210ad8cce7e3dbc0df308a898f4115e85fce2
2018-02-07 18:45:00 +00:00
dan
fa68815fa3
When the final connection disconnects from a wal mode database, check that the
...
database file has not been moved or unlinked before deleting the wal and shm
files.
FossilOrigin-Name: 4761db83b6d3d57f281370899403c102e39ad0021d315dd6a6912d250436782a
2018-02-07 16:14:41 +00:00
drh
31a13548f8
Merge changes from trunk.
...
FossilOrigin-Name: 6ef3de810d54563c227045b16197b8011ce285ea867261946f93b2de55344f29
2018-01-24 15:02:53 +00:00
dan
b8fff29c68
In SQLITE_ENABLE_BATCH_ATOMIC_WRITE builds on F2FS file-systems, invoke
...
SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE if an SQLITE_FCNTL_COMMIT_ATOMIC_WRITE call
fails. Also, do not use an atomic transaction to create the initial database.
This is because if an error occurs while writing to the db file, any changes
to the file-size do not seem to be rolled back automatically. The only time
this matters is when the file was 0 bytes in size to start with.
FossilOrigin-Name: b3122db1545aeb48b7c28d480534b4b0fe04e83d5336225714c3cad926e5960e
2018-01-23 14:01:51 +00:00
drh
ac442f41c1
Add support for the "memdb" VFS and the sqlite3_memdb_ptr() and
...
sqlite3_memdb_config() interfaces, to enable an SQLite database to be
manipulated as an in-memory object.
FossilOrigin-Name: fb2ac2d2fa6374084f3325b41b257c7a3ace43aade4b666ec4be93b6b70dc39a
2018-01-03 01:28:46 +00:00
drh
d9620b8555
Fix code indentation. No logic changes.
...
FossilOrigin-Name: e115f2583499df0c7ee991d372bed4b89aa717b10a4e4b10977864390cb4fc11
2018-01-02 21:29:42 +00:00
drh
6235ee5784
Fix a harmless compiler warning about an unused parameter.
...
FossilOrigin-Name: de20133d44773f0b3b8869db5c1cb2a90f0426a54c7f40d12a930003343ad8e0
2017-10-12 14:18:38 +00:00
dan
5f54e2b5d3
Fix a problem building with SQLITE_OMIT_WAL defined.
...
FossilOrigin-Name: 373b0ace480aa303bbf512ea8806a17f6186b16d6316a7b724499bf94b3974d4
2017-10-05 20:02:49 +00:00
drh
edea4a7cc9
The out-of-bounds read on recovery fix of check-in [378afa16381a222a] caused
...
problems for some corner-case error conditions. This alternative fix appears
to work better.
FossilOrigin-Name: 74f399d81fe250e09fde730ac0c17fe8b2b776ed32a3f576adaad56090f2b7fa
2017-09-18 09:40:46 +00:00
drh
263a8b660f
Avoid an out-of-bounds read on a recovery attempt using a carefully crafted
...
database and rollback journal with mismatched page sizes. The test case for
this is in TH3.
FossilOrigin-Name: 378afa16381a222aafa6009dbbbc92473a69683537f1c265694678b0595a42c8
2017-09-14 02:36:27 +00:00
drh
05f1ba0ef8
Prevent a possible crash when trying to recover using a carefully corrupted \
...
and truncated rollback journal. (Test case in TH3)
FossilOrigin-Name: 02828d717e2d97b1f59e9279cea9c06eed4accd4e262606bd90d060449c5a1a3
2017-09-07 09:56:37 +00:00
drh
3908fe90b1
Add the new sqlite3PagerUnrefPageOne() pager method to deal with the special
...
case of unreferencing page1.
FossilOrigin-Name: b2e2100cf766da1cb499aec0ca0a9969d7af5d93312ab8cf895fbf4a6ffb9b2f
2017-09-01 14:50:19 +00:00
drh
daaae7b9d1
Update the mechanism used to keep track of what kind of syncing to do for
...
WAL transaction commits and checkpoint operations. Use the checkpoint-style
of syncing to sync the header of a new or restarted WAL file.
FossilOrigin-Name: bf65dae8d4297c57ac63228ccf0100f9fabf2fb600438c9f2e10a29c4b118168
2017-08-25 01:14:43 +00:00
drh
251866d07c
Another size and performance optimization to readDbPage(). This time we
...
eliminate some unnecessary local variables.
FossilOrigin-Name: 745bc8decd18d4dc00589474fd3928a3a9f4156d09e05e6f5b8623de6491795a
2017-08-18 22:30:20 +00:00
drh
56520ab848
Size and performance optimization the readDbPage() routine in the pager.
...
FossilOrigin-Name: ca9e1875c3a893321d70a131fc4ffc76d169ad05e0b48b7006f53b6b467db4be
2017-08-18 21:14:50 +00:00
drh
b7f4b6ccca
Fix compiler warnings that arise if the PAGERTRACE macro is turned on.
...
This changes does not affect production builds.
FossilOrigin-Name: 831156a4bd7c4408085f7c5584cdeebd1953c539972f80c5ef29bc147008630e
2017-08-11 18:59:00 +00:00
drh
2df9478f5f
Keep batch-atomic-writes turned on for journal_mode=MEMORY, but turn them
...
off for synchronous=OFF. Refuse to compile with both SQLITE_MMAP_READWRITE
and SQLITE_ENABLE_BATCH_ATOMIC_WRITE. Fix up some comments in the commit
logic.
FossilOrigin-Name: 2e80e19e4faac30947ed56aa3601c45c758cafb27f84780df255fdbcdc9a6999
2017-07-22 16:32:33 +00:00
drh
d76dba7eb5
Omit unused batch-atomic-write code if SQLITE_ENABLE_BATCH_ATOMIC_WRITE is
...
not defined.
FossilOrigin-Name: a89b62c4966cd297326e8712da40e0962d2328d7ba1f201d5abcec911eeef347
2017-07-22 16:00:34 +00:00
dan
d67a97705c
Split SQLITE_ENABLE_ATOMIC_WRITE into two options - the original and
...
SQLITE_ENABLE_BATCH_ATOMIC_WRITE.
FossilOrigin-Name: 7eb9bf2c5b42c39901fd571553c1f70aa5a9dac71fdc8e318b3063b928ad58f7
2017-07-20 21:00:03 +00:00
dan
efe1697191
Add support for F2FS atomic writes. Untested at this point.
...
FossilOrigin-Name: 416973ede3bde8567d1f2699728f72352979e054ef988d1c1e1cfe4290f6f8b8
2017-07-20 19:49:14 +00:00
drh
77f6af2b96
Avoid unnecessary fstat() calls to determine the database size when
...
transitioning into a read transaction on a rollback-mode database.
FossilOrigin-Name: 6c3476b513965df22d648f9a1b99733af753b44d51163cc7d42a69bf562300e1
2017-05-29 16:45:45 +00:00
drh
5f5a2d1c3c
Avoid unnecessary calls to fstat() to determine the database file size.
...
FossilOrigin-Name: c733a1dea37e4678e7bd0d3d0ca9b8eae1fbdc28615f75d8f1e5141aa53567d9
2017-05-29 14:57:23 +00:00
drh
8abc54e2e8
Fix a typo in a comment. No code changes.
...
FossilOrigin-Name: cb29b838886769afe866b1172e3d5d7e36387149b79c51f91cf59da3f4a5f25b
2017-05-29 14:30:46 +00:00
drh
614c6a09f7
Do not invoke codec macros for in-memory subjournals.
...
FossilOrigin-Name: d2bb0066f7c8413ef9992e6b07641cdf40ad260778074bd83cc22dcaba87860b
2017-05-10 12:49:50 +00:00
dan
2617c9bdd8
Do not invoke codec macros when reading or writing an in-memory sub-journal.
...
FossilOrigin-Name: 2c145ee6c9e7916f022331453384cbe61ee3654c08a1b88467f85235b5bc18c4
2017-05-08 18:29:36 +00:00
drh
d930b5cb06
Make SQLITE_DIRECT_OVERFLOW_READ work for in WAL mode as long as the page
...
being read is not in the the -wal file.
FossilOrigin-Name: 9879be1899adf5634f551a2077b15ccb1133e4e3
2017-01-26 02:26:02 +00:00
drh
5f4ade0473
Add a test to ensure that the app-defined pcache xFetch() method is never
...
passed a key of zero.
FossilOrigin-Name: 0bdbe49c6d392c4c86a6c01219c9d91d150dea7d
2016-12-30 14:25:42 +00:00
drh
9c4dc22926
Disable the pagerAcquireMapPage() routine if memory-mapped I/O is disabled.
...
This fixes a harmless compiler warning on OpenBSD.
FossilOrigin-Name: 3e25ba6e42fba239795a465b8510386a361ee5be
2016-12-30 12:06:22 +00:00
drh
8a123d60a8
Fix the optimization that prevents writing freelist pages to the journal.
...
FossilOrigin-Name: 6aa9b26544cbd0b41115c5f127dcf9a286d17e2b
2016-12-14 10:30:12 +00:00
drh
380c08eaad
Fix harmless compiler warnings.
...
FossilOrigin-Name: ed2c9f3738c96d8e3dbece7ccb721cb1a8ae8fac
2016-12-13 20:30:29 +00:00
drh
fc4111f7d6
Convert sqlite3PagerGet() into a pointer-dispatched virtual method. This
...
makes it about 25% faster.
FossilOrigin-Name: 7f88bb44129a0cd36e27e00dc7c37e87cf3c90f7
2016-12-13 18:47:54 +00:00
drh
cbed604f52
In the pager, avoid checking for the illegal page number 0 except when creating
...
a new page.
FossilOrigin-Name: dee20ba982125ea98c280ad1571789af0f393903
2016-12-13 18:34:01 +00:00
drh
d5df3ff2cc
Further refinements to the virtual method implementation of
...
sqlite3PagerGet().
FossilOrigin-Name: 67df44464847b43f8c0b186157e31cc66c1e5796
2016-12-13 15:53:22 +00:00
drh
12e6f68279
Make the sqlite3PagerGet() interface into a virtual method, with different
...
implementations based on the current state of the pager. This gives a small
performance increase by avoiding unnecessary branches inside the various
methods.
FossilOrigin-Name: df5bb90d208e0633056389e97696d260e3830e8d
2016-12-13 14:32:47 +00:00
drh
5fa3d6ec3b
Faster operation for large in-memory databases.
...
FossilOrigin-Name: 9675518b33e8d40769daefb860dc748113f750b6
2016-12-12 16:08:44 +00:00
drh
6606586d81
Performance optimization in sqlite3PagerWrite().
...
FossilOrigin-Name: d4dff10a3d4edf8e1cc77c0a4f185d33f2c2e953
2016-12-12 11:05:15 +00:00
drh
a2ee589c46
Avoid unnecessary zeroing of fields in the MemPage object that are going
...
to be reinitialized before use anyhow. A smaller and faster binary results.
FossilOrigin-Name: 01ada3d1068476f90dcae02cb089001ea4bcc23d
2016-12-09 16:02:00 +00:00
dan
1158498dce
Add experimental sqlite3_snapshot_recover() API.
...
FossilOrigin-Name: 174a6076a8d7bebe5efebf55f3fdc5d87c589cc7
2016-11-18 20:49:43 +00:00
drh
65e1ba3fe7
Experimental changes for faster in-memory DB operation for large databases.
...
FossilOrigin-Name: 4fe94b0f1841180dfd8cac33838e335dc6a428bf
2016-11-17 21:52:08 +00:00
dan
4a5bad572a
Fix a problem with switching from wal to rollback mode when
...
SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE is configured.
FossilOrigin-Name: 46e0016207b8e7df2ae6c7491fd0f3c2926eed21
2016-11-11 17:08:51 +00:00
dan
e24452edef
Avoid using the "direct overflow read" optimization to read large blobs if the
...
pager layer has a wal file open - even if the database header indicates that
the db is not a wal database.
FossilOrigin-Name: b54c15f11796a75683eec4b502a22ccb87d621c6
2016-10-21 10:49:39 +00:00
dan
1480095ff5
Changes to support interrupting a checkpoint using sqlite3_interrupt().
...
FossilOrigin-Name: c88d36e251abec24aa7e37cf550e148904b9fd2d
2016-10-17 15:28:39 +00:00
dan
d0d49b9ca3
If SQLITE_ENABLE_ZIPVFS is defined, journal_mode=off is configured and a savepoint or statement rollback is attempted, move the pager into the error state to prevent the transaction from being committed. This makes it safe to use journal_mode=off with zipvfs under some conditions.
...
FossilOrigin-Name: 38d31e189e7c7899e14455f2c083aa676ce4d4c0
2016-09-01 09:35:20 +00:00
dan
7fb8990688
Have wal file checkpoints exit early if the sqlite3_interrupt() API function is called.
...
FossilOrigin-Name: 8a5f41c7b1718507524adef1a2730e99cf53270a
2016-08-12 16:21:15 +00:00