aboutsummaryrefslogtreecommitdiff
path: root/src/vdbeblob.c
Commit message (Collapse)AuthorAge
* Avoid invoking the preupdate hook from within sqlite3_blob_write() if the ↵dan11 days
| | | | | cursor is already invalid. FossilOrigin-Name: 9f335b9a4e9e761a0c6afd6dc69665a24506141bde88530bf59fcbdf957ae881
* Ensure that the TEMP database has been initialized at the beginning ofdrh2025-03-10
| | | | | | a call to sqlite3_open_blob() for the TEMP database. Fix for the issue reported by [forum:/forumpost/0a556d619b|forum post 0a556d619b]. FossilOrigin-Name: 2cfccdbe08b7b14a6b255f7157ac20d0807327adefcb33fcffeeed14c7603fe1
* Use the sqlite3ColumnIndex() routine to look up a column in a table, ratherdrh2025-02-08
| | | | | | than using a custom loop. Performance improvement, size reduction, and complexity decrease. FossilOrigin-Name: 351dbbc2bf0b23efdc625ddaa5dc2239cf2990addf071a04bd41612b341de8c8
* Do not allow sqlite3_blob_open() to work on a any table that containsdrh2024-08-28
| | | | | | | | generated columns, even columns of the table which are not generated themselves, because such columns might be part of the expression of a STORED column. This restriction could be relaxed some, but that would be a lot of code for something that nobody ever uses. FossilOrigin-Name: 6e84947123339f0ea2b7dabc6134a621eed09317f81647f15870ed50a0f7d1bc
* Add column name to API_ARMOR check in sqlite3_blob_open() to avoid a ↵stephan2023-10-14
| | | | | null-pointer deref. FossilOrigin-Name: 0114a6622afc4588c47e98d804340449417b603dc4831513eab4d8e4ccb15d42
* Fix a resource leak: sqlite3_blob_reopen() was failing to invoke thedrh2023-10-07
| | | | | | | | xDel() distructor on a register when it sets that register to the new rowid. This was never a problem prior to the large-column cache of [771fe35074b50b8d] as that destructor was always a no-op. dbsqlfuzz cd96368deaece480fb94d42427dde053737a650e. FossilOrigin-Name: 545edd5ecf20a7feb99dc5ce6f338fa1f172c2e17b240cbede497f0729dbd3d7
* Fix harmless compiler warnings from the CBMC compiler.drh2023-05-10
| | | FossilOrigin-Name: 5bc17cbccdd369486fca049be9d7457e18f162c0e2f5475809ffc8f01c5fa9d2
* Make it so that any Parse object is always linked into the database conenctiondrh2022-01-24
| | | | | while it is active. Hence, an OOM will cause Parse.nErr to be set. FossilOrigin-Name: 6a45d8fe8bfbc11a5b86d25237e1f8bccfb0f22f3dcaf004ba797aeb57b365ec
* New assert() statements to help prove correct usage of VdbeCursor objects.drh2021-11-11
| | | FossilOrigin-Name: 7cee62f77a9e7c3cf886f136e75a93c3bbbb88e48b66035883bea5503d9fc03c
* Protect every access to the Table.u union using a nearby assert() or branch.drh2021-10-07
| | | FossilOrigin-Name: 50e08338aed7ac0cee600098d2ecd4b3b7bfd31a597bb26773badf3d2e2582c8
* Refactor field names in the Column object, zCnName and zCnColl, to make themdrh2021-08-02
| | | | | unique and thus easier to find amid all the other code. FossilOrigin-Name: 8b781dcaf68e0cf12a844708c82eee00193e340195cbca915d077e4846983bf3
* Refactor the Table object to reduce its memory footprint.drh2021-08-02
| | | FossilOrigin-Name: bbb6759bcf6e01d36dfc787a82a610d359f50aaeac8104b73883a84906d54e1f
* Add the experimental sqlite3session_changeset_size() API.dan2021-04-21
| | | FossilOrigin-Name: b5564a6fd54875db1de884fdc0e5eeabcd6aa5595ad03a8a60843503e830a2d8
* Prevent an assert() from failing if sqlite3_blob_reopen() is called on a ↵dan2021-04-14
| | | | | blob-handle that has already hit an SQLITE_CORRUPT error. FossilOrigin-Name: b5dc7aba036cfd6d09c68dd17608328063634ca99ff341f97bab2dc2a1f59b11
* Fix a problem that could cause a crash if a blob handle were closed after ↵dan2019-07-15
| | | | | the associated database handle was closed using sqlite3_close_v2(). FossilOrigin-Name: 52f463d29407fad691c42b13462880e7605603c9be9f480d18e953a0ef78149a
* Fix a problem in the incr-blob code causing a new cursor to be opened fordan2017-10-24
| | | | | every sqlite3_blob_reopen() call. FossilOrigin-Name: 41ef34a1f0650c50cacb203665cd9d57db53a49c979bf0d5a78937517f763a2c
* Simplify the sqlite3VdbeGet() routine. Smaller, faster, and easier to maintain.drh2017-09-16
| | | FossilOrigin-Name: 5dbb255a9377a6c2619fbac519f18caa4d8cb23257dfba0ffb9e36dd9dc16627
* Slightly smaller and faster by allocating Parser objects on the stack.drh2017-08-01
| | | FossilOrigin-Name: 436a89b91901851ce21bf0cb997291b48888c52788b904822083d8dfac32b84b
* Simplifications to blobSeekToRow().drh2017-01-31
| | | FossilOrigin-Name: 495ea824093ff535734c22c3115384c08f855c02
* Ensure that sqlite3_blob_reopen() correctly handles short rows.drh2017-01-25
| | | | | Proposed fix for ticket [e6e962d6b0f06f46e]. Further testing needed. FossilOrigin-Name: 57d8dad35c2a9ab635e954dce7f3986ae1ca8ed2
* Change sqlite3_blob_reopen() to call sqlite3VdbeExec() directly rather thandrh2017-01-21
| | | | | going through sqlite3_step(). Performance enhancement. FossilOrigin-Name: 347df3c1fd7322e7aacaf1e9f8be81830947c482
* Remove an unnecessary sqlite3_bind_int64() call from sqlite3_blob_open().drh2017-01-21
| | | | | Also other minor refactoring of the sqlite3_blob implementation. FossilOrigin-Name: 9d197a532349f4b1caf66bbed70ca46df86cb86f
* Minor performance optimizations to sqlite3_blob_open() anddrh2017-01-20
| | | | | sqlite3_blob_reopen(). FossilOrigin-Name: 52a61967d920047ea0b4409b79793e05c0128964
* 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
* Rename the Db.zName field to Db.zDbSName to make it more descriptive and todrh2016-08-18
| | | | | | distinguish it from all of the other "zName" variables scattered throughout the code. FossilOrigin-Name: 92a22f01343a898455fd61c3b8e7d7c954f5b569
* 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
* Merge enhancements from trunk.drh2016-02-05
|\ | | | | FossilOrigin-Name: a533608cb0de3cbc1e28a794aab99864b8c249f4
| * Enhance the internal sqlite3VdbeAddOpList() interface to automatically updatedrh2016-02-03
| | | | | | | | | | | | jump destinations. Use this feature to simplify the AUTOINCREMENT code generator. FossilOrigin-Name: ae8b9d2edf1b5aef6108e729754911db7682b6a3
* | Merge recent enhancements from trunk.drh2016-01-20
|\| | | | | FossilOrigin-Name: 327af5f644a49b2f41d5456958f9d61a2b704e1c
| * Simplification of the VDBE bytecode for incremental blob I/O.drh2016-01-18
| | | | | | FossilOrigin-Name: d23849f64a110e336f26282bf2b961a2a2372468
| * Improvements to the way sqlite3VdbeAddOpList() works, resulting in a slightlydrh2016-01-16
| | | | | | | | | | smaller and faster binary. FossilOrigin-Name: 88ceb588bcdb3ca86d0c58cfdeb61b5fe070872f
* | Merge recent enhancements from trunk.drh2015-12-02
|\| | | | | FossilOrigin-Name: d1a1278d7f3306536dc9cbd8fb300898f1e373e8
| * Refactor the VdbeCursor object. It is now slightly smaller and faster and isdrh2015-11-20
| | | | | | | | | | easier to understand. FossilOrigin-Name: 9b1d174d862500a627840008ffac4c8419dc97e2
* | Merge recent enhancements from trunk, and especially the fix fordrh2015-09-30
|\| | | | | | | | | ticket [1b266395d6bc10]. FossilOrigin-Name: b2face9aa95ade96a5666c70b6b31064c1ad0977
| * Use symbolic names XN_ROWID and XN_EXPR in place of the (-1) and (-2)drh2015-09-29
| | | | | | | | | | | | | | magic numbers in Index.aiColumn[]. Add asserts to help verify that Index.aiColumn[] is always used correctly. Fix one place in FK processing where Index.aiColumn[] was not being used correctly. FossilOrigin-Name: 7d272aa62cd4cbbf4b5d04e3b918de27671e8301
* | Merge the latest trunk enhancements.drh2015-09-14
|\| | | | | FossilOrigin-Name: 22ce9218fb2bb56cc5dd4e32077a16f669250d5f
| * Add code to maintain indexes with expression arguments across DELETE, INSERT,drh2015-08-25
| | | | | | | | | | | | | | and UPDATE statements. Legacy tests pass, but the new code paths are still largely untested. The query planner currently makes no effort to use expression indexes. FossilOrigin-Name: efaabdb71626bdc03768e87e186c72f6f3da75b2
* | Merge all recent trunk changes into the sessions branch.drh2015-02-21
|\| | | | | FossilOrigin-Name: f36bb5fa5c5e3430808fe35d58f45559a216d341
| * Fix potential 32-bit integer overflow problems on the offset and lengthdrh2015-02-07
| | | | | | | | | | | | | | parameters to sqlite3_blob_read() and sqlite3_blob_write(). For sqlite3_blob_open(), make sure the *ppBlob return parameter is zeroed if the interface fails with SQLITE_MISUSE. FossilOrigin-Name: 5df02f50f8348dfde4fc15126abc7b7ef7803e69
* | Merge recent trunk enhancements, including the read-after-ROLLBACK changedrh2014-11-18
|\| | | | | | | | | | | and the addition of sqlite3_stmt_scanstatus() support, as well as various minor bug fixes. FossilOrigin-Name: f09055f3c4348264c7336f90646375f0d98b061e
| * Add test file e_blobwrite.test, containing tests for the ↵dan2014-11-10
| | | | | | | | | | sqlite3_blob_write() interface. FossilOrigin-Name: 1df77e5f1bd82de4dc92fe28359c3e56ab3f9ed4
* | Merge recent trunk enhancements, and in particular the improvements todrh2014-10-31
|\| | | | | | | | | the b-tree balancing logic, into the sessions branch. FossilOrigin-Name: 28b044a51215a3f64dafb2cf3b6cb7d2029580ef
| * Add the SQLITE_ENABLE_API_ARMOR compile-time option. This is a work indrh2014-10-24
| | | | | | | | | | progress and is not yet completely functional. FossilOrigin-Name: c297a84bc678f81ffc0aa9139ab73f0ca87c1971
* | Merge recent performance enhancements and the CAST operator enhancementsdrh2014-08-26
|\| | | | | | | | | into the sessions branch. FossilOrigin-Name: 08ae974ac80fabe53f515bbbd93ccf55de8ee671
| * Split the sqlite3Error() routine into sqlite3Error() anddrh2014-08-22
| | | | | | | | | | sqlite3ErrorWithMsg(), for a slight size reduction and performance increase. FossilOrigin-Name: cf561d1f0bb60b3d638632d20bd686dda4fa4a04
* | Merge recent trunk changes into sessions.drh2014-04-18
|\| | | | | FossilOrigin-Name: 95e77efe076ab421bd246119c47dba5dacf9d087
| * Enable the b-tree cursor objects overflow page-number cache, which is ↵dan2014-03-11
| | | | | | | | | | normally enabled only for incr-blob cursors, for all cursors. FossilOrigin-Name: da59198505990a4fe832be7932117c7e014955b7
* | Version 3.8.4 for sessions (plus two minor fixes).drh2014-03-11
|\| | | | | FossilOrigin-Name: 917c410808756e1697bd628f4c9c57dd13d08ce7
| * Attempt to work around MSVC's treatment of __LINE__ as a non-constant valuedrh2014-03-10
| | | | | | | | | | | | in "Edit and Continue" mode by avoiding the use of __LINE__ when SQLITE_VDBE_COVERAGE is not defined. FossilOrigin-Name: 0a5318bc272b844e937cb1df3a07224034bc3450