aboutsummaryrefslogtreecommitdiff
path: root/src/btree.c
Commit message (Collapse)AuthorAge
...
* This is an experimental patch that ensures that all cursors have their positiondrh2017-02-02
| | | | | saved prior to starting a ROLLBACK TO. FossilOrigin-Name: 01d97e5b6502b1811b52a681f445e1aaae6c0ee6
* Another micro-optimization in accessPayload(). Slightly smaller and faster.drh2017-01-27
| | | FossilOrigin-Name: c012619b65d70b4ef6cf33532ef57d7f8ba42d74
* Performance optimization in accessPayload().drh2017-01-27
| | | FossilOrigin-Name: ebb1fd98d4e448aa6d8f1e5be7ddc5bedb3db95b
* Simplify the accessPayload() routine so that it always populates the overflowdrh2017-01-27
| | | | | | | | | 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]. FossilOrigin-Name: 68e7a8c6765649195ef1ad9407d87d44a307b462
* Remove an unreachable branch in the error handling logic fordrh2017-01-26
| | | | | sqlite3BtreePayloadChecked(). FossilOrigin-Name: 293bf3ed7e40745349c83b202b27ed1b48517e1a
* Performance optimization to sqlite3_blob_read().drh2017-01-26
| | | FossilOrigin-Name: 7459f4b7ed4007d9ec44c3bf0fcba04f5f8540a9
* Minor simplification and performance optimization for Direct Overflow Read.drh2017-01-26
| | | FossilOrigin-Name: 3e96d6efa867b765c8acf1454014b1e71b2e4f21
* Make SQLITE_DIRECT_OVERFLOW_READ work for in WAL mode as long as the pagedrh2017-01-26
| | | | | being read is not in the the -wal file. FossilOrigin-Name: 9879be1899adf5634f551a2077b15ccb1133e4e3
* A better implementation of the moveto-neighbor optimization that checks fordrh2017-01-21
| | | | | nearby rows on adjacent pages. FossilOrigin-Name: 2c4ecb85a475b9063aa8a3bb517ac181a7ded649
* B-tree optimization: When seeking on a rowid table that has already beendrh2017-01-21
| | | | | | | 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. FossilOrigin-Name: 8e5cfb2039126da7689c4b1c88760f10e1234eaf
* Minor performance optimization and size reduction to the accessPayload()drh2017-01-20
| | | | | routine in btree.c. FossilOrigin-Name: 264e5c10d7144910b3223b64546567fa20e4bc65
* Remove a branch that is probably unreachable, and which adds no value.drh2017-01-12
| | | FossilOrigin-Name: 9acc72381ccd5e36f3ffdf7e7fbefc5a15701eb4
* Remove an unnecessary corruption test from the btree balancer. If corruptiondrh2017-01-12
| | | | | is present, it will be found harmlessly by later tests. FossilOrigin-Name: bddf39562d08e259c43dd59b82afb62fe0eb2eef
* Improved detection of cells that extend into the reserved space at the enddrh2017-01-12
| | | | | of the page while adjusting overflow page pointers during autovacuum. FossilOrigin-Name: 8097712c9c1f4ea16bc5dd462da248ef98896061
* Changes to allow some multi-row UPDATE statements to avoid the two-passdan2017-01-10
| | | | | approach. FossilOrigin-Name: 46db23ccd116ce5b9d949f9293be8a2818411b46
* Remove an incorrect ALWAYS() macro from balance_nonroot(), which could resultdrh2016-12-26
| | | | | | | 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. FossilOrigin-Name: e447b23cfd7bb31817e42adb3a98868d351c6b8a
* Simplifications to the way UnpackedRecord objects are allocated. Smallerdrh2016-12-21
| | | | | and faster code that also fixes a subtle (currently unreachable) bug. FossilOrigin-Name: f7ab01f254cd9d7006b8dec29adb234a671b8e6f
* Fix harmless compiler warnings.drh2016-12-13
| | | FossilOrigin-Name: ed2c9f3738c96d8e3dbece7ccb721cb1a8ae8fac
* Remove unnecessary MemPage initialization resets in the autovacuum ptrmapdrh2016-12-12
| | | | | processing. FossilOrigin-Name: 1b36fbb9f05f3a5844e198b489bff36ef6cd908c
* Size and performance optimization in btreeInitPage() in the freeblockdrh2016-12-12
| | | | | validation step. FossilOrigin-Name: 57deb1b412e0c328528f2b4d697e326bfd028dca
* Change the order of comparison for divider cell overflow in balance non-rootdrh2016-12-12
| | | | | to avoid a (harmless) reference to an uninitialized variable. FossilOrigin-Name: f9f2e23bbd68a8994621623446868d666df52eff
* Avoid an unnecessary memset() in the sqlite3BtreeInsert() routine.drh2016-12-10
| | | FossilOrigin-Name: 35ecd4ebc55579175f7c934e4eb1edb969008428
* When doing the sqlite3BtreeInsert() overwrite optimization, make sure thedrh2016-12-09
| | | | | memcpy() does not extend off the end of the page. FossilOrigin-Name: 684ef4582ed19b2af22dda6fc085c70464f92f1b
* Additional comments and an assert on the sqlite3BtreeInsert() overwritedrh2016-12-09
| | | | | optimization. FossilOrigin-Name: c1f0ae9d2981a19875103750379ad26f2575f878
* In sqlite3BtreeInsert() when replacing a re-existing row, try to overwritedrh2016-12-09
| | | | | the cell directly rather than deallocate and reallocate the cell. FossilOrigin-Name: 0b86fbca6615ccf1f3a62614db577a8acbec6d9e
* Avoid unnecessary zeroing of fields in the MemPage object that are goingdrh2016-12-09
| | | | | to be reinitialized before use anyhow. A smaller and faster binary results. FossilOrigin-Name: 01ada3d1068476f90dcae02cb089001ea4bcc23d
* Refactor the sqlite3BtreeKey() and sqlite3BtreeData() internal interfacesdrh2016-11-25
| | | | | | | 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. FossilOrigin-Name: 49ebc219faea30eaa61def4a3fba2817b9c58a86
* Remove unnecessary OP_Close opcodes for a size reduction and performancedrh2016-11-22
| | | | | increase. FossilOrigin-Name: 32be7aae92ee48bf2cd260ea41e79c2bc62738f9
* Change the OP_Last opcode so that it is a no-op if the cursor is alreadydrh2016-11-15
| | | | | pointing at the end of the b-tree. FossilOrigin-Name: 663473850c4274270445b3771911fa773a8c405f
* Remove obselete and unused logic in the update code generator.drh2016-11-11
| | | | | | Fix the sqlite3BtreeMovetoUnpacked() routine so that it remembers the rowid of the row that it landed on. FossilOrigin-Name: 1a587d72f981cb7064cfd8916a52a83ad9ba6074
* Avoid a few unnecessary calls to sqlite3BtreeMovetoUnpacked().drh2016-11-10
| | | FossilOrigin-Name: eac0e827a61cfec4dd9b6d407ff398e9fda3510b
* Comment changes that attempt to better explain the behavior of the "seekResult"drh2016-11-09
| | | | | | | field on VdbeCursor objects and the seekResult parameter to sqlite3BtreeInsert() and the OPFLAG_USESEEKRESULT flag on insert opcodes. No changes to code. FossilOrigin-Name: 345b46be75bdf6f9fb7367a6164d89bae11995a6
* Enhance the OP_IdxInsert opcode to optionally accept unpacked key material.drh2016-11-09
| | | FossilOrigin-Name: 89d958abbac45f2ca5954080cd9e74ec9a07ebb2
* Performance optimization in moveToRoot(). Avoid repeated validity checking ofdrh2016-10-24
| | | | | the root page on each call. Once is enough. FossilOrigin-Name: 98795c2dd9a6d8fa8d49a9f5c36cdf824cae7246
* Avoid using the "direct overflow read" optimization to read large blobs if thedan2016-10-21
| | | | | | pager layer has a wal file open - even if the database header indicates that the db is not a wal database. FossilOrigin-Name: b54c15f11796a75683eec4b502a22ccb87d621c6
* Changes to support interrupting a checkpoint using sqlite3_interrupt().dan2016-10-17
|\ | | | | FossilOrigin-Name: c88d36e251abec24aa7e37cf550e148904b9fd2d
| * Questionable changes to support interruptible checkpoint in ZipVFS.dan2016-08-13
| | | | | | FossilOrigin-Name: c7a9f26d118c7a453d45fa73efa4d1ab79301659
| * Have wal file checkpoints exit early if the sqlite3_interrupt() API function ↵dan2016-08-12
| | | | | | | | | | is called. FossilOrigin-Name: 8a5f41c7b1718507524adef1a2730e99cf53270a
* | Do not bother to initialize unused fields in the BtreePayload object.drh2016-10-04
| | | | | | FossilOrigin-Name: b10d0f939c82c4de3faa90b86de9ec4a89992856
* | Allocate Parse objects off of the stack where appropriate for a substantialdrh2016-10-03
| | | | | | | | | | performance increase and a size reduction. FossilOrigin-Name: ea8affa9e453b201b479162f621b591e7a65a489
* | Small performance optimization in the freeSpace() routine of btree.c.drh2016-09-17
|/ | | FossilOrigin-Name: 63962e2a927963575be74c3ce11f39f722c07c72
* Fix a typo in a comment in btree.c. No changes to code.drh2016-08-03
| | | FossilOrigin-Name: 722c12816347ee9fce7a090cfebef2c5841e7445
* Minor tweak the the b-tree balancer.drh2016-07-14
| | | FossilOrigin-Name: d2a0af7a37e390439c3001fedb5834f47fb24a1f
* Add the SQLITE_DBSTATUS_PROPORTIONAL_CACHE_USED sqlite3_db_status() parameter.dan2016-07-06
| | | FossilOrigin-Name: 118321c8b9d88b8f439c952436f42838c3fc80cb
* Fix an incorrect assert() in the btree logic.drh2016-06-13
| | | FossilOrigin-Name: fcf6114be94b260641e7c78a58db16a31ac5ab35
* Small performance boost and size decrease in sqlite3BtreeMovetoUnpacked().drh2016-06-06
| | | FossilOrigin-Name: e106a77d85c20ae23ebe49a5acceeaffecb40fc2
* Improved comment on cursorOwnsBtShared(). No changes to code.drh2016-06-04
| | | FossilOrigin-Name: 5e269c2d2667df65592a32d6bc2fa388fd7eb181
* Fix a C99-ism and a compiler warning for MSVC.drh2016-06-04
| | | FossilOrigin-Name: aa53a36ea2eb90cc4939e37e6ad320b4211692fd
* Change the sqlite3BtreeKeySize() interface into sqlite3BtreeIntegerKey() anddrh2016-06-04
| | | | | | | | | | 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. FossilOrigin-Name: bef35e18dd19732f7859287b097feeb593e5900f
* More tweaks to improve the performance of the insert logic, slightly.drh2016-05-21
| | | FossilOrigin-Name: dec1307581216e01ad508ffe4455b957e3356654