/ History for src/btree.c
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History for src/btree.c

2020-07-14
12:40
[b8b0e80c] part of check-in [f25a56c2] Early detection of freelist size corruption in incremental vacuum. (check-in: [f25a56c2] user: drh branch: trunk, size: 371147)
2020-07-11
16:42
[e8a64df5] part of check-in [30735432] Improved detection of a corrupt database schema. Fix for a problem discovered by dbsqlfuzz. (check-in: [30735432] user: drh branch: trunk, size: 371131)
2020-06-29
18:30
[e8e4a7e4] part of check-in [87c7d962] Change the name of IntegrityCk.mallocFailed to IntegrityCk.bOomFault to avoid confusion with the sqlite3 object field with the same name. (check-in: [87c7d962] user: drh branch: trunk, size: 371041)
2020-06-19
15:24
[b49799f0] part of check-in [7a876209] Extend the refactoring into extensions. Clean up stray newlines. (check-in: [7a876209] user: drh branch: trunk, size: 371059)
13:33
[fe9c4c68] part of check-in [9536fa0a] Further refactoring of the schema table name. (check-in: [9536fa0a] user: drh branch: trunk, size: 371051)
11:34
[d9d7813a] part of check-in [7bb08b1b] Refactoring various names. No changes in the resulting machine code. (check-in: [7bb08b1b] user: drh branch: trunk, size: 371051)
2020-06-18
13:16
[70129047] part of check-in [b69b9c06] Fix an assert() that could fail when operating on a database with a corrupt schema. (check-in: [b69b9c06] user: drh branch: branch-3.32, size: 371059)
2020-06-17
20:29
[e6db473a] part of check-in [4a340c9b] Fix an assert() that could fail when operating on a database with a corrupt schema. (check-in: [4a340c9b] user: dan branch: trunk, size: 371059)
2020-06-15
20:27
[f3a4479b] part of check-in [61782a7a] Provide "sqlite_schema" as an alternative name to the table that holds the database schema. (check-in: [61782a7a] user: drh branch: trunk, size: 371020)
2020-06-12
00:31
[fabc215b] part of check-in [44e573ec] Remove a NEVER() that turns out to be reachable. (check-in: [44e573ec] user: drh branch: trunk, size: 371020)
2020-05-18
19:55
[61260c56] part of check-in [5dc355cc] Merge latest trunk changes into this branch. (check-in: [5dc355cc] user: dan branch: begin-concurrent-pnu-wal2, size: 389927)
17:18
[8977eed0] part of check-in [16b1eca9] Merge latest trunk changes into this branch. (check-in: [16b1eca9] user: dan branch: wal2, size: 371058)
16:19
[9cdd780b] part of check-in [c69f030b] Merge recent changes from trunk. (check-in: [c69f030b] user: drh branch: begin-concurrent-pnu, size: 389966)
15:41
[0f2b08c7] part of check-in [9e4a7b3e] Merge latest trunk changes into this branch. (check-in: [9e4a7b3e] user: dan branch: begin-concurrent, size: 389896)
2020-05-07
14:26
[f14e415f] part of check-in [49e4dc72] Fix an error that could occur if the first transaction executed by a connection configured to use blocking locks is a write-transaction for which the WRITER lock cannot be obtained. (check-in: [49e4dc72] user: dan branch: setlk-deadlock-changes, size: 371027)
14:05
[d78458bf] part of check-in [ac4ee696] Merge trunk changes into this branch. (check-in: [ac4ee696] user: dan branch: setlk-deadlock-changes, size: 371025)
01:56
[b7b9b444] part of check-in [99749d4f] Fix the handling of reserve-bytes so that the maximum value of 255 can be used. (check-in: [99749d4f] user: drh branch: trunk, size: 370542)
2020-05-06
20:55
[a0f550b2] part of check-in [92dc5913] Fix harmless compiler warnings. (check-in: [92dc5913] user: drh branch: setlk-deadlock-changes, size: 371043)
20:27
[f0cd4a36] part of check-in [f3ef9c7c] Add error code SQLITE_BUSY_TIMEOUT, used internally by the OS layer to indicate that a call to xShmLock() has failed due to timeout of a blocking lock. (check-in: [f3ef9c7c] user: dan branch: setlk-deadlock-changes, size: 371108)
19:22
[98e6ff5f] part of check-in [22de99ef] Fix compiler warnings in non-SQLITE_ENABLE_SETLK_TIMEOUT builds. (check-in: [22de99ef] user: dan branch: setlk-deadlock-changes, size: 371013)
19:14
[4d5a7d22] part of check-in [105d6c9b] Block on the WRITER lock when attempting to run recovery. (check-in: [105d6c9b] user: dan branch: setlk-deadlock-changes, size: 371007)
15:07
[e810b07f] part of check-in [a3727dba] Merge latest trunk changes into this branch. (check-in: [a3727dba] user: dan branch: setlk-deadlock-changes, size: 370949)
2020-05-05
20:30
[2a152165] part of check-in [d6f819a9] Unless upgrading an existing read transaction, have ENABLE_SETLK_TIMEOUT builds attempt to use a blocking lock when opening a write transaction on a wal mode database. (check-in: [d6f819a9] user: dan branch: setlk-deadlock-changes, size: 370942)
19:54
[079ae874] part of check-in [9a84d8eb] The only known path to a corruption detection branch was cut off by the previous commit implementing earlier index corruption. So make the branch NEVER. Maybe a fuzzer will find a new path. (check-in: [9a84d8eb] user: drh branch: trunk, size: 370560)
2020-05-04
19:42
[54d404ff] part of check-in [553423c2] Changes to avoid deadlock in SQLITE_ENABLE_SETLK_TIMEOUT builds. (check-in: [553423c2] user: dan branch: setlk-deadlock-changes, size: 370508)
2020-05-01
15:04
[3383ad76] part of check-in [2100b2c8] Merge recent trunk enhancements. (check-in: [2100b2c8] user: drh branch: approximate-analyze, size: 370553)
2020-04-22
00:50
[02376eb7] part of check-in [52a6acca] Clarify the comment on the sqlite3BtreeGetRequestedReserve() routine. No changes to code. (check-in: [52a6acca] user: drh branch: trunk, size: 370591)
2020-04-20
15:18
[97673c54] part of check-in [abc1aad7] The SQLITE_TESTCTRL_RESERVE operator is removed. In its place is the more general SQLITE_FCNTL_RESERVE_BYTES which is an API and which can operator on more than just the main schema. (check-in: [abc1aad7] user: drh branch: trunk, size: 370394)
14:05
[671be078] part of check-in [4135cb02] Remove an obsolete comment. No changes to code. (check-in: [4135cb02] user: drh branch: trunk, size: 370276)
2020-04-09
19:00
[f35d8d49] part of check-in [6c11b67b] Merge recent trunk changes into begin-concurrent-pnu-wal2. (check-in: [6c11b67b] user: drh branch: begin-concurrent-pnu-wal2, size: 389332)
18:51
[bb7cf288] part of check-in [d6fda470] Merge recent trunk changes into the apple-osx branch. (check-in: [d6fda470] user: drh branch: apple-osx, size: 370646)
18:46
[05522a88] part of check-in [6fb87062] Merge recent trunk enhancements into the wal2 branch. (check-in: [6fb87062] user: drh branch: wal2, size: 370461)
18:29
[73d4dabe] part of check-in [92f71a88] Merge recent trunk enhancements into the begin-concurrent branch. (check-in: [92f71a88] user: drh branch: begin-concurrent, size: 389301)
2020-03-31
18:41
[25e062b1] part of check-in [c705ce26] Merge recent enhancements from trunk. (check-in: [c705ce26] user: drh branch: approximate-analyze, size: 370392)
2020-03-30
13:35
[79ce96ab] part of check-in [a49f8ec5] Use __atomic_load_n() and __atomic_store_n() for a few more things where they are available. (check-in: [a49f8ec5] user: dan branch: trunk, size: 370430)
2020-03-17
13:41
[f2e0c75c] part of check-in [a9bfa47a] Remove the SQLITE_OMIT_BTREECOUNT option. Btree count is required. (check-in: [a9bfa47a] user: drh branch: approximate-analyze, size: 370366)
2020-03-11
19:30
[df9c363c] part of check-in [b288bbd1] Add documentation notes and fix outstanding issues on this branch. (check-in: [b288bbd1] user: dan branch: begin-concurrent-report, size: 403852)
16:46
[fd245c43] part of check-in [724a4a84] Support reporting of blob fields. (check-in: [724a4a84] user: dan branch: begin-concurrent-report, size: 403545)
2020-03-10
21:14
[5bee9ee0] part of check-in [9ae970fd] Fix test and other problems with reporting pages read and written. (check-in: [9ae970fd] user: dan branch: begin-concurrent-report, size: 403391)
2020-03-09
21:00
[246757a9] part of check-in [b661ccc8] Report on pages, as well as keys, read and written by BEGIN CONCURRENT transactions. (check-in: [b661ccc8] user: dan branch: begin-concurrent-report, size: 403113)
2020-03-08
13:33
[7271a120] part of check-in [25dc53f6] Avoid a redundant NULL check (check-in: [25dc53f6] user: pdr branch: trunk, size: 370404)
2020-03-07
16:51
[8f8f1fa2] part of check-in [d28d1739] Fix reporting cases related to UPDATE. And of WITHOUT ROWID tables. (check-in: [d28d1739] user: dan branch: begin-concurrent-report, size: 401632)
2020-03-06
20:51
[43733638] part of check-in [1c1f180e] Enhancement to log logical writes as well as reads. (check-in: [1c1f180e] user: dan branch: begin-concurrent-report, size: 401608)
2020-03-05
20:59
[14a0d8c5] part of check-in [ab458a31] Fix reporting for indexed range scans that extend past the end of the data. (check-in: [ab458a31] user: dan branch: begin-concurrent-report, size: 400156)
2020-03-04
19:17
[205b2208] part of check-in [6ec5a899] Fix cases to do with index scans. (check-in: [6ec5a899] user: dan branch: begin-concurrent-report, size: 398848)
2020-03-03
21:01
[0ead4efa] part of check-in [427e2c9d] Extend begin_concurrent_report() so that it reports on accesses to non-intkey tables as well. (check-in: [427e2c9d] user: dan branch: begin-concurrent-report, size: 396636)
2020-03-02
21:00
[3db16367] part of check-in [ad961aee] Fix reporting for some range scan cases. (check-in: [ad961aee] user: dan branch: begin-concurrent-report, size: 394240)
15:05
[c6622891] part of check-in [b1880b18] Merge latest begin-concurrent-pnu changes with this branch. (check-in: [b1880b18] user: dan branch: begin-concurrent-report, size: 392927)
2020-02-18
23:58
[4dfab586] part of check-in [ee034fe9] Remove a NEVER() macro and add a test case to cause its argument to be true. (check-in: [ee034fe9] user: drh branch: trunk, size: 370399)
2020-02-07
01:12
[7cc1fb40] part of check-in [5a877221] Simplify the code by removing the unsupported and undocumented SQLITE_HAS_CODEC compile-time option (check-in: [5a877221] user: drh branch: trunk, size: 370406)
2020-02-04
20:22
[248e7a82] part of check-in [76668b55] Merge latest trunk/wal2 changes, including the SQLITE_ENABLE_CORRUPT_PGNO patch, with this branch. (check-in: [76668b55] user: dan branch: begin-concurrent-pnu-wal2, size: 389501)
20:11
[e42ef2a8] part of check-in [6ad4d6b7] Merge latest trunk changes into this branch. (check-in: [6ad4d6b7] user: dan branch: wal2, size: 370630)
20:08
[d4f73dbe] part of check-in [f253618a] Merge latest trunk changes, including the SQLITE_ENABLE_CORRUPT_PGNO patch, into this branch. (check-in: [f253618a] user: dan branch: begin-concurrent, size: 389470)
2020-01-29
13:50
[ff1af84c] part of check-in [ffd8bb93] Remove a NEVER() that is in fact reachable. Test cases in dbsqlfuzz and TH3. (check-in: [ffd8bb93] user: drh branch: trunk, size: 370599)
2020-01-21
21:01
[f24e74f4] part of check-in [c39e3c14] Begin adding instrumentation to record and report on the set of key-ranges a concurrent transaction reads from the database. (check-in: [c39e3c14] user: dan branch: begin-concurrent-report, size: 392934)
2020-01-15
14:21
[ff96ebfc] part of check-in [350627f3] Merge in the latest trunk changes via the begin-concurrent-pnu branch. (check-in: [350627f3] user: drh branch: begin-concurrent-pnu-wal2, size: 389508)
14:11
[dff80958] part of check-in [35eae71a] Merge recent enhancements and fixes from trunk. (check-in: [35eae71a] user: drh branch: wal2, size: 370637)
13:34
[cb9f45dd] part of check-in [95ba2f50] Merge fixes and enhancements from trunk into begin-concurrent. (check-in: [95ba2f50] user: drh branch: begin-concurrent, size: 389477)
12:49
[87013de9] part of check-in [dadedf41] Merge all recent enhancements and fixes from trunk into the apple-osx branch. (check-in: [dadedf41] user: drh branch: apple-osx, size: 370822)
2020-01-14
16:39
[7af5ff0f] part of check-in [54bf0481] Remove an ALWAYS on a branch for improved database corruption detection in btree.c:freeSpace(). Test case found by dbsqlfuzz. (check-in: [54bf0481] user: drh branch: trunk, size: 370606)
2020-01-07
18:10
[d70000b5] part of check-in [d7d98d3d] Fix a performance regression caused by the previous check-in. (check-in: [d7d98d3d] user: drh branch: trunk, size: 370588)
13:32
[68dc4906] part of check-in [03c1d75d] Add an "|| CORRUPT_DB" term to an assert() statement inside of btree. (check-in: [03c1d75d] user: drh branch: trunk, size: 370588)
2020-01-05
21:53
[ac383ca5] part of check-in [46f8ef70] Remove a NEVER in btree due to a new test case from dbsqlfuzz. (check-in: [46f8ef70] user: drh branch: trunk, size: 370564)
2020-01-04
17:55
[c457b6a9] part of check-in [481f4956] Remove another NEVER added by check-in [7b62555e285f32d3]. Dbsqlfuzz found another test case. (check-in: [481f4956] user: drh branch: trunk, size: 370545)
14:50
[615294ab] part of check-in [61f873b1] Back out another NEVER added by check-in [7b62555e285f32d3] - the test case was already in test/fuzzdata3.db, but it only occurs if compiled without SQLITE_ENABLE_PREUPDATE_HOOK. (check-in: [61f873b1] user: drh branch: trunk, size: 370552)
12:34
[71f8fade] part of check-in [04a05c83] Restore a NEVER and an assert in btree that was removed by check-in [7b62555e285f32d3]. Dbsqlfuzz found test cases. (check-in: [04a05c83] user: drh branch: trunk, size: 370559)
2020-01-03
17:40
[df0ec554] part of check-in [7b62555e] Add NEVER macros to error-detection branches that were made unreachable (as far as I can tell) by check-in [ceacc28b03580334]. (check-in: [7b62555e] user: drh branch: trunk, size: 370506)
15:51
[0eb5d02a] part of check-in [ceacc28b] Improve a specific case of early database corruption dectecion in the b-tree layer. (check-in: [ceacc28b] user: dan branch: trunk, size: 370420)
2019-12-29
22:08
[f191aa4d] part of check-in [db4b7e1d] Do not allow triggers that run as part of REPLACE conflict resolution during an UPDATE to modify the the table being updated. Otherwise, those triggers might delete content out from under the update operation, leading to all kinds of problems. Ticket [314cc133e5ada126] (check-in: [db4b7e1d] user: drh branch: trunk, size: 370427)
00:52
[e03085a7] part of check-in [21ef6e99] Add the OP_FinishSeek opcode which completes an OP_DeferredSeek if the seek has not already completed. Also add the sqlite3WhereUsesDeferredSeek() interface to the query planner. The UPDATE implementation adds an OP_FinishSeek before running the final OP_Insert if one is needed. Ticket [ec8abb025e78f40c] and also an assertion fault reported by Yongheng. (check-in: [21ef6e99] user: drh branch: trunk, size: 370060)
2019-12-23
18:02
[695bcbc6] part of check-in [61c22336] Early detection of database corruption in balance_deeper(). (check-in: [61c22336] user: drh branch: trunk, size: 370097)
2019-12-20
12:33
[716fc9bd] part of check-in [07beb362] Fix an assert() in btree.c that can fail if an INSERT is attempted on a corrupted database while in PRAGMA writable_schema=ON. (check-in: [07beb362] user: drh branch: trunk, size: 369084)
2019-11-22
00:42
[d22498af] part of check-in [6a64fb6a] Revise the SQLITE_OPEN_NOFOLLOW so that it actually uses O_NOFOLLOW in the open() system call. This backs out the SQLITE_ACCESS_SYMLINK value but adds the new SQLITE_OK_SYMLINK return code from the xFullPathname method of sqlite3_vfs when that routine resolves symbolic links. O_NOFOLLOW is always included in open() system calls for journal files. (check-in: [6a64fb6a] user: drh branch: trunk, size: 369055)
2019-11-17
11:47
[b4350767] part of check-in [ed57c48e] Fix an assert that can fail if the schema is corrupt. (check-in: [ed57c48e] user: drh branch: trunk, size: 368953)
2019-10-25
14:46
[12e251f8] part of check-in [ea068b09] Performance optimization in sqlite3BtreeCursor(). (check-in: [ea068b09] user: drh branch: trunk, size: 368873)
2019-10-11
14:21
[a8a9c2ce] part of check-in [bf875dc5] Faster response to sqlite3_interrupt() in the OP_IntegrityCk and OP_Count opcodes. (check-in: [bf875dc5] user: drh branch: trunk, size: 368315)
2019-09-16
12:29
[5de41f11] part of check-in [15593bf3] Bring the begin-concurrent-pnu-wal2 branch up to date with all the latest enhancements on trunk. (check-in: [15593bf3] user: drh branch: begin-concurrent-pnu-wal2, size: 387046)
12:23
[48b4ced9] part of check-in [da8bc974] Merge recent trunk enhancements into the wal2 branch. (check-in: [da8bc974] user: drh branch: wal2, size: 368175)
12:08
[50fc34cd] part of check-in [93b9ef3f] Merge recent trunk enhancements into the begin-concurrent branch. (check-in: [93b9ef3f] user: drh branch: begin-concurrent, size: 387015)
12:02
[fe7876b0] part of check-in [a95191de] Merge the latest changes from trunk into the apple-osx branch. (check-in: [a95191de] user: drh branch: apple-osx, size: 368360)
2019-08-24
21:02
[fdc4389b] part of check-in [d7434cae] Minor performance improvement for balance_nonroot(). (check-in: [d7434cae] user: dan branch: trunk, size: 368144)
20:59
[a1af850b] part of check-in [c88d42a9] Minor performance improvement to balance_nonroot(). (check-in: [c88d42a9] user: dan branch: mistake, size: 368176)
2019-08-15
13:17
[5cf99451] part of check-in [4cc5694c] Ensure that the cell overwrite optimization does not overwrite the header of the b-tree page. (check-in: [4cc5694c] user: drh branch: trunk, size: 368072)
00:04
[a6b6f473] part of check-in [b517a52f] Early detection out-of-bounds page numbers on the direct-overflow-read optimization gives consistent error messages regardless of whether or not the optimization is enabled. (check-in: [b517a52f] user: drh branch: trunk, size: 368002)
2019-08-12
18:26
[6061323b] part of check-in [7dae7b96] Make sure the btree cursor overflow cache is cleared when overwriting a cell in sqlite3BtreeInsert(). Ticket [3cf9bb227e9a5d32] (check-in: [7dae7b96] user: drh branch: trunk, size: 367934)
2019-08-08
01:39
[781e4594] part of check-in [30e6ee27] Remove a NEVER() that is reachable from a corrupt database. (check-in: [30e6ee27] user: drh branch: trunk, size: 367850)
2019-08-05
16:22
[397b5075] part of check-in [4b00799b] Improved detection of corruption on the freeblock list of a btree page. (check-in: [4b00799b] user: drh branch: trunk, size: 367857)
2019-08-03
01:39
[4f122e98] part of check-in [49aa3448] Give the SQLITE_TESTCTRL_PRNG_SEED two arguments. The second argument if not NULL is a pointer to a database connection which seeds the connection from its schema cookie. In this way, fuzzers can control the PRNG seed. (check-in: [49aa3448] user: drh branch: prng-seed-test-control, size: 367769)
2019-07-22
23:30
[af0a7159] part of check-in [9991626b] Do not use the insert-overwrite optimization if the cell might overwrite the page header. (check-in: [9991626b] user: drh branch: branch-3.29, size: 368066)
23:24
[58d002f7] part of check-in [f60a8306] Do not use the insert-overwrite optimization if the cell might overwrite the page header. (check-in: [f60a8306] user: drh branch: trunk, size: 367776)
2019-07-17
16:18
[4508402e] part of check-in [59c9e73f] Fix an incorrect assert() in balance_nonroot(). (check-in: [59c9e73f] user: drh branch: trunk, size: 367659)
2019-07-16
19:44
[83a4b1b7] part of check-in [9e664585] Add new assert() statements in an attempt to help static analyzers avoid false-positives. (check-in: [9e664585] user: drh branch: trunk, size: 368028)
2019-07-13
09:55
[0e30c986] part of check-in [c7920f55] Trivial performance improvement for balance(). (check-in: [c7920f55] user: dan branch: filter-clause, size: 367951)
2019-07-08
21:25
[62662509] part of check-in [08dcb459] Merge enhancments from wal2, which also merges trunk enhancements. (check-in: [08dcb459] user: drh branch: begin-concurrent-pnu-wal2, size: 386851)
21:19
[caaf623a] part of check-in [dcbcbc2a] Merge all enhancements from trunk into the wal2 branch. (check-in: [dcbcbc2a] user: drh branch: wal2, size: 367980)
21:06
[41ac7b8c] part of check-in [7fff0803] Merge recent trunk enhancements into the begin-concurrent branch. (check-in: [7fff0803] user: drh branch: begin-concurrent, size: 386820)
20:59
[b2baa0d7] part of check-in [de88ed86] Merge recent enhancements from trunk into apple-osx. (check-in: [de88ed86] user: drh branch: apple-osx, size: 368165)
2019-05-16
20:36
[1dbc191e] part of check-in [4b05caeb] Initialize the 18-byte overrun area on the buffer used to reconstruct overflow btree cells during a btree search, to avoid a harmless jump-depends-on-uninit-values warning. (check-in: [4b05caeb] user: drh branch: trunk, size: 367949)
2019-05-14
22:07
[bcd6ac1f] part of check-in [3deaa6e2] Merge the latest trunk and wal2 enhancements. (check-in: [3deaa6e2] user: drh branch: begin-concurrent-pnu-wal2, size: 386697)
22:02
[1c9c4801] part of check-in [23ec34e4] Merge the latest trunk enhancements into the wal2 branch. (check-in: [23ec34e4] user: drh branch: wal2, size: 367826)
21:51
[58ed4940] part of check-in [5d3a6e18] Merge the latest trunk enhancements into begin-concurrent. (check-in: [5d3a6e18] user: drh branch: begin-concurrent, size: 386666)
19:39
[53ccbd3e] part of check-in [40362d51] Merge recent enhancements from trunk into apple-osx. (check-in: [40362d51] user: drh branch: apple-osx, size: 368011)
2019-05-10
14:34
[5e15f903] part of check-in [e6d5fee8] Ensure that the BtShared.nPage value is reset correctly on a SAVEPOINT ROLLBACK. (check-in: [e6d5fee8] user: drh branch: trunk, size: 367795)
2019-05-08
23:55
[0a276df3] part of check-in [ebe4845c] Ensure that the sqlite3BtreeLast() interface initializes the *pRes return to zero if the cursor is already sitting on the last entry of the table. Manuel Rigger found the obscure test case for which this makes a difference. (check-in: [ebe4845c] user: drh branch: trunk, size: 367611)
04:33
[9177613e] part of check-in [ad8fc5d8] Remove an ALWAYS() that was previously added by check-in [a0819086] but which turns out can sometimes be false. (check-in: [ad8fc5d8] user: drh branch: trunk, size: 367596)
03:34
[fcfd6b96] part of check-in [74eba255] Remove a NEVER() that was added in the previous check-in [a0819086a521f] because it is in fact reachable. (check-in: [74eba255] user: drh branch: trunk, size: 367604)
00:17
[3fe1f1b3] part of check-in [a0819086] Earlier detections of errors in the byte-offset-to-cell-content integer at offset 5 in the header of a btree page. (check-in: [a0819086] user: drh branch: trunk, size: 367611)
2019-05-07
17:47
[096a98aa] part of check-in [8b6691f6] Strive to prevent harmless compiler warnings in GCC 4.8.5. (check-in: [8b6691f6] user: drh branch: trunk, size: 367577)
2019-05-02
15:56
[e048f240] part of check-in [c509d8a8] Earlier detection of a database corruption case in balance_nonroot(), to prevent a possible use of an uninitialized variable. (check-in: [c509d8a8] user: drh branch: trunk, size: 367539)
2019-04-22
11:47
[ffe71010] part of check-in [b2ce5ed1] Fix an assert() that may be false for corrupt databases. (check-in: [b2ce5ed1] user: dan branch: trunk, size: 367319)
2019-04-15
15:28
[024bdefd] part of check-in [1cd536ec] Merge all recent enhancements. (check-in: [1cd536ec] user: drh branch: begin-concurrent-pnu-wal2, size: 386237)
15:17
[2550761e] part of check-in [8950f119] Merge the latest trunk enhancements. (check-in: [8950f119] user: drh branch: wal2, size: 367366)
14:59
[380dce2f] part of check-in [7c328e88] Merge the latest enhancements from trunk. (check-in: [7c328e88] user: drh branch: begin-concurrent, size: 386206)
14:49
[917d4a49] part of check-in [378230ae] Bring in the latest enhancements from trunk. (check-in: [378230ae] user: drh branch: apple-osx, size: 367551)
2019-04-09
01:26
[958939f6] part of check-in [88204085] Use an unsigned integer to count free pages in btree.c:freePage2(). (check-in: [88204085] user: drh branch: trunk, size: 367335)
2019-04-02
00:34
[5a6023e4] part of check-in [0b35aebb] Merge enhancements from trunk. (check-in: [0b35aebb] user: drh branch: apple-osx, size: 367551)
2019-04-01
03:07
[d1261e5e] part of check-in [6cf8b18e] Fix harmless compiler warnings seen with MSVC. (check-in: [6cf8b18e] user: mistachkin branch: trunk, size: 367335)
2019-03-30
19:17
[0799c276] part of check-in [bb643bac] Add a call to sqlite3FaultSim(410) inside of btreeRestoreCursorPosition() to simplify testing of error scenarios. (check-in: [bb643bac] user: drh branch: trunk, size: 367331)
18:39
[0de9fec3] part of check-in [fb125bd3] The defragmentPage() routine detects corruption in the first-free-slot fields at offset 1 in the header and throws an error, rather than asserting. (check-in: [fb125bd3] user: drh branch: trunk, size: 367263)
2019-03-29
15:21
[bf2e05e2] part of check-in [c2edbf3b] Remove the unused P5 flag from the OP_Rewind opcode. (check-in: [c2edbf3b] user: drh branch: trunk, size: 367428)
2019-03-26
13:08
[a644e8f3] part of check-in [c6da3911] Add support for new window functions related features - GROUPS frames, RANGE frames with logical start and end points, the EXCLUDE clause and window chaining. (check-in: [c6da3911] user: dan branch: trunk, size: 368023)
12:37
[c496125a] part of check-in [dc3c0b8b] Merge recent enhancements from trunk. (check-in: [dc3c0b8b] user: drh branch: apple-osx, size: 368167)
12:29
[45d2c042] part of check-in [2e964aaf] Bring this branch up to date with all the latest enhancements. (check-in: [2e964aaf] user: drh branch: begin-concurrent-pnu-wal2, size: 386853)
12:22
[ca5a54eb] part of check-in [a0e2e902] Merge enhancements from trunk. (check-in: [a0e2e902] user: drh branch: wal2, size: 367982)
12:16
[b517c680] part of check-in [51e3e835] Merge the latest trunk changes. (check-in: [51e3e835] user: drh branch: begin-concurrent-pnu, size: 386822)
12:07
[b8d297f8] part of check-in [774d0d52] Merge recent enhancements from trunk. (check-in: [774d0d52] user: drh branch: begin-concurrent, size: 386822)
2019-03-25
19:50
[6bea0259] part of check-in [8c80b004] Earlier detection of corruption while added to the freelist. (check-in: [8c80b004] user: drh branch: trunk, size: 367951)
18:44
[482c81f4] part of check-in [bcbe7d96] Fix a faulty assert() statement in balance_nonroot() - the assert() should use get2byteNotZero() instead of get2byte() for the corner case where the number cells is zero on a 65536-byte page. (check-in: [bcbe7d96] user: drh branch: trunk, size: 367922)
2019-03-21
21:18
[e967c83e] part of check-in [80e951fc] Add an extra test for database corruption to defragmentPage(). (check-in: [80e951fc] user: dan branch: trunk, size: 367901)
2019-03-20
05:45
[9bcd7000] part of check-in [1c0fe5b5] Fix various harmless compiler warnings seen with MSVC. (check-in: [1c0fe5b5] user: mistachkin branch: noWarnings, size: 367814)
2019-03-19
20:48
[116deec8] part of check-in [000f4398] Merge recent enhancements from trunk. (check-in: [000f4398] user: drh branch: apple-osx, size: 368025)
15:36
[a4e19b72] part of check-in [a420ebd0] When computing the amount of scratch memory needed during a rebalance operation, assume the worst case for the number of cells per page, rather than relying on the BtPage.nCell value, which might be incorrect for a corrupt database. (check-in: [a420ebd0] user: drh branch: trunk, size: 367809)
2019-03-13
17:31
[b4fe9e71] part of check-in [0b904517] Merge latest trunk changes into this branch. (check-in: [0b904517] user: dan branch: window-functions, size: 367914)
15:29
[3aa86a52] part of check-in [6ad55319] Remove rows from the ephemeral table used by window functions once they are no longer required. (check-in: [6ad55319] user: dan branch: window-functions, size: 367913)
10:29
[4c097656] part of check-in [c4f0568f] Detect zero-length free slots on btree pages and report that as corruption. (check-in: [c4f0568f] user: drh branch: trunk, size: 367801)
2019-03-08
16:06
[021c960a] part of check-in [543ecb30] Merge the latest enhancements and fixes from trunk. (check-in: [543ecb30] user: drh branch: begin-concurrent-pnu-wal2, size: 386703)
15:57
[7e3d0fde] part of check-in [bf20d4ff] Merge the latest enhancements and fixes from trunk. (check-in: [bf20d4ff] user: drh branch: wal2, size: 367831)
15:30
[82829cc6] part of check-in [667cce3d] Merge all the latest enhancements from trunk. (check-in: [667cce3d] user: drh branch: begin-concurrent-pnu, size: 386672)
14:02
[51ff9c43] part of check-in [174da3c3] Patch makes balance_nonroot() slightly smaller and faster and more robust against corrupt databases. (check-in: [174da3c3] user: drh branch: trunk, size: 367800)
01:52
[9abc4326] part of check-in [235a9698] Detect an attempt to drop a btree that is not within the bounds of the database file and abort early with an SQLITE_CORRUPT error, to avoid problems later on in the process. (check-in: [235a9698] user: drh branch: trunk, size: 367795)
2019-03-05
14:39
[7da25dbf] part of check-in [c1ac0070] If the initial byte of a record is a large value, then always used the generalized record comparison routine sqlite3VdbeRecordCompare() rather than one of the specialized versions that are optimized for shorter records. (check-in: [c1ac0070] user: drh branch: trunk, size: 367723)
2019-03-01
18:27
[847c6367] part of check-in [e64ded7b] Merge the latest enhancements from trunk. (check-in: [e64ded7b] user: drh branch: apple-osx, size: 367929)
2019-02-28
13:21
[59695c6e] part of check-in [6bfd8655] Add an "|| CORRUPT_DB" term to an assert() statement in the btree defragmenter. (check-in: [6bfd8655] user: drh branch: trunk, size: 367713)
2019-02-26
16:17
[f85f8abe] part of check-in [05b87e07] Use unsigned integers to count the number of pages in a freelist during an integrity_check, to avoid any possibility of a signed integer overflow. (check-in: [05b87e07] user: drh branch: trunk, size: 367699)
2019-02-20
13:23
[00e3e1b6] part of check-in [be71d1e2] Merge the latest performance enhancements and fixes from trunk. (check-in: [be71d1e2] user: drh branch: apple-osx, size: 367915)
2019-02-19
16:42
[026f48c3] part of check-in [f2d400db] Fix an assert() that might not be true if the database file is corrupt. (check-in: [f2d400db] user: drh branch: trunk, size: 367699)
2019-02-16
22:45
[2105865a] part of check-in [0cfb8887] Fix an assert() that might be false for a corrupt database. (check-in: [0cfb8887] user: drh branch: trunk, size: 367685)
2019-02-14
15:27
[161b6a57] part of check-in [aa61435a] Improved oversized cell detection when updating ptrmap pages in balance_nonroot(). (check-in: [aa61435a] user: drh branch: trunk, size: 367671)
2019-02-12
16:58
[1336cc16] part of check-in [93ae382e] Further performance improvements to btreeInitPage(). (check-in: [93ae382e] user: drh branch: trunk, size: 367393)
00:58
[7457f781] part of check-in [fec071b8] Change an assert() into a NEVER(), since the condition is difficult to prove with certainty. Improved comment on the MemPage.nFree field. (check-in: [fec071b8] user: drh branch: deferred-free-space, size: 367442)
2019-02-11
22:50
[70ac9dc8] part of check-in [f11b0ed4] Do not invoke btreeComputeFreeSpace() when not necessary. (check-in: [f11b0ed4] user: drh branch: deferred-free-space, size: 367402)
19:27
[47812e0c] part of check-in [16eb0fc8] Improvements to comments. No changes to code. (check-in: [16eb0fc8] user: drh branch: deferred-free-space, size: 367409)
17:22
[aa182a9b] part of check-in [480a5090] Fix test cases. Avoid unnecessary tests for MemPage.nFree less than zero. (check-in: [480a5090] user: drh branch: deferred-free-space, size: 367433)
12:51
[85d49318] part of check-in [7499f743] Updates to a comment to keep it in alignment to the changes on this branch. (check-in: [7499f743] user: drh branch: deferred-free-space, size: 367524)
2019-02-09
22:33
[0c9455de] part of check-in [92858991] Fix a page-cache reference leak in the btree balancer when there is a corrupt database. (check-in: [92858991] user: drh branch: deferred-free-space, size: 367516)
21:06
[b2bb677f] part of check-in [1d43ee40] Defer computing the MemPage.nFree value of an in-memory btree page until it is actually needed, since for many pages it is never needed. This checkin works sufficiently to prove the concept, but still has issues with exception handling. (check-in: [1d43ee40] user: drh branch: deferred-free-space, size: 367423)
2019-02-08
22:34
[18046bf1] part of check-in [1969372a] Small performance improvement and size reduction for pageFindSlot() - the routine in btree.c that locates a free slot for a cell on a btree page. (check-in: [1969372a] user: drh branch: trunk, size: 365170)
2019-02-07
18:49
[1ceb21b6] part of check-in [62829164] Merge the offical 3.27.0 release. (check-in: [62829164] user: drh branch: apple-osx, size: 364808)
2019-02-04
21:10
[84b7c5c3] part of check-in [2c8769c6] Early detection of implausibly sized records to avoid unnecessary large memory allocations. (check-in: [2c8769c6] user: drh branch: trunk, size: 364592)
2019-02-01
14:50
[9649c95a] part of check-in [ef27e7a0] Improve the strict enforcement of cell sizes in balancing from check-in [12713f320b2c1def] so that it also works with table-btrees in addition to index-btrees. (check-in: [ef27e7a0] user: drh branch: trunk, size: 363900)
2019-01-29
19:17
[2971798a] part of check-in [31efcc37] Merge enhancements from trunk. (check-in: [31efcc37] user: drh branch: apple-osx, size: 363528)
16:54
[79464668] part of check-in [9a93c68a] Fix harmless compiler warnings. (check-in: [9a93c68a] user: drh branch: trunk, size: 363312)
16:41
[af023d6c] part of check-in [97704cb7] More robust handling of corrupt database file in the rebalance operation of the btree logic. (check-in: [97704cb7] user: drh branch: trunk, size: 363307)
2019-01-28
00:42
[3378f2f4] part of check-in [6089d5db] Change the definition of the BtCursor.skipNext field so that it is undefined for states CURSOR_VALID and CURSOR_INVALID. (check-in: [6089d5db] user: drh branch: trunk, size: 363071)
2019-01-26
23:34
[c78051b5] part of check-in [a3ea1a82] Ensure that the btree cursor is correctly set up prior to backing it up as part of a delete operation on a divider cell in an index. (check-in: [a3ea1a82] user: drh branch: trunk, size: 363643)
2019-01-25
13:42
[f7ee98fc] part of check-in [5eb5e828] Fix a couple of assert() statments in btree.c that could fail with corrupt databases. (check-in: [5eb5e828] user: dan branch: trunk, size: 363619)
2019-01-24
15:16
[21eb9292] part of check-in [db4b4c2c] Fix a potential problem with "INSERT INTO ... SELECT * FROM" (or VACUUM) statements on a corrupted database. (check-in: [db4b4c2c] user: dan branch: trunk, size: 363591)
13:36
[58574154] part of check-in [65ad6c55] Use memmove() instead of memcpy() in a place where buffers might overlap if the database file is badly corrupted, to prevent warnings from ASAN and valgrind. (check-in: [65ad6c55] user: drh branch: trunk, size: 363524)
2019-01-23
19:25
[60fa67e1] part of check-in [12713f32] Stricter enforcement of cell sizes when doing balancing operations on the btree, in order to catch file corruption sooner. (check-in: [12713f32] user: drh branch: trunk, size: 363274)
2019-01-21
23:18
[315ccbc0] part of check-in [3ecaaee6] Enhance the btree search routine so that it does early detection of impossibly large keys and thereby avoids a large malloc() call. (check-in: [3ecaaee6] user: drh branch: trunk, size: 359291)
16:01
[73f282db] part of check-in [27375649] Make sure the extra bytes allocated for the saved cursor position by check-in [160b1e31c0f27257] are initialized to zero. (check-in: [27375649] user: drh branch: trunk, size: 359243)
2019-01-17
15:47
[59eeeaad] part of check-in [475a179a] Sync up with the latest enhancements on trunk. (check-in: [475a179a] user: drh branch: apple-osx, size: 359411)
2019-01-14
05:48
[a1030989] part of check-in [cb505090] Avoid reading off the front of a page buffer when balancing a corrupt btree page. (check-in: [cb505090] user: drh branch: trunk, size: 359195)
2019-01-13
20:17
[d2ee8425] part of check-in [35f04235] Improved detection of database corruption while balancing pages from an auto_vacuum database with overflow pages. Test cases in TH3. (check-in: [35f04235] user: drh branch: trunk, size: 358803)
2019-01-11
17:41
[789380da] part of check-in [556dd892] Fix a problem handling a negative value in the "number-of-pages" database header field. Also a problem with running "REINDEX tbl" against a virtual table for which the SQL passed to sqlite3_declare_vtab() contains PRIMARY KEY or UNIQUE constraints. (check-in: [556dd892] user: dan branch: trunk, size: 358653)
14:46
[735e0cfc] part of check-in [aaa3a19f] Fix PRAGMA integrity_check so that it does not cancel the PRAGMA vdbe_debug setting. (check-in: [aaa3a19f] user: drh branch: trunk, size: 358647)
2019-01-06
02:06
[9632272d] part of check-in [6064584d] The page size becomes fixed as soon as page1 from a non-empty database file is read. (check-in: [6064584d] user: drh branch: trunk, size: 358647)
2019-01-02
16:30
[33cceb8e] part of check-in [c31eeb3c] Merge latest wal2 changes into this branch. (check-in: [c31eeb3c] user: dan branch: begin-concurrent-wal2, size: 377509)
16:15
[8e21892e] part of check-in [87ef68f9] Merge latest trunk changes into this branch. (check-in: [87ef68f9] user: dan branch: wal2, size: 358637)
16:08
[ed1faebf] part of check-in [5bf212f1] Merge latest trunk changes into this branch. (check-in: [5bf212f1] user: dan branch: begin-concurrent, size: 377478)
2019-01-01
18:00
[11c18d6d] part of check-in [5c188361] Ensure that when a new cursor is opened by OP_OpenDup, any existing cursor with the same id opened by a previous OP_OpenDup is closed first. (check-in: [5c188361] user: dan branch: trunk, size: 358606)
2018-12-26
19:10
[5feb7707] part of check-in [404f9d99] Merge latest trunk changes with this branch. (check-in: [404f9d99] user: dan branch: wal2, size: 358615)
2018-12-18
17:32
[3140a876] part of check-in [b3a163b4] Merge latest trunk changes into this branch. (check-in: [b3a163b4] user: dan branch: begin-concurrent-wal2, size: 377487)
17:20
[1cd5a483] part of check-in [123cbb33] Merge latest trunk changes into this branch. (check-in: [123cbb33] user: dan branch: begin-concurrent, size: 377456)
2018-12-15
20:59
[b068dd1f] part of check-in [06bb80ee] Merge latest wal2 changes into this branch. (check-in: [06bb80ee] user: dan branch: begin-concurrent-wal2, size: 376946)
2018-12-14
17:57
[4429a161] part of check-in [39559911] Fix possible integer overflow while running PRAGMA integrity_check on a database file with a badly corrupted freelist. (check-in: [39559911] user: drh branch: trunk, size: 358584)
16:20
[38e21cf0] part of check-in [8ba3d9f3] Back out the expansion of the temporary buffer size from [32754ca6f86da816] and replace it with an explicit test for buffer overreads. (check-in: [8ba3d9f3] user: drh branch: trunk, size: 358579)
16:00
[af1055a0] part of check-in [f8b781cf] Avoid a buffer overread in ptrmapPutOvflPtr() that can occurs in a corrupt database file that has large entries and uses autovacuum. (check-in: [f8b781cf] user: drh branch: trunk, size: 358502)
13:18
[89e9abe6] part of check-in [160b1e31] When saving the position of a cursor at the b-tree layer, allocate a few extra bytes at the end of the buffer used to save the key. Otherwise, if the key is corrupt, the code that restores the cursor position may overread the buffer by a little. (check-in: [160b1e31] user: dan branch: trunk, size: 358370)
03:14
[14b4b17b] part of check-in [3036fd71] Detect when an attempt is made to write to a pointer map page that is also being used as a btree page and report corruption. (check-in: [3036fd71] user: drh branch: fuzzcheck-fix, size: 358044)
2018-12-13
21:52
[20fdad94] part of check-in [1201615c] dbfuzz2 found a NEVER() that is sometimes true. (check-in: [1201615c] user: drh branch: trunk, size: 357771)
21:11
[e3e08171] part of check-in [997b6511] Add extra tests for database corruption inside the defragmentPage() routine, as dbfuzz2 has found ways for corruption to leak into that point. Add test cases in fuzzdata7.db. (check-in: [997b6511] user: drh branch: trunk, size: 357831)
21:05
[d4bf14ab] part of check-in [682053d1] Fix a problem in sqlite3BtreeDelete() in which deleting an entry from a corrupt database can leave a btree page with zero cells. (check-in: [682053d1] user: drh branch: trunk, size: 358109)
03:36
[3d898fea] part of check-in [b4210d32] New database corruption test cases discovered by dbfuzz2. The new cases have been added to test/fuzzdata7.db, but have not yet all been fixed, so tests will not currently pass. (check-in: [b4210d32] user: drh branch: dbfuzz2-cases, size: 357765)
2018-12-11
13:44
[dcc6191c] part of check-in [d8dd98a3] Merge latest trunk changes into this branch. (check-in: [d8dd98a3] user: dan branch: wal2, size: 358074)
2018-12-10
02:00
[f2a2336d] part of check-in [b1bbc718] Merge enhancements from trunk. (check-in: [b1bbc718] user: drh branch: apple-osx, size: 358259)
2018-12-06
17:06
[4377d0d9] part of check-in [53d3b169] When masking bits off of sqlite3.flags, make sure the mask is 64 bits in size so as not to accidentally mask of high-order bits. (check-in: [53d3b169] user: drh branch: trunk, size: 358043)
2018-12-03
20:49
[f5041e98] part of check-in [b7281a1c] Merge the wal2 and begin-concurrent code. Both features work, but not at the same time. (check-in: [b7281a1c] user: dan branch: begin-concurrent-wal2, size: 376941)
2018-12-01
20:14
[3887a4f5] part of check-in [7a44fa5a] Sync this branch with the latest trunk. (check-in: [7a44fa5a] user: dan branch: wal2, size: 358069)
2018-11-26
23:35
[35097c9e] part of check-in [e8c20a88] Merge recent enhancements from trunk. (check-in: [e8c20a88] user: drh branch: apple-osx, size: 358254)
07:34
[4a2184be] part of check-in [76608f75] Merge latest begin-concurrent changes into this branch. (check-in: [76608f75] user: dan branch: begin-concurrent-pnu, size: 376910)
07:21
[4ad4c92b] part of check-in [28a615a2] Merge latest trunk changes into this branch. (check-in: [28a615a2] user: dan branch: begin-concurrent, size: 375838)
2018-11-22
19:10
[ba7c7eef] part of check-in [81629ba9] Fix a problem reading from temp databases in SQLITE_DIRECT_OVERFLOW_READ builds. (check-in: [81629ba9] user: dan branch: trunk, size: 358038)
2018-11-09
23:45
[9e94292b] part of check-in [e3e9b85e] Merge fixes from trunk. (check-in: [e3e9b85e] user: drh branch: apple-osx, size: 358455)
2018-11-03
17:31
[3ef104ec] part of check-in [76094345] Correct the internal logic for SQLITE_DBCONFIG_DEFENSIVE. (check-in: [76094345] user: drh branch: dbconfig-defensive, size: 358239)
16:09
[41ab5267] part of check-in [af3f29d4] Add the SQLITE_DBCONFIG_DEFENSIVE flag. (check-in: [af3f29d4] user: drh branch: dbconfig-defensive, size: 358274)
2018-10-31
01:26
[d85ef1a1] part of check-in [4b370c74] Merge fixes from trunk, especially rebustness against corrupt database files. (check-in: [4b370c74] user: drh branch: apple-osx, size: 358462)
01:04
[75ec3352] part of check-in [d5787333] Improved corrupt database detection in the relocatePage() routine of the b-tree module. (check-in: [d5787333] user: drh branch: trunk, size: 358246)
2018-10-09
22:50
[5415f811] part of check-in [ddf6a54e] Merge changes for the 3.25.0 release. (check-in: [ddf6a54e] user: drh branch: apple-osx, size: 358416)
2018-09-28
21:11
[b53864f0] part of check-in [6f3dd980] Merge latest begin-concurrent changes into this branch. (check-in: [6f3dd980] user: dan branch: begin-concurrent-pnu, size: 377072)
20:58
[e642eb71] part of check-in [86750c92] Merge latest trunk into this branch. (check-in: [86750c92] user: dan branch: begin-concurrent, size: 376000)
2018-07-20
15:44
[3f5e1a03] part of check-in [a4663f09] New checks in PRAGMA integrity_check to validate the autovacuum settings in the header. (check-in: [a4663f09] user: drh branch: trunk, size: 358200)
13:39
[76395ea8] part of check-in [11e58f5b] Enhanced detection of problems on the freelist and on overflow list in PRAGMA integrity_check. (check-in: [11e58f5b] user: drh branch: trunk, size: 357692)
2018-07-19
11:44
[4b91880a] part of check-in [e2394002] Experimental fix for resetting databases that have been deemed read-only due to a corrupt "read-version" header field. (check-in: [e2394002] user: dan branch: exp-dbreset-fix, size: 357785)
2018-07-10
15:48
[9e56cdf2] part of check-in [af17432e] Merge begin-concurrent changes into this branch. (check-in: [af17432e] user: dan branch: begin-concurrent-pnu, size: 376519)
15:45
[23bad79f] part of check-in [e9a3e864] Merge latest trunk changes into this branch. (check-in: [e9a3e864] user: dan branch: begin-concurrent, size: 375447)
2018-07-09
20:41
[d9dcccd6] part of check-in [12be361a] Add an ALWAYS() around a branch in sqlite3BtreeSkipNext() that we believe must always be true. (check-in: [12be361a] user: drh branch: trunk, size: 357647)
2018-07-05
17:16
[0c27fb9b] part of check-in [e6108047] In wal mode, if a "BEGIN EXCLUSIVE" command (or any other command that upgrades from no transaction directly to a write transaction) hits an SQLITE_BUSY_SNAPSHOT error, change the error code to SQLITE_BUSY to indicate to the caller that the condition may be transient. (check-in: [e6108047] user: dan branch: trunk, size: 357449)
17:03
[757b2986] part of check-in [e3357728] Fix a typo inside an assert() statement introduced by the previous commit. (check-in: [e3357728] user: dan branch: exp-busy-snapshot-fix, size: 357645)
15:46
[c2b55e3a] part of check-in [221ff63e] In wal mode, if a "BEGIN EXCLUSIVE" command (or any other command that upgrades from no transaction directly to a write transaction) hits an SQLITE_BUSY_SNAPSHOT error, change the error code to SQLITE_BUSY to indicate to the caller that the condition may be transient. (check-in: [221ff63e] user: dan branch: exp-busy-snapshot-fix, size: 357645)
2018-06-22
20:51
[bb23e547] part of check-in [5f04b016] Omit all window-function related code when building with SQLITE_OMIT_WINDOWFUNC. (check-in: [5f04b016] user: dan branch: exp-window-functions, size: 357159)
2018-06-12
20:53
[50425f7f] part of check-in [6413e38a] Fix another issue to do with window-functions in aggregate queries. (check-in: [6413e38a] user: dan branch: exp-window-functions, size: 357092)
2018-06-09
18:09
[671207d6] part of check-in [c71f2359] Merge recent trunk changes with this branch. (check-in: [c71f2359] user: dan branch: exp-window-functions, size: 356908)
2018-06-08
19:13
[06690f5a] part of check-in [99057383] Fix an assert() that can be false for a corrupt database and a strange query that uses a recursive SQL function to delete content from a corrupt database file while it is being queried. (check-in: [99057383] user: drh branch: trunk, size: 356762)
2018-06-07
20:35
[c38cd920] part of check-in [25102203] Merge latest trunk changes with this branch. (check-in: [25102203] user: dan branch: exp-window-functions, size: 356448)
2018-06-06
17:12
[99f493bd] part of check-in [be7004a9] Merge the 3.24.0 changes plus a few subsequent enhancements. (check-in: [be7004a9] user: drh branch: begin-concurrent-pnu, size: 375174)
17:03
[c0c5ce45] part of check-in [d7299bfe] Merge changes from trunk, including all the 3.24.0 changes plus some later enhancements. (check-in: [d7299bfe] user: drh branch: begin-concurrent, size: 374102)
16:28
[ae7687fa] part of check-in [a10662aa] Change sqlite3BtreeBeginTrans() to return the BTREE_SCHEMA_COOKIE, for a small speed improvement when starting new transactions. (check-in: [a10662aa] user: drh branch: trunk, size: 356302)
2018-06-04
14:10
[194a98d9] part of check-in [95fbac39] Merge changes from trunk. (check-in: [95fbac39] user: drh branch: apple-osx, size: 356376)
08:28
[7c26bc1d] part of check-in [83d6416a] Merge latest trunk changes into this branch. (check-in: [83d6416a] user: dan branch: exp-window-functions, size: 356306)
2018-06-02
16:32
[44405d03] part of check-in [1b807b51] Work around a sanitizer warning about a pointer being only 4-byte aligned instead of 8-byte aligned. (check-in: [1b807b51] user: drh branch: align8-fix, size: 356160)
2018-05-23
20:55
[b8fc4fcf] part of check-in [3a203660] Add support for "ROWS BETWEEN <expr> PRECEDING AND <expr> FOLLOWING" window frames. (check-in: [3a203660] user: dan branch: exp-window-functions, size: 356140)
2018-05-15
11:55
[677a5e36] part of check-in [72f39efa] Merge latest trunk changes into this branch. (check-in: [72f39efa] user: dan branch: begin-concurrent-pnu, size: 374858)
11:45
[9e839c8c] part of check-in [ae86cf60] Merge latest trunk changes with this branch. (check-in: [ae86cf60] user: dan branch: begin-concurrent, size: 373786)
11:33
[05cb666b] part of check-in [52e443eb] Instead of just the flags byte, include the first 8 bytes of the relevant page in an on-commit conflict log message. (check-in: [52e443eb] user: dan branch: begin-concurrent-pnu, size: 369845)
11:28
[78be543c] part of check-in [e7dc03e7] Instead of just the flags byte, include the first 8 bytes of the relevant page in an on-commit conflict log message. (check-in: [e7dc03e7] user: dan branch: begin-concurrent, size: 368773)
09:03
[facc1e1a] part of check-in [de19abb9] Include the value of the "flags" byte of the relevant page in the log message emitted when a BEGIN CONCURRENT commit conflict is detected. (check-in: [de19abb9] user: dan branch: begin-concurrent-pnu, size: 369495)
08:51
[593a9043] part of check-in [fbfa5471] Include the value of the "flags" byte of the relevant page in the log message emitted when a BEGIN CONCURRENT commit conflict is detected. (check-in: [fbfa5471] user: dan branch: begin-concurrent, size: 368423)
2018-05-09
13:46
[8270813c] part of check-in [87f261f0] Make the internal dynamic string interface available to extensions using the new sqlite3_str object and its associated methods. This is mostly just a renaming of internal objects and methods to use external names, through there are a few small wrapper functions. (check-in: [87f261f0] user: drh branch: trunk, size: 355994)
2018-05-08
13:32
[9b2301d6] part of check-in [a016144b] Merge changes from trunk, especially the activation of the cell-overwrite optimization for indexes and WITHOUT ROWID tables. (check-in: [a016144b] user: drh branch: apple-osx, size: 356211)
2018-05-07
18:41
[abedb349] part of check-in [a68697d1] Activate the cell-overwrite optimization for index b-trees. (check-in: [a68697d1] user: drh branch: trunk, size: 355995)
17:27
[7b21976d] part of check-in [a4fe966d] Improved comments on the cell-overwrite optimization code. (check-in: [a4fe966d] user: drh branch: trunk, size: 355568)
13:01
[10ac889e] part of check-in [cb3aa778] Merge enhancements from trunk, and especially the cell-overwrite optimization. (check-in: [cb3aa778] user: drh branch: apple-osx, size: 354852)
11:48
[6be0267a] part of check-in [5887d8be] On an UPDATE, try to overwrite an existing btree cell with the modified content, if the old and new cell are the same size. Use memcmp() first to avoid dirtying pages that are unchanged. (check-in: [5887d8be] user: drh branch: trunk, size: 354636)
11:29
[b4ca692c] part of check-in [3e11dc31] Fix harmless compiler warnings in the cell-overwrite logic. (check-in: [3e11dc31] user: drh branch: cell-overwrite-prototype, size: 354535)
2018-05-05
01:23
[79982b07] part of check-in [9191ff67] Fix a slightly incorrect corruption detection branch in the btree logic. (check-in: [9191ff67] user: drh branch: trunk, size: 351216)
2018-05-04
19:33
[76a514d8] part of check-in [e17bca2c] Merge recent enhancements from trunk. (check-in: [e17bca2c] user: drh branch: apple-osx, size: 351331)
2018-05-03
16:56
[8faf9ebb] part of check-in [f89b54f4] Fix various error handling conditions on the cell overwrite optimization. Fix a test case so that it works with the new optimization. (check-in: [f89b54f4] user: drh branch: cell-overwrite-prototype, size: 354419)
14:07
[edb3c69a] part of check-in [54c537ee] The BtCursor.info fields are only valid if info.nSize!=0. (check-in: [54c537ee] user: drh branch: cell-overwrite-prototype, size: 354328)
13:56
[ffaf0f65] part of check-in [58d14afe] Add more corruption checking to the cell overwrite logic. (check-in: [58d14afe] user: drh branch: cell-overwrite-prototype, size: 354305)
12:57
[7216dac5] part of check-in [0cb6cd2a] Bug fixes in the overwrite optimization. (check-in: [0cb6cd2a] user: drh branch: cell-overwrite-prototype, size: 354107)
03:59
[d1b1bd06] part of check-in [489451b3] The sqlite3BtreeInsert() routine tries to overwrite an existing cell with modified content if the new content is the same size. Pages are only dirtied if they change. This prototype works some, but still has issues. (check-in: [489451b3] user: drh branch: cell-overwrite-prototype, size: 354120)
2018-04-28
01:27
[fa7da0a5] part of check-in [02e1a13c] Add the "PRAGMA reset_database=ON|OFF" command. When on, it causes the database to appear to be empty, causing the next transaction to reset it to an empty database. (check-in: [02e1a13c] user: drh branch: reset-database, size: 351115)
2018-04-24
19:22
[d7417507] part of check-in [2d8d13e4] Update this branch with latest changes from trunk. (check-in: [2d8d13e4] user: dan branch: begin-concurrent-pnu, size: 369380)
19:21
[a64d302f] part of check-in [b27bd799] Merge latest trunk changes into this branch. (check-in: [b27bd799] user: dan branch: begin-concurrent, size: 368308)
2018-04-10
18:05
[203c72f7] part of check-in [e20fcb51] Merge all version 3.23.1 changes and enhancements from trunk. (check-in: [e20fcb51] user: drh branch: apple-osx, size: 351197)
2018-03-28
15:41
[ac5e98b8] part of check-in [df52e89f] Update this branch with latest trunk changes. (check-in: [df52e89f] user: dan branch: server-process-edition, size: 361420)
2018-03-26
20:43
[9eb9531c] part of check-in [b8196056] Avoid a race condition that might cause a busy_timeout to last longer than it should. (check-in: [b8196056] user: drh branch: lowlevel-lock-timeout, size: 350981)
17:40
[4c30691b] part of check-in [2e54a743] Add infrastructure to support for using F_SETLKW with a timeout on system that support that functionality. Requires SQLITE_ENABLE_SETLK_TIMEOUT. (check-in: [2e54a743] user: drh branch: lowlevel-lock-timeout, size: 350936)
16:37
[dc9fda9c] part of check-in [6c40c557] Refactor some internal object element names used by the busy handler, to simplify analysis. (check-in: [6c40c557] user: drh branch: trunk, size: 350871)
2018-03-14
17:17
[cd68bc5a] part of check-in [a658f80c] Merge the latest enhancements from trunk. (check-in: [a658f80c] user: drh branch: apple-osx, size: 351087)
2018-03-02
18:26
[82848550] part of check-in [8ade94ba] Merge latest changes from begin-concurrent into this branch. (check-in: [8ade94ba] user: dan branch: begin-concurrent-pnu, size: 369270)
17:40
[d070d79e] part of check-in [36801eff] Merge latest trunk changes into this branch. (check-in: [36801eff] user: dan branch: begin-concurrent, size: 368198)
2018-02-20
21:00
[8c6b9759] part of check-in [57023371] Add extra code to log details when corruption is detected in the pointer-map structure maintained by the b-tree layer in begin-concurrent transactions. (check-in: [57023371] user: dan branch: begin-concurrent-pnu, size: 367767)
2018-02-19
13:53
[18a53540] part of check-in [88258770] Fix an assert so that it compares two CellInfo objects field by field instead of using memcmp(). Memcmp() does not work on x86 because of uninitialized padding bytes. (check-in: [88258770] user: drh branch: trunk, size: 350871)
2018-02-04
01:30
[f7bb37c2] part of check-in [63a91441] Fix harmless compiler warning seen with MSVC. (check-in: [63a91441] user: mistachkin branch: trunk, size: 350602)
2018-01-24
16:04
[d711228c] part of check-in [0ddf5292] Rearrange fields of the BtCursor object so that it is smaller and requires less initialization, for a small performance improvement. (check-in: [0ddf5292] user: drh branch: trunk, size: 350597)
2018-01-23
13:30
[1beceb1c] part of check-in [8e5e74c6] Fix comment typos. No changes to code. (check-in: [8e5e74c6] user: drh branch: trunk, size: 350551)
2018-01-22
19:04
[65617303] part of check-in [27e20d69] Merge all version-3.22.0 changes. (check-in: [27e20d69] user: drh branch: apple-osx, size: 350825)
15:45
[bfc453ba] part of check-in [395f8ea7] Avoid unnecessary OOM detection warnings in a debugging routine. (check-in: [395f8ea7] user: drh branch: trunk, size: 350609)
2018-01-15
21:59
[811b367b] part of check-in [c9d2ec51] Merge the enhancements associated with the first 3.22.0 beta. (check-in: [c9d2ec51] user: drh branch: apple-osx, size: 350759)
2018-01-04
18:36
[8cbe0ce2] part of check-in [dc0fc2aa] Fix problem causing free-list corruption when merging free-lists for two concurrent transactions that have both used page X as an in-memory free-list trunk page, where X lies past the end of the initial database images. (check-in: [dc0fc2aa] user: dan branch: begin-concurrent-pnu, size: 366814)
2018-01-02
19:57
[c3e15a9e] part of check-in [50c8952c] Fix a spurious SQLITE_CORRUPT error that could occur within a COMMIT of a concurrent transaction. (check-in: [50c8952c] user: dan branch: begin-concurrent-pnu, size: 366707)
2017-12-29
15:04
[0a1f63b5] part of check-in [7a7f826e] Change the function name to sqlite_unsupported_offset(X). Only enable the function if compiled with -DSQLITE_ENABLE_OFFSET_SQL_FUNC. The makefiles add that definition to shell builds. (check-in: [7a7f826e] user: drh branch: location-function, size: 350543)
14:33
[516fea6c] part of check-in [dd94d6a8] Enhance location(X) so that it works with indexes and WITHOUT ROWID tables. The function might return an offset to the main table or to an index, depending on whether the column X would be loaded from the main table or from the index. (check-in: [dd94d6a8] user: drh branch: location-function, size: 350465)
2017-12-16
20:20
[6fba32ea] part of check-in [51be9558] Add an experimental location(X) SQL function that attempt to return the location of the payload within the database for the record that contains column X. location(X) returns NULL if X is not an ordinary table column or if SQLite cannot figure out the location because it is using a covering index. (check-in: [51be9558] user: drh branch: location-function, size: 350488)
2017-11-28
08:08
[d9fa7d5b] part of check-in [1fd10349] Merge latest trunk changes, including the SQLITE_ENABLE_MULTITHREADED_CHECKS feature, into this branch. (check-in: [1fd10349] user: dan branch: apple-osx, size: 350301)
2017-11-18
17:30
[b83a6b03] part of check-in [23a31280] Enhance the log messages produced in some cases if database corruption is encountered by an SQLITE_DEBUG build. (check-in: [23a31280] user: dan branch: sqlite-corrupt-page, size: 350085)
2017-11-06
20:02
[a41d5805] part of check-in [7f217eda] Merge latest trunk changes into this branch. (check-in: [7f217eda] user: dan branch: begin-concurrent, size: 366695)
2017-10-24
19:12
[0553adcf] part of check-in [13be3a44] Merge all enhancements and fixes from the 3.21.0 release. (check-in: [13be3a44] user: drh branch: apple-osx, size: 349584)
2017-10-19
15:17
[75229a5a] part of check-in [04925dee] Take extra care to avoid an OOB read caused by a corrupt b-tree page. This fixes a problem detected by Natalie Silvanovich of Google Project Zero. (check-in: [04925dee] user: dan branch: trunk, size: 349368)
2017-10-12
01:19
[8565b061] part of check-in [f0a2724f] Fix a typo in a numeric constant in an assert() - a bug that has been present in the code since check-in [79e22b95038] on 2010-03-30. (check-in: [f0a2724f] user: drh branch: branch-3.21, size: 349164)
2017-10-06
14:25
[a559d641] part of check-in [7e435178] Merge latest trunk changes into this branch. (check-in: [7e435178] user: dan branch: wal2, size: 349194)
2017-10-05
20:57
[07ad643c] part of check-in [8ca0fa8d] Fix compiler warnings that come up with SQLITE_OMIT_WAL. (check-in: [8ca0fa8d] user: drh branch: trunk, size: 349163)
2017-10-04
20:57
[c7d94975] part of check-in [e2fc5c81] Add experimental mode that uses two wal files. Activated using "PRAGMA journal_mode = wal2". (check-in: [e2fc5c81] user: dan branch: wal2, size: 349159)
18:26
[cc88a7fc] part of check-in [40964a4e] Updates to requirements marks. (check-in: [40964a4e] user: drh branch: trunk, size: 349128)
2017-09-28
13:47
[221bc1b8] part of check-in [5b9ae693] Fix an issue introduced by check-in [4cd2a9672c59] (2017-03-03) that could allow a negative value in the 3rd parameter to memmove() when defragmentPage() is called on a btree page with a corrupted freeblock list. The corruption is now detected early and results in an SQLITE_CORRUPT return before the memmove() is reached. (check-in: [5b9ae693] user: drh branch: trunk, size: 349261)
2017-09-22
20:18
[9c273587] part of check-in [8d2a1cca] Merge in all the trunk enhancements of the previous 7 months. The LIKE optimization has stopped working when there is an ESCAPE - that problem will be addressed in a subsequent check-in. (check-in: [8d2a1cca] user: drh branch: est_count_pragma, size: 351208)
10:49
[e709a9ab] part of check-in [307b802e] Merge latest trunk changes into this branch. (check-in: [307b802e] user: dan branch: begin-concurrent, size: 366501)
2017-09-09
06:10
[0e4827cd] part of check-in [6a0b9d9d] Merge trunk enhancements (check-in: [6a0b9d9d] user: drh branch: apple-osx, size: 349390)
2017-09-04
19:31
[1c2b2f17] part of check-in [72d22c22] Use the SQLITE_CORRUPT_BKPT return code in a couple more places. (check-in: [72d22c22] user: mistachkin branch: trunk, size: 349174)
2017-09-01
14:50
[f1ac9509] part of check-in [b2e2100c] Add the new sqlite3PagerUnrefPageOne() pager method to deal with the special case of unreferencing page1. (check-in: [b2e2100c] user: drh branch: trunk, size: 349164)
2017-08-28
17:26
[a4421dd0] part of check-in [cc440400] Remove the rarely-used scratch memory allocator. This makes the code smaller, faster, and easier to maintain. In place of the scratch allocator, add the SQLITE_CONFIG_SMALL_MALLOC configuration option that provides a hint to SQLite that large memory allocations should be avoided. (check-in: [cc440400] user: drh branch: begin-concurrent-branch-3.19, size: 365312)
17:19
[fd5d4ce0] part of check-in [d53108e7] Merge recent enhancements from trunk. (check-in: [d53108e7] user: drh branch: begin-concurrent, size: 365962)
15:51
[1033b88f] part of check-in [54b00024] Remove the rarely-used scratch memory allocator. This makes the code smaller, faster, and easier to maintain. In place of the scratch allocator, add the SQLITE_CONFIG_SMALL_MALLOC configuration option that provides a hint to SQLite that large memory allocations should be avoided. (check-in: [54b00024] user: drh branch: trunk, size: 348603)
2017-08-25
13:02
[83933a8d] part of check-in [2738b8db] Convert a branch made unreachable by [59560d07] into an assert(). (check-in: [2738b8db] user: drh branch: trunk, size: 348601)
2017-08-23
23:09
[f93c05db] part of check-in [59560d07] Performance optimization to pageFindSlot() in the b-tree layer. (check-in: [59560d07] user: drh branch: trunk, size: 348603)
20:36
[45f3b8b3] part of check-in [bc1ec123] Size and performance optimization to dropCell() and freeSpace(). (check-in: [bc1ec123] user: drh branch: trunk, size: 348719)
14:45
[ea10ca63] part of check-in [77074990] Smaller and faster implementation of the fillInCell() routine. (check-in: [77074990] user: drh branch: trunk, size: 348727)
2017-08-16
19:20
[e1a98bef] part of check-in [f078deb2] Avoid a test for CURTYPE_BTREE in sqlite3VdbeCursorMoveto() in order to reduce the size and improve the performance of OP_Column. (check-in: [f078deb2] user: drh branch: trunk, size: 348318)
17:06
[70fcdba8] part of check-in [380a7b7a] Update this branch with the latest changes from trunk. (check-in: [380a7b7a] user: dan branch: server-process-edition, size: 358380)
2017-08-15
03:46
[d2f5f347] part of check-in [373b71d1] Btree optimization: New field BtCursor.pPage that points to the current page, saving a single pointer dereference on each access. (check-in: [373b71d1] user: drh branch: trunk, size: 347941)
2017-08-14
23:53
[05781141] part of check-in [16969338] Minor size and performance optimization to sqlite3BtreeCloseCursor(). (check-in: [16969338] user: drh branch: trunk, size: 348106)
18:13
[43d1c5b3] part of check-in [240d5714] Change the internal btree routine moveToRoot() to return SQLITE_EMPTY if the table is empty or if it has pgnoRoot==0. This simplifies the callers, making them smaller and faster. The SQLITE_EMPTY result code is intercepted and changed into SQLITE_OK before surfacing in an API. (check-in: [240d5714] user: drh branch: trunk, size: 348141)
17:03
[5a6efa29] part of check-in [25e92baa] Fix harmless indentation error. (check-in: [25e92baa] user: drh branch: trunk, size: 348064)
2017-08-11
19:16
[91e4c841] part of check-in [47e71695] Merge the latest enhancements from trunk. (check-in: [47e71695] user: drh branch: begin-concurrent, size: 365394)
2017-08-07
14:15
[f9628676] part of check-in [17bc7ded] Update this branch with latest trunk changes. (check-in: [17bc7ded] user: dan branch: server-process-edition, size: 358504)
2017-08-02
18:27
[1a17ba1a] part of check-in [f3c39c29] Minor optimization on clearCell() (check-in: [f3c39c29] user: drh branch: trunk, size: 348065)
15:50
[41232143] part of check-in [49ba54e2] Optimizations associated with error handling in btree cursors. (check-in: [49ba54e2] user: drh branch: trunk, size: 348058)
2017-07-20
19:08
[a21ffc82] part of check-in [44c760d1] Fix compiler warnings. (check-in: [44c760d1] user: drh branch: begin-concurrent, size: 365310)
18:28
[7e967347] part of check-in [a29401e9] Get the build working with SQLITE_OMIT_CONCURRENT. (check-in: [a29401e9] user: drh branch: begin-concurrent, size: 365336)
17:47
[b3d5ea91] part of check-in [213c61cb] Merge all the latest trunk enhancements. (check-in: [213c61cb] user: drh branch: begin-concurrent, size: 365273)
2017-07-19
18:54
[d0111c10] part of check-in [be0df0a6] Merge latest trunk changes with this branch. (check-in: [be0df0a6] user: dan branch: server-process-edition, size: 358420)
2017-07-17
20:21
[155f59dc] part of check-in [e181225d] Merge all the latest fixes and enhancements from trunk. (check-in: [e181225d] user: drh branch: apple-osx, size: 348197)
2017-07-13
21:06
[85cd6d97] part of check-in [dcc40797] Make the freelist format a separate feature from the page-level locking. Freelist format is now configure using "PRAGMA freelist_format". (check-in: [dcc40797] user: dan branch: server-process-edition, size: 357492)
2017-07-11
18:11
[f55ea8f4] part of check-in [55e93f25] Fix harmless compiler warnings in the core. (check-in: [55e93f25] user: drh branch: trunk, size: 347981)
2017-07-08
20:46
[0e1bcecd] part of check-in [5a043aa8] Support read-only MVCC transactions in server-mode. Started using "BEGIN READONLY". (check-in: [5a043aa8] user: dan branch: server-process-edition, size: 356391)
2017-07-07
22:58
[d8a9a8b6] part of check-in [7f48f6ab] Merge in all the latest trunk enhancements. (check-in: [7f48f6ab] user: drh branch: apple-osx, size: 348080)
20:06
[79fb0033] part of check-in [38978ce6] Add the "PRAGMA secure_delete=FAST" option, which overwrites most deleted content without increasing the amount of I/O. Deleted content might persist on the free page list, however. And extra CPU cycles are used for zeroing, of course. (check-in: [38978ce6] user: drh branch: trunk, size: 347864)
16:40
[6ff4027f] part of check-in [216c757f] Merge latest trunk changes with this branch. (check-in: [216c757f] user: dan branch: server-process-edition, size: 356367)
2017-06-26
13:57
[00579ff9] part of check-in [7076e828] Add the SQLITE_DBCONFIG_ENABLE_QPSG option to activate the query planner stability guarantee. This involves refactoring the sqlite3.flags bitvector to carve out a free bit to use. (check-in: [7076e828] user: drh branch: enable-QPSG, size: 347053)
2017-06-23
21:05
[388fd95a] part of check-in [53b14a38] Merge all recent trunk enhancements into the apple-osx branch. (check-in: [53b14a38] user: drh branch: apple-osx, size: 347282)
2017-06-19
11:44
[127ae15b] part of check-in [f1682f0f] Experimental "PRAGMA secure_delete=FAST" pragma. The intent is to overwrite deleted content with zeros without increasing the amount of disk I/O. (check-in: [f1682f0f] user: drh branch: fast-secure-delete, size: 347877)
2017-06-17
00:39
[8668d6ee] part of check-in [e1b71029] When building an ephemeral table of integers, do not assume that the table does not already contain N if the insert cursor points to N-1. Fix for ticket [61fe9745]. Also increase the version number to 3.18.2. This is the release candidate. (check-in: [e1b71029] user: drh branch: branch-3.18, size: 347402)
2017-06-12
23:44
[5aa61082] part of check-in [30c50f0e] Ensure pointer map entries are always added when a row that does use overflow pages replaces one that does not in an auto-vacuum database. Fix for [fda22108]. (check-in: [30c50f0e] user: drh branch: branch-3.18, size: 347530)
2017-06-11
18:26
[430e3415] part of check-in [a2f77285] Fix a potential null-pointer deference following OOM introduced by check-in [e39795d7] (unreleased). (check-in: [a2f77285] user: drh branch: trunk, size: 347066)
2017-06-10
17:23
[5a93ba67] part of check-in [79544fc2] Remove sqlite3_log() and abort() calls added to this branch to debug the pointer-map problem ([fda22108]). (check-in: [79544fc2] user: dan branch: begin-concurrent, size: 364459)
2017-06-08
16:23
[1394abd6] part of check-in [8e311a6d] Update the recent auto-vacuum fix so that it works for the in-memory pointer-map structure used by this branch. (check-in: [8e311a6d] user: dan branch: begin-concurrent, size: 365925)
16:10
[95dd5106] part of check-in [e2d38d51] Merge 3.19.3 changes with this branch. (check-in: [e2d38d51] user: dan branch: begin-concurrent, size: 365923)
14:41
[4f095b81] part of check-in [93f32dd2] Merge the auto_vacuum bug fix and all other changes from the 3.19.3 release. (check-in: [93f32dd2] user: drh branch: apple-osx, size: 347383)
11:26
[de57bf3f] part of check-in [9478106c] Ensure pointer map entries are always added when a row that does use overflow pages replaces one that does not in an auto-vacuum database. Fix for [fda22108]. (check-in: [9478106c] user: drh branch: branch-3.19, size: 347167)
11:14
[896b823a] part of check-in [b30dfba8] Ensure pointer map entries are always added when a row that does use overflow pages replaces one that does not in an auto-vacuum database. Fix for [fda22108]. (check-in: [b30dfba8] user: dan branch: trunk, size: 347049)
2017-06-07
22:32
[a13e516b] part of check-in [e39795d7] In SQLITE_DEBUG mode, attempt to log the page number of the database that contained the problem when SQLITE_CORRUPT errors are seen. (check-in: [e39795d7] user: drh branch: trunk, size: 346769)
2017-06-02
09:31
[63ae7953] part of check-in [f131677d] Extend even further the logging designed to find problems in the pointer-map structure. Call abort() to dump a core as soon as such a problem is seen. (check-in: [f131677d] user: dan branch: begin-concurrent, size: 365643)
2017-05-31
17:06
[322cd2e8] part of check-in [f7e3e2bc] Generate extra log messages in response to irregularites in the pointer-map used by "BEGIN CONCURRENT" transactions. (check-in: [f7e3e2bc] user: dan branch: begin-concurrent, size: 365435)
2017-05-30
18:34
[8ac6ae35] part of check-in [e972a386] Change sqlite3BtreeNext() and sqlite3BtreePrevious() so that they return SQLITE_DONE if they have already reached the end (or beginning) of the table. This gives a performance increase and size reduction. (check-in: [e972a386] user: drh branch: trunk, size: 346155)
2017-05-29
19:23
[8be55b3e] part of check-in [9ad846e5] Instead of a root page number, log the object (table or index) name if a page level locking conflict is detected. (check-in: [9ad846e5] user: dan branch: begin-concurrent, size: 364177)
14:27
[3c540945] part of check-in [92618492] Enhance the log messages emitted when a page conflict is detected. (check-in: [92618492] user: dan branch: begin-concurrent, size: 362684)
2017-05-27
18:05
[babb72f4] part of check-in [214d238a] Add debugging functions btreePageOriginFile() and btreePageOriginOffset(). (check-in: [214d238a] user: dan branch: btree-debug, size: 347766)
2017-05-26
16:15
[ca942fd7] part of check-in [a4a3bbe6] Fix a problem with deferred page allocation in transactions that revert page allocations by savepoint rollbacks. (check-in: [a4a3bbe6] user: dan branch: begin-concurrent, size: 362057)
2017-05-25
21:35
[0065e4bb] part of check-in [6f415833] Small performance increase and size decrease in the btreeInitPage() routine. (check-in: [6f415833] user: drh branch: trunk, size: 346719)
21:02
[ffb001f0] part of check-in [47a7dd92] Fix a problem with the deferred page allocation on this branch that could occur when the database file is just slightly smaller than the PENDING_BYTE page offset. (check-in: [47a7dd92] user: dan branch: begin-concurrent, size: 362032)
2017-05-15
17:34
[b8ffd067] part of check-in [14ea8400] Merge the latest changes from trunk. (check-in: [14ea8400] user: drh branch: begin-concurrent, size: 362009)
2017-05-11
18:49
[9d5f1346] part of check-in [b55c0f14] Merge recent enhancements from trunk. (check-in: [b55c0f14] user: drh branch: apple-osx, size: 347103)
2017-05-01
20:07
[ca26f48d] part of check-in [83b1e163] Update this branch with latest trunk changes. (check-in: [83b1e163] user: dan branch: server-edition, size: 356201)
18:24
[8c1fd4cf] part of check-in [adcad37b] Enhance "PRAGMA integrity_check" to detect duplicate rowids within a leaf page. (check-in: [adcad37b] user: dan branch: trunk, size: 346887)
18:12
[ef42df0c] part of check-in [a6727eef] Clear the BTCF_ValidNKey flag set if a cursor is moved by sqlite3BtreeInsert(). Fix for [f68dc596c4]. (check-in: [a6727eef] user: dan branch: trunk, size: 346808)
2017-04-29
15:48
[5bd5e1f1] part of check-in [f6b025bf] Avoid reading the file-size before page 1 is read-locked. (check-in: [f6b025bf] user: dan branch: server-edition, size: 356083)
2017-04-28
17:32
[defa7525] part of check-in [a40b42c4] Fix various bugs revealed by running performance tests. (check-in: [a40b42c4] user: dan branch: server-edition, size: 356237)
14:09
[16a5f4fd] part of check-in [a5a08548] Add a missing releasePage() call to the server-mode free-list management code. (check-in: [a5a08548] user: dan branch: server-edition, size: 355645)
10:20
[c721037a] part of check-in [778e8a10] Use a different free-list format for server-mode databases in order to reduce contention. (check-in: [778e8a10] user: dan branch: server-edition, size: 355620)
2017-04-24
16:14
[71c947c2] part of check-in [031feebc] Bring in all the latest enhancements from trunk. (check-in: [031feebc] user: drh branch: apple-osx, size: 346985)
14:16
[a0d9a1c7] part of check-in [1c1b0862] When building an ephemeral table of integers, do not assume that the table does not already contain N if the insert cursor points to N-1. Fix for ticket [61fe9745]. (check-in: [1c1b0862] user: dan branch: trunk, size: 346769)
2017-04-08
00:25
[1b654f06] part of check-in [dd16439e] Merge the latest trunk changes. (check-in: [dd16439e] user: drh branch: apple-osx, size: 347113)
2017-04-01
00:20
[24ae5472] part of check-in [2452f061] Save a 78 bytes of code space and a million CPU cycles in speedtest1 by storing the cell index for the leaf page in the BtCursor object in its own field (BtCursor.ix), rather than as an entry in the BtCursor.aiIdx array. (check-in: [2452f061] user: drh branch: trunk, size: 346897)
2017-03-30
20:26
[9f218dcf] part of check-in [ed28f15e] Merge all changes from the 3.18.0 release. (check-in: [ed28f15e] user: drh branch: apple-osx, size: 347466)
2017-03-29
18:03
[64ff65a0] part of check-in [4a01880b] Avoid unnecessary blob handle invalidation when changes are made to an unrelated table. (check-in: [4a01880b] user: drh branch: trunk, size: 347390)
2017-03-24
15:09
[a6be0129] part of check-in [fd5676fe] Merge all recent enhancements from trunk. (check-in: [fd5676fe] user: drh branch: begin-concurrent, size: 362372)
2017-03-16
18:54
[ae0e0397] part of check-in [df39adea] Fix a typo causing the build to fail if SQLITE_DEFAULT_SYNCHRONOUS==SQLITE_DEFAULT_WAL_SYNCHRONOUS. (check-in: [df39adea] user: dan branch: default-synchronous-fix, size: 347250)
18:14
[ace24955] part of check-in [78030c0f] If the user has not set it explicitly, set the "PRAGMA synchronous" setting to SQLITE_DEFAULT_SYNCHRONOUS when a database connection changes from wal to rollback journal mode. (check-in: [78030c0f] user: dan branch: default-synchronous-fix, size: 347237)
2017-03-06
20:00
[75b11704] part of check-in [1650c3f4] Merge all pending 3.18 enhancements from trunk. (check-in: [1650c3f4] user: drh branch: apple-osx, size: 347056)
11:39
[e2bae0a0] part of check-in [5f7fc79a] Merge updates from trunk. (check-in: [5f7fc79a] user: drh branch: auto-analyze, size: 346840)
2017-03-03
20:02
[91baade7] part of check-in [5d0455fe] Fix a case introduced by [4cd2a967] where a corrupt database could cause a buffer overwrite. (check-in: [5d0455fe] user: dan branch: trunk, size: 346141)
2017-03-02
13:22
[83e2bc48] part of check-in [c60cdb47] Merge recent trunk enhancements. (check-in: [c60cdb47] user: drh branch: auto-analyze, size: 346094)
2017-02-25
16:24
[03149b0f] part of check-in [f9863b39] Tweak the code on this branch to detect b-tree page corruption in the same cases as the trunk. (check-in: [f9863b39] user: dan branch: defragmentpage-opt, size: 345395)
2017-02-24
19:58
[1763e0ec] part of check-in [202b1c02] Optimize defragmentPage() in the case where the page contains either one or two free-blocks and a small number of fragmented bytes. (check-in: [202b1c02] user: dan branch: defragmentpage-opt, size: 345380)
2017-02-23
02:15
[19746a7d] part of check-in [7a959f6d] Add two NEVER() operators in the sqlite3BtreeRowCountEst() routine. (check-in: [7a959f6d] user: drh branch: auto-analyze, size: 344757)
2017-02-18
02:42
[a4ab1fb5] part of check-in [4229caec] Fix errors in the table resize detection. (check-in: [4229caec] user: drh branch: auto-analyze, size: 344568)
2017-02-17
19:24
[e7d724b0] part of check-in [bfbdd074] The analyze_as_needed pragma now responds to table size growth and will automatically rerun the analysis after each 10x size increase. (check-in: [bfbdd074] user: drh branch: auto-analyze, size: 344569)
2017-02-16
14:02
[ab9cb31e] part of check-in [325ccfa9] Merge recent enhancements from trunk. (check-in: [325ccfa9] user: drh branch: est_count_pragma, size: 346092)
2017-02-13
13:35
[3ae66974] part of check-in [670f10b2] Change all legacy instances of "#if SQLITE_DEBUG" to "#ifdef SQLITE_DEBUG" for consistency. (check-in: [670f10b2] user: drh branch: trunk, size: 344058)
2017-02-04
15:29
[05843aa2] part of check-in [6c3f0902] Merge recent trunk enhancements. (check-in: [6c3f0902] user: drh branch: apple-osx, size: 344268)
2017-02-02
00:46
[9fe65ab4] part of check-in [01d97e5b] This is an experimental patch that ensures that all cursors have their position saved prior to starting a ROLLBACK TO. (check-in: [01d97e5b] user: drh branch: savepoint-rollback, size: 344052)
2017-01-27
16:39
[a018a533] part of check-in [0e14fe1b] Merge all recent trunk enhancements into the apple-osx branch. (check-in: [0e14fe1b] user: drh branch: apple-osx, size: 344157)
16:24
[4be2a8e4] part of check-in [fe86ff54] Merge all recent enhancements from trunk. (check-in: [fe86ff54] user: drh branch: est_count_pragma, size: 345975)
01:25
[6a63fa34] part of check-in [c012619b] Another micro-optimization in accessPayload(). Slightly smaller and faster. (check-in: [c012619b] user: drh branch: trunk, size: 343941)
01:13
[1329274c] part of check-in [ebb1fd98] Performance optimization in accessPayload(). (check-in: [ebb1fd98] user: drh branch: trunk, size: 343897)
00:31
[d42f2902] part of check-in [68e7a8c6] Simplify the accessPayload() routine so that it always populates the overflow page cache. In the one case where populating the page cache can lead to problems, simply invalidate the cache as soon as accessPayload() returns. This simplification reduces code size and helps accessPayload() to run a little faster. This backs out the eOp==2 mode of accessPayload() added by check-in [da59198505]. (check-in: [68e7a8c6] user: drh branch: trunk, size: 343869)
2017-01-26
21:30
[bd72bb69] part of check-in [293bf3ed] Remove an unreachable branch in the error handling logic for sqlite3BtreePayloadChecked(). (check-in: [293bf3ed] user: drh branch: trunk, size: 344368)
16:54
[6fe6a585] part of check-in [7459f4b7] Performance optimization to sqlite3_blob_read(). (check-in: [7459f4b7] user: drh branch: trunk, size: 344363)
16:27
[a168da7c] part of check-in [3e96d6ef] Minor simplification and performance optimization for Direct Overflow Read. (check-in: [3e96d6ef] user: drh branch: trunk, size: 344087)
02:26
[4a4ae5fd] part of check-in [9879be18] Make SQLITE_DIRECT_OVERFLOW_READ work for in WAL mode as long as the page being read is not in the the -wal file. (check-in: [9879be18] user: drh branch: trunk, size: 344285)
2017-01-21
21:47
[f1b36bcf] part of check-in [2c4ecb85] A better implementation of the moveto-neighbor optimization that checks for nearby rows on adjacent pages. (check-in: [2c4ecb85] user: drh branch: btree-moveto-neighbor, size: 344289)
16:54
[972b7e13] part of check-in [8e5cfb20] B-tree optimization: When seeking on a rowid table that has already been positioned, check to see if the new row happens to be the next row on the same leaf page. That is a reasonably common case, and if it is true it avoids a full binary search. (check-in: [8e5cfb20] user: drh branch: btree-moveto-neighbor, size: 344029)
2017-01-20
20:43
[e6b8f39d] part of check-in [264e5c10] Minor performance optimization and size reduction to the accessPayload() routine in btree.c. (check-in: [264e5c10] user: drh branch: trunk, size: 343675)
2017-01-19
11:52
[9e3d38d2] part of check-in [50ca94b9] Add test cases for the instrumentation on this branch. Fix some OOM handling issues in the same. (check-in: [50ca94b9] user: dan branch: transaction-pages, size: 346905)
2017-01-18
20:14
[b0b714e3] part of check-in [2a8f6c89] Add temporary code to record and report on the set of b-tree pages read and written by the current transaction. This is likely still buggy. (check-in: [2a8f6c89] user: dan branch: transaction-pages, size: 346705)
2017-01-12
19:10
[69966fb2] part of check-in [9acc7238] Remove a branch that is probably unreachable, and which adds no value. (check-in: [9acc7238] user: drh branch: trunk, size: 343646)
16:14
[5f864213] part of check-in [bddf3956] Remove an unnecessary corruption test from the btree balancer. If corruption is present, it will be found harmlessly by later tests. (check-in: [bddf3956] user: drh branch: trunk, size: 343663)
15:19
[e40ad224] part of check-in [bd8b977a] Test case macros to show that the previous check-in is well tested. (check-in: [bd8b977a] user: drh branch: extra-testcase-macros, size: 343895)
15:11
[90f8b15e] part of check-in [8097712c] Improved detection of cells that extend into the reserved space at the end of the page while adjusting overflow page pointers during autovacuum. (check-in: [8097712c] user: drh branch: trunk, size: 343735)
2017-01-10
20:04
[44e96129] part of check-in [46db23cc] Changes to allow some multi-row UPDATE statements to avoid the two-pass approach. (check-in: [46db23cc] user: dan branch: onepass-update, size: 343659)
2017-01-09
20:57
[32c8ebde] part of check-in [ff9eab95] Merge latest changes from trunk, and also move the perf-counter into the inner loop of sqlite3BtreeMovetoUnpacked(). (check-in: [ff9eab95] user: drh branch: vdbe-aux-perf, size: 342897)
06:33
[5e5bf507] part of check-in [d0e212d0] Upgrade this branch to 3.16 plus the various fixes that appeared after its release. (check-in: [d0e212d0] user: dan branch: begin-concurrent, size: 357983)
2017-01-07
00:42
[616212ac] part of check-in [746b1836] This hack illustrates how to use the VDBE_PROFILE mechanism to show which bytecode operators are using resources other than time. In this case, the number of loops through the binary search code in sqlite3BtreeMovetoUnpacked() is measured, for the purpose of helping to identify unnecessary btree searches. (check-in: [746b1836] user: drh branch: vdbe-aux-perf, size: 342879)
2017-01-03
20:20
[95ffea8c] part of check-in [dcbec226] Merge changes from the 3.16.1 release (check-in: [dcbec226] user: drh branch: apple-osx, size: 343077)
2016-12-26
01:41
[d2c10061] part of check-in [e447b23c] Remove an incorrect ALWAYS() macro from balance_nonroot(), which could result in corrupt databases if it were optimized out. This ALWAYS was added only two weeks ago (check-in [f9f2e23bbd68a]) and has never appeared in an official release. (check-in: [e447b23c] user: drh branch: trunk, size: 342861)
2016-12-21
19:45
[2e07a5a6] part of check-in [f7ab01f2] Simplifications to the way UnpackedRecord objects are allocated. Smaller and faster code that also fixes a subtle (currently unreachable) bug. (check-in: [f7ab01f2] user: drh branch: trunk, size: 342869)
2016-12-16
21:29
[66e48252] part of check-in [4b1e7804] Merge recent enhancements from trunk, and especially the pragma-as-vtab change. (check-in: [4b1e7804] user: drh branch: apple-osx, size: 343237)
15:57
[7892be7e] part of check-in [74a0ca1f] Merge recent trunk enhancements. (check-in: [74a0ca1f] user: drh branch: est_count_pragma, size: 345055)
2016-12-13
20:30
[b2055dff] part of check-in [ed2c9f37] Fix harmless compiler warnings. (check-in: [ed2c9f37] user: drh branch: trunk, size: 343021)
2016-12-12
18:12
[0d377e57] part of check-in [1b36fbb9] Remove unnecessary MemPage initialization resets in the autovacuum ptrmap processing. (check-in: [1b36fbb9] user: drh branch: trunk, size: 343007)
16:15
[50bd8434] part of check-in [a24f805b] Merge all the latest performance enhancements from trunk. (check-in: [a24f805b] user: drh branch: apple-osx, size: 343403)
12:58
[32811397] part of check-in [dc006e08] Merge recent enhancements from trunk. (check-in: [dc006e08] user: drh branch: est_count_pragma, size: 345221)
01:30
[383ce69b] part of check-in [57deb1b4] Size and performance optimization in btreeInitPage() in the freeblock validation step. (check-in: [57deb1b4] user: drh branch: trunk, size: 343187)
00:58
[5299b39c] part of check-in [f9f2e23b] Change the order of comparison for divider cell overflow in balance non-root to avoid a (harmless) reference to an uninitialized variable. (check-in: [f9f2e23b] user: drh branch: trunk, size: 343103)
2016-12-10
13:12
[55b5e0e1] part of check-in [35ecd4eb] Avoid an unnecessary memset() in the sqlite3BtreeInsert() routine. (check-in: [35ecd4eb] user: drh branch: trunk, size: 343095)
00:14
[518b5a36] part of check-in [478627c9] In balance_nonroot, try to combine dropCell/insertCell combinations for the dividers into a cell overwrites. This results in a very small (0.05%) performance gain which is probably not worth the added complexity. (check-in: [478627c9] user: drh branch: failed-dropCell-opt, size: 344476)
2016-12-09
19:42
[217c9900] part of check-in [684ef458] When doing the sqlite3BtreeInsert() overwrite optimization, make sure the memcpy() does not extend off the end of the page. (check-in: [684ef458] user: drh branch: trunk, size: 343030)
18:09
[38bc160d] part of check-in [c1f0ae9d] Additional comments and an assert on the sqlite3BtreeInsert() overwrite optimization. (check-in: [c1f0ae9d] user: drh branch: trunk, size: 342958)
17:32
[71f31086] part of check-in [0b86fbca] In sqlite3BtreeInsert() when replacing a re-existing row, try to overwrite the cell directly rather than deallocate and reallocate the cell. (check-in: [0b86fbca] user: drh branch: trunk, size: 342582)
16:02
[c73d7787] part of check-in [01ada3d1] Avoid unnecessary zeroing of fields in the MemPage object that are going to be reinitialized before use anyhow. A smaller and faster binary results. (check-in: [01ada3d1] user: drh branch: trunk, size: 342422)
2016-11-30
16:39
[7b235533] part of check-in [7ca58a07] Merge all the latest changes from trunk. (check-in: [7ca58a07] user: drh branch: est_count_pragma, size: 344277)
2016-11-26
20:44
[f1818376] part of check-in [41a3af54] Merge all recent trunk changes, and especially the new sqlite3_snapshot_recover() interface. (check-in: [41a3af54] user: drh branch: apple-osx, size: 342459)
2016-11-25
19:18
[9b30dbe2] part of check-in [49ebc219] Refactor the sqlite3BtreeKey() and sqlite3BtreeData() internal interfaces into sqlite3BtreePayload() and sqlite3BtreePayloadChecked(), respectively. This is a continuation of the optimization started by check-in [2d831074cf]. The result is a slightly smaller and faster binary. (check-in: [49ebc219] user: drh branch: trunk, size: 342243)
2016-11-22
01:26
[090a13ac] part of check-in [32be7aae] Remove unnecessary OP_Close opcodes for a size reduction and performance increase. (check-in: [32be7aae] user: drh branch: trunk, size: 342137)
2016-11-15
04:00
[a7ed407f] part of check-in [66347385] Change the OP_Last opcode so that it is a no-op if the cursor is already pointing at the end of the b-tree. (check-in: [66347385] user: drh branch: trunk, size: 342816)
2016-11-11
18:19
[cfe038d1] part of check-in [1a587d72] Remove obselete and unused logic in the update code generator. Fix the sqlite3BtreeMovetoUnpacked() routine so that it remembers the rowid of the row that it landed on. (check-in: [1a587d72] user: drh branch: unpacked-IdxInsert, size: 342707)
2016-11-10
21:19
[0974c9d9] part of check-in [9a64a4f2] Break up the sqlite3BtreeMovetoUnpacked() routine into an eponymous routine and sqlite3BtreeMovetoIntkey(). Each routine specializes in a single kind of btree. (check-in: [9a64a4f2] user: drh branch: split-moveto, size: 344727)
20:42
[592a72c2] part of check-in [eac0e827] Avoid a few unnecessary calls to sqlite3BtreeMovetoUnpacked(). (check-in: [eac0e827] user: drh branch: unpacked-IdxInsert, size: 342718)
2016-11-09
20:14
[d1a3d691] part of check-in [345b46be] Comment changes that attempt to better explain the behavior of the "seekResult" field on VdbeCursor objects and the seekResult parameter to sqlite3BtreeInsert() and the OPFLAG_USESEEKRESULT flag on insert opcodes. No changes to code. (check-in: [345b46be] user: drh branch: unpacked-IdxInsert, size: 342614)
00:10
[fa0e4f26] part of check-in [89d958ab] Enhance the OP_IdxInsert opcode to optionally accept unpacked key material. (check-in: [89d958ab] user: drh branch: unpacked-IdxInsert, size: 342481)
2016-11-04
19:09
[67d1cc4e] part of check-in [0e5ffd91] Merge recent trunk changes, including all the fixes that appeared in version 3.15.1. (check-in: [0e5ffd91] user: drh branch: apple-osx, size: 342445)
2016-11-03
18:30
[72965b02] part of check-in [63cfe197] 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. (check-in: [63cfe197] user: drh branch: branch-3.15, size: 341933)
2016-10-25
19:39
[4ea67e42] part of check-in [f7f78147] Simplifications to faststat1.c. Fix a bug in sqlite3MovetoProportional() for very large b-trees. (check-in: [f7f78147] user: drh branch: est_count_pragma, size: 344263)
17:28
[c0921ff5] part of check-in [c3570e46] Merge recent trunk changes, and especially the PRAGMA index_info enhancement which is needed on this branch. (check-in: [c3570e46] user: drh branch: est_count_pragma, size: 344193)
2016-10-24
01:01
[6ae1c173] part of check-in [98795c2d] Performance optimization in moveToRoot(). Avoid repeated validity checking of the root page on each call. Once is enough. (check-in: [98795c2d] user: drh branch: trunk, size: 342229)
2016-10-21
17:45
[da295509] part of check-in [0c8a5b88] Merge updates from trunk, and especially the ".mode quote" enhancement to the shell. (check-in: [0c8a5b88] user: drh branch: est_count_pragma, size: 344091)
17:25
[955375bb] part of check-in [affc2ef5] Add the btree_sample(INDEX,LOCATION,LIMIT) pragma. (check-in: [affc2ef5] user: drh branch: est_count_pragma, size: 344091)
10:49
[0fde2593] part of check-in [b54c15f1] 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. (check-in: [b54c15f1] user: dan branch: trunk, size: 342127)
2016-10-20
22:02
[c58b8a52] part of check-in [340822af] Experimental est_count pragma. (check-in: [340822af] user: drh branch: est_count_pragma, size: 344042)
2016-10-17
15:28
[4d035fb5] part of check-in [c88d36e2] Changes to support interrupting a checkpoint using sqlite3_interrupt(). (check-in: [c88d36e2] user: dan branch: trunk, size: 342127)
2016-10-04
00:47
[7a45743f] part of check-in [b10d0f93] Do not bother to initialize unused fields in the BtreePayload object. (check-in: [b10d0f93] user: drh branch: trunk, size: 341933)
2016-10-03
01:21
[a0a80fbb] part of check-in [ea8affa9] Allocate Parse objects off of the stack where appropriate for a substantial performance increase and a size reduction. (check-in: [ea8affa9] user: drh branch: trunk, size: 341989)
2016-09-28
16:15
[39e9ee32] part of check-in [06014163] Merge recent enhancements from trunk. (check-in: [06014163] user: drh branch: apple-osx, size: 342205)
2016-09-17
19:34
[56e1732e] part of check-in [63962e2a] Small performance optimization in the freeSpace() routine of btree.c. (check-in: [63962e2a] user: drh branch: trunk, size: 341989)
2016-08-13
14:30
[a4a3ac60] part of check-in [c7a9f26d] Questionable changes to support interruptible checkpoint in ZipVFS. (check-in: [c7a9f26d] user: dan branch: interruptible-checkpoint, size: 342147)
2016-08-12
16:21
[7aa56fb3] part of check-in [8a5f41c7] Have wal file checkpoints exit early if the sqlite3_interrupt() API function is called. (check-in: [8a5f41c7] user: dan branch: interruptible-checkpoint, size: 341970)
2016-08-11
19:12
[8872dcc8] part of check-in [d9f8918c] Merge version 3.14 plus some subsequent patches (including the page-cache performance patch) from trunk. (check-in: [d9f8918c] user: drh branch: begin-concurrent, size: 357075)
2016-08-04
09:13
[0a3308f2] part of check-in [bf5a9542] Merge the ORDER BY LIMIT fix, and other enhancements, from trunk. (check-in: [bf5a9542] user: drh branch: apple-osx, size: 342169)
2016-08-03
14:51
[2551bd3e] part of check-in [722c1281] Fix a typo in a comment in btree.c. No changes to code. (check-in: [722c1281] user: drh branch: trunk, size: 341953)
2016-07-25
17:31
[eb4d02a0] part of check-in [e98cefb1] Merge 3.14 alpha changes from trunk. (check-in: [e98cefb1] user: drh branch: apple-osx, size: 342166)
2016-07-14
20:19
[44c34502] part of check-in [46bd9533] Experimental patch restore the slight bias in btree-balancing immediately after the change to reduces the amount of memcpy() work done by balancing. (check-in: [46bd9533] user: drh branch: btree-balance-bias, size: 308892)
19:48
[6a42efa4] part of check-in [d2a0af7a] Minor tweak the the b-tree balancer. (check-in: [d2a0af7a] user: drh branch: btree-tuning, size: 341950)
2016-07-06
10:12
[dc4e5f3e] part of check-in [118321c8] Add the SQLITE_DBSTATUS_PROPORTIONAL_CACHE_USED sqlite3_db_status() parameter. (check-in: [118321c8] user: dan branch: dbstatus-prop-cache-used, size: 341940)
2016-06-15
10:21
[765b38f6] part of check-in [0f707d15] Merge changes from trunk. (check-in: [0f707d15] user: drh branch: apple-osx, size: 341783)
2016-06-13
12:51
[06212476] part of check-in [fcf6114b] Fix an incorrect assert() in the btree logic. (check-in: [fcf6114b] user: drh branch: trunk, size: 341567)
2016-06-06
01:54
[2781fb1d] part of check-in [e106a77d] Small performance boost and size decrease in sqlite3BtreeMovetoUnpacked(). (check-in: [e106a77d] user: drh branch: trunk, size: 341567)
2016-06-04
21:05
[b8875cff] part of check-in [5e269c2d] Improved comment on cursorOwnsBtShared(). No changes to code. (check-in: [5e269c2d] user: drh branch: btree-refactor, size: 341495)
20:58
[579a8160] part of check-in [aa53a36e] Fix a C99-ism and a compiler warning for MSVC. (check-in: [aa53a36e] user: drh branch: btree-refactor, size: 340970)
20:37
[b55e9685] part of check-in [bef35e18] Change the sqlite3BtreeKeySize() interface into sqlite3BtreeIntegerKey() and make it only work for table btrees. Change sqlite3BtreeDataSize() into sqlite3BtreePayloadSize() and make it work for all btrees. Combine sqlite3BtreeDataFetch() and sqlite3BtreeKeyFetch() into a single sqlite3BtreePayloadFetch() routine. These changes seem to make the b-tree interface more rational and they reduce both binary size and CPU usage. (check-in: [bef35e18] user: drh branch: btree-refactor, size: 340960)
2016-05-23
02:57
[3a0ee76b] part of check-in [815cc2bb] Merge changes from trunk. (check-in: [815cc2bb] user: drh branch: apple-osx, size: 341878)
2016-05-21
23:25
[2128172f] part of check-in [dec13075] More tweaks to improve the performance of the insert logic, slightly. (check-in: [dec13075] user: drh branch: trunk, size: 341662)
20:03
[e312cc3f] part of check-in [55f348cd] Simplify the sqlite3BtreeInsert() interface by gathering the five arguments describing the content to be inserted into the new BtreePayload structure, and thus reducing the number of parameters from eight to four. (check-in: [55f348cd] user: drh branch: trunk, size: 341569)
19:10
[09df1674] part of check-in [2ce11667] Remove some unused legacy code from the btree insert logic. (check-in: [2ce11667] user: drh branch: trunk, size: 341476)
12:29
[da39b19b] part of check-in [1dbaf7a1] Yet another minor size reduction and performance increase in the b-tree insert logic. (check-in: [1dbaf7a1] user: drh branch: trunk, size: 341556)
11:23
[ab4ab00f] part of check-in [656aa1ec] Small size reduction and performance increase in the sqlite3BtreeInsert() logic. (check-in: [656aa1ec] user: drh branch: trunk, size: 341494)
2016-05-16
13:37
[57540cfb] part of check-in [0d9b82af] Merge recent fixes from trunk. (check-in: [0d9b82af] user: drh branch: apple-osx, size: 341575)
2016-05-09
23:11
[e53a0154] part of check-in [79ecd0ef] Fixes to requirements marks. No changes to code. (check-in: [79ecd0ef] user: drh branch: trunk, size: 341359)
2016-04-21
15:35
[134f1b04] part of check-in [a15c49ae] Merge all recent enhancements from trunk. (check-in: [a15c49ae] user: drh branch: apple-osx, size: 341547)
2016-04-20
12:16
[6deeeeff] part of check-in [1f709fbf] Merge all recent enhancements from trunk. (check-in: [1f709fbf] user: drh branch: begin-concurrent, size: 356453)
2016-04-18
16:06
[c833d5ac] part of check-in [368e86c7] Fix the sqlite3BtreeDelete() routine so that it preserves the correct key even when the row being deleted is not on a leaf page. Fix for ticket [a306e56ff68b8fa56] (check-in: [368e86c7] user: drh branch: branch-3.12.0, size: 341317)
2016-04-09
17:04
[3ae6aea6] part of check-in [ca2ef8a8] Fix the sqlite3BtreeDelete() routine so that it preserves the correct key even when the row being deleted is not on a leaf page. Fix for ticket [a306e56ff68b8fa56] (check-in: [ca2ef8a8] user: drh branch: trunk, size: 341331)
2016-04-05
13:35
[556203aa] part of check-in [7cacf4e9] Use SQLITE_WITHIN() for pointer range comparisons in some testing code. (check-in: [7cacf4e9] user: drh branch: trunk, size: 341331)
13:19
[2b5504ac] part of check-in [85b97931] Do not allow pointer arithmetic to move a pointer across a memory allocation boundary. (check-in: [85b97931] user: drh branch: trunk, size: 341324)
2016-03-29
10:36
[108728ae] part of check-in [d7381eff] Merge 3.12.0 changes. (check-in: [d7381eff] user: drh branch: begin-concurrent, size: 356439)
10:30
[2c5e9c74] part of check-in [eef55744] Merge 3.12.0 changes. (check-in: [eef55744] user: drh branch: apple-osx, size: 341533)
2016-03-22
15:25
[577fb567] part of check-in [5ace870d] Fix a harmless compiler warning. (check-in: [5ace870d] user: drh branch: trunk, size: 341317)
14:37
[8a02b1fb] part of check-in [2484cc0c] Create the "uptr" typedef (the same as uintptr_t when available) and use it to cast pointers before comparison. (check-in: [2484cc0c] user: drh branch: trunk, size: 341311)
14:10
[5753da53] part of check-in [ff1b1ac3] Avoid the possibility of integer overflow on a pointer comparison test for corruption in the database file. (check-in: [ff1b1ac3] user: drh branch: trunk, size: 341287)
2016-03-16
19:34
[dab12f0a] part of check-in [a7978ab6] Merge the latest enhancements from trunk. (check-in: [a7978ab6] user: drh branch: begin-concurrent, size: 356172)
2016-03-15
12:45
[119943fd] part of check-in [f41a7361] Merge updates from trunk - FTS5 fixes and enhancemenets to the tests scripts so that they work with SEE. (check-in: [f41a7361] user: drh branch: apple-osx, size: 341266)
2016-03-09
03:29
[6eee126f] part of check-in [fa20dcb0] Update a comment in btree.c to account for WITHOUT ROWID tables. No code changes. (check-in: [fa20dcb0] user: drh branch: trunk, size: 341050)
2016-03-08
16:35
[1e36580a] part of check-in [29741941] Merge changes from trunk, especially the SQLITE_DEFAULT_SYNCHRONOUS enhancements. (check-in: [29741941] user: drh branch: apple-osx, size: 341297)
15:30
[2712f087] part of check-in [592d2104] Make the SQLITE_DEFAULT_SYNCHRONOUS and SQLITE_DEFAULT_WAL_SYNCHRONOUS values zero-based to agree with PRAGMA synchronous. (check-in: [592d2104] user: drh branch: default-synchronous, size: 341081)
15:14
[be3ac34a] part of check-in [5791407b] If SQLITE_DEFAULT_WAL_SYNCHRONOUS is not the same value as SQLITE_DEFAULT_SYNCHRONOUS and the application has not run "PRAGMA synchronous", then set synchronous to the SQLITE_DEFAULT_WAL_SYNCHRONOUS setting when entering WAL mode for the first time. (check-in: [5791407b] user: drh branch: default-synchronous, size: 341077)
2016-02-26
16:14
[97520970] part of check-in [4fb4aee8] Merge all recent enhancements from trunk, and in particular the SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER change. (check-in: [4fb4aee8] user: drh branch: apple-osx, size: 341659)
2016-02-22
23:44
[7bb920c4] part of check-in [aa9f4c62] Remove code not needed now that synchronous=OFF database files no longer trigger the use of a master journal. (check-in: [aa9f4c62] user: drh branch: trunk, size: 340528)
2016-02-18
01:36
[733117e4] part of check-in [b7fa0fb3] Merge recent performance enhancements and the enhanced API_ARMOR from trunk. (check-in: [b7fa0fb3] user: drh branch: apple-osx, size: 342056)
2016-02-15
17:44
[2cca792e] part of check-in [c393ddc7] Merge version 3.11.0 (check-in: [c393ddc7] user: drh branch: begin-concurrent, size: 355982)
2016-02-13
23:43
[474ad91c] part of check-in [6a9c4a3e] Enhance ability to debug out-of-memory errors. (check-in: [6a9c4a3e] user: mistachkin branch: noMemBkpt, size: 340925)
2016-02-09
15:50
[c9123aa7] part of check-in [f0734017] Merge recent fixes and enhancements from trunk. (check-in: [f0734017] user: drh branch: apple-osx, size: 341991)
2016-02-06
22:32
[4c8caaee] part of check-in [b0b4624f] Add a utility program that looks for assert(), NEVER(), ALWAYS(), and testcase() macros that have side-effects, and reports errors when they are found. Also fix a bug that this utility detected as it was being tested. (check-in: [b0b4624f] user: drh branch: trunk, size: 340860)
2016-02-05
14:34
[deead36f] part of check-in [332c8036] Merge PRAGMA synchronous=EXTRA and OOM performance enhancements from trunk. (check-in: [332c8036] user: drh branch: begin-concurrent, size: 355879)
14:29
[b5c39d04] part of check-in [201fcbee] Merge OOM handling optimizations and PRAGMA synchronous=EXTRA as well as other enhancements from trunk. (check-in: [201fcbee] user: drh branch: apple-osx, size: 341888)
2016-02-04
11:48
[0b359bcc] part of check-in [b787165b] Remove unnecessary sets of db->mallocFailed. (check-in: [b787165b] user: drh branch: trunk, size: 340757)
2016-02-02
02:53
[3d3c562e] part of check-in [347f6a80] Merge recent enhancements from trunk. (check-in: [347f6a80] user: drh branch: begin-concurrent, size: 355911)
02:30
[af43a832] part of check-in [e6a4a163] Merge recent enhancements from trunk. (check-in: [e6a4a163] user: drh branch: apple-osx, size: 341920)
2016-02-01
00:21
[a2a0244e] part of check-in [22eaced7] Fix an assert() that might fail on a corrupt database. (check-in: [22eaced7] user: drh branch: trunk, size: 340789)
2016-01-30
13:32
[e3929afb] part of check-in [85c46704] Add the BTREE_FORDELETE and BTREE_AUXDELETE flags to the b-tree layer interface and use them. Add assert() statement to verify that they are correct. (check-in: [85c46704] user: drh branch: trunk, size: 340775)
12:50
[5e3435a3] part of check-in [0bdb41c4] Simplification and size reduction to the printf logic. Remove the bFlags parameter from sqlite3VXPrintf() and sqlite3XPrintf(). Use sqlite3XPrintf() instead of sqlite3_snprintf() for rendering P4 values in EXPLAIN output. (check-in: [0bdb41c4] user: drh branch: trunk, size: 339373)
2016-01-27
16:26
[16edaf41] part of check-in [1d3bf6be] Change the name of the BTREE_IDXDELETE flag to BTREE_AUXDELETE, to better reflect its purpose. (check-in: [1d3bf6be] user: drh branch: fordelete-assert, size: 340727)
2016-01-21
17:06
[97cf8812] part of check-in [ac2cbadd] Add a new hint bit on the flags parameter of sqlite3BtreeDelete(). The new BTREE_IDXDELETE bit indicates that the call is to delete an index entry corresponding to a table row that has already been deleted. (check-in: [ac2cbadd] user: drh branch: btree-fordelete-flag, size: 340503)
2016-01-20
12:18
[7d0dc384] part of check-in [5520f600] Merge recent enhancements from trunk. (check-in: [5520f600] user: drh branch: begin-concurrent, size: 354447)
11:40
[3744d145] part of check-in [3ed49691] Merge all recent enhancements from trunk. (check-in: [3ed49691] user: drh branch: apple-osx, size: 340456)
01:32
[f224ae87] part of check-in [f421adf5] Very small simplification to the btree balancer. (check-in: [f421adf5] user: drh branch: trunk, size: 339325)
2016-01-15
15:06
[d9c6b2e2] part of check-in [c52ca2c0] Work toward making the schema parsing logic simplier and more compact. (check-in: [c52ca2c0] user: drh branch: trunk, size: 339387)
2016-01-14
15:46
[04dccbd5] part of check-in [fccc5f20] Merge the latest enhancements and fixes from trunk. (check-in: [fccc5f20] user: dan branch: begin-concurrent, size: 354650)
15:03
[258d048e] part of check-in [d85774e0] Merge the latest enhancements and fixes from trunk. (check-in: [d85774e0] user: drh branch: apple-osx, size: 340659)
2016-01-12
04:08
[5d93e247] part of check-in [5fc0a4c1] Remove an unused field from the MemPage object. (check-in: [5fc0a4c1] user: drh branch: trunk, size: 339528)
2016-01-11
12:49
[cefa8e08] part of check-in [79125ec9] Merge enhancements from trunk, and in particular the WAL overwrite feature. (check-in: [79125ec9] user: drh branch: apple-osx, size: 340921)
2016-01-08
19:34
[6bd9b3d7] part of check-in [3392f8fa] Fix the build for SQLITE_OMIT_SHARED_CACHE, which was broken, possibly by check-in [2d96aeba]. (check-in: [3392f8fa] user: drh branch: trunk, size: 339790)
2016-01-07
16:43
[09ec3ca5] part of check-in [359277e0] Add some assert() statements to verify, where possible, that BtShared.db is set correctly. (check-in: [359277e0] user: dan branch: shared-cache-fix, size: 339690)
16:06
[d40cbcd2] part of check-in [d0214602] Have the vdbe layer call sqlite3BtreeEnter() on all b-trees in use from within sqlite3VdbeExec() even in SQLITE_THREADSAFE=0 builds. This ensures that BtShared.db is set correctly. (check-in: [d0214602] user: dan branch: shared-cache-fix, size: 339535)
2016-01-01
14:14
[90fda80e] part of check-in [6bea792c] Merge recent trunk enhancements. (check-in: [6bea792c] user: drh branch: begin-concurrent, size: 354521)
13:31
[c24afbe7] part of check-in [5b700f31] Merge all recent trunk enhancements. (check-in: [5b700f31] user: drh branch: apple-osx, size: 340530)
03:37
[4d3452b2] part of check-in [68360cd2] Fix an assert() that might be false for a corrupt database. (check-in: [68360cd2] user: drh branch: trunk, size: 339399)
2015-12-30
20:50
[ec6627fb] part of check-in [1541607d] Use the OvflOffset() macro to try to remove some magic numbers from btree.c. (check-in: [1541607d] user: drh branch: ovfloffset-macro, size: 339403)
2015-12-18
03:59
[5ac3f868] part of check-in [78507154] Reduce the size of the CellInfo object from 32 to 24 bytes on 64-bit machines. (check-in: [78507154] user: drh branch: optimize-cellinfo, size: 339383)
2015-12-17
17:30
[cb0ed74a] part of check-in [98b710c3] Reduce the size of the VdbeCursor object by a pointer (the pBt pointer used for ephemeral tables). (check-in: [98b710c3] user: drh branch: optimize-vdbecursor, size: 339668)
2015-12-16
19:55
[d8e450a5] part of check-in [cb22efaf] Merge recent enhancements from trunk. (check-in: [cb22efaf] user: drh branch: begin-concurrent, size: 354646)
13:07
[84ede51e] part of check-in [f2fc3aed] Make greater use of the SQLITE_WITHIN macro. (check-in: [f2fc3aed] user: drh branch: trunk, size: 339524)
2015-12-11
12:53
[1b90ae05] part of check-in [7e7b2406] Merge recent trunk enhancements, and in particular the snapshot interface. (check-in: [7e7b2406] user: drh branch: apple-osx, size: 340642)
2015-12-10
15:09
[450950ce] part of check-in [ad3124c8] Move pointer range comparisons into a macro, where they can be dealt with in a more portable way. (check-in: [ad3124c8] user: drh branch: stdint.h, size: 339511)
2015-12-08
16:58
[81d04142] part of check-in [901d0b8f] Changes to avoid undefined behavior in memset() and memcpy() and in the comparisons of pointers from different allocations. All problems are found by analysis tools - none have been seen in the wild. (check-in: [901d0b8f] user: drh branch: trunk, size: 339642)
2015-11-20
13:49
[ab52539c] part of check-in [41c8b8e3] Merge all the latest enhancements and fixes from trunk. (check-in: [41c8b8e3] user: drh branch: begin-concurrent, size: 354634)
2015-11-12
16:51
[59c8f285] part of check-in [e72331c7] Merge the latest enhancements from trunk, and in particular the "PRAGMA cache_spill=N" change. (check-in: [e72331c7] user: drh branch: apple-osx, size: 340643)
14:57
[d3bdd846] part of check-in [549d42be] First attempt at enhancing the "PRAGMA cache_spill" statement to accept a cache threashold size. (check-in: [549d42be] user: drh branch: cache_spill=N, size: 339512)
2015-11-07
01:57
[5e5316b3] part of check-in [5429f99b] Merge recent enhancements and fixes from trunk. (check-in: [5429f99b] user: drh branch: apple-osx, size: 340327)
2015-11-05
22:30
[9e5d713b] part of check-in [997ce6c9] Improvements and simplifications to the equality seek logic. Tests are adjusted so that they all pass now. (check-in: [997ce6c9] user: drh branch: seekeq-experiment, size: 339196)
03:26
[233c1536] part of check-in [b9b22fae] Remove #pragma that was used to work around an obsolete issue with MSVC 2012. (check-in: [b9b22fae] user: mistachkin branch: reoptimizeArm, size: 339091)
2015-11-04
22:31
[080c3cb5] part of check-in [2aa50f6f] Performance improvements in the getAndInitPage() routine of btree.c. (check-in: [2aa50f6f] user: drh branch: trunk, size: 339278)
20:22
[692ca3e6] part of check-in [708253be] Rename the sqlite3PagerAcquire() function to sqlite3PagerGet(). The former macro called sqlite3PagerGet() has been removed. (check-in: [708253be] user: drh branch: trunk, size: 339046)
2015-10-30
17:17
[0a1dd8e0] part of check-in [f2cde4cf] Merge the sqlite3_db_cacheflush() enhancements and other changes from trunk. (check-in: [f2cde4cf] user: drh branch: begin-concurrent, size: 354171)
16:23
[35af7ace] part of check-in [6e4306ef] Merge latest trunk changes, including sqlite3_db_cacheflush(), with this branch. (check-in: [6e4306ef] user: dan branch: apple-osx, size: 340180)
2015-10-27
13:24
[77343aac] part of check-in [b3ec9a0d] Split out sqlite3BtreeCursorHintFlags() from sqlite3BtreeCursorHint() the interface for improved performance. (check-in: [b3ec9a0d] user: drh branch: cursor-hints, size: 339049)
2015-10-26
20:50
[4213df62] part of check-in [bc195e1c] Merge latest trunk changes, including the SQLITE_IOERR_AUTH error code, with this branch. (check-in: [bc195e1c] user: dan branch: apple-osx, size: 339800)
20:11
[8022201b] part of check-in [20da0849] Merge the BTREE_FORDELETE enhancement with this branch. (check-in: [20da0849] user: dan branch: cursor-hints, size: 339090)
18:51
[6e7cafdb] part of check-in [53d5a4ad] Merge in all trunk changes prior to the BTREE_FORDELETE enhancement. (check-in: [53d5a4ad] user: drh branch: cursor-hints, size: 339044)
2015-10-22
20:54
[9d684e19] part of check-in [cdc92919] Modifications to pass a flag to internal routine sqlite3BtreeCursor() when a cursor that is used solely for deleting b-tree entries, or for obtaining the components of keys to delete from other b-trees, is opened. (check-in: [cdc92919] user: dan branch: btree-fordelete-flag, size: 338669)
2015-10-16
03:34
[ea8c62f6] part of check-in [08e8f04d] Whenever two or more OP_Column opcodes on the same cursor occur in succession, try to reordering them so that the one that extracts the right-most column is first, so that it will warm up the row cache for all those that follow. This gives a small performance boost. (check-in: [08e8f04d] user: drh branch: reorder-column-opcodes, size: 338623)
2015-10-15
07:44
[8853e6da] part of check-in [5c3a2a6e] Merge in the 3.9.0 changes from trunk. (check-in: [5c3a2a6e] user: drh branch: begin-concurrent, size: 353695)
2015-10-14
20:09
[7fc9513b] part of check-in [29444149] Merge in all the 3.9.0 updates from trunk. (check-in: [29444149] user: drh branch: cursor-hints, size: 338994)
2015-10-13
17:49
[7893a744] part of check-in [1900ce01] Merge 3.9.0 prerelease changes into the apple-osx branch. (check-in: [1900ce01] user: drh branch: apple-osx, size: 339704)
2015-10-10
16:41
[0b74bc28] part of check-in [fab6f090] Work around a "security feature" bug in memcpy() on OpenBSD. (check-in: [fab6f090] user: drh branch: trunk, size: 338573)
2015-10-09
17:28
[4c60a119] part of check-in [1ccae39b] Merge all changes through the first 3.9.0 beta from trunk. (check-in: [1ccae39b] user: drh branch: apple-osx, size: 339365)
2015-09-30
14:19
[a5a65308] part of check-in [29f7227f] Fix an assert() in btree.c that is only true for non-corrupt databases. (check-in: [29f7227f] user: drh branch: trunk, size: 338234)
12:59
[dd877a85] part of check-in [a6d5e4e8] Clear the BTCF_ValidNKey flag when putting a cursor into REQUIRESEEK state. Fix for [1b266395]. (check-in: [a6d5e4e8] user: dan branch: trunk, size: 338220)
2015-09-24
15:17
[82ba9189] part of check-in [c63c1e15] Merge all recent trunk enhancements and fixes into the begin-concurrent branch. (check-in: [c63c1e15] user: drh branch: begin-concurrent, size: 353309)
15:06
[9c791540] part of check-in [fbe63762] Merge trunk changes into the cursor-hints branch. (check-in: [fbe63762] user: drh branch: cursor-hints, size: 338608)
14:43
[a6b7433b] part of check-in [4dd06d8b] Merge recent trunk enhancements into the apple-osx branch. (check-in: [4dd06d8b] user: drh branch: apple-osx, size: 339318)
2015-09-20
22:57
[16458315] part of check-in [825ce320] Fix an overly-strict assert() in the btree logic. (check-in: [825ce320] user: drh branch: trunk, size: 338187)
2015-09-18
14:45
[0dc030ce] part of check-in [26f64986] Ensure that "PRAGMA integrity_check" reports an error if the free-list count header field contains a value smaller than the actual number of pages on the database free-list. (check-in: [26f64986] user: dan branch: trunk, size: 338121)
2015-09-15
19:16
[1c1519fc] part of check-in [fc4d1de8] Merge enhancements from trunk. (check-in: [fc4d1de8] user: drh branch: begin-concurrent, size: 353126)
17:31
[9d19d3f8] part of check-in [66fe0683] Merge enhancements from trunk. (check-in: [66fe0683] user: drh branch: cursor-hints, size: 338425)
17:20
[1fd5b28b] part of check-in [f12b8a0f] Merge trunk enhancements into the apple-osx branch. (check-in: [f12b8a0f] user: drh branch: apple-osx, size: 339135)
2015-09-14
14:08
[d31008cf] part of check-in [2edd2e5e] Fix a compiler warning and providing missing VdbeCoverage() calls. (check-in: [2edd2e5e] user: drh branch: trunk, size: 338004)
2015-09-12
19:26
[38ed0262] part of check-in [eaeb2b80] Experimental change to use a single-pass approach for DELETE statements on non-virtual tables that do not fire triggers or require foriegn-key processing. (check-in: [eaeb2b80] user: dan branch: onepass-delete, size: 338004)
2015-09-03
15:17
[7663d054] part of check-in [f8ae9bfd] Changes from ENABLE_CONCURRENT (default off) to OMIT_CONCURRENT (default on). This is not a clear-cut decision and might be changed back. (check-in: [f8ae9bfd] user: drh branch: begin-concurrent, size: 350659)
14:39
[3d759d99] part of check-in [25ee3000] Merge enhancements from trunk. (check-in: [25ee3000] user: drh branch: cursor-hints, size: 335958)
14:31
[0ac85a15] part of check-in [d01658ad] Merge enhancements from trunk. (check-in: [d01658ad] user: drh branch: apple-osx, size: 336668)
14:04
[89f97b91] part of check-in [71e7299e] Merge trunk optimizations. (check-in: [71e7299e] user: drh branch: begin-concurrent, size: 350383)
2015-09-02
15:37
[4084d9ee] part of check-in [82355e41] Use sqlite3XPrintf() instead of sqlite3StrAccumAppend() in a few places for better performance and a smaller footprint. (check-in: [82355e41] user: drh branch: trunk, size: 335537)
2015-09-01
17:48
[ca6c7e4b] part of check-in [5ed2a445] Fixes so that it builds without warnings both with and without SQLITE_ENABLE_CONCURRENT. (check-in: [5ed2a445] user: drh branch: begin-concurrent, size: 350456)
2015-08-28
02:12
[d82a50a6] part of check-in [da864658] Merge trunk enhancements into the apple-osx branch. Most tests works, but there are yet a few issues to be resolved. (check-in: [da864658] user: drh branch: apple-osx, size: 336741)
2015-08-27
17:42
[88ff0f5b] part of check-in [fc17f731] Fix a problem whereby concurrent transactions would not consider pages read by the transaction before the first write statement. (check-in: [fc17f731] user: dan branch: begin-concurrent, size: 350386)
2015-08-25
17:16
[aacef0cd] part of check-in [f32b57b4] If "PRAGMA integrity_check" is run while the database is being written by a CONCURRENT transaction, do not consider unreferenced pages to be an error. They may be part of the free-page list, which is not visible at the b-tree layer when running a CONCURRENT transaction. (check-in: [f32b57b4] user: dan branch: begin-concurrent, size: 350251)
14:37
[a7632969] part of check-in [231b5880] Fix a segfault that could occur following an OOM condition in the concurrent transaction code. (check-in: [231b5880] user: dan branch: begin-concurrent, size: 350029)
2015-08-24
19:56
[f4db20fa] part of check-in [ba1ab858] Change "BEGIN UNLOCKED" to "BEGIN CONCURRENT". (check-in: [ba1ab858] user: dan branch: begin-concurrent, size: 350027)
16:00
[13f92476] part of check-in [04113557] Fix compilation without SQLITE_ENABLE_UNLOCKED. Also other code organization issues. (check-in: [04113557] user: dan branch: begin-concurrent, size: 349979)
10:05
[e8074096] part of check-in [701302b4] Consolidate two blocks of similar code in btreeFixUnlocked(). (check-in: [701302b4] user: dan branch: begin-concurrent, size: 349942)
2015-08-22
17:28
[245bc696] part of check-in [ed0a31be] Add further tests for deferred page allocation. And fixes for the same. (check-in: [ed0a31be] user: dan branch: begin-concurrent, size: 348734)
2015-08-21
20:11
[dc80ac83] part of check-in [53aaeea6] Fix many minor issues in the unlocked transaction code. (check-in: [53aaeea6] user: dan branch: begin-concurrent, size: 347586)
18:55
[e455c3db] part of check-in [06967916] When committing an UNLOCKED transaction, try to move pages allocated at the end of the file to free slots within the file (like an incremental-vacuum operation does). (check-in: [06967916] user: dan branch: begin-concurrent, size: 347586)
17:57
[fca7884e] part of check-in [227bb8a1] Fix a problem with UNLOCKED transactions that free pages allocated within the same transaction. (check-in: [227bb8a1] user: dan branch: begin-concurrent, size: 346545)
2015-08-19
20:27
[a00a7c48] part of check-in [3bbc31d5] When committing an unlocked transaction, relocate newly allocated database pages within the file to avoid conflicting with committed transactions. There are lots of things still to fix in this code. (check-in: [3bbc31d5] user: dan branch: begin-concurrent, size: 345852)
2015-08-15
18:16
[c1bbc835] part of check-in [de1ea450] Handle writes to auto-vacuum databases within UNLOCKED transactions in the same way as for non-UNLOCKED transactions. (check-in: [de1ea450] user: dan branch: begin-concurrent, size: 336067)
2015-08-14
23:57
[b8083a37] part of check-in [83a84435] Always provide the BTREE_BULKLOAD hint, even when SQLITE_ENABLE_CURSOR_HINTS is not defined, as that hint gives a 4% performance increase. (check-in: [83a84435] user: drh branch: cursor-hints, size: 336031)
15:05
[84ae3d2d] part of check-in [fc3fb5cd] Refactor the sqlite3BtreeCursorHint() interface for improved maintainability. (check-in: [fc3fb5cd] user: drh branch: cursor-hints, size: 336397)
2015-08-13
20:07
[060f2482] part of check-in [82a7a61b] Merge in all the trunk changes from the previous year. This breaks the cursor-hint mechanism, but provides a baseline for trouble-shooting. (check-in: [82a7a61b] user: drh branch: cursor-hints, size: 336213)
2015-08-11
01:45
[37d3bece] part of check-in [56ff336e] Two more places where logging of freelist trunk pages is needed. (check-in: [56ff336e] user: drh branch: experimentalIoLog, size: 337049)
2015-08-10
20:53
[546be5b4] part of check-in [bb5d7782] Record when an allocated page is taken from the freelist trunk. (check-in: [bb5d7782] user: drh branch: experimentalIoLog, size: 336849)
20:22
[304e7b5a] part of check-in [ac5d2e9d] Add the sqlite3_experimental_log_open() interface. This is for diagnostic use only and is not intended to ever go on trunk. (check-in: [ac5d2e9d] user: drh branch: experimentalIoLog, size: 336734)
2015-07-29
12:14
[5087b0a1] part of check-in [0b971842] Only allow UNLOCKED transactions to commit if none of the pages read by the transaction have been modified since it was opened. (check-in: [0b971842] user: dan branch: begin-concurrent, size: 336048)
2015-07-27
19:31
[b184ce6d] part of check-in [80794216] Add an experimental "BEGIN UNLOCKED" command. (check-in: [80794216] user: dan branch: begin-concurrent, size: 336261)
2015-07-14
17:18
[f48b3ef9] part of check-in [3de030c9] Fix some harmless compiler warnings. (check-in: [3de030c9] user: mistachkin branch: trunk, size: 335610)
2015-07-08
01:22
[781deff0] part of check-in [9417b402] Avoid left-shifting bits into the sign of a signed integer, as such behavior is technically undefined. (check-in: [9417b402] user: drh branch: pcache-bulk-local, size: 335606)
2015-07-04
11:14
[740ab30d] part of check-in [743bf1f1] Do not preserve the btreeInitPage() results in PRAGMA integrity_check if there were cell sizing errors because PRAGMA cell_size_check was turned off during the btreeInitPage() call. (check-in: [743bf1f1] user: drh branch: trunk, size: 335599)
2015-07-02
19:47
[7705ce3e] part of check-in [e53d497c] When doing coverage analysis of a btree page for pragma integrity_check, make the first entry (that covers the header, cell index, and gap) implied, for a performance boost and size reduction. (check-in: [e53d497c] user: drh branch: trunk, size: 335496)
16:52
[cf3375bf] part of check-in [bcc8a755] Fix harmless compiler warnings and one macro VVA_ONLY macro usage issue. (check-in: [bcc8a755] user: mistachkin branch: trunk, size: 334997)
16:29
[6368ffd4] part of check-in [3a26a919] Fix a (harmless) shadowed local variable definition in the integrity_check logic. (check-in: [3a26a919] user: drh branch: trunk, size: 334980)
16:17
[98ef3db8] part of check-in [251a7590] Smaller and faster PRAGMA integrity_check that also does a better job of detecting errors. Some output text describing discovered file corruption has changed for clarity. (check-in: [251a7590] user: drh branch: trunk, size: 334970)
2015-07-01
17:53
[e283de2f] part of check-in [550705fc] Simplification of PRAGMA integrity_check logic. Make sure that the depth of the right-most subtree is correct. Size reduction and performance increase, with no change in output. (check-in: [550705fc] user: drh branch: trunk, size: 333710)
17:13
[41c63a0f] part of check-in [1c522123] Rework the PRAGMA integrity_check logic. Simplify the checkTreePage() routine and clean up the error messages generated. (check-in: [1c522123] user: drh branch: integrity-check-refactor, size: 332825)
04:08
[075ce6dd] part of check-in [307195c8] Fix some harmless compiler warnings. (check-in: [307195c8] user: drh branch: trunk, size: 334131)
01:31
[a0eb750d] part of check-in [59ad912c] Change integrity_check to analyze the cells of a page in reverse order, as this will tend to insert the cells into the analysis heap in increasing order by address, which is the most efficient way to load a min-heap. (check-in: [59ad912c] user: drh branch: trunk, size: 334103)
2015-06-30
13:28
[3a535c01] part of check-in [79ff36b7] Remove the use of htonl() in the previous check-in due to linkage issues. Add the get2byteAligned() macro and use it for access to the cell offsets on btree pages for about a 1% performance gain. (check-in: [79ff36b7] user: drh branch: bswap-functions, size: 334100)
02:47
[08ae64b0] part of check-in [429ccef2] Put BtCursor objects on a singly-linked list instead of a doubly-linked list. Add the BTCF_Multiple flag. Only invoke saveAllCursors() when using a cursor that has BTCF_Multiple set. (check-in: [429ccef2] user: drh branch: trunk, size: 334051)
01:25
[5d5d4846] part of check-in [ed54c14e] Convert several 5-year-old and older NEVER() macros into assert(). (check-in: [ed54c14e] user: drh branch: trunk, size: 332969)
2015-06-29
23:01
[9d8ae0db] part of check-in [53fe685d] From sqlite3BtreeInsert(), bypass the btreeMoveto() routine for table inserts and go directly to sqlite3BtreeMovetoUnpacked(). (check-in: [53fe685d] user: drh branch: trunk, size: 333112)
00:52
[ce342e15] part of check-in [18115164] Move an assert() and testcase() into their correct position within getAndInitPage(). (check-in: [18115164] user: drh branch: trunk, size: 332963)
2015-06-27
23:55
[8f86dae0] part of check-in [63998471] Make greater use of BtCursor.curIntKey. (check-in: [63998471] user: drh branch: trunk, size: 332964)
22:49
[124fb2cf] part of check-in [4a17df13] Add the BtCursor.curIntKey field and use it for a small size reduction and performance boost. (check-in: [4a17df13] user: drh branch: trunk, size: 332942)
20:55
[a6b02598] part of check-in [291d9e0c] Enhancements to the previous check-in to make it a little smaller and faster. (check-in: [291d9e0c] user: drh branch: trunk, size: 332903)
19:45
[b1ba9f65] part of check-in [1956a4ce] Performance improvements in moveToChild() by shifting some work over to getAndInitPage(). Net improvement is about 800K cycles at cost of 30 bytes. (check-in: [1956a4ce] user: drh branch: trunk, size: 332821)
15:51
[be03b25d] part of check-in [7f65b96b] Manually inline the call from getAndInitPage() to btreeGetPage() for a savings of 2.5 million cycles at a cost of less than 100 bytes. (check-in: [7f65b96b] user: drh branch: trunk, size: 332306)
14:59
[bcd36697] part of check-in [9383a688] Add releasePageNotNull() as an alternative to releasePage() when the argument is guaranteed to be non-NULL, and use it for a small performance gain. (check-in: [9383a688] user: drh branch: trunk, size: 332203)
03:58
[2a7554d5] part of check-in [bee94dc3] Add the Mempage.aDataOfst field and use it in sqlite3BtreeMovetoUnpacked() for about a 2 million cycle gain. (check-in: [bee94dc3] user: drh branch: trunk, size: 332081)
2015-06-26
03:12
[c113f73f] part of check-in [7097716c] Fix harmless compiler warning in assert statement. (check-in: [7097716c] user: mistachkin branch: trunk, size: 331771)
2015-06-25
19:53
[40e98c10] part of check-in [7d02e6c9] Simplifications and performance improvements in insertCell(). (check-in: [7d02e6c9] user: drh branch: trunk, size: 331766)
18:36
[960a6413] part of check-in [78da0f69] More simplifications and performance improvements to cell allocation logic associated with allocateSpace(). (check-in: [78da0f69] user: drh branch: trunk, size: 331766)
16:01
[85679f63] part of check-in [d67b0ed1] Reorder the terms of a conditional for a small performance gain. (check-in: [d67b0ed1] user: drh branch: trunk, size: 331937)
15:21
[cb50b3f0] part of check-in [f824e66b] Remove a NEVER() that is in fact reachable. (check-in: [f824e66b] user: drh branch: trunk, size: 331937)
15:04
[8910b2a6] part of check-in [d007bc33] Minor optimization to allocateSpace(). (check-in: [d007bc33] user: drh branch: trunk, size: 331944)
13:03
[8a4109bd] part of check-in [476b1156] Enhance the Btree object to remember whether or not it is holding an Incrblob cursor. Use this knowledge to improve performance in the common case where it does not. (check-in: [476b1156] user: drh branch: trunk, size: 331822)
02:26
[a0eaf113] part of check-in [3ee888be] Remove a line of code that doesn't do any useful work. (check-in: [3ee888be] user: drh branch: trunk, size: 331694)
2015-06-24
13:32
[10ff19e0] part of check-in [3b6fa95e] Fix a harmless compiler warning. (check-in: [3b6fa95e] user: drh branch: trunk, size: 331739)
12:24
[1fbed350] part of check-in [4e5424fe] Prevent an infinite loop while searching a corrupt freelist. (check-in: [4e5424fe] user: drh branch: trunk, size: 331739)
12:07
[2167a4fd] part of check-in [5ba98343] Strengthen the new balance_nonroot() code against various corrupt database problems. (check-in: [5ba98343] user: drh branch: trunk, size: 331654)
01:07
[9980353a] part of check-in [14b73d20] Remove an invalid NEVER() and add a test case to cover it. (check-in: [14b73d20] user: drh branch: trunk, size: 331790)
2015-06-23
21:35
[587dd00c] part of check-in [eed6a331] Testability improvement. (check-in: [eed6a331] user: drh branch: btree-opt2, size: 331797)
18:24
[ca394997] part of check-in [f77f2f48] Multiple overflow cells are always adjacent and sequential. Exploit this invariant for a small size reduction and performance increase and add assert()s to prove the invariant. (check-in: [f77f2f48] user: drh branch: btree-opt2, size: 331845)
17:09
[0b20e828] part of check-in [fda89b05] Faster loading of cell pointers into the b.apCell array in balance_nonroot. (check-in: [fda89b05] user: drh branch: btree-opt2, size: 331262)
16:00
[57f16870] part of check-in [6319ee12] Avoid unnecessary cachedCellSize() calls in the cell partition adjustment phase of balance_nonroot(). (check-in: [6319ee12] user: drh branch: btree-opt2, size: 331272)
15:36
[d3299e92] part of check-in [f7f41818] Change pageInsertArray() and pageFreeArray() so that they use the CellArray object and compute cell sizes as needed, resulting in smaller and faster code. (check-in: [f7f41818] user: drh branch: btree-opt2, size: 331254)
14:49
[8d772673] part of check-in [ee44bb25] Improvements to the way balance_nonroot() constructs the b.apCell array of pointers to cells. (check-in: [ee44bb25] user: drh branch: btree-opt2, size: 331414)
02:37
[e6ac65de] part of check-in [43844537] Avoid computing cell sizes in balance_nonroot() until they are really needed. This gives an overall 1.7% performance gain for about 1000 extra bytes of code space. (check-in: [43844537] user: drh branch: btree-opt2, size: 330783)
2015-06-22
20:02
[8f65725c] part of check-in [16872871] Change the way that balance_nonroot() partitions cells between the sibling pages such that a scan of the cell size array is not required. (check-in: [16872871] user: drh branch: btree-opt2, size: 328768)
2015-06-20
18:13
[a311c31f] part of check-in [522502ec] Split out all four cases of cellSizePtr() into different methods, each optimized for the specific page type. This gives a 0.36% performance increase at a cost of about 300 bytes of code. (check-in: [522502ec] user: drh branch: btree-opt, size: 330951)
2015-06-19
20:08
[173c2ba1] part of check-in [3189116b] Fix corner cases involving corrupt varint values in record headers. (check-in: [3189116b] user: drh branch: btree-opt, size: 327692)
18:24
[32d2d867] part of check-in [faab0ed9] Performance improvements in btreeParseCell() by inlining the varint decoder. (check-in: [faab0ed9] user: drh branch: btree-opt, size: 327692)
17:19
[cf8310b4] part of check-in [41d03d88] Add the MemPage.xParseCell method and provide various implementations (variations on the former btreeParseCellPtr()) depending on the page type. (check-in: [41d03d88] user: drh branch: trunk, size: 326869)
15:07
[960e66f4] part of check-in [02f7e9d7] Make cellSizePtr() a method on the MemPage object, with alternative implementations depending on the page type. This results is a small performance improvement and size reduction. (check-in: [02f7e9d7] user: drh branch: trunk, size: 324531)
2015-06-17
02:11
[02caf391] part of check-in [55c393ea] Make getCellInfo() a real function instead of a macro, for a size reduction and a 0.2% performance gain. (check-in: [55c393ea] user: drh branch: trunk, size: 323409)
2015-06-15
16:09
[e557af31] part of check-in [ae687652] Fix a harmless comment typo. No code changes. (check-in: [ae687652] user: drh branch: trunk, size: 324614)
12:58
[e269b13c] part of check-in [29bcb568] Improved detection of database corruption in freeSpace(). (check-in: [29bcb568] user: drh branch: trunk, size: 324611)
2015-06-02
19:36
[5166c278] part of check-in [9f035c45] Always check for cell overflow before returning a slot from the pageFindSlot routine in btree.c. (check-in: [9f035c45] user: drh branch: trunk, size: 324541)
14:02
[c73a1701] part of check-in [4e621af1] Fix a faulty assert() in btree.c. Update the database fuzz test file with new test cases. (check-in: [4e621af1] user: drh branch: trunk, size: 324541)
2015-05-29
18:42
[9e837a0e] part of check-in [09a38bf6] Ensure that allocateBtreePage() always clears the MemPage pointer when it fails due to an I/O or memory allocation error. (check-in: [09a38bf6] user: drh branch: trunk, size: 324512)
17:51
[5fa5fda8] part of check-in [db4e9728] Move two unreachable conditionals inside of NEVER() or assert(). (check-in: [db4e9728] user: drh branch: trunk, size: 324568)
17:13
[7dcddf0a] part of check-in [00693682] Remove a corruption test in balance_nonroot that is superceded by a prior better check. (check-in: [00693682] user: drh branch: trunk, size: 324405)
2015-05-28
15:14
[a1f51049] part of check-in [7da7dc71] Added comments and testcase() macros to error cases in the btree search. (check-in: [7da7dc71] user: drh branch: trunk, size: 324492)
11:23
[f34b9368] part of check-in [60a09f17] Earlier detection of incompatible sibling pages in balance_nonroot. (check-in: [60a09f17] user: drh branch: trunk, size: 324198)
03:28
[7cd71f55] part of check-in [fe15d1f7] Add the btreeGetUnusedPage() routine to btree.c, and use it to detect content pages on the freelist and to cause that condition to trigger an SQLITE_CORRUPT. (check-in: [fe15d1f7] user: drh branch: trunk, size: 323950)
2015-05-27
18:13
[84b1f0f4] part of check-in [7373a004] All bytes of a page are initialized, even bytes that follow a 2-byte cell on a malformed page. (check-in: [7373a004] user: drh branch: trunk, size: 323206)
15:42
[de509eea] part of check-in [95eaa49f] A different approach to preventing buffer overreads when comparing a vector of values with a corrupt index record that spans at least one overflow page. (check-in: [95eaa49f] user: drh branch: trunk, size: 323205)
14:21
[9c72a5a2] part of check-in [7e9e1b61] A different approach to preventing buffer overreads when comparing a vector of values with a corrupt index record that spans at least one overflow page. (check-in: [7e9e1b61] user: dan branch: avoid-buffer-overread, size: 323389)
03:46
[5905cbd1] part of check-in [2ead43f0] Add the "PRAGMA cell_size_check=ON" command. (check-in: [2ead43f0] user: drh branch: cell-size-check-pragma, size: 322799)
2015-05-26
20:31
[51cafeb1] part of check-in [62a5b363] Avoid a buffer overread when comparing against a corrupt record that spans at least one overflow page. (check-in: [62a5b363] user: dan branch: trunk, size: 323254)
17:33
[82bb9ad9] part of check-in [5b46d2a7] Add a cast to one side of the test added by [97806a78] in order to avoid a signed/unsigned comparison warning. (check-in: [5b46d2a7] user: dan branch: trunk, size: 322983)
12:18
[8921e4d7] part of check-in [68876003] Return SQLITE_CORRUPT to the user if an attempt is made to add database page 1 to the free page list. (check-in: [68876003] user: dan branch: trunk, size: 322978)
2015-05-25
20:04
[a7d627f8] part of check-in [7d2c4f7b] Fix a case of a corrupt database causing SQLite to read from up to 4 bytes before the start of a memory allocation. (check-in: [7d2c4f7b] user: dan branch: trunk, size: 322920)
19:24
[a5beb7f1] part of check-in [aa18c8e9] Have the b-tree layer return SQLITE_CORRUPT to any attempt to open a cursor with a root page number less than 1. (check-in: [aa18c8e9] user: dan branch: trunk, size: 322859)
18:47
[91a435b3] part of check-in [8fa0937a] Fix a couple of btree asserts that would fail when encountering 32-bit rollover in cell payload size fields (cell payloads this large always indicate corruption). (check-in: [8fa0937a] user: dan branch: trunk, size: 322792)
17:07
[03053533] part of check-in [97806a78] Fix a case where database corruption may cause SQLite to write past the end of a buffer. (check-in: [97806a78] user: dan branch: trunk, size: 322723)
15:03
[9114263d] part of check-in [00a473c5] Fix an assert() in btree routine freeSpace() that may be false if the database is corrupt. (check-in: [00a473c5] user: dan branch: trunk, size: 322693)
2015-05-24
21:46
[148cbc43] part of check-in [336fccc8] The assert() changes removed in the previous check-in are needed after all. (check-in: [336fccc8] user: drh branch: trunk, size: 322679)
21:09
[17776a0c] part of check-in [bf7bb53e] Better detection of corruption in allocateSpace() in btree.c. (check-in: [bf7bb53e] user: drh branch: trunk, size: 322614)
10:18
[c222cc2b] part of check-in [4f0bba42] Detect database corruption in the modifyPagePointer() routine and abort. (check-in: [4f0bba42] user: drh branch: trunk, size: 322642)
2015-05-23
19:53
[3cf8dde0] part of check-in [7bbf9b3c] Instead of early detection of corruption in balance_nonroot, simply ignore the error, as it is harmless and exceedingly uncommon. (check-in: [7bbf9b3c] user: drh branch: trunk, size: 322601)
19:29
[c40b8483] part of check-in [ee6dc991] Earlier detection of a specific kind of corruption in the balance_nonroot() routine. (check-in: [ee6dc991] user: drh branch: trunk, size: 322674)
2015-05-22
23:39
[d2bf38cf] part of check-in [89f0bbfd] Fix another bad assert() in btree - one that can be false on a corrupt database file. (check-in: [89f0bbfd] user: drh branch: trunk, size: 322573)
13:09
[0eb4eb39] part of check-in [799817bf] Fix two faulty assert statements discovered by fuzzing. (check-in: [799817bf] user: drh branch: trunk, size: 322508)
12:37
[dbc8f920] part of check-in [a6eb2a39] Fix an assert in btree.c that can be false when using a corrupted database file. (check-in: [a6eb2a39] user: drh branch: trunk, size: 322462)
2015-05-21
17:21
[3baad8da] part of check-in [31b13eb5] Avoid ever writing before the start of an allocated buffer in the DIRECT_OVERFLOW_READ code. Fix for [e3a290961a6]. Cherrypick of [c3c15d20c691]. (check-in: [31b13eb5] user: dan branch: branch-3.8.6, size: 293946)
2015-05-05
10:03
[30a80340] part of check-in [90b19748] Fix a faulty assert() in the btree part of the "PRAGMA page_size = ?" code. (check-in: [90b19748] user: dan branch: trunk, size: 322420)
2015-05-02
11:45
[9c1a6b3a] part of check-in [7952c322] Cleanup of the sqlite3StrAccumInit() function. No functionality changes. (check-in: [7952c322] user: drh branch: trunk, size: 322436)
2015-04-28
01:28
[809cdb06] part of check-in [60174cf5] Fix comment typos. No code changes. (check-in: [60174cf5] user: drh branch: trunk, size: 322464)
2015-04-20
01:25
[d061b108] part of check-in [74b7bf17] Merge all recent trunk enhancements and fixes into the apple-osx branch. (check-in: [74b7bf17] user: drh branch: apple-osx, size: 323592)
2015-04-16
21:57
[127aceb7] part of check-in [e94b2ef2] Use a heap rather than a bitmap for cell coverage and overlap testing on btree pages in PRAGMA integrity_check. (check-in: [e94b2ef2] user: drh branch: trunk, size: 322461)
11:56
[c0e7a97c] part of check-in [5619c959] Use a heap instead of a bitmap for cell overlap and coverage testing of btree pages in PRAGMA integrity_check. (check-in: [5619c959] user: drh branch: integrity-check-heap, size: 322448)
2015-04-15
19:13
[485e357f] part of check-in [a200e1ea] Add the BtCursor.pPage field which is the current page to which the cursor points, for a very small performance gain. (check-in: [a200e1ea] user: drh branch: btree-current-page-cache, size: 321559)
17:26
[c6e32d84] part of check-in [f71053cf] Prevent the fetchPayload() routine from reporting a cell size that extends off the end of the page on a pathologically corrupted database file. (check-in: [f71053cf] user: drh branch: trunk, size: 320661)
2015-04-13
23:11
[66bb78f5] part of check-in [e709d3b4] Merge all recent trunk enhances into the apple-osx branch. (check-in: [e709d3b4] user: drh branch: apple-osx, size: 321505)
14:44
[67648f65] part of check-in [d06669d9] Remove a faulty assert() from the btree balancing logic. (check-in: [d06669d9] user: drh branch: trunk, size: 320374)
2015-04-06
22:05
[02064f49] part of check-in [e5f5ef00] Detect and suppress an endless loops in clearDatabasePage() that might result from a corrupt database file. This is an edited cherry-pick from [30011ad2f55c] and [395bb3e677a]. (check-in: [e5f5ef00] user: drh branch: apple-osx-385, size: 294908)
2015-04-01
16:13
[a6b1c0ef] part of check-in [71b6f507] Merge all recent trunk fixes and enhancements into the apple-osx branch. (check-in: [71b6f507] user: drh branch: apple-osx, size: 321531)
13:21
[2caf5981] part of check-in [30011ad2] Improved detection and suppression of endless loops in clearDatabasePage(). (check-in: [30011ad2] user: drh branch: trunk, size: 320400)
2015-03-31
16:33
[525f19f0] part of check-in [586a94e8] Handle very large URI pathnames for in-memory shared-cache databases. (check-in: [586a94e8] user: drh branch: trunk, size: 320386)
2015-03-30
23:52
[24cc28c8] part of check-in [4d42bf5e] Merge the latest trunk enhancements, and especially the fix for the infinite loop on a DROP TABLE in a corrupt database, into the apple-osx branch. (check-in: [4d42bf5e] user: drh branch: apple-osx, size: 321468)
23:43
[e565971c] part of check-in [395bb3e6] Prevent a possible infinite loop when trying to DROP a table from a corrupt database. (check-in: [395bb3e6] user: drh branch: trunk, size: 320337)
19:56
[d90cda66] part of check-in [763d2bc7] Optimize CREATE INDEX, REINDEX and VACUUM statements by taking better advantage of the fact that index keys are being inserted into b-trees in sorted order. (check-in: [763d2bc7] user: dan branch: mistake, size: 320236)
2015-03-25
18:29
[4f305e55] part of check-in [fb076b28] Change an unreachable branch into an assert(). (check-in: [fb076b28] user: drh branch: trunk, size: 320224)
17:35
[933ab4ad] part of check-in [37866b4d] Fix the saveCursorPosition() routine in btree.c so that it works correctly for a eState=CURSOR_SKIPNEXT cursor. (check-in: [37866b4d] user: drh branch: trunk, size: 320212)
13:06
[3634c2ee] part of check-in [1e96520a] Reactivate an older assert() (adding an "|| CORRUPT_DB" term) and add a new assert() in btree.c. (check-in: [1e96520a] user: drh branch: trunk, size: 319975)
12:05
[8d92800a] part of check-in [42d1793d] Add two new assert()s to the sqlite3BtreeDataSize() method. (check-in: [42d1793d] user: drh branch: trunk, size: 320181)
2015-03-24
18:49
[13590ad3] part of check-in [a2bd81e5] Merge the latest trunk enhancements into the apple-osx branch. (check-in: [a2bd81e5] user: drh branch: apple-osx, size: 321240)
2015-03-23
19:03
[3e320cac] part of check-in [ff4812d0] Fix datetype size asserts in btree.c. (check-in: [ff4812d0] user: drh branch: trunk, size: 320109)
2015-03-21
17:00
[22086fbd] part of check-in [9f1f8b33] Merge all recent trunk enhancements and especially the blocking WAL-lock fix into the apple-osx branch. (check-in: [9f1f8b33] user: drh branch: apple-osx, size: 321276)
2015-03-20
14:57
[d4d52fb1] part of check-in [e750830f] Provide the BTREE_SEEK_EQ hint to the b-tree layer. (check-in: [e750830f] user: drh branch: seek-eq, size: 320145)
2015-02-21
01:03
[7f5174c0] part of check-in [3896e233] Merge trunk changes into the apple-osx branch. (check-in: [3896e233] user: drh branch: apple-osx, size: 321019)
00:19
[a31ac00e] part of check-in [28c2b726] Keep track of the optimal number of reserved bytes (by looking at reserve byte requests in calls to sqlite3BtreeSetPageSize()) and then change the reserve byte count to the optimal when doing a VACUUM or when using the backup API. (check-in: [28c2b726] user: drh branch: trunk, size: 319888)
2015-02-06
16:03
[11945da2] part of check-in [44711921] Merge all recent trunk enhancements into the apple-osx branch. (check-in: [44711921] user: drh branch: apple-osx, size: 320905)
2015-01-30
21:00
[ddca0ae6] part of check-in [3ed6eb2f] Merge the SQLITE_TESTCTRL_IMPOSTER changes from trunk. (check-in: [3ed6eb2f] user: drh branch: ota-update, size: 319817)
20:59
[2a1245df] part of check-in [42d56017] Change SQLITE_TESTCTRL_INITMODE to SQLITE_TESTCTRL_IMPOSTER. Revise the order of parameters. Give it the ability to reset the schema parse table so that imposter tables can be erased. (check-in: [42d56017] user: drh branch: trunk, size: 319774)
2015-01-28
12:00
[73cfa175] part of check-in [17c69be8] Merge in all changes from trunk. (check-in: [17c69be8] user: drh branch: ota-update, size: 319585)
2015-01-02
19:17
[2dfa99ac] part of check-in [df3cdf9f] Merge the latest changes from trunk into the apple-osx branch. (check-in: [df3cdf9f] user: drh branch: apple-osx, size: 320673)
2014-12-30
00:57
[4c098bb6] part of check-in [b28ce75f] Round all object sizes that go into computing SQLITE_CONFIG_PCACHE_HDRSZ up to a multiple of 8 bytes. (check-in: [b28ce75f] user: drh branch: trunk, size: 319542)
2014-12-24
18:11
[904d3047] part of check-in [e2e32314] Fix a failing assert() in balance_nonroot(). (check-in: [e2e32314] user: dan branch: trunk, size: 319534)
2014-12-22
18:41
[1de05604] part of check-in [7a97826f] Redefine the way PRAGMA data_version works: It continues to change when any other connection commits, including shared-cache connections, but does not change if the local connection commits. (check-in: [7a97826f] user: drh branch: trunk, size: 319530)
2014-12-19
19:28
[b2b2bd0a] part of check-in [43db1f44] Experimental "PRAGMA data_version" command for detecting when another process has changed the database file. (check-in: [43db1f44] user: drh branch: data_version_pragma, size: 319443)
2014-12-16
00:29
[ecb04166] part of check-in [2c1d8dda] Merge latest fixes and enhancements from trunk into apple-osx. (check-in: [2c1d8dda] user: drh branch: apple-osx, size: 320063)
00:08
[92f745cc] part of check-in [5b1b6970] Make sure the sqlite3BtreeCount() routine does not leave index cursors in an inconsistent state, as doing so might result in an assertion fault inside of sqlite3BtreeKey() called from saveAllCursors() if content is deleted out from under the statement that issued the sqlite3BtreeCount() call. (check-in: [5b1b6970] user: drh branch: trunk, size: 318932)
2014-12-11
16:38
[ab4b60fc] part of check-in [fc157dd7] Fix a race condition to do with very large index keys in shared-cache mode. (check-in: [fc157dd7] user: dan branch: trunk, size: 318925)
2014-12-09
15:01
[e8325955] part of check-in [6e2da589] Increase the default PMA size from 10 to 250 pages and provide the SQLITE_SORTER_PMASZ compile-time option to change this default. Add needed mutex call when clearing the KeyInfo cache in shared-cache mode. (check-in: [6e2da589] user: drh branch: apple-osx, size: 320043)
04:26
[ea6692ce] part of check-in [e97b7a8b] Fix harmless compiler warning. (check-in: [e97b7a8b] user: mistachkin branch: trunk, size: 318912)
2014-12-08
07:50
[7071995e] part of check-in [69a312ad] Update this branch with latest trunk changes. (check-in: [69a312ad] user: dan branch: ota-update, size: 318950)
2014-12-06
14:56
[90239634] part of check-in [6aeece19] Avoid accessing a single uninitialized byte when moving a rare 3-byte cell from an internal page to a leaf. This was not actually causing a problem, just a valgrind warning. (check-in: [6aeece19] user: dan branch: trunk, size: 318907)
02:05
[b1757167] part of check-in [dd1dd445] Fix a (harmless) uninitialized variable reference in b-tree balancing for auto-vacuumed tables with overflow pages. (check-in: [dd1dd445] user: drh branch: trunk, size: 318713)
2014-12-02
16:38
[da9a40fd] part of check-in [43c4ba26] Merge all recent enhancements and bug fixes from trunk into the apple-osx branch. (check-in: [43c4ba26] user: drh branch: apple-osx, size: 319803)
16:16
[44b58cd7] part of check-in [61b31e77] Convert two unreachable branches into assert() statements. (check-in: [61b31e77] user: drh branch: trunk, size: 318672)
2014-11-27
03:46
[c82a514c] part of check-in [f242394e] Fix a problem in the new b-tree balancer that was causing corruption of the fragmentation count. (check-in: [f242394e] user: drh branch: trunk, size: 318654)
2014-11-21
14:37
[1ab82a27] part of check-in [7ef44c5b] Merge latest trunk changes with this branch. (check-in: [7ef44c5b] user: dan branch: ota-update, size: 318241)
2014-11-20
15:30
[4db5e06c] part of check-in [ef9fbc08] Ensure that when the number of cells on a page drops to zero that the freelist and fragment counter are both cleared. Also add evidence marks corresponding to file-format documentation. (check-in: [ef9fbc08] user: drh branch: trunk, size: 318198)
2014-11-19
16:36
[d0a7cfc8] part of check-in [6d00bcca] Add new requirements marks associated with the file format documentation. No changes to code. (check-in: [6d00bcca] user: drh branch: trunk, size: 314586)
2014-11-18
21:27
[6d877cd2] part of check-in [ccb601f6] Merge recent trunk enhancements. (check-in: [ccb601f6] user: drh branch: apple-osx, size: 312637)
20:49
[b562da29] part of check-in [296b0c73] Merge in all the other ROLLBACK fixes from the branch-3.8.7 branch. I don't know why I was doing them one-by-one. (check-in: [296b0c73] user: drh branch: trunk, size: 311506)
20:22
[75edb585] part of check-in [2896f264] Fix a bug in the sqlite3TripAllCursors() routine that prevents it from reporting errors. It is unknown at this time whether or not this omission can result in any incorrect result in an actual query. (check-in: [2896f264] user: drh branch: trunk, size: 311607)
2014-11-17
20:33
[c961588f] part of check-in [57c4aa98] Remove code from sqlite3BtreeKeySize() made unreachable by the previous check-in. (check-in: [57c4aa98] user: drh branch: branch-3.8.7, size: 301105)
15:32
[20871251] part of check-in [42588207] Fix a bug in the sqlite3TripAllCursors() routine that prevents it from reporting errors. It is unknown at this time whether or not this omission can result in any incorrect result in an actual query. (check-in: [42588207] user: drh branch: branch-3.8.7, size: 301206)
2014-11-13
13:42
[2c15850c] part of check-in [402780a9] When a transaction or savepoint rollback occurs, save the positions of all open read-cursors so that they can be restored following the rollback operation. Cherry-pick of check-in [dd03a2802f3f27] (check-in: [402780a9] user: drh branch: branch-3.8.7, size: 301210)
2014-11-12
14:56
[d5d991b5] part of check-in [dd03a280] When a transaction or savepoint rollback occurs, save the positions of all open read-cursors so that they can be restored following the rollback operation. (check-in: [dd03a280] user: dan branch: trunk, size: 311611)
2014-11-11
22:55
[944b84f7] part of check-in [d4b2d5d0] Enhance ROLLBACK so that pending queries are allowed to continue as long as the schema does not change. This is a cherry-pick of check-in [b5df5ac052]. (check-in: [d4b2d5d0] user: drh branch: branch-3.8.7, size: 300288)
01:33
[eaef0003] part of check-in [fa6e6a9a] Experimental changes that permit read operations to continue after a ROLLBACK, as long as the schema is unchanged. (check-in: [fa6e6a9a] user: drh branch: read-after-rollback, size: 310689)
2014-11-05
21:21
[4a126e20] part of check-in [83a1e5db] Fix harmless compiler warnings in the new balance_nonroot() routine. (check-in: [83a1e5db] user: drh branch: trunk, size: 310184)
2014-11-04
14:22
[11d12621] part of check-in [391c9b85] Change the definition of SQLITE_CONFIG_SCRATCH so that at most one scratch buffer is used per thread. Use the generic heap memory allocator for the WalIterator object when running a checkpoint. (check-in: [391c9b85] user: drh branch: trunk, size: 310034)
13:41
[5b6e02a2] part of check-in [681031a4] Improved documentation and addition of source-code evidence marks for the sqlite3_config() interface. (check-in: [681031a4] user: drh branch: trunk, size: 310179)
12:11
[3cc91876] part of check-in [6eb03e62] Add the SQLITE_CONFIG_PCACHE_HDRSZ option for sqlite3_config(). (check-in: [6eb03e62] user: drh branch: trunk, size: 309920)
2014-10-31
15:20
[eeebb817] part of check-in [fef8430f] Merge all recent trunk enhancements into the apple-osx branch. (check-in: [fef8430f] user: drh branch: apple-osx, size: 310916)
14:26
[61d96c2e] part of check-in [a07078b6] Simplify the logic in the cell redistribution loop of balance_nonroot(). Enhance and clarify comments and add assert() statements for additional verification of correctness. (check-in: [a07078b6] user: drh branch: trunk, size: 309785)
12:22
[0f294d5e] part of check-in [2e838db8] Simplify the math slightly, and reduce by one the number of loop iterations, for the loop in balance_nonroot() that moves cells between pages. (check-in: [2e838db8] user: drh branch: trunk, size: 308957)
02:51
[7031b8ce] part of check-in [9fc7c88e] Remove an unnecessary branch from balance_nonroot(). (check-in: [9fc7c88e] user: drh branch: trunk, size: 308859)
00:05
[88c87803] part of check-in [69c3924f] In the balance_nonroot() routine, protect the values in aPgno[] array from change during the page sort, so that aPgno[] can be used to avoid unnecessary pointer-map updates for auto_vacuum databases. (check-in: [69c3924f] user: drh branch: trunk, size: 308823)
2014-10-30
23:14
[8f7ea969] part of check-in [67adb448] Improvements to the wording of some comments. Reinstate an assert() that is only true for non-corrupt database files by adding an "|| CORRUPT_DB" term. (check-in: [67adb448] user: drh branch: trunk, size: 308721)
20:48
[8d955d8e] part of check-in [c7d9aa3a] Tweaks to comments in btree.c. Minor code changes to enhance testability. (check-in: [c7d9aa3a] user: drh branch: trunk, size: 308782)
2014-10-28
00:56
[5189881c] part of check-in [30f86eb3] Correct the documentation on the maximum size of a scratch allocation. (check-in: [30f86eb3] user: drh branch: trunk, size: 308873)
2014-10-27
19:42
[0e3262c3] part of check-in [d33a1ff3] Fix harmless compiler warning in an assert statement. (check-in: [d33a1ff3] user: mistachkin branch: trunk, size: 308813)
18:42
[ef97f308] part of check-in [10aaf3b1] Merge latest enhancements, including the SQLITE_ENABLE_API_ARMOR patch, from trunk. (check-in: [10aaf3b1] user: drh branch: apple-osx, size: 309937)
18:21
[812c03da] part of check-in [63724616] Fix an unused variable in btree.c:allocateSpace(). (check-in: [63724616] user: drh branch: trunk, size: 308806)
08:02
[9790fb4d] part of check-in [1f80f8c1] If a free-slot is found within a page, but using that free-slot would fragment the page further and there are already at least 60 fragmented bytes, degragment the page. This matches the behaviour of the trunk. (check-in: [1f80f8c1] user: dan branch: defrag-opt, size: 308881)
2014-10-25
20:36
[2639b89f] part of check-in [1a8cf0a0] Further modifications to new code to better handle corrupt databases. (check-in: [1a8cf0a0] user: dan branch: defrag-opt, size: 308485)
2014-10-24
20:57
[4decfb3b] part of check-in [ecc3544e] Ensure that the "Any prior cache entry associated with newKey is guaranteed not to be pinned" guarantee made to xRekey implementations is not violated. (check-in: [ecc3544e] user: dan branch: defrag-opt, size: 307802)
18:43
[df15daf1] part of check-in [19736dd9] Fix some issues in the new code on this branch related to the handling of corrupt databases. (check-in: [19736dd9] user: dan branch: defrag-opt, size: 307942)
16:40
[56381ce7] part of check-in [eab8706d] Fix some minor formatting and code organization issues. (check-in: [eab8706d] user: dan branch: defrag-opt, size: 307645)
2014-10-22
18:42
[37229f31] part of check-in [854a54c6] Merge latest trunk with this branch. (check-in: [854a54c6] user: dan branch: defrag-opt, size: 307505)
2014-10-20
16:34
[c6022918] part of check-in [d380a648] Merge version-3.8.7 changes with this branch. (check-in: [d380a648] user: dan branch: ota-update, size: 299826)
2014-10-17
12:11
[ad424e72] part of check-in [aa7bbed1] Merge the 3.8.7 changes into the apple-osx branch. (check-in: [aa7bbed1] user: drh branch: apple-osx, size: 300914)
2014-10-15
11:55
[1b1123cb] part of check-in [9386bfca] Add a four-byte prefix to the BtShared.pTmpSpace buffer to avoid reading before the beginning of an allocation. (check-in: [9386bfca] user: drh branch: trunk, size: 299783)
2014-10-14
17:27
[3c72c5aa] part of check-in [58d7793b] Fix some code duplication issues on this branch. Add minor optimizations to the new code. (check-in: [58d7793b] user: dan branch: defrag-opt, size: 307165)
14:17
[94ffa3e9] part of check-in [880df756] Merge from trunk recent micro-optimizations and the fix for the DESC index GROUP BY ORDER BY bug. (check-in: [880df756] user: drh branch: apple-osx, size: 300574)
2014-10-13
18:09
[3d9d1db1] part of check-in [d5b7c5a8] Merge trunk changes into this branch. (check-in: [d5b7c5a8] user: dan branch: defrag-opt, size: 307531)
18:03
[63211ca1] part of check-in [6594f9b4] Further work on balance_nonroot(). (check-in: [6594f9b4] user: dan branch: defrag-opt, size: 307648)
16:02
[c9fcae81] part of check-in [c2799aec] Reduce the CPU load imposed by sqlit3VdbeCursorMoveto() by factoring out some of its functions and by avoiding unnecessary calls. (check-in: [c2799aec] user: drh branch: trunk, size: 299443)
2014-10-11
20:00
[d5f4f74e] part of check-in [fec849dc] Attempt to further reduce memcpy() in balance_nonroot(). (check-in: [fec849dc] user: dan branch: defrag-opt, size: 305666)
17:22
[5c0b78c4] part of check-in [66de1558] Simplification to the insertCell() routine in btree.c, resulting in a performance boost and a very small size decrease. It turns out that the extra work involved in sometimes avoiding an memcpy() of the first four bytes of a record takes more time than just unconditionally copying those four bytes. (check-in: [66de1558] user: drh branch: trunk, size: 299451)
2014-10-09
19:35
[7b89fde3] part of check-in [29304499] Change the balance_nonroot() routine to reduce the amount of memcpy work that takes place. This is a work in progress. (check-in: [29304499] user: dan branch: defrag-opt, size: 301227)
11:27
[5c97b887] part of check-in [6fc72077] Merge the latest trunk enhancements into the apple-osx branch. (check-in: [6fc72077] user: drh branch: apple-osx, size: 300912)
2014-10-01
12:01
[fa006181] part of check-in [c3c15d20] Avoid ever writing before the start of an allocated buffer in the DIRECT_OVERFLOW_READ code. Fix for [e3a290961a6]. (check-in: [c3c15d20] user: dan branch: trunk, size: 299781)
01:46
[fe089e57] part of check-in [2078454a] Merge the latest enhancements from trunk. (check-in: [2078454a] user: drh branch: apple-osx, size: 300638)
2014-09-29
15:00
[ede8348a] part of check-in [414f0d6a] Ensure that the OP_Prev opcode verifies that content has not been deleted out from under the cursor. Fix for ticket [209d31e3161b9e9ff]. (check-in: [414f0d6a] user: drh branch: trunk, size: 299507)
2014-09-27
05:00
[95a942a6] part of check-in [3edab995] Reduce the amount of memcpy() required by defragmentPage(). (check-in: [3edab995] user: drh branch: defrag-opt, size: 299704)
2014-09-26
02:41
[59f03e42] part of check-in [83913515] Fix the "PRAGMA integrity_check" command so that it avoids formatting error message context messages until it actually needs to generate an error message. This avoids much formatting, and hence greatly improves the performance of "PRAGMA integrity_check" in the common case when there are no errors. It also makes the code a little smaller. (check-in: [83913515] user: drh branch: trunk, size: 299560)
2014-09-24
19:47
[4d5cdfea] part of check-in [99323552] Have each open database allocate its pTmpSpace when the first write cursor is opened, rather than on each insert or delete, for a small space savings and performance boost. (check-in: [99323552] user: drh branch: trunk, size: 299588)
18:31
[ee77b1d3] part of check-in [13c746f8] Small performance and size optimization for btreeUnlockIfUnused(). (check-in: [13c746f8] user: drh branch: trunk, size: 299540)
04:38
[f1b4d64c] part of check-in [c705cf85] Experiment using linear interpolation, instead of a strict binary search, when looking for integer-keyed rows on a single b-tree page. The experiment was not successful. The number of key comparisons is reduced by about 15%, but the added complexity of the search logic causes an overall reduction in performance. The patch is saved for historical reference only. (check-in: [c705cf85] user: drh branch: linear-interpolation, size: 300038)
02:05
[183d62b3] part of check-in [f21d2175] Have the clearCell() routine return the cell size to the caller, rather than have the caller make a separate call to cellSizePtr(). (check-in: [f21d2175] user: drh branch: trunk, size: 299549)
01:23
[3732a278] part of check-in [5dd41cdb] Shorten all lines of source code in btree.c to at most 80 characters. No logical changes. (check-in: [5dd41cdb] user: drh branch: trunk, size: 299209)
00:59
[d64b3c55] part of check-in [8e337531] Add the MemPage.noPayload boolean and use it to help cellSizePtr() and btreeParseCellPtr() run faster. (check-in: [8e337531] user: drh branch: trunk, size: 299211)
2014-09-23
23:12
[b10d4c34] part of check-in [f480582c] Remove an unused C-preprocessor macro. No functional changes to the code. (check-in: [f480582c] user: drh branch: trunk, size: 298685)
22:36
[11cf3607] part of check-in [4147f667] Avoid calling btreeParseCellPtr() from within fillInCell() since most of what btreeParseCellPtr() computes is ignored by fillInCell(). Instead, have fillInCell() compute the values it needs inline. Performance improvement. (check-in: [4147f667] user: drh branch: trunk, size: 298905)
21:25
[2a7c67d4] part of check-in [bf59df66] Simplify the CellInfo structure for a size reduction and performance improvement. (check-in: [bf59df66] user: drh branch: trunk, size: 297757)
2014-09-22
20:38
[c2645014] part of check-in [76097440] Fix to payload size overflow detection in the cellSizePtr() change of the previous check-in. (check-in: [76097440] user: drh branch: trunk, size: 297942)
19:51
[86cc6efe] part of check-in [bc8bbf32] Size reduction and substantial performance increase for cellSizePtr(). (check-in: [bc8bbf32] user: drh branch: trunk, size: 297947)
2014-09-21
23:08
[16c92211] part of check-in [3967ebe8] Merge in all recent changes from trunk. (check-in: [3967ebe8] user: drh branch: apple-osx, size: 298930)
2014-09-18
11:31
[be6c5e11] part of check-in [67ea2979] Merge latest trunk changes with this branch. (check-in: [67ea2979] user: dan branch: ota-update, size: 297842)
2014-09-16
14:37
[6aa61c0e] part of check-in [8239c35a] Reduce the number of arguments to RecordCompare functions from 4 to 3, resulting in a small performance increase. (check-in: [8239c35a] user: drh branch: micro-optimizations, size: 297799)
2014-09-15
15:34
[3957262c] part of check-in [55b8011d] Merge latest trunk changes with this branch. (check-in: [55b8011d] user: dan branch: ota-update, size: 297851)
2014-09-09
17:27
[e4916b44] part of check-in [94954850] Add new APIs that take 64-bit length parameters: sqlite3_malloc64(), sqlite3_realloc64(), sqlite3_bind_blob64(), sqlite3_bind_texte64(), sqlite3_result_blob64(), and sqlite3_result_texte64(). Internal memory allocation routines also now use 64-bit unsigned length parameters for safety. Also add the sqlite3_msize() interface. Fix the sqlite3_get_table() to use sqlite3_realloc64() to avoid a integer overflow problem. (check-in: [94954850] user: drh branch: 64-bit-lengths, size: 297808)
2014-09-06
16:39
[b1c1cd1c] part of check-in [e62aab5e] Fix typos in comments. No code changes. (check-in: [e62aab5e] user: peter.d.reid branch: trunk, size: 297813)
2014-09-03
19:30
[9cb19890] part of check-in [209f672e] Split part of "PRAGMA ota_mode" off into "PRAGMA pager_ota_mode". This allows some specialized custom VFS implementations to intercept and implement the expected pager-related effects of this pragma. (check-in: [209f672e] user: dan branch: ota-update, size: 297854)
2014-09-02
19:59
[c46043fb] part of check-in [2954ab50] Add an experimental extension for applying bulk updates to databases. (check-in: [2954ab50] user: dan branch: ota-update, size: 297893)
15:57
[1e5bb10b] part of check-in [696dc935] Merge the latest trunk changes into the apple-osx branch. (check-in: [696dc935] user: drh branch: apple-osx, size: 298942)
2014-09-01
17:36
[2a483a80] part of check-in [b1c0f0bc] Add support for using separate worker threads to speed large sorts. The SQLITE_MAX_WORKER_THREADS and SQLITE_DEFAULT_WORKER_THREADS compile-time options and the SQLITE_LIMIT_WORKER_THREADS argument to sqlite3_limit() and the "PRAGMA threads=N" pragma are added. (check-in: [b1c0f0bc] user: drh branch: trunk, size: 297811)
13:29
[4d0427ba] part of check-in [839c7996] Micro-optimizations in sqlite3BtreeNext() and sqlite3BtreePrevious(). (check-in: [839c7996] user: drh branch: trunk, size: 297702)
2014-08-26
02:02
[85855eaf] part of check-in [5c273111] Merge recent performance enhancements and the CAST operator enhancements into the apple-osx branch. (check-in: [5c273111] user: drh branch: apple-osx, size: 297256)
2014-08-25
13:27
[a10ceacc] part of check-in [dfdc900f] Merge the recent performance enhancements implemented on trunk into the threads branch. (check-in: [dfdc900f] user: drh branch: threads, size: 296234)
2014-08-23
19:08
[4737cb5b] part of check-in [45abd5c0] Fix a variable-declaration after code problem in btree.c. Harmless in GCC and CLANG but unacceptable for MSVC. (check-in: [45abd5c0] user: drh branch: trunk, size: 296125)
2014-08-22
23:33
[c4b4e1c9] part of check-in [ce123b5c] Another performance tweak: Split the sqlite3BtreeCursorHasMoved() routine into two with the second routine named sqlite3BtreeCursorRestore(). The first now only reports whether or not the cursor has moved and the second tries to restore the cursor. This allows the sqlite3VdbeCursorMoveto() routine to be refactored to avoid stack pointer movements, for a noticable performance gain. (check-in: [ce123b5c] user: drh branch: trunk, size: 296125)
22:26
[776885df] part of check-in [3eb08439] Factor the saveAllCursors() routine of btree.c into two separate routines, for a noticable performance improvement. (check-in: [3eb08439] user: drh branch: trunk, size: 295662)
2014-08-20
18:43
[4195fed5] part of check-in [49f44d35] A small performance improvement in freeSpace() by special-casing the relatively common case of an empty freelist. (check-in: [49f44d35] user: drh branch: trunk, size: 294445)
17:56
[fe2d11c8] part of check-in [fe4fd014] Reimplement the freeSpace() routine in btree.c so that it runs faster. (check-in: [fe4fd014] user: drh branch: trunk, size: 294210)
14:37
[c1235eac] part of check-in [7e63089a] Refactor local variable names in the freeSpace() routine of btree.c for improved understandability. (check-in: [7e63089a] user: drh branch: trunk, size: 294104)
13:17
[53eb576f] part of check-in [fe51d3aa] Change an assert() added by the previous commit into a testcase(). Fix a separate assert() in btree.c:freeSpace(). (check-in: [fe51d3aa] user: drh branch: btree-speedup, size: 293630)
11:56
[398ecbdb] part of check-in [1cb1cd64] Further size reduction and performance improvement in btree.c:allocateSpace(). (check-in: [1cb1cd64] user: drh branch: btree-speedup, size: 293627)
00:54
[c580f3fb] part of check-in [73637d12] Minor performance improvement and size reduction for the btree-page space allocator. (check-in: [73637d12] user: drh branch: trunk, size: 293649)
2014-08-15
22:37
[48dad2fb] part of check-in [c8ade949] Aborted merge. (check-in: [c8ade949] user: numist branch: obsolete, size: 295920)
16:10
[7d780ca1] part of check-in [b91fcb3b] Merge the 3.8.6 changes into the apple-osx branch. (check-in: [b91fcb3b] user: drh branch: apple-osx, size: 294805)
15:46
[691d09b5] part of check-in [05807c41] Merge the 3.8.6 release into the threads branch. (check-in: [05807c41] user: drh branch: threads, size: 293783)
2014-08-14
19:53
[fa057e30] part of check-in [3f45b819] Fix an assert that can fail if the database file is corrupted. (check-in: [3f45b819] user: dan branch: trunk, size: 293674)
2014-08-06
02:03
[f3d64fe7] part of check-in [a353a851] Merge all recent changes from trunk. (check-in: [a353a851] user: drh branch: threads, size: 293759)
01:51
[cc753a62] part of check-in [b2e01080] Merge 3.8.6 beta changes in from trunk. (check-in: [b2e01080] user: drh branch: apple-osx, size: 294781)
2014-08-05
11:04
[99d162e5] part of check-in [5ae80b3c] Rename the internal Schema.flags field to Schema.schemaFlags. (check-in: [5ae80b3c] user: drh branch: trunk, size: 293650)
2014-07-30
11:49
[ab2fad23] part of check-in [654c6c65] Merge all recent trunk changes, and especially the R-Tree IN operator fix of ticket [d2889096e7bdeac]. (check-in: [654c6c65] user: drh branch: apple-osx, size: 294775)
2014-07-28
15:01
[dff8e778] part of check-in [163c247b] Merge recent trunk changes into the threads branch. (check-in: [163c247b] user: drh branch: threads, size: 293753)
2014-07-25
21:35
[b5531339] part of check-in [e0fa6fdc] Try to fix harmless compiler warnings reported by Fortify. (check-in: [e0fa6fdc] user: drh branch: trunk, size: 293644)
2014-05-29
20:36
[c25678d7] part of check-in [b9fad449] Merge trunk changes into the apple-osx branch. (check-in: [b9fad449] user: drh branch: apple-osx, size: 294780)
20:24
[32b552d5] part of check-in [416cb091] Merge changes from the trunk into the threads branch. (check-in: [416cb091] user: drh branch: threads, size: 293758)
2014-05-27
15:21
[70c60a38] part of check-in [8bc97371] Remove unused code (previously #ifdef-ed out) from btree.c. (check-in: [8bc97371] user: drh branch: trunk, size: 293649)
2014-05-26
20:15
[34172d28] part of check-in [82152027] Merge recent trunk changes into the threads branch. (check-in: [82152027] user: drh branch: threads, size: 293909)
20:08
[9656f30c] part of check-in [54b5fa77] Merge recent trunk changes into the apple-osx branch. (check-in: [54b5fa77] user: drh branch: apple-osx, size: 294931)
2014-05-21
08:21
[e29fc07a] part of check-in [8d8af114] Fix the sqlite3_db_readonly() API so that it reports true if the database is readonly because the file format write version (byte 18 of the header) is too large. (check-in: [8d8af114] user: drh branch: trunk, size: 293800)
2014-05-19
15:16
[6f94e30c] part of check-in [17349a49] Changes to help ensure that a multiplication does not overflow when computing the number of bytes needed for a memory allocation, and cause a malfunction. No problems existing problems were discovered. However, these changes should help to ensure that no problems arise in the future. (check-in: [17349a49] user: drh branch: safer-malloc, size: 293657)
2014-05-08
23:01
[12c020db] part of check-in [9411d7dc] Initial attempt to merge in all trunk changes over the previous 1.5 years. This check-in compiles but there are compiler warnings and "make test" segfaults after only running a few test modules. (check-in: [9411d7dc] user: drh branch: apple-osx, size: 294788)
2014-05-02
17:12
[e14daeed] part of check-in [e15f4706] Fix some broken asserts in btree.c and vdbeaux.c that may fail following an OOM error. (check-in: [e15f4706] user: dan branch: threads, size: 293766)
2014-04-24
13:20
[7339c511] part of check-in [34155c40] Add sqlite3_log() diagnostic messages for a specific type of corruption where the file size is reported to be too small relative to the size in the header. This branch is intended to help debug a specific problem reported from the wild and is not for general use. (check-in: [34155c40] user: drh branch: filesize-debug, size: 279054)
2014-04-18
12:38
[1e8fa0e5] part of check-in [8729aa3e] Merge recent trunk changes into the threads branch. (check-in: [8729aa3e] user: drh branch: threads, size: 293767)
2014-04-01
10:19
[0d1be674] part of check-in [59cd5229] Fix a problem with OOM handling in the sorter code. (check-in: [59cd5229] user: dan branch: threads, size: 292764)
01:24
[6c9b51ab] part of check-in [834bf1c3] Remove an unnecessary conditional, replacing it with an assert(). Improvements to comments. (check-in: [834bf1c3] user: drh branch: overflow-pgno-cache, size: 293657)
2014-03-31
23:57
[b1d6309d] part of check-in [96385dc4] Fix a compiler warning when SQLITE_DIRECT_OVERFLOW_READ is defined. Minor performance enhancement and size reduction. (check-in: [96385dc4] user: drh branch: overflow-pgno-cache, size: 293332)
22:03
[33338d61] part of check-in [f6211540] Merge in the latest changes and fixes from trunk. (check-in: [f6211540] user: drh branch: overflow-pgno-cache, size: 293208)
2014-03-28
03:12
[a59a199f] part of check-in [7fa85eaa] Enhance the sqlite3VdbeRecordCompare() routines so that if they encounter database corruption, they will set the UnpackedRecord.isCorrupt field and return 0. The sqlite3BtreeMovetoUnpacked() routine detects this and returns SQLITE_CORRUPT, causing the corruption to be reported back to the top-level. (check-in: [7fa85eaa] user: drh branch: trunk, size: 292654)
2014-03-25
11:00
[8d7e432b] part of check-in [e6798871] Detect when a VdbeCursor is still pointing at a valid row but that row has moved, and invalidated the return from prior sqlite3BtreeDataFetch() or sqlite3BtreeKeyFetch() calls. (check-in: [e6798871] user: drh branch: trunk, size: 292521)
2014-03-20
18:56
[0384d399] part of check-in [d8e1f75d] Only use the direct-overflow-read optimization if all data from the overflow page in question is being read. (check-in: [d8e1f75d] user: dan branch: overflow-pgno-cache, size: 292251)
2014-03-19
14:10
[029cec7b] part of check-in [59742dd4] First attempt at getting block-sort to work. This is an incremental check-in. There are many problems still to be worked out. (check-in: [59742dd4] user: drh branch: orderby-planning, size: 292018)
2014-03-14
11:46
[2a0e73f2] part of check-in [1277932b] Fix a harmless compiler warning that crops up with SQLITE_MAX_MMAP_SIZE=0. (check-in: [1277932b] user: drh branch: trunk, size: 291760)
2014-03-11
23:44
[33b5ad54] part of check-in [f500e87d] Remove a stray C99-style comment. (check-in: [f500e87d] user: drh branch: overflow-pgno-cache, size: 292007)
23:40
[225a3f4d] part of check-in [968fec44] Combine the various boolean fields of the BtCursor object into a single bit-vector. This allows setting or clearing more than one boolean at a time and makes the overflow-pgno-cache branch faster than trunk on speedtest1. (check-in: [968fec44] user: drh branch: overflow-pgno-cache, size: 292042)
20:33
[c748d838] part of check-in [da591985] Enable the b-tree cursor object's overflow page-number cache, which is normally enabled only for incr-blob cursors, for all cursors. (check-in: [da591985] user: dan branch: overflow-pgno-cache, size: 291356)
2014-03-06
01:56
[4d28fb15] part of check-in [b83cfe89] Fix some incorrect comments and typos in comments. Add testcase() macros to some of the new record comparison code. (check-in: [b83cfe89] user: drh branch: trunk, size: 291697)
2014-03-04
16:05
[ad795be5] part of check-in [2879234b] Ensure that BtreeMovetoUnpacked() does not try to invoke xRecordCompare when it is set to NULL. (check-in: [2879234b] user: dan branch: trunk, size: 291722)
2014-03-03
21:46
[7a81c2c6] part of check-in [fcf480cc] Fix a couple of harmless compiler warnings. (check-in: [fcf480cc] user: drh branch: experimental, size: 291718)
2014-03-01
19:44
[d288e668] part of check-in [3861e853] Remove the vdbeRecordCompareLargeHeader function. Fix some other details. (check-in: [3861e853] user: dan branch: experimental, size: 291632)
2014-02-27
20:44
[77f17598] part of check-in [57089374] Further changes to sqlite3VdbeRecordCompare(). (check-in: [57089374] user: dan branch: experimental, size: 291672)
2014-02-25
21:01
[f4d85c3e] part of check-in [85206e0b] Attempt to speed up sqlite3VdbeRecordCompare() by various means. This code is in an interim state. (check-in: [85206e0b] user: dan branch: experimental, size: 291626)
2014-02-12
23:52
[b945df4f] part of check-in [cc8f10bc] Minor simplifications to the "zeroPage()" routine in btree.c. (check-in: [cc8f10bc] user: drh branch: trunk, size: 291430)
21:31
[97020a77] part of check-in [56bc5ce8] Remove the "rowid cache" that sought to remember the largest rowid for a table and thereby speed up OP_NewRowid. That cache was ineffective. Removing it results in a performance increase of 0.4%, less memory usage, and a slightly smaller library size. (check-in: [56bc5ce8] user: drh branch: trunk, size: 291458)
2014-02-05
17:08
[ae408b77] part of check-in [a332908b] Make the root page of an ephemeral index be page 1 instead of page 2. (check-in: [a332908b] user: drh branch: subquery-codegen-refactor, size: 292591)
2014-02-03
14:04
[7b2c3cd1] part of check-in [6c643e45] Provide hints to the btree layer Next and Previous primitives to let them know if they can be no-ops if the underlying index is unique. (check-in: [6c643e45] user: drh branch: trunk, size: 292457)
2014-01-28
00:49
[c695c106] part of check-in [a2c347fa] Provide hints to the btree layer Next and Previous primitives to let them know if they can be no-ops if the underlying index is unique. (check-in: [a2c347fa] user: drh branch: branch-3.8.2, size: 293836)
2014-01-20
18:25
[02e1a4e7] part of check-in [eba8a564] Handle a few obscure problems that could manifest if a database corrupted in a certain way was written by a connection in the middle of a SELECT statement on the same db. (check-in: [eba8a564] user: dan branch: trunk, size: 291279)
2014-01-14
20:14
[c15e1722] part of check-in [a5c2a54a] Add code to handle recursive CTEs. (check-in: [a5c2a54a] user: dan branch: common-table-expr, size: 291403)
2013-12-13
19:35
[11e29ef8] part of check-in [e00f37e2] Create and use a new pager interface sqlite3PagerUnrefNotNull() that works just like sqlite3PagerUnref() but guarantees that its argument is not a NULL pointer. (check-in: [e00f37e2] user: drh branch: trunk, size: 291360)
2013-12-09
20:43
[09285d6f] part of check-in [bf975985] Simplify the sqlite3BtreeKeyFetch() and sqlite3BtreeDataFetch() interfaces to the storage engine. (check-in: [bf975985] user: drh branch: trunk, size: 291320)
19:03
[44a44aa2] part of check-in [9227ad48] Performance optimizations for sqlite3VXPrintf(). (check-in: [9227ad48] user: drh branch: trunk, size: 292038)
02:32
[432c3e22] part of check-in [a3d796b1] Use memmove() rather than a home-made copy loop in insertCell() too. (check-in: [a3d796b1] user: drh branch: trunk, size: 292039)
01:58
[ac25a91a] part of check-in [78e17068] Use memmove() rather than a home-made copy loop in dropCell() of btree.c, for a size reduction and performance improvement. (check-in: [78e17068] user: drh branch: trunk, size: 292316)
01:04
[368d2eae] part of check-in [81f5ae13] Avoid unnecessary no-op calls from getAndInitPage() to btreeInitPage() in the btree.c logic. (check-in: [81f5ae13] user: drh branch: trunk, size: 292507)
00:47
[6a5f69e4] part of check-in [6996fb34] Use putVarint32() instead of putVarint() for a quantity that can never exceed 2GiB - 1. (check-in: [6996fb34] user: drh branch: trunk, size: 292483)
2013-12-07
20:39
[9e6d1898] part of check-in [3a9bec52] If the SQLITE_ENABLE_CURSOR_HINTS macro is defined, then invoke the sqlite3BtreeCursorHint() interface to provide hints to the storage engine about rows that need not be returned. Hints can be disabled using SQLITE_TESTCTRL_OPTIMIZATIONS with SQLITE_CursorHints (0x2000). Cursor hints are not used by the built-in storage engine of SQLite but might be useful to applications that provide their own storage engine. The current code is work-in-progrss and contains bugs. (check-in: [3a9bec52] user: drh branch: cursor-hints, size: 293084)
2013-12-06
23:25
[4037f58e] part of check-in [b5842a70] Performance optimization to the moveToRoot() subroutine in btree.c. (check-in: [b5842a70] user: drh branch: trunk, size: 292481)
22:44
[1c1228bf] part of check-in [2d62d113] Remove some commented-out code from sqlite3BtreeMovetoUnpacked() to try to make it more readable. (check-in: [2d62d113] user: drh branch: trunk, size: 292550)
2013-11-30
12:49
[fe6c95c5] part of check-in [55ec474d] Detect a corrupt UnpackedRecord and return SQLITE_CORRUPT prior to calling sqlite3BtreeMovetoUnpacked(). (check-in: [55ec474d] user: drh branch: trunk, size: 292658)
2013-11-25
21:41
[ec8a4dca] part of check-in [18bdcb05] Remove a NEVER() from a branch that is now reachable during OOM faults. (check-in: [18bdcb05] user: drh branch: trunk, size: 292540)
20:14
[c308e64d] part of check-in [b48c4e40] Return an SQLITE_CORRUPT error if the content size field of a table record extends off the end of a page. (check-in: [b48c4e40] user: drh branch: btree-optimization, size: 292547)
17:38
[f98e6cea] part of check-in [5bf2a3fe] Uses shifts rather than division for arithmetic on the cell indices, since those indices are always non-negative. (check-in: [5bf2a3fe] user: drh branch: btree-optimization, size: 292485)
16:52
[fc03d3fd] part of check-in [55e5bfa2] Optimize the skipping of the payload size field when doing a binary search for a rowid. (check-in: [55e5bfa2] user: drh branch: btree-optimization, size: 292294)
16:23
[0ce10b29] part of check-in [a7467560] Arrange for sqlite3BtreeMovetoUnpacked() to always leave the cursor cell parse cache invalidated. This fixes issues with previous check-ins on this branch and also runs faster. (check-in: [a7467560] user: drh branch: btree-optimization, size: 292324)
15:01
[7459c164] part of check-in [f80497be] More optimizations to sqlite3BtreeMovetoUnpacked(). But there are failures in TH3. Committing this intermediate state to facilitate bisecting. (check-in: [f80497be] user: drh branch: btree-optimization, size: 292333)
14:10
[c300cb68] part of check-in [88680698] More improvements to sqlite3BtreeMovetoUnpacked() performance. (check-in: [88680698] user: drh branch: btree-optimization, size: 292357)
02:38
[b0fd869c] part of check-in [d0fb7ace] Performance improvements in sqlite3BtreeMovetoUnpacked(). (check-in: [d0fb7ace] user: drh branch: btree-optimization, size: 292305)
2013-11-21
21:59
[17ca5729] part of check-in [4e8c5d07] Changes some offset and amount parameters from "int" to "u32" to avoid harmless signed/unsigned comparison warnings. (check-in: [4e8c5d07] user: drh branch: trunk, size: 292028)
2013-11-06
14:36
[260dedc1] part of check-in [a725a75f] Allocate extra stack space for UnpackedRecord objects, reducing the need to malloc for them as often, and thereby get a performance improvement. (check-in: [a725a75f] user: drh branch: omit-rowid, size: 292028)
2013-10-16
11:39
[509722ce] part of check-in [8651aba1] Clear a valgrind error by zeroing the first 4 bytes of the temp-space allocation used by the b-tree module. (check-in: [8651aba1] user: dan branch: trunk, size: 292028)
2013-10-06
22:52
[d5720cbb] part of check-in [2bb7f74b] Remove an incorrect debugging assert() that was accidently added during the STAT4 enhancement. (check-in: [2bb7f74b] user: drh branch: trunk, size: 291293)
2013-09-26
11:04
[5ccbbaed] part of check-in [1e1321ee] Fix a faulty assert() in sqlite3BtreeBeginTrans() that may fail in shared-cache mode. (check-in: [1e1321ee] user: dan branch: trunk, size: 291339)
2013-08-26
23:18
[b9b57df5] part of check-in [a32af0ab] Merge the STAT4 capability into trunk. (check-in: [a32af0ab] user: drh branch: trunk, size: 291304)
2013-08-21
23:42
[b7cbb0bc] part of check-in [617e23ec] Simplify the btreeGetPage() routine so that it uses a single flag parameter in place of two boolean parameters. (check-in: [617e23ec] user: drh branch: trunk, size: 291258)
21:12
[7e7b3eba] part of check-in [700dbbea] Simplification to the StrAccum object and the sqlite3StrAccumAppend() method that also results in slightly better performance. (check-in: [700dbbea] user: drh branch: trunk, size: 291245)
15:52
[d49f1600] part of check-in [a17190a2] Performance enhancement in btreeParseCellPtr(). (check-in: [a17190a2] user: drh branch: trunk, size: 291233)
2013-08-20
00:42
[adea13e6] part of check-in [d78c5d89] Performance optimizations in the VDBE and especially to the OP_Next and related opcodes. (check-in: [d78c5d89] user: drh branch: toTypeFuncs, size: 291216)
2013-08-19
22:22
[d8cb52cd] part of check-in [6f99b54a] Additional performance improvements in sqlite3BtreeNext() and sqlite3BtreePrevious(). (check-in: [6f99b54a] user: drh branch: toTypeFuncs, size: 291110)
20:04
[78287b30] part of check-in [dc65ad8c] Performance improvement in sqlite3BtreeNext() and sqlite3BtreePrevious() for the common case of a valid cursor. (check-in: [dc65ad8c] user: drh branch: trunk, size: 290604)
2013-08-16
20:42
[9b985e4f] part of check-in [cdb181c0] Add the cache_spill pragma. (check-in: [cdb181c0] user: drh branch: cache_spill, size: 290358)
2013-08-03
20:24
[15ea4e98] part of check-in [2beea303] Begin adding experimental sqlite_stat4 table. This commit is buggy. (check-in: [2beea303] user: dan branch: sqlite_stat4, size: 290597)
2013-06-28
19:41
[3f7bbfd7] part of check-in [f308c485] Allow read transactions to be freely opened and closed by SQL statements run from within the implementation of user-functions if the user-function is called by a SELECT statement that does not access any database tables (e.g. "SELECT user_function();"). (check-in: [f308c485] user: dan branch: trunk, size: 290551)
01:24
[4fc3690a] part of check-in [59f98c5c] Refactor the Vdbe.noIO field as Vdbe.bIsReader. The meaning is inverted. (check-in: [59f98c5c] user: drh branch: trunk, size: 290553)
2013-06-27
23:54
[c29ca371] part of check-in [14f79696] Refactor names of fields in the sqlite3 object: "activeVdbeCnt" becomes "nVdbeActive". Related fields becomes "nVdbeRead", "nVdbeWrite", and "nVdbeExec". (check-in: [14f79696] user: drh branch: trunk, size: 290533)
2013-05-28
12:11
[7fba377c] part of check-in [a0d5cc93] Many small harmless comment changes. Removal of obsolete comments and fixing misspelled words. No changes to code. (check-in: [a0d5cc93] user: drh branch: trunk, size: 290535)
2013-05-14
23:13
[fcfbe61a] part of check-in [164e3d4d] Merge together the fork in this branch. (check-in: [164e3d4d] user: drh branch: shared-cache-fixes, size: 290533)
23:12
[34ea83e1] part of check-in [a6f851d0] Fix an assert() in unlockBtreeIfUnused() so that it checks for the existance of an untripped cursor, not for the existance of any cursor at all. (check-in: [a6f851d0] user: drh branch: shared-cache-fixes, size: 290500)
20:36
[e42631ac] part of check-in [93462df7] Avoid deleting a b-tree "has-content" vector belonging to another shared-cache connection from within sqlite3_close(). (check-in: [93462df7] user: dan branch: shared-cache-fixes, size: 290454)
2013-04-15
17:03
[480a6d25] part of check-in [ea1404a1] Refactoring the mmap interface. The controlling pragma is now "mmap_size" instead of "mmap_limit". Also change SQLITE_CONFIG_MMAP_LIMIT and SQLITE_FCNTL_MMAP_LIMIT to SQLITE_CONFIG_MMAP_SIZE and SQLITE_FCNTL_MMAP_SIZE, respecctively. The default mmap_size is now always 0, meaning that memory mapped I/O is off by default. There is a new compile-time option SQLITE_MAX_MMAP_SIZE that determines a hard upper bound on the mmap_size. Setting SQLITE_MAX_MMAP_SIZE to zero disables the memory-mapped I/O logic and causes it to be omitted from the build. An extra argument is added to SQLITE_CONFIG_MMAP_SIZE that can optionally lower the SQLITE_MAX_MMAP_SIZE at start-time. The SQLITE_MAX_MMAP_SIZE is zero for platforms where we know that it does not work, meaning that it cannot be turned on by mistake on those platforms. (check-in: [ea1404a1] user: drh branch: trunk, size: 290421)
2013-04-04
00:40
[5f2c4fe7] part of check-in [fff2be60] Try to use mmap() to speed access to the database file on windows, linux, and mac. (check-in: [fff2be60] user: drh branch: trunk, size: 290421)
2013-04-03
21:23
[58c4d684] part of check-in [b2a72be9] Release resources prior to bailing out of the btreeCreateTable() routine following an OOM error. (check-in: [b2a72be9] user: drh branch: experimental-mmap, size: 290177)
20:04
[4e3d07b3] part of check-in [f97d7274] Remove an unreachable branch in the direct blob I/O logic of btree.c. (check-in: [f97d7274] user: drh branch: experimental-mmap, size: 290178)
11:52
[fd492d65] part of check-in [5b082efe] Remove the restriction on using xFetch to load the root pages of tables and indexes. It appears to have been based on a misconception. (check-in: [5b082efe] user: dan branch: experimental-mmap, size: 289981)
11:38
[4f4b2394] part of check-in [9d9b1da5] When moving a page to make way for the root page of a new table or index in an auto-vacuum database, save the positions of any cursors that may be holding xFetch references to the page being moved. (check-in: [9d9b1da5] user: dan branch: experimental-mmap, size: 290836)
11:17
[b38cb3a1] part of check-in [3f09fba1] In btree.c, save the positions of other cursors open on the same table when writing via an incremental blob handle. Otherwise, they may be left holding an out-of-date xFetch page reference. (check-in: [3f09fba1] user: dan branch: experimental-mmap, size: 290563)
2013-04-01
22:38
[bb679fdd] part of check-in [78141d0a] Add the SQLITE_CONFIG_MMAP_LIMIT configuration option for overriding the SQLITE_DEFAULT_MMAP_LIMIT compile-time setting. Enhance "PRAGMA mmap_limit" so that without a specific database name, it sets the limit on all database files and changes the default for any future databases that might be added using ATTACH. (check-in: [78141d0a] user: drh branch: experimental-mmap, size: 290235)
2013-03-29
18:52
[84c9a4a2] part of check-in [e8bcdf93] Fix a problem in btree.c that could cause a crash following an OOM. Also various test script problems. (check-in: [e8bcdf93] user: dan branch: two-mappings, size: 290178)
2013-03-27
03:15
[62ba5954] part of check-in [322a5f08] Candidate fix for ticket [6bfb98dfc0c]: Make sure invalid cursors drop all references to database pages prior to doing any insert or update. (check-in: [322a5f08] user: drh branch: trunk, size: 288538)
2013-03-26
14:16
[19b587b3] part of check-in [30c0a693] In btree.c, save the positions of any open cursors before moving any pages around to auto-vacuum the database on commit. (check-in: [30c0a693] user: dan branch: experimental-mmap, size: 290185)
2013-03-25
23:09
[771f0391] part of check-in [1b37c4ef] Memory-mapped I/O is now on by default. The "PRAGMA mmap_limit(N)" can be used to issue a hint to the VFS to limit mmap space to N bytes. The VFS is free to ignore that hint if desired. However, if "PRAGMA mmap_limit(0)" is used, xFetch is never called. (check-in: [1b37c4ef] user: drh branch: experimental-mmap, size: 290120)
19:57
[ef238f2d] part of check-in [a607d63f] Merge all recent trunk changes into the experimental-mmap branch. (check-in: [a607d63f] user: drh branch: experimental-mmap, size: 290104)
2013-03-22
19:56
[f5ea8d3d] part of check-in [e81ccdcd] Fix a potential NULL-pointer dereference in btreeSwapOutMmap(). (check-in: [e81ccdcd] user: drh branch: experimental-mmap, size: 290104)
2013-03-21
21:20
[3cebaa69] part of check-in [6f6e2d50] Many spelling fixes in comments. No changes to code. (check-in: [6f6e2d50] user: mistachkin branch: trunk, size: 288294)
15:57
[dd4683fa] part of check-in [32e0bbb7] Fix a problem when opening a write-transaction while there exist read-only b-tree cursors in mmap mode. (check-in: [32e0bbb7] user: dan branch: experimental-mmap, size: 290097)
2013-03-19
19:28
[d4d551f0] part of check-in [6183f1bd] Add the sqlite3_io_methods.xMremap() method to the VFS interface. Also "PRAGMA mmap_size". (check-in: [6183f1bd] user: dan branch: experimental-mmap, size: 290098)
2013-03-15
18:29
[934921ec] part of check-in [b387e2f9] Allow read-only cursors to use mmap pages even if there is an open write transaction. (check-in: [b387e2f9] user: dan branch: experimental-mmap, size: 289769)
2013-03-14
18:34
[c1a956c6] part of check-in [6f21d9cb] Use mmap() to read from the database file in rollback mode. This branch is unix only for now. (check-in: [6f21d9cb] user: dan branch: experimental-mmap, size: 289177)
2013-03-11
11:49
[746c4daf] part of check-in [938b91e8] Fixes for compiling with SQLITE_OMIT_AUTOVACUUM and/or SQLITE_OMIT_TRIGGER defined. (check-in: [938b91e8] user: dan branch: omit-fixes, size: 288294)
2013-03-05
11:27
[c7ce6045] part of check-in [717863fc] Fix a bug in the recent incremental-vacuum related changes. (check-in: [717863fc] user: dan branch: trunk, size: 287908)
2013-03-02
03:25
[ea4cc870] part of check-in [9a135e37] Update comments on the free-page allocator to accurately reflect the latest implementation. Add new asserts to the free-page allocator. (check-in: [9a135e37] user: drh branch: trunk, size: 287908)
2013-02-24
11:50
[cbad7197] part of check-in [ba33bb05] Fix a case where database corruption may cause an assert() to fail. (check-in: [ba33bb05] user: dan branch: incr-vacuum-opt, size: 287417)
2013-02-23
19:43
[b84e2ac3] part of check-in [4cd30c72] Fix a case in the incremental vacuum code where database corruption was going unreported. (check-in: [4cd30c72] user: dan branch: incr-vacuum-opt, size: 287357)
19:11
[02ab112a] part of check-in [f921df59] Fix a cut-and-paste bug causing the library to fail to report database corruption in a few cases. (check-in: [f921df59] user: dan branch: incr-vacuum-opt, size: 287360)
17:49
[bcd64dff] part of check-in [66f9faa9] Fix off-by-one bug in [c3939d2491] uncovered by th3. (check-in: [66f9faa9] user: dan branch: incr-vacuum-opt, size: 287407)
16:40
[f021a7f5] part of check-in [b73847f1] If a rollback mode transaction reduces the size of the database file, avoid actually truncating the file until after the transaction has been committed (but before the db has been unlocked). This means pages that are removed from the database by truncating the file need not be journalled. (check-in: [b73847f1] user: dan branch: incr-vacuum-opt, size: 287406)
2013-02-22
20:57
[76f063ff] part of check-in [720a3cea] Fix a problem with the previous commit. (check-in: [720a3cea] user: dan branch: incr-vacuum-opt, size: 286667)
20:16
[960274cb] part of check-in [c3939d24] Avoid moving pages more than once in an incremental vacuum operation. (check-in: [c3939d24] user: dan branch: incr-vacuum-opt, size: 286390)
2012-12-12
14:30
[7a80e4a6] part of check-in [120c82d5] Allow the error message from "PRAGMA integrity_check" to be longer than 20,000 bytes. (check-in: [120c82d5] user: drh branch: trunk, size: 285056)
2012-10-18
10:35
[eccee944] part of check-in [51a6a797] More warning fixes. (check-in: [51a6a797] user: mistachkin branch: warnings, size: 285044)
2012-10-13
19:58
[299377f0] part of check-in [af5c9ee4] Ensure that when the source of a backup is a database that is zero bytes in size, the final destination database consists of at least one page. Truncating it to zero bytes is equivalent to zeroing the schema cookie and change counter, which can cause problems for existing clients. (check-in: [af5c9ee4] user: dan branch: zero-byte-backup-fix, size: 285044)
2012-10-02
23:26
[97edf88a] part of check-in [9fab9edd] Work around an optimization issue with the MSVC compiler for ARM. (check-in: [9fab9edd] user: drh branch: branch-3.7.14, size: 283920)
22:54
[14de53eb] part of check-in [7d301fdf] Work around an optimization issue with the MSVC compiler for ARM. (check-in: [7d301fdf] user: mistachkin branch: trunk, size: 284686)
2012-10-01
12:44
[95ee3c1e] part of check-in [f193dbb6] Omit the sqlite3GetReservedNoMutex() routine in build configurations where it is not used. (check-in: [f193dbb6] user: drh branch: trunk, size: 284499)
2012-09-28
20:23
[821615a1] part of check-in [89b8c377] Avoid calling sqlite3BtreeEnter() in a corner case where the corresponding database handle mutex (sqlite3.mutex) may not be held. This prevents a potential deadlock or crash that can occur if the backup API, shared-cache mode and SQLITE_HAVE_CODEC are all in use. (check-in: [89b8c377] user: dan branch: trunk, size: 284398)
18:13
[6e1b4814] part of check-in [472beb30] Modify the clearCell function to use SQLITE_CORRUPT_BKPT in the one place it was not. (check-in: [472beb30] user: mistachkin branch: trunk, size: 283738)
2012-08-31
14:10
[64acbd5f] part of check-in [bc9b9cd0] Merge in latest trunk changes. (check-in: [bc9b9cd0] user: dan branch: apple-osx, size: 284864)
2012-08-25
10:01
[9cf6de11] part of check-in [9b19b847] Fix all known instances of 'repeated the' style typos in comments. No changes to code. (check-in: [9b19b847] user: mistachkin branch: trunk, size: 283733)
01:38
[31cf99fc] part of check-in [6723add4] Merge all the latest trunk changes into the apple-osx branch. (check-in: [6723add4] user: drh branch: apple-osx, size: 284868)
2012-08-20
15:53
[32dc63ef] part of check-in [7edd10a9] Remove tab characters from source code files. Replace them with spaces. (check-in: [7edd10a9] user: drh branch: trunk, size: 283737)
2012-08-14
18:43
[82b6fcbe] part of check-in [6730579c] Add an assert() to the btree rebalancer in order to silence a clang/scan-build warning. (check-in: [6730579c] user: drh branch: trunk, size: 283723)
2012-08-08
14:04
[fe849105] part of check-in [b0d31e77] When populating an index b-tree as part of a CREATE INDEX or REINDEX statement, distribute cells between up to three siblings in balance_nonroot() instead of four. This produces identical database files, but is slightly faster. (check-in: [b0d31e77] user: dan branch: trunk, size: 283694)
11:55
[3a2dbf6f] part of check-in [efea62b9] When building a b-tree as part of a CREATE INDEX or REINDEX statement, attempt to pack keys into pages as tightly as possible. (check-in: [efea62b9] user: dan branch: trunk, size: 283636)
2012-08-06
18:50
[1d366468] part of check-in [d045f8b2] When reusing pages as part of creating a new index, allocate the leaves from each free-list trunk page in ascending order, instead of trying to maximize localization for each individual allocation. This increases the chance that pages will be written to disk in ascending order by a large CREATE INDEX statement, improving overall performance. (check-in: [d045f8b2] user: dan branch: sorter-coalesce-writes, size: 283611)
2012-06-08
01:13
[453a9180] part of check-in [9d1b8515] Merge trunk changes into the apple-osx branch. (check-in: [9d1b8515] user: drh branch: apple-osx, size: 284384)
2012-05-28
13:58
[f0b71054] part of check-in [651520fa] Add the mode=memory option to URI filenames, which when present forces the database to be an in-memory database. This enables named in-memory databases. (check-in: [651520fa] user: drh branch: trunk, size: 283253)
2012-05-27
01:19
[964c7862] part of check-in [595dfdbf] Have user interfaces report out the filename of in-memory databases as an empty string, as it always has. This simplifies the changes. (check-in: [595dfdbf] user: drh branch: shared-cache-memdb, size: 283192)
00:11
[d938da25] part of check-in [997ef5f6] Fix corner-case problems with shared-cache for in-memory databases. (check-in: [997ef5f6] user: drh branch: shared-cache-memdb, size: 283425)
2012-05-26
20:08
[e5e99219] part of check-in [e3ad61e0] Only allow :memory: databases to share cache if there are created using a URI filename. This minimizes the risk of breakages in legacy applications that have shared-cache enabled but also use :memory: databases which they expect to keep separate. (check-in: [e3ad61e0] user: drh branch: shared-cache-memdb, size: 283110)
18:06
[23e2d21f] part of check-in [4590e433] Enable the use of shared cache for an in-memory database, so that separate database connections can share the same in-memory database. (check-in: [4590e433] user: drh branch: shared-cache-memdb, size: 283061)
2012-04-19
20:43
[207d4859] part of check-in [b72f07b4] Update the apple-osx branch so that it includes all of the latest trunk changes. (check-in: [b72f07b4] user: drh branch: apple-osx, size: 284045)
2012-04-03
17:43
[df800f10] part of check-in [fa3a498d] Modify the integrity-check code to reduce the size of the large allocation from 4 bytes to 1 bit for each page in the database file. (check-in: [fa3a498d] user: dan branch: trunk, size: 282914)
2012-03-31
02:46
[748ff64c] part of check-in [18ec60ca] Merge all the latest trunk changes into the apple-osx branch. (check-in: [18ec60ca] user: drh branch: apple-osx, size: 283487)
2012-03-23
11:09
[02aeee1f] part of check-in [82c3f2ba] When an incremental blob cursor is invalidated (occurs when an SQL statement modifies or deletes the row the blob cursor points to) release all page references held by the cursor. Otherwise, the presence of these references may cause other code in btree.c to incorrectly infer that the database is corrupt. (check-in: [82c3f2ba] user: dan branch: fts4-incr-merge, size: 282356)
2012-03-05
16:39
[fbaf5764] part of check-in [504bf490] Pull in all the latest trunk changes. (check-in: [504bf490] user: drh branch: apple-osx, size: 283477)
2012-02-13
16:43
[253c3147] part of check-in [9b66c79e] Change the ROLLBACK command so that pending statements to not block it. The pending statements instead return SQLITE_ABORT upon next access. Note: This causes separate shared-cache connections in read_uncommitted mode to abort as well. (check-in: [9b66c79e] user: drh branch: nonblocking-rollback, size: 282346)
2012-02-10
18:18
[c21852e2] part of check-in [e2485986] Pull the latest trunk changes into the apple-osx branch. (check-in: [e2485986] user: drh branch: apple-osx, size: 283848)
2012-02-02
19:37
[bb0132a7] part of check-in [21695c34] Reduce the size of the MemPage object by about 32 bytes. Other structure size optimizations. (check-in: [21695c34] user: drh branch: trunk, size: 282717)
2012-01-17
15:29
[24bde768] part of check-in [96900c47] Remove the undocumented PRAGMA omit_readlock hack. (check-in: [96900c47] user: drh branch: trunk, size: 282637)
2012-01-14
14:13
[572deff9] part of check-in [2cc414cd] Merge the latest trunk changes into the apple-osx branch. (check-in: [2cc414cd] user: drh branch: apple-osx, size: 284071)
2012-01-12
15:05
[a65816cc] part of check-in [0467742f] Fix typos in a testcase() macro introduced by the previous commit. (check-in: [0467742f] user: dan branch: trunk, size: 282940)
14:25
[8276f939] part of check-in [7654ae71] Remove some assert() statements that can fail with corrupt databases. (check-in: [7654ae71] user: dan branch: trunk, size: 282896)
2012-01-08
00:54
[378a0f39] part of check-in [9612bcd6] Fix harmless compiler warning seen with MSVC. (check-in: [9612bcd6] user: mistachkin branch: trunk, size: 282142)
2012-01-05
23:32
[ef51e904] part of check-in [11949331] Combine various boolean variables in the BtShared structure into a single boolean vector. Also make performance improvement simplifications to sqlite3BtreeMovetoUnpacked(). (check-in: [11949331] user: drh branch: trunk, size: 282138)
2012-01-03
21:54
[7cf38b09] part of check-in [8a048423] Pull all the latest trunk changes over into the apple-osx branch. (check-in: [8a048423] user: drh branch: apple-osx, size: 282315)
21:33
[30dd27d3] part of check-in [9e5add51] Experimental changes to prevent buffer overreads when parsing a corrupt database file. (check-in: [9e5add51] user: drh branch: no-overread, size: 281634)
2012-01-02
16:38
[8f683b1f] part of check-in [c1691d99] Remove an incorrect assert() in btree.c. (check-in: [c1691d99] user: drh branch: trunk, size: 281184)
2011-12-21
17:00
[2fdde7d1] part of check-in [c5256b59] Avoid 32-bit overflow when calculating the byte offset of an overflow page in SQLITE_DIRECT_OVERFLOW_READ code. Fix for [ac0ff496b7]. (check-in: [c5256b59] user: dan branch: trunk, size: 280956)
2011-12-08
21:08
[46eae4a0] part of check-in [59e0d4f3] Merge the latest trunk changes into the apple-osx branch. (check-in: [59e0d4f3] user: drh branch: apple-osx, size: 282084)
2011-11-14
12:34
[c683806c] part of check-in [638a39bb] Further work on mmap(). Still does not work right - autovacuum tests are the first to fail. (check-in: [638a39bb] user: drh branch: mmap-experimental, size: 280880)
01:55
[2d943dc5] part of check-in [09be42d5] Begin making experimental changes to use mmap() for reading content from a database. The code compiles, but crashes on the test suite. (check-in: [09be42d5] user: drh branch: mmap-experimental, size: 280544)
2011-11-12
23:10
[149cccf2] part of check-in [ceee03c7] Attempt to modify btree.c so that it assumes that calls to sqlite3PagerWrite() will reallocate the page buffer. As there is not good way to test this assumption yet, probably a few spots were missed. (check-in: [ceee03c7] user: drh branch: experimental-pcache, size: 280282)
2011-11-11
23:51
[80ea6522] part of check-in [77119785] Catch and report errors from sqlite3OsFullPathname(). (check-in: [77119785] user: drh branch: trunk, size: 280953)
23:31
[60e0151c] part of check-in [8966ec17] Remove use of malloc and free from the Windows VFS. Also, prevent sqlite3BtreeOpen from assuming that sqlite3OsFullPathname cannot fail. (check-in: [8966ec17] user: mistachkin branch: winSyscall, size: 280628)
00:27
[2521a74f] part of check-in [471cf0d8] Make sure a corrupt index does not cause a buffer overread in sqlite3VdbeRecordCompare(). (check-in: [471cf0d8] user: drh branch: trunk, size: 280843)
2011-10-21
17:18
[601b808e] part of check-in [be62ef05] Merge the latest trunk changes into the apple-osx branch. (check-in: [be62ef05] user: drh branch: apple-osx, size: 281638)
2011-10-15
00:16
[32199e2d] part of check-in [39408702] Added the tool/warnings-clang.sh script. Changes so that there are no warnings with either gcc or clang even including FTS4 and RTREE and both with and without SQLITE_THREADSAFE=0. (check-in: [39408702] user: drh branch: trunk, size: 280507)
2011-10-14
21:49
[4918e848] part of check-in [60fee957] Add assert() statements and eliminate needless variable assignments in order to get the clang scan-build utility to report zero problems against the SQLite core. Clang's static analysis did find one real problem - but it was in the command-line shell, not in the SQLite core. (check-in: [60fee957] user: drh branch: trunk, size: 280404)
2011-10-12
17:00
[74da2e08] part of check-in [4f1a558d] Clarify a comment and fix a code formatting issue in btree.c. (check-in: [4f1a558d] user: drh branch: trunk, size: 280290)
2011-10-11
14:19
[2fdd62df] part of check-in [7e2c4898] Merge the latest trunk changes into the apple-osx branch. (check-in: [7e2c4898] user: drh branch: apple-osx, size: 281405)
2011-10-10
22:11
[1870b70e] part of check-in [db5b7b77] Merging in cherry picked diffs for persist wal, alloc padding, wal-safe vacuum and sqlite3_file_control based lockstate checking (check-in: [db5b7b77] user: adam branch: apple-osx-377, size: 279529)
2011-10-08
14:57
[b53e009b] part of check-in [2ab14a84] Add the SQLITE_DIRECT_OVERFLOW_READ compile time option. (check-in: [2ab14a84] user: dan branch: trunk, size: 280274)
2011-09-14
19:05
[71a65f9b] part of check-in [2456b4d0] Merge in the latest changes from trunk. (check-in: [2456b4d0] user: drh branch: apple-osx, size: 280060)
18:19
[77b09c69] part of check-in [3035dc1c] Remove 'const' from a variable that might actually be written when an OOM error occurs. Also, fix a couple MSVC/Win32 compiler warnings. (check-in: [3035dc1c] user: mistachkin branch: trunk, size: 278929)
2011-09-05
20:16
[4cb13cf0] part of check-in [d0712dfb] Fix a minor performance regression in btreeMoveto(). (check-in: [d0712dfb] user: dan branch: trunk, size: 278924)
14:20
[958f26c8] part of check-in [f115b230] Refactor the sqlite3VdbeRecordUnpack() interface to better accommodate the vdbesort.c module. (check-in: [f115b230] user: dan branch: trunk, size: 278923)
2011-09-02
21:42
[4d46fe30] part of check-in [a9a64592] Remove some dead code. Fix a faulty assert(). Improve some variable names. (check-in: [a9a64592] user: drh branch: merge-sort, size: 278864)
18:03
[dc3f2444] part of check-in [cf48ad83] Combine two malloc calls in vdbesort.c. (check-in: [cf48ad83] user: dan branch: merge-sort, size: 278890)
10:31
[bc2099e7] part of check-in [7769fb98] Instead of a temporary b-tree, use a linked-list and merge-sort to sort records in main memory in vdbesort.c. (check-in: [7769fb98] user: dan branch: merge-sort, size: 279038)
2011-08-31
13:27
[4a2856b3] part of check-in [d0b347b4] Add checks to make sure cells in corrupt database files do not overflow a page when doing autovacuum. Problem detected by valgrind. (check-in: [d0b347b4] user: drh branch: trunk, size: 279463)
2011-08-27
18:48
[bd89d604] part of check-in [1a249845] Experimental changes to improve the performance of OP_Next. (check-in: [1a249845] user: dan branch: experimental, size: 279280)
2011-08-26
19:18
[a10d1274] part of check-in [55af8003] Merge the latest trunk changes into the apple-osx branch. (check-in: [55af8003] user: drh branch: apple-osx, size: 280128)
00:34
[ed13fdef] part of check-in [c71d7320] Create a new pager type, PAGER_SORTER, for use in the external merge sort. Such pagers are always held in memory but do report when they are under memory pressure by calling pagerStress. (check-in: [c71d7320] user: drh branch: trunk, size: 278997)
2011-08-23
18:06
[51e4af60] part of check-in [c5f7977b] Merge latest trunk changes into the apple-osx branch. (check-in: [c5f7977b] user: dan branch: apple-osx, size: 279705)
11:47
[97cf3ba4] part of check-in [35e6ac18] When copying a rollback mode database over a WAL database using the backup API, leave the destination database in WAL mode (instead of switching it to rollback mode). Fix for [af95b8c609]. (check-in: [35e6ac18] user: dan branch: trunk, size: 278574)
2011-08-04
12:14
[a30bdcc2] part of check-in [a4770d07] Change to using packed-memory-arrays instead of b-trees when performing an offline merge-sort for CREATE INDEX. This makes it easier to control the number of disc seeks required when merging. (check-in: [a4770d07] user: dan branch: experimental, size: 278615)
2011-06-25
21:43
[e0918186] part of check-in [c6158b25] Changes to make pragma synchronous sticky when SQLITE_DEFAULT_WAL_SAFETYLEVEL is used (check-in: [c6158b25] user: adam branch: apple-osx, size: 279570)
16:35
[43581d03] part of check-in [8f8b373e] Fix test cases so that they work with SQLITE_DEFAULT_WAL_SAFETYLEVEL defined. (check-in: [8f8b373e] user: dan branch: apple-osx, size: 279435)
2011-06-24
20:47
[fea8eaab] part of check-in [34f0efa2] Merging local changes to apple-osx (check-in: [34f0efa2] user: adam branch: apple-osx, size: 279240)
2011-06-06
13:38
[8c46f0ab] part of check-in [98ccfa93] Add assert() statements to verify that u16 pointers associated with the enhancement in [897f56a158] are always 2-byte aligned. (check-in: [98ccfa93] user: drh branch: trunk, size: 278439)
2011-06-04
01:43
[c19d7b35] part of check-in [65db822f] Performance improvement to the btree search routine. (check-in: [65db822f] user: drh branch: trunk, size: 278279)
2011-06-03
23:28
[9f214af2] part of check-in [897f56a1] Performance improvements on memory copies inside of btree by moving 2 bytes at a time instead of just 1 byte at a time. (check-in: [897f56a1] user: drh branch: trunk, size: 278286)
17:50
[12aa3b71] part of check-in [1bd72d0c] Factor an "if" out of a loop in balance_nonroot() for about a 1% performance increase. (check-in: [1bd72d0c] user: drh branch: trunk, size: 278217)
2011-05-30
23:42
[0d3b39dc] part of check-in [f9950c6a] Minor performance improvements. (check-in: [f9950c6a] user: drh branch: trunk, size: 277768)
2011-05-17
15:21
[975ad691] part of check-in [f7c525f5] Avoid exceeding array bounds when reading a corrupt database file in autovacuum mode. Fixes a problem discovered by John Regehr and Peng Li using a customized clang compiler. (check-in: [f7c525f5] user: drh branch: trunk, size: 277719)
2011-05-01
22:57
[40c7a361] part of check-in [7155e6f3] Backport check-ins [0900e35348f4b9bf3] and [4fead8e714c7e50] to the 3.7.2 branch. These check-ins provide hints to the btree layer for when it is possible to use a hash table rather than a btree to implement an index. The SQLite BTree layer does not use these hints, but alternative btree layers might. (check-in: [7155e6f3] user: drh branch: branch-3.7.2, size: 277890)
2011-04-23
15:54
[26f8a9d6] part of check-in [68240e75] Have the ATTACH command do URI interpretation in the same way as sqlite3_open() and sqlite3_open_v2() do. (check-in: [68240e75] user: dan branch: uri, size: 277541)
2011-04-07
14:47
[6a9164af] part of check-in [d03d63d7] When searching a list of freelist trunk pages looking for a specific page to allocate, avoid unnecessary journalling of the unchanged trunk pages towards the start of the list. (check-in: [d03d63d7] user: drh branch: trunk, size: 277549)
2011-04-06
17:54
[4fcad108] part of check-in [2039ed95] Changes to support building with various SQLITE_OMIT_XXX options defined. (check-in: [2039ed95] user: dan branch: trunk, size: 277517)
2011-04-05
22:08
[6002f05e] part of check-in [3eeb0ff7] Suppress many harmless compiler warnings, mostly signed/unsigned comparisons within asserts or unused parameters in extensions. (check-in: [3eeb0ff7] user: drh branch: trunk, size: 277517)
2011-04-03
02:41
[107723ed] part of check-in [28c5f12e] Fix typos in comments. No changes to code. (check-in: [28c5f12e] user: drh branch: trunk, size: 277446)
2011-03-31
18:36
[c1d7d81d] part of check-in [a5aae174] Provide hints to the btree layer Next and Previous primitives to let them know if they can be no-ops if the underlying index is unique. (check-in: [a5aae174] user: drh branch: branch-3.7.2, size: 276025)
2011-03-29
15:40
[2b9c81ff] part of check-in [dbe569a0] Fix a problem whereby following an IO error in CommitPhaseTwo() of a multi-file transaction the b-tree layer could be left in TRANS_WRITE state, causing problems later on. (check-in: [dbe569a0] user: dan branch: trunk, size: 277441)
2011-03-08
02:38
[43302cc4] part of check-in [2d5800bd] Fix additional cases of possible signed integer overflow, especially with regard to negation. (check-in: [2d5800bd] user: drh branch: trunk, size: 276712)
2011-03-06
21:28
[33265f92] part of check-in [01a79d5a] Remove dead code identified by the clang static analyzer. (check-in: [01a79d5a] user: drh branch: trunk, size: 276748)
2011-02-20
03:40
[9fd44383] part of check-in [e2616004] Do not report the database corruption if the the db size header field is greater than the file size on disk unless the two change-counter header fields are identical. Fix for ticket [89b8c9ac54]. Backport by cherrypick of [00c4596f0b270]. (check-in: [e2616004] user: drh branch: branch-3.7.4, size: 276797)
2011-02-09
18:19
[ca9f4486] part of check-in [00c4596f] Do not report corruption if the the db size header field is greater than the file size on disk unless the two change-counter header fields are identical. Fix for ticket [89b8c9ac54]. (check-in: [00c4596f] user: dan branch: trunk, size: 276787)
2011-02-02
16:34
[cefe0966] part of check-in [bac7342c] Merge in the blocking-checkpoint enhancement, including the new sqlite3_wal_checkpoint_v2() interface and the PRAGMA wal_checkpoint(full) statement. (check-in: [bac7342c] user: drh branch: trunk, size: 276793)
2011-01-25
04:34
[9004c98f] part of check-in [e1464930] Shave a few cycles so that performance is better than 3.7.4 in speed tests. (check-in: [e1464930] user: drh branch: trunk, size: 276659)
2011-01-12
17:56
[a27c3b41] part of check-in [114640d9] Do not raise an SQLITE_CORRUPT error in Recoverymode if the database size in the header is larger than the physical file size. This facilitates recovery of a database in which the database size field has been corrupted. (check-in: [114640d9] user: drh branch: trunk, size: 276803)
2010-12-06
21:09
[b70bf1dc] part of check-in [fabcb6b9] Fix the build so that it once again works with SQLITE_OMIT_SHARED_CACHE and SQLITE_OMIT_AUTOVACUUM. (check-in: [fabcb6b9] user: drh branch: trunk, size: 276758)
2010-11-19
18:51
[3578a5e8] part of check-in [ebf74015] Merge the checkpoint_fullfsync pragma and the superlock demonstration into the checkpoint-v2 experimental branch. (check-in: [ebf74015] user: drh branch: blocking-checkpoint, size: 277109)
18:23
[ccafb8a8] part of check-in [a0698673] Add the checkpoint_fullfsync pragma which enables F_FULLFSYNC on checkpoint operations only, not during ordinary commit fsyncs. (check-in: [a0698673] user: drh branch: trunk, size: 276975)
2010-11-18
12:11
[d90149f6] part of check-in [72787c01] Modify the interface to the blocking wal-checkpoint functionality. (check-in: [72787c01] user: dan branch: blocking-checkpoint, size: 276842)
2010-11-16
18:56
[444aae4f] part of check-in [7e3fc2c8] 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. (check-in: [7e3fc2c8] user: dan branch: blocking-checkpoint, size: 277119)
2010-10-20
18:56
[3edab36d] part of check-in [d0a450ce] Updates to FTS4 to improve performance and make more accurate cost estimates for prefix terms. (check-in: [d0a450ce] user: dan branch: experimental, size: 276708)
2010-10-14
01:17
[8a1b0267] part of check-in [c0ee614f] Avoid taking locks on unused database connections when committing a read transaction. (check-in: [c0ee614f] user: drh branch: trunk, size: 276738)
2010-09-01
02:38
[d8785771] part of check-in [afdc82a9] Fix some compiler warnings under MSVC. (check-in: [afdc82a9] user: shaneh branch: trunk, size: 276687)
2010-08-30
22:15
[175495bf] part of check-in [4fead8e7] Provide hints to the btree layer during the creation of transient tables for when it is possible for those tables to use a hash rather than a binary tree. No use is currently made of those hints, though assert() statement verify their accuracy. (check-in: [4fead8e7] user: drh branch: trunk, size: 276683)
15:02
[e601b88b] part of check-in [0900e353] Remove the sqlite3BtreeFactory() wrapper routine. All modules now call sqlite3BtreeOpen() directly. (check-in: [0900e353] user: drh branch: trunk, size: 276052)
2010-08-24
01:59
[d66fc956] part of check-in [60f16838] Cherrypick the incremental_vacuum bug fix ([255f1eefa373153942c67b18b]) into the apple-osx 3.6.23 branch. (check-in: [60f16838] user: drh branch: apple-osx-3623, size: 269635)
2010-08-23
15:41
[5047fb30] part of check-in [255f1eef] Fix for ticket [5e10420e8d]. (check-in: [255f1eef] user: dan branch: trunk, size: 274818)
2010-08-21
15:09
[2dff4076] part of check-in [699a9bf2] Fix the ptrmapPageno() routine so that it works correctly for an input of 1. (check-in: [699a9bf2] user: drh branch: trunk, size: 274676)
2010-08-19
14:22
[69942b33] part of check-in [b273891a] Remove a NEVER from balance_quick() that can occur in WAL mode on a corrupt database file. (check-in: [b273891a] user: drh branch: trunk, size: 274482)
2010-08-18
21:19
[3089d018] part of check-in [e127192d] Fix two asserts in the btree logic so that they work correctly even for maximum-size index entries for 32K and 64K pages. (check-in: [e127192d] user: drh branch: trunk, size: 274489)
02:28
[b1213572] part of check-in [1f5662b7] Fix some compiler warnings in the MSVC build. (check-in: [1f5662b7] user: shaneh branch: trunk, size: 274486)
2010-08-17
19:40
[3b4bca08] part of check-in [3f8c068a] Suppress harmless compiler warning. (check-in: [3f8c068a] user: drh branch: trunk, size: 274434)
2010-08-14
21:21
[083ced09] part of check-in [faf1974e] Adjustments for better 64K page size handling. (check-in: [faf1974e] user: drh branch: trunk, size: 274434)
17:12
[f5758ebc] part of check-in [7dd78eb7] Change sqlite3PagerPagecount() to return void, since the return value was always SQLITE_OK and was never used. (check-in: [7dd78eb7] user: drh branch: trunk, size: 274433)
16:02
[4d861dd1] part of check-in [364df6c7] Minor simplifications to btree.c in support of full-coverage testing. (check-in: [364df6c7] user: drh branch: trunk, size: 274490)
2010-08-12
02:41
[042a5c0a] part of check-in [45362437] Increase the maximum page size from 32k to 64k. (check-in: [45362437] user: drh branch: trunk, size: 274072)
2010-08-05
03:21
[63eebba7] part of check-in [fbe70e11] Do not read the database file size on a SAVEPOINT rollback any more since after checkin [65b8636ac6e5] the in-header-size field is always valid. (check-in: [fbe70e11] user: drh branch: trunk, size: 273840)
2010-08-04
11:59
[0de928e4] part of check-in [dec70c63] Backport the [65b8636ac6e5] fix for ticket [51ae9cad317a1] to version 3.7.0. (check-in: [dec70c63] user: drh branch: branch-3.7.0, size: 273146)
11:34
[397093af] part of check-in [65b8636a] When opening a write-transaction on a database file that has been appended to or truncated by a pre-3.7.0 client, update the database-size field in the database header. Fix for [51ae9cad31]. (check-in: [65b8636a] user: dan branch: trunk, size: 273733)
2010-08-02
10:47
[2b122b7d] part of check-in [e75b52d1] In shared-cache mode, do not allow one connection to checkpoint a database while a second connection is reading or writing the same shared-cache. (check-in: [e75b52d1] user: dan branch: trunk, size: 273135)
2010-07-24
16:34
[ed454f53] part of check-in [ac1f37a6] Make sure all memory from sqlite3DbMalloc() is freed by sqlite3DbFree() and all memory from sqlite3_malloc() is freed by sqlite3_free(). (check-in: [ac1f37a6] user: drh branch: malloc-enhancement, size: 272588)
2010-07-03
05:56
[9a214e61] part of check-in [4f62dbcf] Change code in OP_Rewind to avoid a valgrind warning following an error in the btree layer. This change does not fix any bug, just a warning. (check-in: [4f62dbcf] user: dan branch: mistake, size: 272548)
2010-07-02
17:05
[c34267e8] part of check-in [70833877] Fix some warnings when compiling under MSVC. (check-in: [70833877] user: shaneh branch: mistake, size: 272570)
2010-06-30
04:29
[ac51d077] part of check-in [5e19bc36] Add coverage test cases. Have sqlite3_backup_step() transform SQLITE_IOERR_NOMEM to SQLITE_NOMEM before returning. (check-in: [5e19bc36] user: dan branch: trunk, size: 272560)
2010-06-17
02:13
[9806fb40] part of check-in [f80c3f92] 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. (check-in: [f80c3f92] user: drh branch: trunk, size: 272483)
2010-06-01
14:12
[5934a9f5] part of check-in [ce644965] If an attempt to get a read-lock on the WAL fails with SQLITE_BUSY_RECOVER, call the busy-handler at the btree level. (check-in: [ce644965] user: dan branch: wal-incr-ckpt, size: 272422)
2010-05-01
16:40
[d0414a5f] part of check-in [9b230c43] Support compile-time option SQLITE_OMIT_WAL, for building without WAL support. (check-in: [9b230c43] user: dan branch: wal, size: 272415)
2010-04-29
22:34
[2e41e62e] part of check-in [62db5fa3] Refactor wal.c to use the VFS. This check-in compiles and links and works ok as long as you leave WAL turned off, but WAL does not work. (check-in: [62db5fa3] user: drh branch: wal, size: 272265)
2010-04-27
14:37
[dd26f3b5] part of check-in [c8658da4] Fix a problem with identifying a corrupt database in WAL mode. (check-in: [c8658da4] user: dan branch: wal, size: 272265)
2010-04-22
06:27
[f87ed73e] part of check-in [12363184] Further tests and changes related to switching between WAL and rollback modes. (check-in: [12363184] user: dan branch: wal, size: 272239)
2010-04-21
18:37
[fcfff21f] part of check-in [9f4f933f] Tests for (and changes to) the code to switch between WAL and rollback modes. (check-in: [9f4f933f] user: dan branch: wal, size: 272239)
11:43
[e6ef1020] part of check-in [33cabf27] If, after obtaining a SHARED lock, there exists a *-wal file in the file-system, use WAL mode. This is necessary to recover from a crash that damages the first page of the database file. (check-in: [33cabf27] user: dan branch: wal, size: 271785)
2010-04-20
18:53
[013cf019] part of check-in [96bef18c] Use the read and write version fields of the database header to mark a database as operating in wal-mode. (check-in: [96bef18c] user: dan branch: wal, size: 271411)
2010-04-07
20:29
[01559397] part of check-in [a3540c6a] When rolling back a savepoint to the beginning of the transaction, make sure to initialize the database size in the btree layer correctly even if the database size field of the header is zeroed. (check-in: [a3540c6a] user: drh branch: trunk, size: 270466)
2010-04-02
12:46
[aa756431] part of check-in [8eb1f244] If the size of the database according to the header is larger than the actual database file size, report that the database is corrupt. (check-in: [8eb1f244] user: drh branch: trunk, size: 270368)
2010-04-01
02:22
[639a8ca0] part of check-in [802aeb30] Restore the size information in the BtShared structure when a transaction rolls back. (check-in: [802aeb30] user: drh branch: trunk, size: 270105)
2010-03-31
20:29
[02ad0060] part of check-in [a91db0b1] Report corruption if a database contains a reference that is out of range according to the filesize-in-header database size. (check-in: [a91db0b1] user: drh branch: trunk, size: 269898)
02:31
[de086bad] part of check-in [dbc2c3c0] Increase test coverage following the introduction of the new filesize-in-header logic. (check-in: [dbc2c3c0] user: drh branch: trunk, size: 270221)
2010-03-30
22:58
[d3a0ee18] part of check-in [79e22b95] Continuing refinements to the filesize-in-header enhancement. (check-in: [79e22b95] user: drh branch: trunk, size: 270046)
15:51
[dc9dc08f] part of check-in [c117f992] Add a NEVER macro around a test in btree.c that can not longer be true. (check-in: [c117f992] user: drh branch: trunk, size: 269913)
2010-03-29
21:13
[ca75bce3] part of check-in [01ef6c19] The btree layer now tracks when a database is empty at the start of a transaction and rolls back to that state. (check-in: [01ef6c19] user: drh branch: experimental, size: 269611)
19:36
[6bb6cf7b] part of check-in [09786e2a] Fix issues with the io.test script. There is still a problem with a ROLLBACK TO not working on an initially empty database files. And much more testing is needed. (check-in: [09786e2a] user: drh branch: experimental, size: 269508)
2010-03-27
17:12
[28c39750] part of check-in [b844ac6f] Experimental changes that cause SQLite to use bytes 28..31 of the database header to determine the database size, rather than using the actual database size. This allows database space to be preallocated. (check-in: [b844ac6f] user: drh branch: experimental, size: 269618)
2010-03-09
14:41
[0d6e44d6] part of check-in [115c978b] Minor changes to silence compiler warnings on various MSVC builds. (check-in: [115c978b] user: shaneh branch: trunk, size: 269493)
2010-02-26
15:09
[22bcd5cb] part of check-in [7bdb1e05] Avoid a buffer overwrite that can occur with a corrupt database if secure-delete is enabled. (check-in: [7bdb1e05] user: dan branch: trunk, size: 269448)
13:07
[65359edf] part of check-in [8f29490d] Avoid incorrect compiler warnings by doing a couple of needless variable initializations. (check-in: [8f29490d] user: drh branch: trunk, size: 269225)
01:46
[fa6f5834] part of check-in [4927c62d] Minor changes to silence some compiler warnings with MSVC. (check-in: [4927c62d] user: shaneh branch: trunk, size: 269225)
2010-02-25
19:09
[0fc16c6f] part of check-in [1cc4be7e] Add experimental fix for corruption detection problem. This may well be revised yet. (check-in: [1cc4be7e] user: dan branch: trunk, size: 269214)
14:44
[171eceee] part of check-in [a2550597] Add some technically unnecessary variable initializations to silence compiler warnings. (check-in: [a2550597] user: dan branch: branch-3.6.1, size: 231646)
02:32
[5f00d6dd] part of check-in [46f406b2] Merge in all of the logging enhancements. This is a cherrypick merge of the following check-ins: [103321e37a], [a8076aede3], [6d910245ad], [7c4cca6d1a], [edea3bb740], [1a6d4bb130], [a8c984c1d6], [69a493182f], and [1168763d2c]. (check-in: [46f406b2] user: drh branch: branch-3.6.22, size: 267942)
02:04
[e9ded8d7] part of check-in [ecd22ef3] Enhance integrity_check to detect out-of-order rowids. This is a cherrypick merge of check-in [cae47c5b09]. (check-in: [ecd22ef3] user: drh branch: branch-3.6.22, size: 267933)
2010-02-23
17:36
[ae804d16] part of check-in [7c4cca6d] Remove the obsolete sqlite3SafetyOn() mechanism. Add additional logging output for CORRUPT, and CANTOPEN errors. (check-in: [7c4cca6d] user: drh branch: trunk, size: 268407)
2010-02-19
04:28
[b7ac4420] part of check-in [cae47c5b] Changes to pragma integrity_check to check rowid order. Tests of same in corruptE.test. (check-in: [cae47c5b] user: shaneh branch: trunk, size: 268397)
2010-02-12
19:46
[c9ee3c30] part of check-in [2bb38bb9] Enhancements to the secure_delete pragma to make it easier to use. (check-in: [2bb38bb9] user: drh branch: trunk, size: 266620)
18:18
[25078c9b] part of check-in [f72f8a87] Allow the secure-delete setting to be changed at run-time using a pragma. The SQLITE_SECURE_DELETE compile-time option determines the default setting. (check-in: [f72f8a87] user: drh branch: trunk, size: 266597)
2009-12-06
03:35
[efdef395] part of check-in [5a511f98] Enhanced detection of database corruption in btree.c:allocateSpace(). (check-in: [5a511f98] user: drh branch: trunk, size: 266155)
2009-12-05
18:34
[92de7465] part of check-in [7a9a3532] Fix to check-in [f221f31eff]: Make sure local variable rc is declared even when compiled without SQLITE_DEBUG. (check-in: [7a9a3532] user: drh branch: trunk, size: 265889)
18:03
[bc0393e5] part of check-in [0f9b17a6] Catch an obscure case of database corruption. (check-in: [0f9b17a6] user: dan branch: trunk, size: 265899)
2009-12-04
22:51
[976b4ca0] part of check-in [04fc9c76] Remove an assert() in btree.c:releasePage() that is not necessarily true when the btree is recovering from an OOM that occurs in the middle of a balance(). (check-in: [04fc9c76] user: drh branch: trunk, size: 265827)
2009-12-03
21:26
[086f343d] part of check-in [5ab2b3e3] Fix an assert() in btree.c that might have fired on a corrupt database file. (check-in: [5ab2b3e3] user: drh branch: trunk, size: 265908)
19:40
[e6f7c7bb] part of check-in [d5861d9f] Remove a NEVER() from btree.c that could occur in a very obscure tested evaluation with an I/O error on fstat(). (check-in: [d5861d9f] user: drh branch: trunk, size: 265525)
2009-11-24
02:37
[c13f6d1a] part of check-in [02ef972a] Fix SQLITE_SECURE_DELETE so that it overwrites content on the root pages of tables and indices that are dropped using the truncate optimization. (check-in: [02ef972a] user: drh branch: trunk, size: 265732)
2009-11-18
23:01
[d37a90bb] part of check-in [85940468] Performance improvement by avoiding unnecessary calls to memset(). (check-in: [85940468] user: drh branch: trunk, size: 265636)
2009-11-13
17:05
[4076d11e] part of check-in [bdc45ba7] Force 8-byte memory alignment on memory allocated for VDBE cursors. (check-in: [bdc45ba7] user: drh branch: trunk, size: 265184)
2009-11-10
01:30
[daf01297] part of check-in [f6c045f6] Remove the obsolete "$Id:$" RCS identifier strings from the source code. (check-in: [f6c045f6] user: drh branch: trunk, size: 265176)
2009-11-01
19:26
[3b29423f] part of check-in [cfa2db0f] Fix compiler warnings. Better comments on some variables associated with LIKE/GLOB processing in the query planner. (check-in: [cfa2db0f] user: drh branch: trunk, size: 265235)
2009-10-16
15:05
[b2d060e4] part of check-in [32966ba4] Comment cleanup in btree.c. (check-in: [32966ba4] user: drh branch: trunk, size: 265231)
14:55
[953ad663] part of check-in [174477bc] Experimental fix for [f777251dc7]. This may be changed yet. (check-in: [174477bc] user: dan branch: trunk, size: 264671)
2009-09-09
14:17
[9c425425] part of check-in [f509eb8b] Added SQLITE_OPEN_SHAREDCACHE and SQLITE_OPEN_PRIVATECACHE flags as possibilities to sqlite3_open_v2(), to override the global shared cache mode setting. Ticket [9fd0bc36639c15] (check-in: [f509eb8b] user: drh branch: trunk, size: 264864)
2009-09-08
01:14
[873a8270] part of check-in [52449a95] Code simplifications, especially to the pseudo-table logic, and comment improvements. (check-in: [52449a95] user: drh branch: trunk, size: 264868)
2009-08-25
13:53
[6b60ece5] part of check-in [d33b9eb2] Avoid calling sqite3VdbeRecordCompare() with uninitialized memory following an OOM. Doing so is harmless, but it worries valgrind. (check-in: [d33b9eb2] user: drh branch: trunk, size: 264661)
2009-08-14
17:01
[49212dda] part of check-in [43321a55] Fix a case where SQLite may write past the end of a buffer as a result of a corrupted database file. (check-in: [43321a55] user: dan branch: trunk, size: 264600)
2009-08-10
03:57
[97d32ef9] part of check-in [ee034cfc] Removed some warnings from the MSVC compile. (CVS 6965) (check-in: [ee034cfc] user: shane branch: trunk, size: 264494)
2009-08-08
18:01
[812c365f] part of check-in [257e9b57] Suppress various compiler warnings. (CVS 6963) (check-in: [257e9b57] user: drh branch: trunk, size: 264474)
2009-07-24
19:01
[46f24d0b] part of check-in [866216c0] Further simplifications to pager.c in support of structural coverage testing. (CVS 6929) (check-in: [866216c0] user: drh branch: trunk, size: 264591)
17:58
[c1d3d670] part of check-in [5d9e767a] Allow virtual tables to be used in shared-cache mode. (CVS 6928) (check-in: [5d9e767a] user: danielk1977 branch: trunk, size: 264641)
2009-07-23
01:44
[64fbba11] part of check-in [5ba880dd] Simplifications and comment enhancements on btree.c. (CVS 6925) (check-in: [5ba880dd] user: drh branch: trunk, size: 264672)
2009-07-22
18:07
[e3cd5ed9] part of check-in [375fd6f9] Simplifications to btree.c in support of coverage testing. (CVS 6923) (check-in: [375fd6f9] user: drh branch: trunk, size: 264394)
14:08
[74655dc7] part of check-in [5260e8b1] Fix a double-free that can occur after database corruption is detected. (CVS 6921) (check-in: [5260e8b1] user: danielk1977 branch: trunk, size: 264494)
00:35
[ece7e39b] part of check-in [96cfd079] Further simplifications to btree.c, especially the sqlite3BtreeKey() and sqlite3BtreeData() functions. New assert() statements added to verify that these routines are called correctly. (CVS 6917) (check-in: [96cfd079] user: drh branch: trunk, size: 264507)
2009-07-21
19:25
[710f95cf] part of check-in [0b41dfc0] Change getAndInitPage() (btree.c) to use only PagerAcquire(), not PagerLookup() and PagerAcquire(). (CVS 6916) (check-in: [0b41dfc0] user: danielk1977 branch: trunk, size: 263749)
19:02
[abc2ccac] part of check-in [716fccea] Additional simplifications to btree.c in support of coverage testing. (CVS 6915) (check-in: [716fccea] user: drh branch: trunk, size: 263795)
15:33
[d5f5b30e] part of check-in [110998f1] Remove an assert() in btree.c which is no longer true due to changes in the error reporting behavior of ptrmapPut(). (CVS 6914) (check-in: [110998f1] user: drh branch: trunk, size: 263622)
11:52
[d5dde31b] part of check-in [4cf23e9e] Changes to btree.c in support of coverage testing. (CVS 6913) (check-in: [4cf23e9e] user: drh branch: trunk, size: 263653)
2009-07-20
19:30
[123dd6ab] part of check-in [a159e9d2] Reverse the order of two conditionals in a test in order to achieve coverage of them both. Also: clarifications to comments in btree.c. (CVS 6912) (check-in: [a159e9d2] user: drh branch: trunk, size: 263105)
17:11
[a597d1d9] part of check-in [7dcf2a78] Modify various routines inside btree.c to take a pointer to the return-code as a parameter and to no-op if the return-code storage location already contains a non-zero code. (CVS 6911) (check-in: [7dcf2a78] user: drh branch: trunk, size: 263085)
2009-07-16
18:21
[4d964398] part of check-in [94525179] Code simplifications and comment improvements in support of structural coverage testing. (CVS 6899) (check-in: [94525179] user: drh branch: trunk, size: 263006)
2009-07-15
18:15
[7e2ecefd] part of check-in [6242db39] Fix a potential database corruption following DROP TABLE when the pending byte page corresponds to a ptrmap page. This situation cannot happen in a real deployment - but it still needs to be fixed. (CVS 6897) (check-in: [6242db39] user: drh branch: trunk, size: 262714)
17:25
[a1fda2c5] part of check-in [d3897235] Simplifications to btree.c in support of structural testing. Renamed the "skip" field of the BtCursor object to "skipNext" to make it easier to search for places where it is used. (CVS 6896) (check-in: [d3897235] user: drh branch: trunk, size: 262752)
11:26
[b5a8d21f] part of check-in [cfbeda1b] Added the SQLITE_TESTCTRL_RESERVE option to sqlite3_test_control(). Simplifications to btree.c to facilitate structural coverage testing. (CVS 6894) (check-in: [cfbeda1b] user: drh branch: trunk, size: 262630)
2009-07-14
17:48
[dcdf6af6] part of check-in [17749fa5] Simplifications to the PRAGMA integrity_check logic. Remove unreachable code. (CVS 6892) (check-in: [17749fa5] user: drh branch: trunk, size: 262401)
2009-07-13
13:18
[b88edecb] part of check-in [9f800e11] Change an unreachable condition in btree.c to a NEVER(). (CVS 6888) (check-in: [9f800e11] user: danielk1977 branch: trunk, size: 262618)
11:22
[39559c17] part of check-in [b9be365d] In sqlite3PagerWrite(), do not set the PGHDR_NEED_SYNC flag on a page if an IO error occured while attempting to journal it. (CVS 6887) (check-in: [b9be365d] user: danielk1977 branch: trunk, size: 262219)
09:41
[a65e2050] part of check-in [3151dab9] Remove an assert ("assert( subpage>0 )") from btree.c that may not be true for a corrupt database. Also add comments and other assert() statements to btree.c function moveToRoot(). (CVS 6886) (check-in: [3151dab9] user: danielk1977 branch: trunk, size: 261982)
07:30
[48825008] part of check-in [39ce2097] Remove a case from BtreeMovetoUnpacked() that is unreachable as of (6881). (CVS 6885) (check-in: [39ce2097] user: danielk1977 branch: trunk, size: 260523)
2009-07-12
02:32
[46f5eb09] part of check-in [dfb146ef] Simplifications to btree.c to help facilitate coverage testing. (CVS 6884) (check-in: [dfb146ef] user: drh branch: trunk, size: 260365)
2009-07-11
18:26
[e1ad67c9] part of check-in [7deb6568] Remove an unused parameter from the accessPayload() function in btree.c. (CVS 6882) (check-in: [7deb6568] user: drh branch: trunk, size: 260322)
17:39
[2604d941] part of check-in [6994b41a] Fix a case where deleting a row from a corrupt database could cause an assert to fail. (CVS 6881) (check-in: [6994b41a] user: danielk1977 branch: trunk, size: 260450)
17:04
[6a5d08b4] part of check-in [618a83d6] Bug fix in the computation of the number of pages to autovacuum when nReserve is greater than zero. (CVS 6880) (check-in: [618a83d6] user: drh branch: trunk, size: 260397)
13:13
[a080b574] part of check-in [d99bde9c] Unwind some complex conditions in sqlite3BtreeDelete() into separate "if" statements. (CVS 6879) (check-in: [d99bde9c] user: drh branch: trunk, size: 260112)
11:45
[0fd74216] part of check-in [b0853100] Remove another unreachable branch from btree.c. (CVS 6878) (check-in: [b0853100] user: danielk1977 branch: trunk, size: 260124)
06:55
[829ff601] part of check-in [709576c6] Modify the integrity-check code so that each b-tree page inspected is reinitialized while doing so, even if an initialized copy exists in the cache. This prevents an assert from failing when running integrity_check on a corrupt database. (CVS 6877) (check-in: [709576c6] user: danielk1977 branch: trunk, size: 260093)
05:06
[563cda7b] part of check-in [47b40fef] Remove unreachable condition from btree.c. (CVS 6876) (check-in: [47b40fef] user: danielk1977 branch: trunk, size: 259961)
2009-07-10
16:51
[c331cc04] part of check-in [c6dfc8bd] Fix a pager reference count leak in btree that occurs on an OOM following a database page size change. (CVS 6875) (check-in: [c6dfc8bd] user: drh branch: trunk, size: 259631)
02:52
[90b5fbf4] part of check-in [440c573c] Simplifications to the PRAGMA integrity_check logic in btree.c. (CVS 6873) (check-in: [440c573c] user: drh branch: trunk, size: 259677)
2009-07-09
13:25
[0c58f787] part of check-in [9403f04d] Fix two faulty assert() statements btree. (It was possible for the assertions to be false given a corrupt database file as input.) (CVS 6872) (check-in: [9403f04d] user: drh branch: trunk, size: 259607)
11:36
[58c2d32d] part of check-in [45efb78a] Remove an unused branch from btree.c. (CVS 6871) (check-in: [45efb78a] user: danielk1977 branch: trunk, size: 259592)
08:27
[45595e89] part of check-in [3190eefd] In btree.c, have setSharedCacheLock() assume that the b-tree is sharable instead of checking to see if it is. The caller has already performed this check. (CVS 6870) (check-in: [3190eefd] user: danielk1977 branch: trunk, size: 259585)
05:07
[068c2d86] part of check-in [1d96ce8c] Restore (btree_set_cache_size) to test3.c. This is used on unix for the tcl "crash tests". Make some functions no longer used outside of btree.c static. (CVS 6869) (check-in: [1d96ce8c] user: danielk1977 branch: trunk, size: 259126)
03:20
[abceac00] part of check-in [579ba6c8] removed the test function sqlite3BtreeFlags() (test code only); (CVS 6868) (check-in: [579ba6c8] user: shane branch: trunk, size: 259567)
02:48
[c9775946] part of check-in [0eb69e8d] removed unused functions from test3.c (test code only); (CVS 6867) (check-in: [0eb69e8d] user: shane branch: trunk, size: 260069)
02:24
[3a97e228] part of check-in [1b8c3a82] Simplifications and additional testcase() macros for btree.c. (CVS 6866) (check-in: [1b8c3a82] user: drh branch: trunk, size: 260936)
2009-07-08
18:50
[92c2f9f5] part of check-in [890dbab2] Fix a typo in (6861): "ifndef SQLITE_TEST" -> "ifdef SQLITE_TEST". (CVS 6865) (check-in: [890dbab2] user: danielk1977 branch: trunk, size: 260948)
18:45
[8a607b18] part of check-in [11e295cc] Revert part of (6860) that was accidentally checked in. (CVS 6864) (check-in: [11e295cc] user: danielk1977 branch: trunk, size: 260949)
18:12
[a2117e0d] part of check-in [fed66e86] Add another boundary-condition testcase() macro to btree.c. Correct the comment on modifyPagePointer(). (CVS 6863) (check-in: [fed66e86] user: drh branch: trunk, size: 260912)
16:54
[88efb67b] part of check-in [5ac991b3] Improvements to comments in btree.c:freeSpace(). Added a testcase() macro to verify a boundary case is tested in sqlite3BtreeInitPage(). (CVS 6862) (check-in: [5ac991b3] user: drh branch: trunk, size: 260934)
15:14
[e95997f1] part of check-in [196cbf82] Comment out sqlite3BtreeFlags() when not in debug mode. Tweaks to database corruption detection logic in freeSpace(). (CVS 6861) (check-in: [196cbf82] user: drh branch: trunk, size: 260799)
13:55
[62fc49f2] part of check-in [86eba4f1] Fix error handling in sqlite3BtreePutData(). (CVS 6860) (check-in: [86eba4f1] user: danielk1977 branch: trunk, size: 260805)
08:05
[2fd0b5cc] part of check-in [0cc705c2] Remove an ALWAYS clause that could be false if an IO error within a statement executed by a virtual table caused an emergency rollback. (CVS 6859) (check-in: [0cc705c2] user: danielk1977 branch: trunk, size: 260727)
01:49
[e82f52ac] part of check-in [aab82a22] Simplifications to sqlite3BtreeInsert() and allocateSpace(). Added many testcase() macros to verify boundary conditions in btree.c. (CVS 6858) (check-in: [aab82a22] user: drh branch: trunk, size: 260551)
2009-07-07
17:38
[48ac9ac6] part of check-in [87bbc8d6] Improvements to corrupt database detection in defragmentPage(). (CVS 6857) (check-in: [87bbc8d6] user: drh branch: trunk, size: 260028)
15:47
[0cc9c503] part of check-in [06dcfe72] Do not load the root-page of a b-tree table/index when opening a cursor. Instead, allow it to be loaded when the cursor is first used (in function moveToRoot()). Also move the root-page flags sanity checks that were a part of the OP_OpenRead/OpenWrite opcodes into the moveToRoot() function. (CVS 6856) (check-in: [06dcfe72] user: danielk1977 branch: trunk, size: 259562)
11:39
[8f4c2ebd] part of check-in [ec1e27e3] Fix a reference count problem following database corruption detection in the ptrmapPut() routine of btree.c. (CVS 6854) (check-in: [ec1e27e3] user: drh branch: trunk, size: 259214)
02:44
[efad7a5a] part of check-in [fc2a40a9] Simplifications to btree.c and vdbeaux.c in support of structural coverage testing. (CVS 6853) (check-in: [fc2a40a9] user: drh branch: trunk, size: 259181)
2009-07-06
18:56
[1a7caa2b] part of check-in [30d5ec62] Make the sqlite3BtreeMoveto function static, since it is only used from within btree.c. Remove unused function lockBtreeWithRetry from btree.c. (CVS 6850) (check-in: [30d5ec62] user: danielk1977 branch: trunk, size: 259137)
2009-07-04
17:16
[1c12a097] part of check-in [c76a366e] Remove unreachable code from function btreeCursor() in btree.c. (CVS 6848) (check-in: [c76a366e] user: danielk1977 branch: trunk, size: 259847)
15:41
[464fbd75] part of check-in [133357d2] Remove a redundant branch from btree.c. (CVS 6847) (check-in: [133357d2] user: danielk1977 branch: trunk, size: 259768)
2009-07-03
16:25
[b7f75130] part of check-in [e2112d61] Simplify the way the read-uncommitted flag is handled to facilitate test coverage. (CVS 6841) (check-in: [e2112d61] user: danielk1977 branch: trunk, size: 259794)
2009-07-02
17:21
[8a3f74ae] part of check-in [611e704f] When a b-tree transaction is committed when there are open cursors, downgrade shared-cache write-locks to read-locks instead of relinquishing all locks. Fix for #3942. (CVS 6837) (check-in: [611e704f] user: danielk1977 branch: trunk, size: 260673)
07:47
[b739b965] part of check-in [e3c055f1] Cause opening a transaction on a sharable b-tree module automatically obtain a read-lock on page 1. This means there is no way for sqlite3BtreeGetMeta() to fail. (CVS 6836) (check-in: [e3c055f1] user: danielk1977 branch: trunk, size: 259733)
05:23
[aff035e8] part of check-in [8f0591ae] Fix for compilation with OMIT_AUTOVACUUM defined. Ticket #3940. (CVS 6835) (check-in: [8f0591ae] user: danielk1977 branch: trunk, size: 260887)
2009-06-29
06:00
[078eb410] part of check-in [f17ef378] Cause incremental-blob read/write operations lock shared-cache tables in the same way as normal SQL read/writes. Add complex assert statements to make sure tehe correct shared-cache locks are held when accessing the database. Eliminate some redundant checks from btree.c. (CVS 6830) (check-in: [f17ef378] user: danielk1977 branch: trunk, size: 260844)
2009-06-26
16:32
[617d674e] part of check-in [f01a9fc3] Removed a few compiler warnings under MSVC. (CVS 6825) (check-in: [f01a9fc3] user: shane branch: trunk, size: 257839)
2009-06-25
16:11
[c049fb18] part of check-in [bb5f1c01] Fix a problem with a return code being ignored in insertCell(). (CVS 6816) (check-in: [bb5f1c01] user: danielk1977 branch: trunk, size: 257797)
09:40
[d57b2935] part of check-in [daadbd9a] Replace an "if" condition that is always true in btree.c with an assert(). (CVS 6814) (check-in: [daadbd9a] user: danielk1977 branch: trunk, size: 257818)
2009-06-24
05:40
[699c333d] part of check-in [11750c6a] Simplify things by rolling the functionality of balance_shallower() into balance_nonroot(). (CVS 6808) (check-in: [11750c6a] user: danielk1977 branch: trunk, size: 257790)
2009-06-23
16:40
[807e32c1] part of check-in [c5dc80e6] Remove a condition from balance_nonroot() that is always true. (CVS 6806) (check-in: [c5dc80e6] user: danielk1977 branch: trunk, size: 258777)
15:43
[13e33e85] part of check-in [da9893e2] Call balance_shallower() from balance_nonroot() instead of from balance(). This simplifies coverage testing a bit. (CVS 6805) (check-in: [da9893e2] user: danielk1977 branch: trunk, size: 258753)
11:22
[73219130] part of check-in [47ec8749] Fix a failing assert in btree.c. The same bug was causing a spurious SQLITE_CORRUPT return when compiled without SQLITE_DEBUG. (CVS 6800) (check-in: [47ec8749] user: danielk1977 branch: trunk, size: 259376)
2009-06-22
18:03
[4796c27b] part of check-in [3ec8b37a] Remove a condition that is always true from btree.c. (CVS 6798) (check-in: [3ec8b37a] user: danielk1977 branch: trunk, size: 259199)
12:05
[e24cdcd3] part of check-in [bda38f5e] Make sure sqlite3BtreeCreateTable() returns an error code if the largest rootpage field is invalid in auto_vacuum mode. Update file-format comments to describe all of the "meta" values. (CVS 6797) (check-in: [bda38f5e] user: drh branch: trunk, size: 259140)
2009-06-18
17:22
[0fbea81d] part of check-in [ed08b53c] Move codec management from database connections into the pager so that it will work together with shared cache. (CVS 6782) (check-in: [ed08b53c] user: drh branch: trunk, size: 259088)
11:29
[067ad47d] part of check-in [db4fb835] Reduce the minimum usable page space to 480 byte from 500 bytes. (CVS 6780) (check-in: [db4fb835] user: drh branch: trunk, size: 259014)
2009-06-17
13:57
[c7fc867f] part of check-in [69eb0ff8] Fix a potential segfault following database corruption. Problem made visible by check-in (6772). (CVS 6775) (check-in: [69eb0ff8] user: drh branch: trunk, size: 259014)
13:09
[5d4e1fda] part of check-in [59ec937c] Suppress some -Wextra compiler warnings from GCC. (CVS 6774) (check-in: [59ec937c] user: drh branch: trunk, size: 258993)
11:49
[9225e072] part of check-in [a433ca82] Fix a bug affecting secure-delete mode introduced by (6768). (CVS 6773) (check-in: [a433ca82] user: danielk1977 branch: trunk, size: 258915)
11:13
[37145843] part of check-in [368e44ec] Fix for #3918. Also, fix the TRACE macros in balance_nonroot(). (CVS 6772) (check-in: [368e44ec] user: danielk1977 branch: trunk, size: 258390)
2009-06-16
16:50
[1edede2a] part of check-in [092b276e] Changes to balance_nonroot() and BtreeDelete() to simplify delete operations and reduce stack/heap usage while balancing b-tree structures. (CVS 6768) (check-in: [092b276e] user: danielk1977 branch: trunk, size: 258369)
04:31
[08115026] part of check-in [d89542cd] Remove a duplicate assert from btree.c. Ticket #3915. (CVS 6765) (check-in: [d89542cd] user: danielk1977 branch: trunk, size: 257667)
2009-06-15
16:27
[8363cf2e] part of check-in [e1e64307] Fix compiler warnings with MSVC build. (CVS 6761) (check-in: [e1e64307] user: shane branch: trunk, size: 257699)
2009-06-14
12:47
[9804315e] part of check-in [3448b39d] Detect database corruption and abort balance_nonroot() before the corruption causes problems. (CVS 6758) (check-in: [3448b39d] user: drh branch: trunk, size: 257690)
2009-06-10
09:11
[b883af5a] part of check-in [9ace9959] Minor tweak to balance_quick() to save a few instructions. (CVS 6743) (check-in: [9ace9959] user: danielk1977 branch: trunk, size: 257581)
2009-06-09
18:58
[e626616c] part of check-in [0bd84e73] Fix compiler warnings with MSVC build. (CVS 6741) (check-in: [0bd84e73] user: shane branch: trunk, size: 257484)
13:42
[a3c7d36d] part of check-in [56bff6eb] Enable cell overflow checking in sqlite3BtreeInitPage() using the compile-time option SQLITE_ENABLE_OVERSIZE_CELL_CHECK. Change the tests so that they recognize different error messages depending on the setting of this macro. (CVS 6735) (check-in: [56bff6eb] user: drh branch: trunk, size: 257472)
11:34
[a5a8e678] part of check-in [2e5d42ae] Avoid calling fillInCell() to create an internal node intkey cell from balance_nonroot(). A single putVarint() does the same thing more quickly. (CVS 6734) (check-in: [2e5d42ae] user: danielk1977 branch: trunk, size: 257468)
10:37
[30bd9f07] part of check-in [49f544eb] Only do the cell overread checks in sqlite3BtreeInitPage if SQLITE_OVERREAD_CHECK is defined at compile-time. (CVS 6733) (check-in: [49f544eb] user: drh branch: trunk, size: 257557)
09:41
[53c5df7f] part of check-in [8f1c1f61] Do not clear the MemPage.nFree variable when insertCell() adds an overflow cell to a page. Not doing this means balance_quick() can avoid a call to sqlite3BtreeInitPage(). (CVS 6732) (check-in: [8f1c1f61] user: danielk1977 branch: trunk, size: 257570)
2009-06-08
14:49
[50716b7a] part of check-in [7863db90] Change the btree balance code so that it does not call balance_nonroot() recursively. (CVS 6729) (check-in: [7863db90] user: danielk1977 branch: trunk, size: 258556)
2009-06-05
18:44
[bb9dbeaf] part of check-in [3ae4880b] Detect when database corruption causes an attemp to set the pointer map value for a pointer map page and report the corruption. (CVS 6722) (check-in: [3ae4880b] user: drh branch: trunk, size: 255921)
14:17
[3a0e5294] part of check-in [38b20327] Take care that a corrupt variable-length integer does not cause 32-bit integer overflow when parsing a record format, nor cause excessively large memory allocations. (CVS 6719) (check-in: [38b20327] user: drh branch: trunk, size: 255867)
2009-06-04
19:06
[17ab7af7] part of check-in [e557c8e5] Earlier detection of freelist corruption in the page allocation routines. (CVS 6718) (check-in: [e557c8e5] user: drh branch: trunk, size: 255963)
17:02
[a55ea6bd] part of check-in [1335e444] Fix an assertion fault in balance_quick() that occurs when an interior btree node has zero cells due to database corruption. Also update the corrupt7.test result vectors for a couple of cases where the error report on database corruption changed due to earlier detection. (CVS 6717) (check-in: [1335e444] user: drh branch: trunk, size: 255424)
16:14
[ca21e0b4] part of check-in [52b02ca5] If the root page of a btree is empty and is also not a leaf page and the page is not page 1, then report database corruption. (CVS 6716) (check-in: [52b02ca5] user: drh branch: trunk, size: 255400)
14:46
[ca836296] part of check-in [e7ad68e9] Reduce the stack usage of balance_quick(). (CVS 6715) (check-in: [e7ad68e9] user: danielk1977 branch: trunk, size: 255355)
00:11
[708b9373] part of check-in [4e92c7f2] Fix two instances where a malformed header in a database file (in other words a corrupt database file) can lead to an assertion fault. (CVS 6712) (check-in: [4e92c7f2] user: drh branch: trunk, size: 255048)
2009-06-03
21:04
[f8636b7a] part of check-in [c54de1f5] Change the pcache1.c implementation so that the "header" occurs at the end of page buffer, not at the beginning. This insures that the 20 bytes immediately following the page buffer are mapped if a read of the page buffer overruns due to a malformed cell. (CVS 6711) (check-in: [c54de1f5] user: drh branch: trunk, size: 254999)
17:26
[b0ac9955] part of check-in [7fa5d3cb] Add corruptD.test, a container for testing the "cell overflow" problem. Also shuffle a small amount of code in BtreeInitPage() to check that the page header pointer to the start of the cell offset array is set to a sane value. (CVS 6710) (check-in: [7fa5d3cb] user: danielk1977 branch: trunk, size: 254001)
11:25
[5afa1b5b] part of check-in [6dbf4eca] Define a set of constants to use as the "index" argument to sqlite3BtreeGetMeta and UpdateMeta. This makes some parts of the code easier to follow. (CVS 6709) (check-in: [6dbf4eca] user: danielk1977 branch: trunk, size: 253634)
2009-05-28
11:05
[41bee6e4] part of check-in [5904af6e] Workaround the need for internal API sqlite3BtreeCursorDb(). It was only being used for an assert() statement, which can be done differently. (CVS 6683) (check-in: [5904af6e] user: danielk1977 branch: trunk, size: 253552)
2009-05-06
18:57
[7c4b02af] part of check-in [df599237] Changes to silence compiler warnings under MSVC. (CVS 6613) (check-in: [df599237] user: shane branch: trunk, size: 253633)
2009-05-04
19:01
[a601a89b] part of check-in [77a82395] Avoid parsing cells that fit entirely on the b-tree page when searching a b-tree index. (CVS 6601) (check-in: [77a82395] user: danielk1977 branch: trunk, size: 253629)
11:42
[62f3194f] part of check-in [cac4f3d8] Speed up INSERT operations that add data to UNIQUE or PRIMARY KEY indexes by rationalizing duplicate seek operations. (CVS 6599) (check-in: [cac4f3d8] user: danielk1977 branch: trunk, size: 252216)
2009-05-02
10:03
[64ad8841] part of check-in [9950c0a7] When a cursor points at the last entry of an intkey btree after an insert, leave it there (instead of moving it to the tree root node). This speeds up statements of the form "INSERT INTO ... SELECT ..." that use auto-generated rowids. (CVS 6592) (check-in: [9950c0a7] user: danielk1977 branch: trunk, size: 251539)
07:36
[1201cba9] part of check-in [20c4acc2] Do not reset the cursor before seeking it in sqlite3BtreeInsert(). This speeds up INSERT operations that use auto-generated rowid values. (CVS 6591) (check-in: [20c4acc2] user: danielk1977 branch: trunk, size: 249887)
2009-05-01
13:16
[4bef945f] part of check-in [26444f2a] Update PRAGMA integrity_check so that it treats SQLITE_IOERR_NOMEM errors from underlying components the same as SQLITE_NOMEM errors. (CVS 6587) (check-in: [26444f2a] user: drh branch: trunk, size: 249341)
2009-04-30
13:30
[2165bfef] part of check-in [715f14f1] Disallow attaching the same database multiple times to the same db connection in shared cache mode, since doing so leads to deadlock. (CVS 6578) (check-in: [715f14f1] user: drh branch: trunk, size: 249289)
09:10
[2b89d1f5] part of check-in [38f8c5a1] When SQLite is configured to use in-memory temp files (either by setting SQLITE_TEMP_STORE during compilation or using the temp_store pragma at run time), store statement/savepoint journals in memory also. Ticket #3825. (CVS 6575) (check-in: [38f8c5a1] user: danielk1977 branch: trunk, size: 248595)
01:22
[4ac764ea] part of check-in [8bf60b24] Remove always-true tests from attach.c. In btree.c, always test the return from sqlite3PagerSetPagesize() since it might return SQLITE_NOMEM. (CVS 6572) (check-in: [8bf60b24] user: drh branch: trunk, size: 248561)
2009-04-29
17:49
[57b2aeac] part of check-in [7ec42e98] Modify the assemblePage() function in btree.c so that it runs slightly faster. (CVS 6569) (check-in: [7ec42e98] user: danielk1977 branch: trunk, size: 248546)
11:31
[d3e38cf7] part of check-in [e8f7f7b7] Add a version of cellSizePtr() that is faster than using sqlite3BtreeParseCellPtr(). This speeds up balance_nonroot(). (CVS 6566) (check-in: [e8f7f7b7] user: danielk1977 branch: trunk, size: 248611)
06:27
[3dffdafe] part of check-in [fc3a5ac2] Simplify a conditional expression in btree.c. (CVS 6565) (check-in: [fc3a5ac2] user: danielk1977 branch: trunk, size: 247452)
2009-04-19
20:51
[b4ec46b3] part of check-in [bd860184] Update comments and remove unused code in btree.c. No functional changes. (CVS 6521) (check-in: [bd860184] user: drh branch: trunk, size: 247482)
2009-04-11
16:06
[103858ad] part of check-in [2c560e05] Fix a case where a corrupt database could cause an assert() to fail. (CVS 6496) (check-in: [2c560e05] user: danielk1977 branch: trunk, size: 247646)
2009-04-10
09:47
[8331febf] part of check-in [ed6620ba] Always set BtShared.db when entering the BtShared mutex. Ticket #3793. (CVS 6480) (check-in: [ed6620ba] user: danielk1977 branch: trunk, size: 247465)
00:56
[02c902db] part of check-in [2cc68272] Force 8-byte alignment of sqlite3_value objects in the sqlite3VdbeUnpackRecord() primitive. Ticket #3777. (CVS 6479) (check-in: [2cc68272] user: drh branch: trunk, size: 247763)
2009-04-07
14:38
[0d02176d] part of check-in [2c1f5983] Fix an incorrect assert in btree.c. (CVS 6465) (check-in: [2c1f5983] user: danielk1977 branch: trunk, size: 247770)
2009-04-06
17:50
[effd3b70] part of check-in [def3a016] Test cases and minor code changes to increase coverage of btree.c. (CVS 6456) (check-in: [def3a016] user: danielk1977 branch: trunk, size: 247736)
2009-04-05
12:22
[457a71a1] part of check-in [208382e0] Additional code to make sure and to assert that memory allocations have 8-byte alignment. Ticket #3777. (CVS 6450) (check-in: [208382e0] user: drh branch: trunk, size: 247551)
2009-04-02
20:16
[f4fdf535] part of check-in [85e6a474] Make sure the VACUUM statement locks down the page_size and auto_vacuum modes after it runs. Otherwise, pragmas might change these settings on a populated database, resulting in problems. (CVS 6442) (check-in: [85e6a474] user: drh branch: trunk, size: 247611)
18:28
[7d51b2ef] part of check-in [8f142344] Fix a problem causing the BtShared.isPending flag to be cleared to early. Also coverage improvements for btree.c. (CVS 6440) (check-in: [8f142344] user: danielk1977 branch: trunk, size: 247343)
2009-04-01
19:07
[dcf8157b] part of check-in [85979295] Remove an unreachable branch from lockBtree(). Add comments. (CVS 6428) (check-in: [85979295] user: danielk1977 branch: trunk, size: 246834)
18:03
[3e831426] part of check-in [fdd78962] Remove the unused SQLITE_Vtab flag. (CVS 6425) (check-in: [fdd78962] user: danielk1977 branch: trunk, size: 246487)
17:13
[abd530b6] part of check-in [0c5a7d11] In pageReinit() in btree.c, only reinitialize a page if there are one or more references to it, not including the transient reference held by pager.c. This was always the intent. (CVS 6424) (check-in: [0c5a7d11] user: danielk1977 branch: trunk, size: 246527)
16:25
[cfa70f8e] part of check-in [f8e15a54] Remove an unreachable branch from allocateSpace() in btree.c. Add comments and asserts to the same function. (CVS 6422) (check-in: [f8e15a54] user: danielk1977 branch: trunk, size: 246480)
09:41
[afb15be9] part of check-in [3e3b5e86] Add some assert() statements to querySharedCacheTableLock(). (CVS 6421) (check-in: [3e3b5e86] user: danielk1977 branch: trunk, size: 245857)
2009-03-30
18:50
[304c18b7] part of check-in [c5890935] Fix a case where a pointer map page was not being journalled before a file truncation that occurs as part of an incremental vacuum. (CVS 6413) (check-in: [c5890935] user: danielk1977 branch: trunk, size: 245003)
17:19
[244dddea] part of check-in [10f605be] Add a comment to the pageReinit() routine explaining why the return code from sqlite3BtreeInitPage() is ignored. Comment change only - no changes to code. (CVS 6412) (check-in: [10f605be] user: drh branch: trunk, size: 244671)
13:53
[5f99af1a] part of check-in [3c9097f1] Modify integrity-check to prevent a buffer overread when dealing with a corrupted database. (CVS 6411) (check-in: [3c9097f1] user: danielk1977 branch: trunk, size: 244253)
2009-03-28
10:54
[3aef6704] part of check-in [9278f7b1] The fix in (6395) was not correct. Fix #3756 a different way. (CVS 6397) (check-in: [9278f7b1] user: danielk1977 branch: trunk, size: 244181)
2009-03-25
15:43
[a0095c47] part of check-in [de469c46] Fix a problem preventing sqlite3_extended_errcode() from working correctly. (CVS 6385) (check-in: [de469c46] user: danielk1977 branch: trunk, size: 243970)
2009-03-23
02:34
[1a709b6a] part of check-in [83a4d5b3] Fix compiler warning in MSVC. (CVS 6371) (check-in: [83a4d5b3] user: shane branch: trunk, size: 243965)
2009-03-20
13:15
[4fbb5f26] part of check-in [19fa5a29] Rename the unused MEM2 static mutex to OPEN and reuse it to serialize access to the sqlite3BtreeOpen() routine to prevent a race condition on detection of sharable caches. Ticket #3735. (CVS 6363) (check-in: [19fa5a29] user: drh branch: trunk, size: 243959)
2009-03-18
10:33
[081e1aac] part of check-in [a60f4191] Fix some cases where executing SQL from within a user-function callback could cause problems related to statement-transactions. (CVS 6355) (check-in: [a60f4191] user: danielk1977 branch: trunk, size: 243451)
2009-03-17
22:33
[805ca960] part of check-in [18978583] Move the rowid cache out of VdbeCursor and into BtCursor. When multiple BtCursors are open on the same table, set their rowid cache all at the same time. Ticket #3731. (CVS 6354) (check-in: [18978583] user: drh branch: trunk, size: 244779)
2009-03-16
13:19
[7d1c7e15] part of check-in [b649a6cc] Add the sqlite3_unlock_notify() API. (CVS 6348) (check-in: [b649a6cc] user: danielk1977 branch: trunk, size: 243141)
2009-03-12
14:43
[6e7501d7] part of check-in [a1bb1aef] Make calls to sqlite3BtreeRollbackStmt() no-ops when passed a Btree* handle that does not have an open statement transaction. Ticket #3718. (CVS 6342) (check-in: [a1bb1aef] user: danielk1977 branch: trunk, size: 241658)
2009-03-05
04:20
[ec710abc] part of check-in [6404afa0] Corrected typos and misspellings. Ticket #3702. (CVS 6336) (check-in: [6404afa0] user: shane branch: trunk, size: 241609)
2009-02-24
19:21
[c219cd5d] part of check-in [91d9d51e] Additional commands and another procedure name changes for clarity of presentation. No logic changes. (CVS 6323) (check-in: [91d9d51e] user: drh branch: trunk, size: 241604)
18:57
[10c415ef] part of check-in [b99c1815] Changes to comments and functions/procedure names for clarification. No changes to logic. (CVS 6322) (check-in: [b99c1815] user: drh branch: trunk, size: 241359)
16:18
[8b8697ab] part of check-in [4a12f5b8] Enhanced comments on table locking logic as it relates to preparing new statements. Added assert() and testcase() but no other changes to code. (CVS 6319) (check-in: [4a12f5b8] user: drh branch: trunk, size: 241035)
10:01
[e0178d6f] part of check-in [d4aa6593] Optimize queries of the form "SELECT count(*) FROM <tbl>" by adding a sqlite3BtreeCount() interface to the btree layer. (CVS 6316) (check-in: [d4aa6593] user: danielk1977 branch: trunk, size: 240890)
2009-02-18
20:31
[086fdb45] part of check-in [ded04f12] Make sure the auto_vacuum=INCREMENTAL setting is preserved across a VACUUM. Ticket #3663. (CVS 6304) (check-in: [ded04f12] user: drh branch: trunk, size: 238313)
2009-02-04
01:49
[71f30e74] part of check-in [6301f08a] Remove compiler warnings under MSVC. (CVS 6249) (check-in: [6301f08a] user: shane branch: trunk, size: 238270)
2009-02-03
16:51
[800a0656] part of check-in [663479b4] Commit first version of the 'backup' feature. (CVS 6241) (check-in: [663479b4] user: danielk1977 branch: trunk, size: 238230)
2009-01-31
14:54
[dfbbfc39] part of check-in [407830c6] Avoid a segfault when running vacuum on an in-memory database. Ticket #3620. (CVS 6221) (check-in: [407830c6] user: danielk1977 branch: trunk, size: 245487)
2009-01-28
20:21
[606c67b1] part of check-in [68957cf0] Fix a segfault that can occur when attempting to insert into a corrupt database file. Need a test case. (CVS 6212) (check-in: [68957cf0] user: drh branch: trunk, size: 245356)
2009-01-20
17:06
[01b3af74] part of check-in [12f7346c] Big change to make pager.c easier to follow. Unused variables removed, comments improved, etc. (CVS 6197) (check-in: [12f7346c] user: danielk1977 branch: trunk, size: 245292)
2009-01-16
16:23
[e183a435] part of check-in [a353c1ab] Revert (6187). (CVS 6188) (check-in: [a353c1ab] user: danielk1977 branch: trunk, size: 240581)
15:21
[3b446e24] part of check-in [aa67fd0c] This commit is an error. Reverted by (6188). (CVS 6187) (check-in: [aa67fd0c] user: danielk1977 branch: trunk, size: 245301)
2009-01-10
16:15
[603ce196] part of check-in [64a8dcd8] When compiled with SQLITE_DEBUG (in other words, when assert() is enabled) the ALWAYS and NEVER macros will throw an assertion if their arguments are not true or false, respectively. (CVS 6159) (check-in: [64a8dcd8] user: drh branch: trunk, size: 240573)
2009-01-09
14:11
[6ece0e36] part of check-in [ac84f106] Simplifications to btree.c to improve test coverage. (CVS 6150) (check-in: [ac84f106] user: drh branch: trunk, size: 240593)
2009-01-06
18:21
[8f5a2e9a] part of check-in [df2c285c] Reduce the number of paths in btreeCopyFile(). (CVS 6124) (check-in: [df2c285c] user: danielk1977 branch: trunk, size: 241596)
2009-01-02
21:08
[b0cf3e72] part of check-in [3e9efb76] Reinitialize page 1 of the database file following a ROLLBACK TO of a transactional SAVEPOINT on an initially empty database. (CVS 6103) (check-in: [3e9efb76] user: drh branch: trunk, size: 241837)
18:10
[2a89b28a] part of check-in [78dd7909] Fix compiler warnings in pager.c (CVS 6102) (check-in: [78dd7909] user: drh branch: trunk, size: 241777)
2008-12-27
15:23
[581fdccd] part of check-in [08352f9e] Fix a problem with savepoint and incremental-vacuum. (CVS 6066) (check-in: [08352f9e] user: danielk1977 branch: trunk, size: 241817)
2008-12-23
15:58
[f695109b] part of check-in [8d0f7244] Make sure nOverflow is always cleared when a page is released. (CVS 6059) (check-in: [8d0f7244] user: drh branch: trunk, size: 242550)
10:37
[69983b4e] part of check-in [ae44e748] Fix a couple of assert() failures that can occur in btree.c and pager.c. (CVS 6055) (check-in: [ae44e748] user: danielk1977 branch: trunk, size: 242422)
2008-12-18
15:45
[ad51b56b] part of check-in [98a53d91] Add savepoint2.test, a file containing savepoint tests similar to tests in trans.test and avtrans.test. And a few savepoint bug fixes. (CVS 6039) (check-in: [98a53d91] user: danielk1977 branch: trunk, size: 242494)
2008-12-17
17:30
[c402a9a1] part of check-in [34b56600] Add the savepoint feature. This feature is largely untested at this point. (CVS 6036) (check-in: [34b56600] user: danielk1977 branch: trunk, size: 241984)
2008-12-16
13:46
[fb64a2af] part of check-in [13b56b7f] Make sure the memory returned from sqlite3ScratchMalloc() is 8-byte aligned. Ticket #3542. (CVS 6031) (check-in: [13b56b7f] user: drh branch: trunk, size: 240515)
2008-12-10
21:19
[e5bfe007] part of check-in [ea01d437] Additional work at eliminating silly compiler warnings. (CVS 6010) (check-in: [ea01d437] user: drh branch: trunk, size: 240530)
16:45
[ba7baa98] part of check-in [da1cbfa7] Add explicit casts to silence nuisance warnings from VC++. (CVS 6004) (check-in: [da1cbfa7] user: drh branch: trunk, size: 240480)
2008-12-05
22:40
[05fae412] part of check-in [2a3f5ce1] Fix integrity check so that it always reports memory allocation errors that it encounters. (CVS 5984) (check-in: [2a3f5ce1] user: drh branch: trunk, size: 239725)
20:01
[b3438bc1] part of check-in [bfde3dae] Make sure the nOverflow flag in MemPage is reset to zero after every insert. (CVS 5983) (check-in: [bfde3dae] user: drh branch: trunk, size: 239513)
2008-11-27
02:22
[372c5b32] part of check-in [f9c73590] Add 19 new assert() statements in btree.c that attempt to detect writing to a cache page which is not writeable. (CVS 5964) (check-in: [f9c73590] user: drh branch: trunk, size: 239096)
2008-11-26
14:55
[1c468249] part of check-in [8c0edbef] Port check-ins (5955) and (5956) into the 3.6.6 branch. (CVS 5958) (check-in: [8c0edbef] user: drh branch: branch_3_6_6, size: 237143)
07:40
[615a2b9e] part of check-in [8271229c] Fix an obscure memory leak that can follow an IO error. (CVS 5956) (check-in: [8271229c] user: danielk1977 branch: trunk, size: 237133)
07:25
[950070c6] part of check-in [1a66481a] Fix a couple of assert() failures provoked by running with a small default cache-size (64 pages). (CVS 5955) (check-in: [1a66481a] user: danielk1977 branch: trunk, size: 237074)
2008-11-22
14:07
[adfb7974] part of check-in [15d88edf] Port the corruption bug fix of check-in (5938) into a branch off of version 3.6.6. (CVS 5947) (check-in: [15d88edf] user: drh branch: branch_3_6_6, size: 236997)
2008-11-21
09:09
[286ff124] part of check-in [ddf980a5] Fix the problems demonstrated in tkt35xx.test in a different way to (5936). (CVS 5938) (check-in: [ddf980a5] user: danielk1977 branch: trunk, size: 237001)
2008-11-19
10:22
[76c1b092] part of check-in [7bd1ac18] Simplify the way the pager layer invokes the busy-handler callback. (CVS 5922) (check-in: [7bd1ac18] user: danielk1977 branch: trunk, size: 236956)
09:05
[abbd6838] part of check-in [88134322] Changes to avoid "unused parameter" compiler warnings. (CVS 5921) (check-in: [88134322] user: danielk1977 branch: trunk, size: 237051)
2008-11-17
14:20
[661d3224] part of check-in [24469dba] Changes to btree.c to avoid the unsigned/signed comparison warnings. (CVS 5911) (check-in: [24469dba] user: danielk1977 branch: trunk, size: 237186)
2008-11-13
18:29
[81c22965] part of check-in [9b7a52e9] Fixed several more crashes due to corrupt db files. Added corruptC.test to soak.test. (CVS 5905) (check-in: [9b7a52e9] user: shane branch: trunk, size: 237113)
14:28
[be3e0aa6] part of check-in [47866d67] Add an API to support custom page cache implementations. (CVS 5899) (check-in: [47866d67] user: danielk1977 branch: trunk, size: 236826)
2008-11-12
18:21
[7c06d81f] part of check-in [faa6bd7b] Avoid some buffer overreads detected by valgrind while running corruptC.test. (CVS 5898) (check-in: [faa6bd7b] user: danielk1977 branch: trunk, size: 236691)
08:49
[7505a73b] part of check-in [395084ac] Fix a database corruption related crash uncovered by corruptC.test. (CVS 5890) (check-in: [395084ac] user: danielk1977 branch: trunk, size: 236613)
04:55
[5406b753] part of check-in [f8bb34e4] Fixed a few more crashes when dealing with corrupt db files. (CVS 5888) (check-in: [f8bb34e4] user: shane branch: trunk, size: 236538)
2008-11-11
22:18
[9794c9ee] part of check-in [ec18667e] Fixed crash during an UPDATE when free cell size is corrupt. (CVS 5887) (check-in: [ec18667e] user: shane branch: trunk, size: 236279)
20:51
[16dda042] part of check-in [99d4172e] Prevent a crash during an UPDATE when the cell offset is corrupt. (CVS 5886) (check-in: [99d4172e] user: shane branch: trunk, size: 236203)
17:36
[7824bc89] part of check-in [0659a666] Fixed crash in integrity_check with corrupt content offset size in page header. (CVS 5881) (check-in: [0659a666] user: shane branch: trunk, size: 236106)
2008-11-10
17:14
[e0ceb752] part of check-in [e0f07323] In btree.c, omit calls to setChildPtrmaps() if SQLITE_OMIT_AUTOVACUUM is defined. Ticket #3439. (CVS 5871) (check-in: [e0f07323] user: shane branch: trunk, size: 235831)
2008-11-03
20:55
[4320c626] part of check-in [fdb98fd8] Change the name of the Cursor object to VdbeCursor. (CVS 5857) (check-in: [fdb98fd8] user: drh branch: trunk, size: 235718)
2008-10-27
13:59
[5d72b67e] part of check-in [e68e4282] Make sqlite3_count_changes() and total_changes() work with "DELETE FROM ". (CVS 5844)
(check-in: [e68e4282] user: danielk1977 branch: trunk, size: 235725)
2008-10-08
17:58
[3e686f89] part of check-in [af679f61] After an OP_NullRow is executed on a cursor, cause any subsequent OP_Next or OP_Prev to behave as if there were no more rows to traverse. Ticket #3424. (CVS 5782) (check-in: [af679f61] user: danielk1977 branch: trunk, size: 235402)
2008-09-30
17:18
[64a38df6] part of check-in [fb461b78] Add some testcase() and assert() macros to btree.c to aid with testing recent changes. (CVS 5757) (check-in: [fb461b78] user: drh branch: trunk, size: 235381)
16:48
[d1720e1e] part of check-in [0f3c5633] Fix a comment in btree.c. No code changes. (CVS 5756) (check-in: [0f3c5633] user: danielk1977 branch: trunk, size: 233373)
14:06
[b7fbd31b] part of check-in [4e536463] Change leading tabs into spaces. (CVS 5755) (check-in: [4e536463] user: drh branch: trunk, size: 233236)
09:31
[2e5cf91c] part of check-in [83c064ca] Fix a recently introduced problem with deleting entries from index tables. (CVS 5754) (check-in: [83c064ca] user: danielk1977 branch: trunk, size: 233167)
2008-09-29
16:41
[df02edb0] part of check-in [35e8e4dc] Remove the reparentPage() and reparentChildPages() functions from btree.c. All calls to these functions can now be replaced by a call to setChildPtrmaps(). (CVS 5751) (check-in: [35e8e4dc] user: danielk1977 branch: trunk, size: 230699)
15:53
[002084e2] part of check-in [7354abd0] Remove the MemPage.idxShift variable. It is no longer required. (CVS 5750) (check-in: [7354abd0] user: danielk1977 branch: trunk, size: 235250)
11:49
[8fc7c0bd] part of check-in [40425e93] Instead of storing a pointer to the parent page in the MemPage structure, have each B-Tree cursor keep track of the ancestry of the current page. (CVS 5747) (check-in: [40425e93] user: danielk1977 branch: trunk, size: 235182)
2008-09-26
17:31
[850d7ede] part of check-in [28fd0a50] Performance enhancement: avoid calling reparentChildPages() from balance_nonroot(). (CVS 5743) (check-in: [28fd0a50] user: danielk1977 branch: trunk, size: 238244)
2008-09-19
16:39
[4d642d23] part of check-in [0c8b74e6] In function moveToRoot(), use the MemPage.pParent pointers to find the root page if they are valid. This is slightly faster than requesting a new reference to the root page from the pager layer. (CVS 5725) (check-in: [0c8b74e6] user: danielk1977 branch: trunk, size: 235866)
15:10
[cfe8dbba] part of check-in [59be34cf] In sqlite3BtreeGetMeta(), if BtShared.pPage1 is available use it instead of requesting a new reference from the pager layer. (CVS 5724) (check-in: [59be34cf] user: danielk1977 branch: trunk, size: 234766)
2008-09-18
18:17
[54fc8950] part of check-in [05d34626] Fix a segfault introduced by (5720) that can follow an IO error. (CVS 5721) (check-in: [05d34626] user: danielk1977 branch: trunk, size: 234644)
17:34
[e8484887] part of check-in [6b998f30] Avoid parsing the structure of b-tree pages (in sqlite3BtreeInitPage) more than is necessary. (CVS 5720) (check-in: [6b998f30] user: danielk1977 branch: trunk, size: 234603)
01:08
[5db7b54e] part of check-in [badd0873] Performance improvements in getAndInitPage(): omit the upper bound check on page number if the page is already in cache. (CVS 5716) (check-in: [badd0873] user: drh branch: trunk, size: 232882)
2008-09-10
17:53
[5419fcd2] part of check-in [89fda074] Fix some trivial cases where database corruption was causing an error code other than SQLITE_CORRUPT to be returned. (CVS 5690) (check-in: [89fda074] user: danielk1977 branch: trunk, size: 232107)
14:45
[9e11a68f] part of check-in [93545861] Fix for handling database files corrupted in such a was as to make a b-tree page a direct or indirect descendant of itself. (CVS 5689) (check-in: [93545861] user: danielk1977 branch: trunk, size: 232064)
2008-09-05
05:02
[6ea37de3] part of check-in [0b8ee83f] Fix a problem in btree.c preventing an OOM error from being propagated up to the caller. (CVS 5677) (check-in: [0b8ee83f] user: danielk1977 branch: trunk, size: 231651)
2008-09-02
14:07
[70706ed6] part of check-in [88c82759] Move the sqlite3SharedCacheEnabled global and the inProgress static variable (function sqlite3_initialize()) into the global sqlite3Config structure. This is required for the OMIT_WSD feature to work on some platforms. (CVS 5662) (check-in: [88c82759] user: danielk1977 branch: trunk, size: 231658)
09:38
[3c251cac] part of check-in [44def90d] Modify pcache.c to work with OMIT_WSD. (CVS 5659) (check-in: [44def90d] user: danielk1977 branch: trunk, size: 231840)
00:52
[a12044e5] part of check-in [ef26ea5c] Continuing work on adding full support for the SQLITE_OMIT_WSD compile-time option. (CVS 5658) (check-in: [ef26ea5c] user: drh branch: trunk, size: 231831)
2008-09-01
18:34
[deb7e145] part of check-in [573d92ab] Begin adding support for the SQLITE_OMIT_WSD macro. Some (many) WSD variables still need wrappers added to them. (CVS 5652) (check-in: [573d92ab] user: danielk1977 branch: trunk, size: 231663)
2008-08-27
15:16
[9b98b0d2] part of check-in [9e932599] Use a bitvec object to store the set of pages with the 'always-rollback' property for a transaction. (CVS 5622) (check-in: [9e932599] user: danielk1977 branch: trunk, size: 231657)
2008-08-25
11:57
[f6a1f698] part of check-in [eae959ed] Fix a segfault that can occur when running integrity_check on a corrupt db. (CVS 5606) (check-in: [eae959ed] user: danielk1977 branch: trunk, size: 231647)
2008-08-23
16:17
[9253ac92] part of check-in [cb869946] Do not incorrectly detect corruption when an auto-vacuum database is converted to a non-auto-vacuum database within a vacuum. Ticket #3332. (CVS 5603) (check-in: [cb869946] user: danielk1977 branch: trunk, size: 231590)
2008-08-22
17:34
[4212dce1] part of check-in [6de9c084] Remove dead code. (CVS 5601) (check-in: [6de9c084] user: drh branch: trunk, size: 231575)
12:57
[e1b5c898] part of check-in [2a365e29] Fix nuisance compiler warnings. Ticket #3309. (CVS 5591) (check-in: [2a365e29] user: drh branch: trunk, size: 231641)
2008-08-20
22:06
[3078f7a5] part of check-in [00b17798] Modify the sqlite3VdbeUnpackRecord() interface to force the temporary space to be 8-byte aligned. This might be important for Sparc. Ticket #3318. (CVS 5573) (check-in: [00b17798] user: drh branch: trunk, size: 231626)
14:49
[c536edea] part of check-in [cb494e10] Add the pcache module from the experimental branch. Also change things so that most of the built-in SQL functions are kept in single static hash-table, rather than creating and populating a separate hash table for each open database connection. (CVS 5566) (check-in: [cb494e10] user: danielk1977 branch: trunk, size: 231631)
2008-08-13
19:11
[c38431ae] part of check-in [0b92cbf5] Additional changes toward fixing ticket #3292. (CVS 5562) (check-in: [0b92cbf5] user: drh branch: trunk, size: 231575)
14:07
[2ae1092e] part of check-in [055f173a] A partial fix for ticket #3292. This fixes the original problem but there are other similar problems lurking in the code still. (CVS 5561) (check-in: [055f173a] user: drh branch: trunk, size: 231586)
2008-08-02
17:36
[da7491ef] part of check-in [f653995c] Fix a reference count leak introduced by (5526). (CVS 5527) (check-in: [f653995c] user: danielk1977 branch: trunk, size: 231588)
17:03
[ff5ff00d] part of check-in [fb26ae72] Avoid doing IO purely to check assert() constraints. (CVS 5526) (check-in: [fb26ae72] user: danielk1977 branch: trunk, size: 231517)
2008-08-01
20:10
[0be00cb6] part of check-in [2cd6bae8] Bring test coverage up to 99%. (CVS 5522) (check-in: [2cd6bae8] user: drh branch: trunk, size: 231415)
2008-07-28
19:34
[540186cc] part of check-in [e48f9697] Implement the "lookaside" memory allocation cache. Use of this cache makes the speed1.test script run about 15% faster. Added new interfaces to control the cache. (CVS 5488) (check-in: [e48f9697] user: drh branch: trunk, size: 231304)
2008-07-19
14:25
[1318ab0e] part of check-in [a560c618] Reduce the number of "#ifndef SQLITE_OMIT_AUTOVACUUM" conditions in btree.c by using the ISAUTOVACUUM macro instead. (CVS 5444) (check-in: [a560c618] user: danielk1977 branch: trunk, size: 231307)
11:49
[7303414d] part of check-in [9992b1ae] Improve the performance of balance_nonroot() on auto-vacuum databases by reducing the number of calls to ptrmapPut(). (CVS 5442) (check-in: [9992b1ae] user: danielk1977 branch: trunk, size: 231746)
2008-07-18
17:16
[770e1b12] part of check-in [3b2dd417] Fix SQLITE_OMIT_AUTOVACUUM so that it works again. Ticket #3228. (CVS 5439) (check-in: [3b2dd417] user: drh branch: trunk, size: 229797)
09:34
[95640f01] part of check-in [d807fb27] Performance improvement: reduce the number of calls to ptrmapPageno() made by ptrmapPut() and ptrmapGet(). (CVS 5437) (check-in: [d807fb27] user: danielk1977 branch: trunk, size: 229700)
03:32
[af2bc332] part of check-in [c69633ec] The zeroPage() routine in btree.c need not actually zero the whole page, just the header. (CVS 5434) (check-in: [c69633ec] user: drh branch: trunk, size: 229684)
02:44
[134d2f76] part of check-in [b88087e6] Omit the check for cell-pointer consistency in sqlite3BtreeInitPage() for a 2.5% performance gain. (CVS 5433) (check-in: [b88087e6] user: drh branch: trunk, size: 229680)
00:57
[5299a702] part of check-in [77e099ad] Optimization to sqltie3BtreeParseCellPtr. 0.3% performance increase. (CVS 5432) (check-in: [77e099ad] user: drh branch: trunk, size: 229284)
2008-07-17
18:39
[c618d62f] part of check-in [29d3bfd7] Simplify the b-tree logic by taking advantage of the fact that all b-trees are either intkey+leafdata or zerodata. (CVS 5431) (check-in: [29d3bfd7] user: drh branch: trunk, size: 229251)
2008-07-16
18:17
[5dcc47a3] part of check-in [1d01c02a] Eliminate some unnecessary IO during a commit in full auto-vacuum mode. (CVS 5426) (check-in: [1d01c02a] user: danielk1977 branch: trunk, size: 228981)
2008-07-12
14:52
[cda41ffc] part of check-in [dcb16024] Remove leftover debugging commands (breakpoint and btree_breakpoint) from test scripts. (CVS 5400) (check-in: [dcb16024] user: drh branch: trunk, size: 228933)
2008-07-11
21:02
[dcbb9624] part of check-in [c80a5d09] Detect and handles the case where a row is modified or deleted while it is being read during SELECT processing. (CVS 5399) (check-in: [c80a5d09] user: drh branch: trunk, size: 228852)
16:39
[8d082147] part of check-in [6dcce6b9] Added corruptA.test for testing malformed database headers. (CVS 5397) (check-in: [6dcce6b9] user: drh branch: trunk, size: 228551)
16:15
[881d5eb6] part of check-in [d7e2f0d2] Additional test coverage for the btree module. Remove the failsafe() macro and replace it with ALWAYS() and NEVER(). (CVS 5395) (check-in: [d7e2f0d2] user: drh branch: trunk, size: 228639)
03:38
[6ec7584e] part of check-in [c45d578e] Remove an extra zeroPage() call that was left in the previous check-in by mistake. Ticket #3209. (CVS 5393) (check-in: [c45d578e] user: drh branch: trunk, size: 228655)
03:34
[89f1122f] part of check-in [30825f74] Make the btree layer robust when faced with a corrupt database that contains duplicate entries on the freelist. Ticket #3209. (CVS 5392) (check-in: [30825f74] user: drh branch: trunk, size: 228686)
02:21
[71ba2420] part of check-in [620b4721] Additional test coverage in btree.c. Added corruption tests for the ptrmap pages of an autovacuumed database (corrupt8.test). (CVS 5391) (check-in: [620b4721] user: drh branch: trunk, size: 228640)
2008-07-10
00:32
[61c4752f] part of check-in [636cd723] Remove unused code. Test coverage enhancements. Modify the algorithm used to select column names for VIEWs of joins so that the constructed column names omits the underlying table names. (CVS 5386) (check-in: [636cd723] user: drh branch: trunk, size: 228515)
2008-07-09
11:49
[fbc557de] part of check-in [491f8f96] Coverage testing for balance_quick() and balance_deeper(). (CVS 5382) (check-in: [491f8f96] user: danielk1977 branch: trunk, size: 228818)
2008-07-08
19:34
[a52b0a1d] part of check-in [8ed04b1e] Completely rework the sqlite3SetString() primitive so that it hon