SQLite

All files named ”src/vdbeblob.c”
Login

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

History for src/vdbeblob.c

2025-03-15
20:35
[cdaded7d75] part of check-in [271e0373a8] Merge the latest trunk enhancements into the reuse-schema branch. (check-in: [271e0373a8] user: drh branch: reuse-schema, size: 16807)
2025-03-10
22:31
[b1b4032cac] part of check-in [2cfccdbe08] Ensure that the TEMP database has been initialized at the beginning of a call to sqlite3_open_blob() for the TEMP database. Fix for the issue reported by forum post 0a556d619b. (check-in: [2cfccdbe08] user: drh branch: trunk, size: 16639)
2025-02-18
14:56
[e14d9eca0c] part of check-in [b2bf063011] Merge the latest trunk enhancements into the reuse-schema branch. (check-in: [b2bf063011] user: drh branch: reuse-schema, size: 16777)
2025-02-08
14:15
[9166b6eb70] part of check-in [351dbbc2bf] Use the sqlite3ColumnIndex() routine to look up a column in a table, rather than using a custom loop. Performance improvement, size reduction, and complexity decrease. (check-in: [351dbbc2bf] user: drh branch: trunk, size: 16609)
2024-08-29
17:42
[9e61cd32f3] part of check-in [87aa6fc212] Merge all the latest trunk enhancements into the reuse-schema branch. (check-in: [87aa6fc212] user: drh branch: reuse-schema, size: 16879)
2024-08-28
19:13
[255be18743] part of check-in [6e84947123] Do not allow sqlite3_blob_open() to work on a any table that contains 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. (check-in: [6e84947123] user: drh branch: trunk, size: 16711)
2023-10-23
19:27
[968d66a7db] part of check-in [52262ac920] Merge the latest trunk enhancments into the reuse-schema branch. (check-in: [52262ac920] user: drh branch: reuse-schema, size: 16692)
2023-10-14
13:24
[13f9287b55] part of check-in [0114a6622a] Add column name to API_ARMOR check in sqlite3_blob_open() to avoid a null-pointer deref. (check-in: [0114a6622a] user: stephan branch: api-armor-audit, size: 16524)
2023-10-10
13:55
[a82465872a] part of check-in [5fefa147ca] Merge the 3.43.2 release changed into the reuse-schema-3.43 branch. (check-in: [5fefa147ca] user: drh branch: reuse-schema-3.43, size: 16678)
2023-10-07
08:00
[4cf5aa130e] part of check-in [545edd5ecf] Fix a resource leak: sqlite3_blob_reopen() was failing to invoke the 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. (check-in: [545edd5ecf] user: drh branch: trunk, size: 16510)
2023-05-13
15:21
[ba63540895] part of check-in [515bb26ee6] Merge the latest 3.42.0 changes into the reuse-schema branch. (check-in: [515bb26ee6] user: drh branch: reuse-schema, size: 16688)
2023-05-10
13:56
[2516697b3e] part of check-in [5bc17cbccd] Fix harmless compiler warnings from the CBMC compiler. (check-in: [5bc17cbccd] user: drh branch: trunk, size: 16520)
2022-01-25
16:28
[aa23a326ff] part of check-in [6e4154d414] Merge the latest trunk enhancements into the reuse-schema branch. (check-in: [6e4154d414] user: drh branch: reuse-schema, size: 16674)
2022-01-24
15:34
[5e61ce31ac] part of check-in [6a45d8fe8b] Make it so that any Parse object is always linked into the database conenction while it is active. Hence, an OOM will cause Parse.nErr to be set. (check-in: [6a45d8fe8b] user: drh branch: trunk, size: 16506)
2021-11-22
16:05
[a01a2a6d08] part of check-in [d08832cb93] Merge recent trunk enhancements into the reuse-schema branch. (check-in: [d08832cb93] user: drh branch: reuse-schema, size: 16728)
2021-11-11
11:23
[29c4118f7e] part of check-in [7cee62f77a] New assert() statements to help prove correct usage of VdbeCursor objects. (check-in: [7cee62f77a] user: drh branch: trunk, size: 16469)
2021-10-21
14:10
[386d80da19] part of check-in [cd15fc3c08] Merge recent trunk enhancements into the reuse-schema branch (check-in: [cd15fc3c08] user: drh branch: reuse-schema, size: 16568)
2021-10-07
12:11
[292e96c01c] part of check-in [50e08338ae] Protect every access to the Table.u union using a nearby assert() or branch. (check-in: [50e08338ae] user: drh branch: trunk, size: 16309)
2021-08-03
16:11
[ae6c3cbc72] part of check-in [d71adc3fd8] Merge recent trunk enhancements into the reuse-schema branch. (check-in: [d71adc3fd8] user: drh branch: reuse-schema, size: 16563)
2021-08-02
18:03
[60a7694760] part of check-in [8b781dcaf6] Refactor field names in the Column object, zCnName and zCnColl, to make them unique and thus easier to find amid all the other code. (check-in: [8b781dcaf6] user: drh branch: trunk, size: 16304)
16:41
[2f3c2ada04] part of check-in [bbb6759bcf] Refactor the Table object to reduce its memory footprint. (check-in: [bbb6759bcf] user: drh branch: trunk, size: 16302)
2021-05-07
14:16
[3356ecdb98] part of check-in [c5e2de1d24] This was suppose to be a merge from trunk. But something went wrong. (check-in: [c5e2de1d24] user: dan branch: bad-merge, size: 16520)
2021-04-21
20:52
[c6b8db50b2] part of check-in [b5564a6fd5] Add the experimental sqlite3session_changeset_size() API. (check-in: [b5564a6fd5] user: dan branch: session-changeset-size, size: 16261)
2021-04-14
15:25
[37d627ef71] part of check-in [b5dc7aba03] Prevent an assert() from failing if sqlite3_blob_reopen() is called on a blob-handle that has already hit an SQLITE_CORRUPT error. (check-in: [b5dc7aba03] user: dan branch: trunk, size: 16252)
2019-08-08
15:47
[40028e015f] part of check-in [edf45cd7c6] Fix spurious "no such table: x1" errors in shared-schema mode that could occur when a query that is a join across two or more databases needs to call the xConnect() methods of a virtual table. (check-in: [edf45cd7c6] user: dan branch: reuse-schema, size: 16472)
2019-07-26
20:54
[ffe8720d6c] part of check-in [7f1e4e4b99] Merge latest changes from trunk into this branch. (check-in: [7f1e4e4b99] user: dan branch: reuse-schema, size: 16452)
2019-07-15
13:58
[253ed82894] part of check-in [52f463d294] Fix a problem that could cause a crash if a blob handle were closed after the associated database handle was closed using sqlite3_close_v2(). (check-in: [52f463d294] user: dan branch: trunk, size: 16213)
2019-02-13
18:29
[08e58c6bef] part of check-in [b102148e71] Avoid crashing after parsing a corrupt schema with a REUSE_SCHEMA connection. (check-in: [b102148e71] user: dan branch: reuse-schema, size: 16419)
15:51
[6e362fafab] part of check-in [34f0f96f47] Fix a problem with the incrblob API and reusable schemas. (check-in: [34f0f96f47] user: dan branch: reuse-schema, size: 16348)
2019-01-06
01:46
[dfde9a1446] part of check-in [2a1cc6327a] Give symbolic names to the special prepared statements used to implement incremental blob I/O. (check-in: [2a1cc6327a] user: drh branch: named-blob-I/O, size: 16468)
2018-11-20
16:02
[bef4668e92] part of check-in [dfab7170ed] Consolidate the two sqlite3SchemaToIndex() routines. (check-in: [dfab7170ed] user: dan branch: reuse-schema1, size: 16188)
2018-11-17
18:11
[3777463101] part of check-in [6d7a7e5faf] Fix further problems with the feature on this branch. (check-in: [6d7a7e5faf] user: dan branch: reuse-schema1, size: 16190)
2017-10-24
17:28
[f5c70f973e] part of check-in [41ef34a1f0] Fix a problem in the incr-blob code causing a new cursor to be opened for every sqlite3_blob_reopen() call. (check-in: [41ef34a1f0] user: dan branch: branch-3.21, size: 16180)
2017-09-16
20:58
[635a79b603] part of check-in [5dbb255a93] Simplify the sqlite3VdbeGet() routine. Smaller, faster, and easier to maintain. (check-in: [5dbb255a93] user: drh branch: trunk, size: 16130)
2017-08-01
20:59
[db3cf91060] part of check-in [436a89b919] Slightly smaller and faster by allocating Parser objects on the stack. (check-in: [436a89b919] user: drh branch: trunk, size: 16069)
2017-02-02
23:57
[a0e2edbfff] part of check-in [53b77838f0] Add the sqlite3_blob_reset() interface. Enhance the behavior of sqlite3_blob objects so that they can go active again after encountering an error by rerunning sqlite3_blob_reopen(). More work needed on the documentation. (check-in: [53b77838f0] user: drh branch: sqlite3_blob_reset, size: 16836)
2017-01-31
19:02
[3598916173] part of check-in [495ea82409] Simplifications to blobSeekToRow(). (check-in: [495ea82409] user: drh branch: micro-optimizations, size: 16194)
2017-01-25
04:41
[2b3d1ad915] part of check-in [57d8dad35c] Ensure that sqlite3_blob_reopen() correctly handles short rows. Proposed fix for ticket [e6e962d6b0f06f46e]. Further testing needed. (check-in: [57d8dad35c] user: drh branch: blob_reopen-fix, size: 16273)
2017-01-21
16:27
[2159f36d2c] part of check-in [347df3c1fd] Change sqlite3_blob_reopen() to call sqlite3VdbeExec() directly rather than going through sqlite3_step(). Performance enhancement. (check-in: [347df3c1fd] user: drh branch: trunk, size: 16160)
15:30
[d6e8d827a3] part of check-in [4cda3b305b] A proof-of-concept for running sqlite3_blob_open() without using OP_Column when operating on a pure key/value table. This demo does not include any corrupt database checking. Uses about 3% fewer CPU cycles on a key/value performance test. (check-in: [4cda3b305b] user: drh branch: kv-access-opt-demo, size: 16639)
14:11
[824f360105] part of check-in [9d197a5323] Remove an unnecessary sqlite3_bind_int64() call from sqlite3_blob_open(). Also other minor refactoring of the sqlite3_blob implementation. (check-in: [9d197a5323] user: drh branch: trunk, size: 16161)
2017-01-20
00:40
[fe3694fcc3] part of check-in [52a61967d9] Minor performance optimizations to sqlite3_blob_open() and sqlite3_blob_reopen(). (check-in: [52a61967d9] user: drh branch: trunk, size: 16287)
2016-11-25
19:18
[f4f98ea672] part of check-in [49ebc219fa] 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: [49ebc219fa] user: drh branch: trunk, size: 16100)
2016-11-22
01:26
[ba5b57b9fa] part of check-in [32be7aae92] Remove unnecessary OP_Close opcodes for a size reduction and performance increase. (check-in: [32be7aae92] user: drh branch: trunk, size: 16090)
2016-08-18
14:33
[3e82a797b6] part of check-in [92a22f0134] Rename the Db.zName field to Db.zDbSName to make it more descriptive and to distinguish it from all of the other "zName" variables scattered throughout the code. (check-in: [92a22f0134] user: drh branch: zDbSName, size: 16138)
2016-06-04
20:37
[83d2d26638] part of check-in [bef35e18dd] 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: [bef35e18dd] user: drh branch: btree-refactor, size: 16135)
2016-02-05
14:15
[c9f2f494b9] part of check-in [a533608cb0] Merge enhancements from trunk. (check-in: [a533608cb0] user: drh branch: sessions, size: 16132)
2016-02-03
01:55
[3b570b7301] part of check-in [ae8b9d2edf] Enhance the internal sqlite3VdbeAddOpList() interface to automatically update jump destinations. Use this feature to simplify the AUTOINCREMENT code generator. (check-in: [ae8b9d2edf] user: drh branch: trunk, size: 14922)
2016-01-20
11:33
[6ccda01a78] part of check-in [327af5f644] Merge recent enhancements from trunk. (check-in: [327af5f644] user: drh branch: sessions, size: 16272)
2016-01-18
00:46
[37c3d11a75] part of check-in [d23849f64a] Simplification of the VDBE bytecode for incremental blob I/O. (check-in: [d23849f64a] user: drh branch: trunk, size: 15062)
2016-01-16
20:50
[8542f282b5] part of check-in [88ceb588bc] Improvements to the way sqlite3VdbeAddOpList() works, resulting in a slightly smaller and faster binary. (check-in: [88ceb588bc] user: drh branch: trunk, size: 15096)
2015-12-02
20:40
[cc13eca96b] part of check-in [d1a1278d7f] Merge recent enhancements from trunk. (check-in: [d1a1278d7f] user: drh branch: sessions, size: 16236)
2015-11-20
19:22
[fdc4a81605] part of check-in [9b1d174d86] Refactor the VdbeCursor object. It is now slightly smaller and faster and is easier to understand. (check-in: [9b1d174d86] user: drh branch: trunk, size: 15026)
2015-09-30
14:50
[b400c25ac8] part of check-in [b2face9aa9] Merge recent enhancements from trunk, and especially the fix for ticket [1b266395d6bc10]. (check-in: [b2face9aa9] user: drh branch: sessions, size: 16233)
2015-09-29
17:20
[565fabd302] part of check-in [7d272aa62c] Use symbolic names XN_ROWID and XN_EXPR in place of the (-1) and (-2) 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. (check-in: [7d272aa62c] user: drh branch: trunk, size: 15023)
2015-09-14
10:47
[53ed7f38ab] part of check-in [22ce9218fb] Merge the latest trunk enhancements. (check-in: [22ce9218fb] user: drh branch: sessions, size: 16230)
2015-08-25
16:57
[1d7b97115e] part of check-in [efaabdb716] Add code to maintain indexes with expression arguments across DELETE, INSERT, 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. (check-in: [efaabdb716] user: drh branch: index-expr, size: 15020)
2015-02-21
15:13
[ab33f9b57c] part of check-in [f36bb5fa5c] Merge all recent trunk changes into the sessions branch. (check-in: [f36bb5fa5c] user: drh branch: sessions, size: 16134)
2015-02-07
15:16
[4f2e8e075d] part of check-in [5df02f50f8] Fix potential 32-bit integer overflow problems on the offset and length 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. (check-in: [5df02f50f8] user: drh branch: trunk, size: 14924)
2015-01-28
20:37
[ad77874402] part of check-in [6f8cda26e9] Add missing VdbeCoverage() macros to the sqlite3_index_writer() implementation. (check-in: [6f8cda26e9] user: drh branch: ota-update, size: 20325)
2014-11-22
09:09
[317c71482e] part of check-in [600cefdd4d] Add SQLITE_ENABLE_OTA pre-processor directives so that this branch may be compiled with or without OTA. (check-in: [600cefdd4d] user: dan branch: ota-update, size: 20271)
2014-11-21
14:37
[845c24601a] part of check-in [7ef44c5b5b] Merge latest trunk changes with this branch. (check-in: [7ef44c5b5b] user: dan branch: ota-update, size: 20004)
2014-11-18
21:20
[cb7359c2d9] part of check-in [f09055f3c4] Merge recent trunk enhancements, including the read-after-ROLLBACK change and the addition of sqlite3_stmt_scanstatus() support, as well as various minor bug fixes. (check-in: [f09055f3c4] user: drh branch: sessions, size: 16040)
2014-11-17
15:07
[42b1854c42] part of check-in [447b33b34a] Fix a problem with the parameters to an OP_Affinity in one of the VM programs generated by sqlite3_index_writer() that was causing an OOB read. (check-in: [447b33b34a] user: dan branch: ota-update, size: 19906)
2014-11-10
17:53
[4af4bfb71f] part of check-in [1df77e5f1b] Add test file e_blobwrite.test, containing tests for the sqlite3_blob_write() interface. (check-in: [1df77e5f1b] user: dan branch: trunk, size: 14830)
2014-10-31
14:53
[d83b1f9e8f] part of check-in [28b044a512] Merge recent trunk enhancements, and in particular the improvements to the b-tree balancing logic, into the sessions branch. (check-in: [28b044a512] user: drh branch: sessions, size: 16076)
2014-10-24
00:35
[8b5442ff09] part of check-in [c297a84bc6] Add the SQLITE_ENABLE_API_ARMOR compile-time option. This is a work in progress and is not yet completely functional. (check-in: [c297a84bc6] user: drh branch: api-armor, size: 14866)
2014-09-15
14:54
[a8e2c3baa3] part of check-in [473a72d700] Ensure the correct collation sequences are used when sorting data in sqlite3ota.c. (check-in: [473a72d700] user: dan branch: ota-update, size: 19906)
12:18
[7ddae314db] part of check-in [cca376bff3] Have the sqlite3_index_writer() VMs check that the final values of records inserted into indexes on rowid tables are integers. (check-in: [cca376bff3] user: dan branch: ota-update, size: 18591)
10:44
[7a28ade0ca] part of check-in [b9b38cb8e2] Add OP_Affinity opcodes to the VMs generated by sqlite3_index_writer(). (check-in: [b9b38cb8e2] user: dan branch: ota-update, size: 18428)
2014-09-06
20:19
[b1b8b2cd86] part of check-in [f988234ba5] Add support for delete operations to the ota extension. (check-in: [f988234ba5] user: dan branch: ota-update, size: 18214)
2014-09-02
19:59
[0bc9d22578] part of check-in [2954ab5010] Add an experimental extension for applying bulk updates to databases. (check-in: [2954ab5010] user: dan branch: ota-update, size: 18029)
2014-08-26
02:15
[d65b01f439] part of check-in [08ae974ac8] Merge recent performance enhancements and the CAST operator enhancements into the sessions branch. (check-in: [08ae974ac8] user: drh branch: sessions, size: 15942)
2014-08-22
18:00
[848238dc73] part of check-in [cf561d1f0b] Split the sqlite3Error() routine into sqlite3Error() and sqlite3ErrorWithMsg(), for a slight size reduction and performance increase. (check-in: [cf561d1f0b] user: drh branch: trunk, size: 14732)
2014-04-18
01:10
[d7c232d1c6] part of check-in [95e77efe07] Merge recent trunk changes into sessions. (check-in: [95e77efe07] user: drh branch: sessions, size: 15931)
2014-03-11
20:33
[9205ce9d3b] part of check-in [da59198505] 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: [da59198505] user: dan branch: overflow-pgno-cache, size: 14721)
01:48
[2d1f0fdb0f] part of check-in [917c410808] Version 3.8.4 for sessions (plus two minor fixes). (check-in: [917c410808] user: drh branch: sessions, size: 16010)
2014-03-10
18:03
[15377abfb5] part of check-in [0a5318bc27] Attempt to work around MSVC's treatment of __LINE__ as a non-constant value in "Edit and Continue" mode by avoiding the use of __LINE__ when SQLITE_VDBE_COVERAGE is not defined. (check-in: [0a5318bc27] user: drh branch: trunk, size: 14800)
2014-03-04
14:34
[666ce65962] part of check-in [7f51ad97f0] Merge the performance enhancements of trunk (and some obscure bug fixes) into the sessions branch. (check-in: [7f51ad97f0] user: drh branch: sessions, size: 15999)
2014-02-17
22:40
[d939997de0] part of check-in [ce184c7bb1] Add logic to do test coverage measurements on the VDBE code. (check-in: [ce184c7bb1] user: drh branch: insert-optimization, size: 14789)
2014-02-11
04:30
[c8c547cc9d] part of check-in [b006792695] Sync the latest trunk changes, and in particular the STAT4 IS NOT NULL fix. (check-in: [b006792695] user: drh branch: sessions, size: 15975)
2014-02-06
23:56
[9542e116c1] part of check-in [2f3376ebf1] Delete the OP_VerifySchema opcode. Enhance OP_Transaction to do the schema version checks that OP_VerifySchema used to do. (check-in: [2f3376ebf1] user: drh branch: trunk, size: 14765)
2013-12-24
12:09
[6e79154111] part of check-in [cfd110bf5d] Merge the latest trunk changes into the sessions branch. (check-in: [cfd110bf5d] user: drh branch: sessions, size: 16158)
2013-12-18
15:11
[bc40f98f25] part of check-in [4c6a659c43] Show changes to the column cache when PRAGMA vdbe_addoptrace=ON is set. (check-in: [4c6a659c43] user: drh branch: column-cache-debug, size: 14948)
2013-11-26
18:00
[a280946174] part of check-in [fc9ae83956] Merge in performance enhancements from trunk. (check-in: [fc9ae83956] user: drh branch: sessions, size: 16154)
2013-11-20
21:51
[8cd05a5630] part of check-in [5f9d506885] Reduce the size of the VdbeCursor object from 144 to 120 bytes. (check-in: [5f9d506885] user: drh branch: OP_Column-refactor, size: 14944)
2013-11-15
01:10
[d883398f72] part of check-in [8dc5c76c76] Rework the logic that factors constant expressions out of inner loops, making it both simpler and faster. (check-in: [8dc5c76c76] user: drh branch: expr-codegen-enhancement, size: 14926)
2013-11-11
22:55
[0ab871fa74] part of check-in [5addd1234d] Merge in the WITHOUT ROWID changes. A few tests are failing now. They will be fixed in a follow-on check-in. (check-in: [5addd1234d] user: drh branch: sessions, size: 16106)
2013-11-02
22:09
[ff60adf295] part of check-in [39e32187b6] Many new test cases added, that mostly work. Currently 18 errors in without_rowid3.test. Also there is a hack marked by a /*FIXME*/ comment on at fkey.c:547 that needs fixing. (check-in: [39e32187b6] user: drh branch: omit-rowid, size: 14896)
2013-10-22
18:01
[ef973d8d9f] part of check-in [a106ce86cd] The Index object now has nKeyCol and nColumn. nColumn is the total number of columns and nKeyCol is the number of key columns. Currently these always differ by one. Refactor aiColumn[] to be of type i16 instead of int. (check-in: [a106ce86cd] user: drh branch: omit-rowid, size: 14761)
2013-04-22
23:59
[1268e0bcb8] part of check-in [6994826c07] Merge the latest trunk changes into the sessions branch. (check-in: [6994826c07] user: drh branch: sessions, size: 15971)
2013-04-06
18:06
[5dc7962777] part of check-in [c1d7304c80] Increase the default SQLITE_MAX_SCHEMA_RETRY to 50. Make sure that macro covers every case where a prepared statement might need to be reprepared due to a schema change. The sqlite3_exec() interface now uses sqlite3_prepare_v2(). (check-in: [c1d7304c80] user: drh branch: trunk, size: 14761)
2011-09-20
15:53
[099469943d] part of check-in [892723575c] Add SQLITE_STMTSTATUS_CACHE_HIT/MISS and SQLITE_DB_STATUS_CACHE_HIT/MISS. For querying the number of pager cache hits and misses on a statement or connection basis. (check-in: [892723575c] user: dan branch: cache-stats, size: 15023)
2011-09-16
19:40
[11248c6362] part of check-in [5efb02949d] Merge the latest trunk changes into the sessions branch. (check-in: [5efb02949d] user: drh branch: sessions, size: 15949)
01:34
[32f2a4899d] part of check-in [7f00552b73] Add the new OP_Once opcode. Use it to clean up and simplify various one-time initialization sections in the code, including the fix for ticket [002caede898ae]. (check-in: [7f00552b73] user: drh branch: tkt-002caede898, size: 14739)
2011-08-03
21:32
[fde0374afb] part of check-in [62c4463404] Avoid segfaulting on an incremental blob write if SQLITE_ENABLE_PREUPDATE_HOOK set but no pre-update hooks are defined. (check-in: [62c4463404] user: drh branch: sessions, size: 15955)
2011-07-11
19:45
[a547f286b6] part of check-in [82ac16c4f8] Modifications so that the sessions extension works with blob handles. (check-in: [82ac16c4f8] user: dan branch: sessions, size: 15929)
2011-06-01
18:15
[f024f0bf42] part of check-in [b3aaf715b6] Refactor the SQL parameter processing so that parameter names for values that are optimized out of the prepare statement are not forgotten. (check-in: [b3aaf715b6] user: drh branch: trunk, size: 14745)
2011-03-18
21:55
[c3ccb7c873] part of check-in [36c04dd169] Add a generation counter to the Schema object and enhance OP_VerifySchema to also check the Schema generation. Fix for ticket [f7b4edece25c99]. (check-in: [36c04dd169] user: drh branch: trunk, size: 14677)
2010-12-06
17:11
[18955f0ee6] part of check-in [476a8b4921] Have sqlite3_blob_bytes() return 0 following a failed call to sqlite3_reopen_blob(). (check-in: [476a8b4921] user: dan branch: trunk, size: 14616)
2010-10-26
18:42
[e0ce3c54cc] part of check-in [97c6b2616d] Structural coverage tests for vdbeblob.c. Including experimental new API sqlite3_blob_reopen(). (check-in: [97c6b2616d] user: dan branch: experimental, size: 14560)
11:56
[c2ed68a4f8] part of check-in [d1cc5c93f0] Add missing header comments for changes related to the experimental sqlite3_blob_reopen() API. (check-in: [d1cc5c93f0] user: dan branch: experimental, size: 14505)
2010-10-21
15:49
[e6e485934f] part of check-in [fd1e5cade0] Merge trunk changes into experimental branch. (check-in: [fd1e5cade0] user: dan branch: experimental, size: 13445)
15:12
[6e10c214ef] part of check-in [f91471e723] Fix some segfaults that could occur in obscure circumstances where error messages contained characters that could be mistaken for printf format specifiers. (check-in: [f91471e723] user: dan branch: trunk, size: 11947)
2010-10-20
18:56
[c8cbe6ce28] part of check-in [d0a450ce78] Updates to FTS4 to improve performance and make more accurate cost estimates for prefix terms. (check-in: [d0a450ce78] user: dan branch: experimental, size: 13447)
2010-06-19
19:06
[258a6010ba] part of check-in [3e76a9f2c0] Fix an assert() failure that could occur if compiling with OMIT_SHARED_CACHE. (check-in: [3e76a9f2c0] user: dan branch: experimental, size: 11922)
2010-02-23
20:11
[5327132a42] part of check-in [edea3bb740] Continuing improvements to error reporting and the sqlite3_log() routine. (check-in: [edea3bb740] user: drh branch: trunk, size: 11837)
17:36
[94d4715bb7] part of check-in [7c4cca6d1a] Remove the obsolete sqlite3SafetyOn() mechanism. Add additional logging output for CORRUPT, and CANTOPEN errors. (check-in: [7c4cca6d1a] user: drh branch: trunk, size: 11832)
2009-11-10
01:30
[84f924700a] part of check-in [f6c045f649] Remove the obsolete "$Id:$" RCS identifier strings from the source code. (check-in: [f6c045f649] user: drh branch: trunk, size: 12162)
2009-10-02
06:35
[9bfaeab22e] part of check-in [dca2a7f608] Add a test to check that the incrblob API cannot be used to write to an IPK column. Also a comment to explain why the incrblob code does not need to check if a column is part of a parent key before writing to it. (check-in: [dca2a7f608] user: dan branch: trunk, size: 12229)
2009-09-19
17:00
[3ba0f7ba1b] part of check-in [d5d3998118] Check in implementation of foreign key constraints. (check-in: [d5d3998118] user: dan branch: trunk, size: 11976)
2009-09-08
19:15
[4d6b702ca7] part of check-in [aec9dbd8d2] Combine the OP_Statement and OP_Transaction opcodes. (check-in: [aec9dbd8d2] user: dan branch: trunk, size: 11502)
2009-08-28
18:53
[f93cb60ac3] part of check-in [9b9c192115] Changes to support recursive triggers. (check-in: [9b9c192115] user: dan branch: trunk, size: 11499)
2009-07-02
07:47
[a3f3e0e877] part of check-in [e3c055f167] 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: [e3c055f167] user: danielk1977 branch: trunk, size: 11496)
2009-06-29
06:00
[f3d3151d8d] part of check-in [f17ef37897] 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: [f17ef37897] user: danielk1977 branch: trunk, size: 11496)
2009-06-01
19:53
[c25d7e7bc6] part of check-in [ea7dfde700] Avoid allocating large objects on the stack in the incremental BLOB I/O interface. (CVS 6703) (check-in: [ea7dfde700] user: drh branch: trunk, size: 11175)
2009-05-09
15:17
[5c5abe9af2] part of check-in [999d507b44] Change sqlite_blob_open() so that it zeros the output pBlob pointer when it fails. The other sqlite3_blob interfaces accept a NULL pointer as input. (CVS 6622) (check-in: [999d507b44] user: drh branch: trunk, size: 10906)
2009-03-24
15:08
[e67757450a] part of check-in [ea74d8dc62] Changes to insure that lookaside memory allocations are never used to hold schema content. Ticket #3743. (CVS 6377) (check-in: [ea74d8dc62] user: drh branch: trunk, size: 10785)
2009-03-19
18:51
[3408f5e1ab] part of check-in [cc0d925669] Fix a couple of fairly obscure cases where an assert() could fail following a malloc failure. (CVS 6360) (check-in: [cc0d925669] user: danielk1977 branch: trunk, size: 10699)
2009-03-05
03:48
[2852bae14c] part of check-in [5477833ec7] Removed compiler warnings from MSVC builds. Ticket #3701. (CVS 6335) (check-in: [5477833ec7] user: shane branch: trunk, size: 10699)
2009-02-20
10:58
[08d6bac666] part of check-in [e43ed64963] Instead of using SetNumColumns, specify the number of columns in a table or index using the P4 argument. (CVS 6310) (check-in: [e43ed64963] user: danielk1977 branch: trunk, size: 10696)
03:55
[b06daa322e] part of check-in [48b77b0493] Add a count parameter to the OP_Variable opcode and use it to simplify prepared statements that copy consecutive unnamed parameters into consecutive registers (a common case). (CVS 6309) (check-in: [48b77b0493] user: drh branch: trunk, size: 10797)
2008-10-02
14:49
[b0dcebfafe] part of check-in [f6074c0b9b] Fix for sqlite3_blob_write(): If either 3rd or 4th argument is less than zero, return SQLITE_ERROR. H17879. (CVS 5762) (check-in: [f6074c0b9b] user: danielk1977 branch: trunk, size: 10805)
2008-07-28
19:34
[f93110888d] part of check-in [e48f9697e9] 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: [e48f9697e9] user: drh branch: trunk, size: 10729)
2008-07-10
00:32
[a20fe93450] part of check-in [636cd72329] 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: [636cd72329] user: drh branch: trunk, size: 10711)
2008-06-16
14:19
[9345f6dcd6] part of check-in [1b9478da2f] Fix a problem with the incremental blob API. sqlite3_blob_open() was always reading the data for the leftmost column of the row that the opened blob was stored in. If this column happened to contain a (the) large blob, sqlite would make a large memory allocation to read the data into. Which defeats the purpose of using incremental blobs. (CVS 5222) (check-in: [1b9478da2f] user: danielk1977 branch: trunk, size: 10732)
2008-04-24
09:49
[554736781e] part of check-in [6039328fe0] Ensure that it is not possible to open either virtual table or view columns using the blob API. Ticket #3078. (CVS 5041) (check-in: [6039328fe0] user: danielk1977 branch: trunk, size: 10687)
2008-03-25
09:47
[cc713c142c] part of check-in [0471536481] Use a vdbe memory cell to allocate the space required for vdbe cursors. (CVS 4912) (check-in: [0471536481] user: danielk1977 branch: trunk, size: 10406)
2008-01-25
15:04
[63c750acc7] part of check-in [50815a82e0] Error messages says "no such view" instead of "no such table" when trying to DROP a VIEW that does not exist. (CVS 4750) (check-in: [50815a82e0] user: drh branch: trunk, size: 10321)
2008-01-23
03:03
[3626867e85] part of check-in [5375ad6b4b] Make sqlite3SafetyOn() and sqlite3SafetyOff() macros which disappear when compiling without -DSQLITE_DEBUG=1. (CVS 4744) (check-in: [5375ad6b4b] user: drh branch: trunk, size: 10318)
2008-01-10
23:50
[e386d49d83] part of check-in [8cbd46517f] More work toward converting the VM into a register-based machine. (CVS 4704) (check-in: [8cbd46517f] user: drh branch: trunk, size: 10300)
2008-01-03
07:54
[b90f7494c4] part of check-in [35da261daf] Change OP_OpenRead and OP_OpenWrite so that the database number is read from the P3 operand, not the stack. (CVS 4663) (check-in: [35da261daf] user: danielk1977 branch: trunk, size: 10307)
2007-08-30
01:19
[82f51cdf9b] part of check-in [e40d40a5d4] Fix for the sqlite3AbortOtherActiveVdbes() problem. (CVS 4328) (check-in: [e40d40a5d4] user: drh branch: trunk, size: 10404)
2007-08-29
17:43
[4da667be7d] part of check-in [2732af0ec7] Improvements to mutex asserts. The quick test runs to completion without assertion faults. (CVS 4324) (check-in: [2732af0ec7] user: drh branch: trunk, size: 10422)
2007-08-21
19:33
[d12ed95dac] part of check-in [9287276191] The sqlite3_value object now carries an sqlite3* pointer to use for recording malloc failures. This eliminates the need to pass sqlite3* pointers into many internal interfaces. Also added more mutexing. (CVS 4263) (check-in: [9287276191] user: drh branch: trunk, size: 10074)
15:13
[ac223e6d3a] part of check-in [3787563e90] Readded the sqlite3_open_v2() interface. No test cases yet. Additional progress toward adding mutexes to all interfaces. (CVS 4261) (check-in: [3787563e90] user: drh branch: trunk, size: 10097)
2007-08-16
04:30
[cf9ee3c7d9] part of check-in [deb7ecd65f] Half-way through a major refactoring of the memory allocation. I have not even attempted to compile so I am certain there are countless errors. (CVS 4231) (check-in: [deb7ecd65f] user: drh branch: trunk, size: 9487)
2007-06-27
00:36
[bb30b3e387] part of check-in [3bd990be3c] Set the connection error code when sqlite3_blob_read() or sqlite3_blob_write() fail. Ticket #2464. (CVS 4137) (check-in: [3bd990be3c] user: drh branch: trunk, size: 9490)
2007-05-08
20:37
[96f3572fdc] part of check-in [e9f56ead05] Fix the amalgamation generator so that all non-API functions have file scope. (CVS 3958) (check-in: [e9f56ead05] user: drh branch: trunk, size: 9468)
2007-05-05
18:39
[57127dc9fd] part of check-in [d51274f1cc] Factor out btree test logic into a separate test_btree.c file. (CVS 3928) (check-in: [d51274f1cc] user: drh branch: trunk, size: 9460)
2007-05-04
18:36
[6a25e9bbb8] part of check-in [4516416b4d] Test interaction of incremental io and other database writes. (CVS 3922) (check-in: [4516416b4d] user: danielk1977 branch: trunk, size: 9075)
13:15
[2944bca84a] part of check-in [ba4845b32b] Eliminate all uses of sprintf() and strcpy(). These were not being misused. But getting rid of them removes a library dependency. And it avoids warnings from the OpenBSD compiler. Ticket #2336. (CVS 3916) (check-in: [ba4845b32b] user: drh branch: trunk, size: 8588)
12:05
[58b3f68f6b] part of check-in [641e55284e] Test cases and corrections to IO and malloc() error handling in incremental blob IO functions. (CVS 3915) (check-in: [641e55284e] user: danielk1977 branch: trunk, size: 8534)
2007-05-03
18:14
[ed2f9b46cc] part of check-in [64705410bd] Test some more incremental IO error cases. (CVS 3910) (check-in: [64705410bd] user: danielk1977 branch: trunk, size: 8246)
16:31
[74fe0c7fc1] part of check-in [e12c522383] Test cases and minor bugfixes for incremental blob APIs. (CVS 3907) (check-in: [e12c522383] user: danielk1977 branch: trunk, size: 7448)
11:43
[0e070ded61] part of check-in [db54a9466e] Minor bugfixes for incrblob mode. (CVS 3903) (check-in: [db54a9466e] user: danielk1977 branch: trunk, size: 7347)
2007-05-02
16:48
[396148feb5] part of check-in [349f1ea789] Cache the location of overflow pages in cursors used for incremental blob IO. (CVS 3899) (check-in: [349f1ea789] user: danielk1977 branch: trunk, size: 7132)
2007-05-01
17:49
Added: [6d3128c71d] part of check-in [c444836e7b] First approximation of incremental blob IO API. (CVS 3892) (check-in: [c444836e7b] user: danielk1977 branch: trunk, size: 7088)