1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-02 17:26:44 +03:00
Commit Graph

50 Commits

Author SHA1 Message Date
dan
2756f806f2 Add assert() statements to verify that the SQLITE_OPEN_EXCLUSIVE flag is always passed to the VFS when opening a temporary file.
FossilOrigin-Name: e123da49ccae61d591abded52f4721aa10f20d75935c9a3e3fe826a9b8df2317
2022-08-16 10:52:35 +00:00
drh
0ca0988355 New assert() statements to help prove correctness of memjournal.c.
FossilOrigin-Name: d74ec88c2f9b9e056988add8322186750229e14a609d1a6969ba393a5b8c5174
2022-02-15 11:46:31 +00:00
drh
e63b7bdac8 Generalize the in-memory journal so that it is able to accept writes that
begin at any offset less than or equal to the current file size.

FossilOrigin-Name: c039d5476e0836c16d8c1ad99a2620f7fd04eb4b0e5dcb2246b42dde2ae1f95a
2022-02-14 21:11:17 +00:00
dan
0f42f71da2 Fix an obscure problem with releasing savepoints stored in an in-memory journal that could cause subsequent savepoint rollback to fail.
FossilOrigin-Name: 73c2b50211d3ae26aeb89976ec7b9fcd7de9f152b283ec7d0809ad18bddc603e
2022-01-01 19:29:50 +00:00
dan
c00727ab58 Fix a problem in the in-memory journal code that could occasionally lead to a segfault when a sub-transaction that modified zero pages was committed.
FossilOrigin-Name: 17960165f5840cab45b7a8bb02779ebfb321c68f33ec6da9ab14063ccd134fa4
2021-05-24 14:35:19 +00:00
drh
1b1a1dda9e Add ALWAYS() to an always-true conditional.
FossilOrigin-Name: fa3506db2051ceade8aa535d92c0900b3cfdd8850c6d00adedeb1ebfaf6f885f
2021-03-02 00:42:46 +00:00
dan
f43fef29bb When a sub-transaction is released, if no pages required by containing sub-transactions were journaled, truncate the statement journal. This might prevent out-of-control statement journal growth in some cases.
FossilOrigin-Name: e36327fb22db08763a82fb517407ff5ab0dbc053953098033e7e50796a777810
2021-02-22 15:44:45 +00:00
drh
d9059bdb5b Fix pointer aliasing problem in the in-memory journal code.
Ref: [https://sqlite.org/forum/forumpost/d44eb2fc44|forum post d44eb2fc44]

FossilOrigin-Name: 892e9191dc8f805678a501db1993437ee99a1e1849496a0a24ceec9b84123257
2020-07-24 09:14:44 +00:00
drh
908e7c43a7 Always check for reads past the end of the file on the in-memory journal
driver.  This used to be an assert().

FossilOrigin-Name: 4d41ca7d6efbdac70890a8d4159488fc7f59bf78a550b00597b4df990c4fcaef
2019-08-14 15:17:21 +00:00
drh
9e61104c68 More precise determination of when an in-memory journal needs to be
spilled to disk.

FossilOrigin-Name: 6a505bdd9347783d3d8105cb8185aa787801bad0c855b623cfd780fb406f0e7b
2017-07-28 18:16:14 +00:00
drh
94e32acb56 Transform two #ifdef statements into #if statements.
FossilOrigin-Name: f2c6b5845028ef25dcd17e23e11b93c9f7296c26c7a21718fdae8f4b48c4e1da
2017-07-20 21:01:53 +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
70b8d6bbcc Update the header comment on the memjournal.c file. No code changes.
FossilOrigin-Name: 07f10deabb0f4207408142541e3913d638dfcdeb
2016-04-12 11:58:18 +00:00
drh
38b3dde00e Prevent the in-memory journal read cursor from entering an inconsistent state
when it reads the last few bytes out of the journal file.  Fix for
ticket [7f7f8026eda38].

FossilOrigin-Name: c4b9c611bdcd85f31d68aaf114ee34a9f27eba6d
2016-04-07 18:42:23 +00:00
drh
13969f5af0 Fix harmless compiler warnings.
FossilOrigin-Name: 25d776e4523aefeec007943fe29aa17c23ccb301
2016-03-21 22:28:51 +00:00
drh
d93b2b840d Simplifications to the memjournal.c logic to facilitate testing.
FossilOrigin-Name: 8baa2c2c7698e03418531482a8314a5d7ae2c7d3
2016-03-09 04:17:17 +00:00
drh
769b4c95ca Move the write failure test in memjrnlCreateFile() to just after the
actual write, thus reducing the number of instances of the test by one.

FossilOrigin-Name: 7f00d80c63b15376391f661d872f2b29a970702d
2016-03-09 03:44:32 +00:00
drh
273021d71a Add an #ifdef and an ALWAYS() for coverage.
FossilOrigin-Name: 069337a922867ad0d023f5bf36e13ea46e047000
2016-03-09 02:03:03 +00:00
dan
7ed4020890 Modify the memjournal.c code to make it a bit smaller.
FossilOrigin-Name: d99ac4154812065eef26c298de52954d7ee0bd75
2016-03-08 17:44:08 +00:00
drh
c2f18adde5 Remove the unused journal.c source file (its function have been subsumed into
memjournal.c).  Refactor some of the names in memjournal.c.  No functional
changes.

FossilOrigin-Name: 5f2a262d3f6b1531001326faf1d3b3d92c20a30a
2016-03-05 15:35:09 +00:00
drh
65a7e769e7 Work around (incorrect) ASAN warnings in memjournal.c.
FossilOrigin-Name: 4de09777dad6188b7e897473700af3c9655e8547
2016-03-05 15:03:31 +00:00
drh
ff6b826631 Get in-memory subjournals working for builds without SQLITE_ENABLE_ATOMIC_WRITE.
FossilOrigin-Name: b5378dcea53d4cd1744d13ddee5e50869607b771
2016-03-04 00:13:29 +00:00
dan
6e76326d18 When using a temporary file for a statement journal, store the first 64KiB in memory. If the file grows larger than that, flush it to disk and free the memory. Hardcoding to 64KiB is just an experiment to check that the memjournal.c code works.
FossilOrigin-Name: 44b2dc18e200e87cf062cb8f1659727c53fa36e9
2016-02-29 20:18:21 +00:00
dan
5f37ed5121 Fix minor problems with new code in memjournal.c.
FossilOrigin-Name: 9fd3f7b9c93325a83cdbe7dc9ee312b22a9c2898
2016-02-29 20:00:13 +00:00
dan
2491de28f1 Extend the code in memjournal.c so that it subsumes the role of journal.c. And (untested) can flush journal or statement journal files to disk after they grow to a specified size.
FossilOrigin-Name: e0b0b4316531fc8afa74b4882d9c74a91030ec69
2016-02-27 20:14:55 +00:00
fad3039c51 Enhance ability to debug out-of-memory errors.
FossilOrigin-Name: 6a9c4a3ebfb7cc0738ef6634440ccab44a21ff28
2016-02-13 23:43:46 +00:00
60ec914c74 Fix typos in comments. No code changes.
FossilOrigin-Name: e62aab5e9290503869e1f4d5e0fefd2b4dee0a69
2014-09-06 16:39:46 +00:00
drh
e1e2e9acd6 Make the MIN() and MAX() macros available in sqliteInt.h. Add TUNING
comments to the NGQP and adjust costs slightly.

FossilOrigin-Name: 3a72af2a95b04b8e195ef17cb3e9d9021a4f0915
2013-06-13 15:16:53 +00:00
drh
da8caa0b2d Fix harmless compiler warnings.
FossilOrigin-Name: 1a1cf5aa86734c832d845e07780262a178188d56
2013-04-22 23:38:50 +00:00
drh
2fcc7bdb05 Fix a comment typo in memjournal.c
FossilOrigin-Name: 9b272ed46fc704cb818b71d18ae8ee73a752a881
2010-09-16 23:18:57 +00:00
drh
6e1f482824 Tweaks to the new shared-memory interface design - mostly comment changes.
FossilOrigin-Name: 6336de7aa96a6e1e68cc123e5d5f485d790d95a2
2010-07-13 23:41:40 +00:00
drh
ff82894faa Suppress various compiler warnings.
FossilOrigin-Name: e82d008eaffb5522080cad6c69c1b194b78eadbd
2010-06-26 21:34:06 +00:00
drh
f83dc1ef3f Remove global variables when compiled with SQLITE_OMIT_WSD
FossilOrigin-Name: dd10a547f10364058025c48b28d8fd240bf46aff
2010-06-03 12:09:52 +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
09c0f6d02d Recent changes cause the xSync method of the memory journal implementation
to be used, so remove the assert(0).

FossilOrigin-Name: 1f2cb9402838373f6370660dfc885013df079895
2010-04-12 19:44:22 +00:00
drh
c81c11f62c Remove the obsolete "$Id:$" RCS identifier strings from the source code.
FossilOrigin-Name: f6c045f649036958078cb15cd9d5453680c82b0c
2009-11-10 01:30:52 +00:00
de630353d8 Speed up INSERT operations that add data to UNIQUE or PRIMARY KEY indexes by rationalizing duplicate seek operations. (CVS 6599)
FossilOrigin-Name: cac4f3d812f0a02ca5c1fa78d366f694403929a8
2009-05-04 11:42:29 +00:00
drh
ea598cbd8d Additional code to make sure and to assert that memory allocations have
8-byte alignment.  Ticket #3777. (CVS 6450)

FossilOrigin-Name: 208382e032134d9c78fe1cfcb98ce9defb4e3e26
2009-04-05 12:22:08 +00:00
drh
de46798569 Fix a couple of harmless nuisance warnings. (CVS 6438)
FossilOrigin-Name: 53dac0a455b9a822f710c257711e8d319060cf84
2009-04-02 17:22:41 +00:00
drh
2206a2b6ab Mark untestable branches of memjournal.c as such. Reduce the size of a
single block allocation to a power of two.  Reenable the inmemory_journal
permutation test. (CVS 6431)

FossilOrigin-Name: 05c182a5db9fa96f2d588dd884ce77916b0e60e4
2009-04-01 23:09:43 +00:00
drh
3a5990ab44 Specify type "void" in the parameter list of functions that take no parameters.
Tickets #3545 and #3546. (CVS 6046)

FossilOrigin-Name: c2228bd14ae54b17450f64357bf835d08c447250
2008-12-20 02:14:39 +00:00
drh
1bd10f8a00 Additional work at eliminating silly compiler warnings. (CVS 6010)
FossilOrigin-Name: ea01d43788a75e39c7f03c22681d1a338d52cf0e
2008-12-10 21:19:56 +00:00
drh
ea6788322e Never use strlen(). Use our own internal sqlite3Strlen30() which is
guaranteed to never overflow an integer.  Additional explicit casts to
avoid nuisance warning messages. (CVS 6007)

FossilOrigin-Name: c872d554930ecf221ac2be5f886d5d67bb35288c
2008-12-10 19:26:22 +00:00
f3d3c27a0c Fix some compiler warnings that show up when building the amalgamation only. (CVS 5927)
FossilOrigin-Name: d1abe8a1c9a990b02c71d6c249436381c9fde443
2008-11-19 16:52:44 +00:00
62c14b3487 Changes to avoid "unused parameter" compiler warnings. (CVS 5921)
FossilOrigin-Name: 88134322c36b41304aaeef99c39b4ef5b495ca3b
2008-11-19 09:05:26 +00:00
drh
7ab49bfd1e Do not redefine the MIN and MAX macros if they are already defined. (CVS 5896)
FossilOrigin-Name: f41dd2053c8a297a05b47d0ef631b4d9a7db2fff
2008-11-12 15:24:27 +00:00
drh
27c3bd7b73 Add data structure description comments to memjournal.c. (CVS 5847)
FossilOrigin-Name: e9c2adbcbf5c28837b06e0fbba93f1764cc3607f
2008-10-28 18:12:36 +00:00
39281b4b42 Add the memjournal.c file that should have been with the previous checkin. (CVS 5831)
FossilOrigin-Name: 0509eff0e6b5cdeeb52c12c0574ea63e9715bcb5
2008-10-17 19:13:04 +00:00