aboutsummaryrefslogtreecommitdiff
path: root/src/vdbeInt.h
Commit message (Collapse)AuthorAge
* Fix alignment problems on Linux with -m32 and on Mac PPC.drh2025-03-15
| | | FossilOrigin-Name: 8a91aeca60548d5cd19add128cf65b9c3815c9103b1ef8ff6bc02711b6d709de
* KeyInfo is now an indeterminate size, so we cannot declare a variable of thatdrh2025-03-14
| | | | | type, only a pointer to an instance of that type. FossilOrigin-Name: 37b687dc2d3b9dc82ed09a9c5b2c00e576b1eebe358a20d18a3da190347b644e
* Make use of the flexible-array feature of C99, when available, to try todrh2025-03-14
| | | | | | pacify -fsanitize=strict-bounds. This check-in fixes the core. There is more yet to do in FTS3, RTREE, and in FTS5. FossilOrigin-Name: 6fd6b32d06bd6a705e5140cd613af823b8183a6f6a9ceeeedfcf5e8b50821d68
* Fix GCC-isms and compiler warnings introduced by recent check-insdrh2025-02-08
| | | | | [c56092507c967230] and [6e57848fe1e0e2b5]. FossilOrigin-Name: 91102c04375f83cffcd0f3204870e476636f651710e9e6fb773cf74085ef7636
* Fix comments on the Parse.nMaxArgs field so that they are correct. Adddrh2025-02-07
| | | | | | assert()s to ensure they are correct. Other Parse changes to reduce the amount of memset() needed to initialize it. FossilOrigin-Name: c56092507c96723030589ddd9121bc993d615a7acd453305fc3b1dbb9e30554c
* Performance improvements to the (debug-use only) Mem.pScopyFrom logic, resultingdrh2025-01-21
| | | | | | | in about 8x faster performance under -DSQLITE_DEBUG for the query in from [forum:/forumpost/0025389d0860af82|forum post 0025389d0860af82]. This change only affects builds that use -DSQLITE_DEBUG. FossilOrigin-Name: 7fb1ae25d1572dd7709a0f850c148a5f745a524f01ea231e29a1ebc37c173fb9
* Increase the maximum number of arguments on an SQL function to 1000 with thedrh2024-12-12
| | | | | capability to increase it further up to 32767 using a compile-time option. FossilOrigin-Name: e8d7d68ba0bb0bc2f948db5d9966990a5d23597fc3658b7cd0bc99d53c7353a9
* Avoid loading the entire record into memory for an sqlite3_preupdate_old() ↵dan2024-11-04
| | | | | call that retrieves an IPK value. FossilOrigin-Name: 7f4de43733200beeb3ff0a70d51bbc68f5331895698ea95a82741cfd7bb66834
* Fix the preupdate hook so that it works when the "old.*" row has a column ↵dan2024-09-18
| | | | | with a non-NULL default value that was added by ALTER TABLE ADD COLUMN after the current record was created. FossilOrigin-Name: 00a398cf900179aa5a8aab09fe4a671d99e7a31583282848ef39390f2ef246eb
* The original column-cache implementation from check-in [ab1edcc7fedcf279]drh2023-07-31
| | | | | | | (merged to trunk at [771fe35074b50b8d]) is unsound. This check-in fixes the issue. Had to give back a little performance, the optimization is still a overall win. FossilOrigin-Name: ec95e970fb737adf0fab3cb4363040b036949e5eb966fc2d030a20f95e2bde60
* Add the sqlite3_stmt_explain() API.drh2023-07-28
|\ | | | | FossilOrigin-Name: 0443c0ef85f8f6f3efdee68bf59126c9459f08a58458756f8cbeeaf043d43a86
| * Enhance the sqlite3_stmt_explain() interface so that avoids unnecessarydrh2023-07-18
| | | | | | | | | | reprepare operations. FossilOrigin-Name: 050f773addd605f6690348c98e9000a9a3663bbc26288a71973fd7b40468e8ab
* | The OP_Column opcode caches large column values coming from overflow pages.drh2023-07-27
| | | | | | FossilOrigin-Name: ab1edcc7fedcf27922d5db4bc1bc673b1495ca9c66eb6debdda7b7776c068888
* | Further improvements to large string handling in relation to JSON.drh2023-07-21
|/ | | FossilOrigin-Name: 1e5df0aa3dae5cadbf1d07c718ae2a5212543300b68e49d35e8c96855a7f619c
* Add a C-source spell-checking facility. make misspell (on Nix)larrybr2023-06-07
| | | FossilOrigin-Name: 26c1bb4bd9e9f56613c3aa87407a7f562fd4ebde5bfd6dece02078001d9a45f8
* Enhance the sqlite3_vtab_in_first() and sqlite3_vtab_in_next() interfaces sodrh2023-01-25
| | | | | | | | that they reliably return SQLITE_ERROR (and not SQLITE_MISUSE) if they are invoked on a parameter that did not have multi-value IN processing enabled via a prior call to sqlite3_vtab_in(). See [forum:/forumpost/a823d4a3d5f73def|forum thread a823d4a3d5f73def]. FossilOrigin-Name: 144326dc171025dc8b5a77bebd8de3c19d5244ab807f5aa41f95313a25b880bc
* Rename the Vdbe.pResultSet field to pResultRow in order to better distinguishdrh2022-12-22
| | | | | it from other variables with similar names. FossilOrigin-Name: 1fd6211ef7bd26ed625177bfedfd5153ace547de6a71365ecfa076578d043f1a
* Reduce the overhead of SQLITE_ENABLE_STMT_SCANSTATUS some.dan2022-12-07
| | | FossilOrigin-Name: 212927e97e7be7d237de08359dce0dfb9211ac406b32009a6e15afd79c006475
* Add CYCLES scanstat measurement to "USE TEMP B-TREE FOR ORDER BY" lines.dan2022-12-03
| | | FossilOrigin-Name: 365011ae8b7e3fcaa2c4ea9601231a3ef2223e60d7a53ec33013109dca22ad58
* Enhance the sqlite3_stmt_scanstatus() API and add ↵dan2022-12-02
| | | | | sqlite3_stmt_scanstatus_v2(). For creation of easier to read query performance reports. FossilOrigin-Name: 55800833645739efeddcacef464c623931cb6aeb43f4219b4e4faf473c25c8bb
* Change the names of the Vdbe.pVNext and Vdbe.ppVPrev fields to make themdrh2022-08-23
| | | | | unique. Change to ppVPrev to save a few bytes and a few CPU cycles. FossilOrigin-Name: 34b8ea31877ae8b40729d37b3f51ae7e15f38be841881ea4a37c9c8f0a52896d
* Fix the OP_NullRow opcode so that it works even if it applied to andrh2022-06-14
| | | | | ephemeral cursor that has not yet been created. FossilOrigin-Name: 0e925654c24774933c7738c68f704b229c68e18c8baa45f506b8d6f09164d0d8
* Fix assert() statements associated with artifical null-value cursorsdrh2022-04-14
| | | | | created by RIGHT JOIN. FossilOrigin-Name: f5bce5f152259767497ae6826c558003822d976b3f35f4d74edee59a3490efb2
* Omit the Vdbe.runOnlyOnce flag (simplifying the prepared statementdrh2022-04-03
| | | | | | implementation) and accomplish the same result by adding an "OP_Expire 1 1" opcode to prepared statements that would normally have runOnlyOnce set. FossilOrigin-Name: 6e20e1c46d17ac6aba21e02b57649af51cfa415d83d0c001b30677d2fd1f1dc1
* Fix harmless compiler warnings.drh2022-04-02
| | | FossilOrigin-Name: 8a3a3486358d076c34e515ac92663a04f0c7ff10f405094cb5b6ada0d5f05cdc
* In-line the sqlite3VdbeSerialPut() routine into the OP_MakeRecord opcode.drh2022-04-02
| | | | | | This allows some duplicate comparisons to be omitted, resulting in a size reduction and performance increase. FossilOrigin-Name: 6f4d6f212a3558c27be6e9dcf71cec43c424d445e5889c6e91dde84a19c5a2c1
* Omit the Vdbe.doingRerun field for a slight size reduction and performance gain.drh2022-04-01
| | | FossilOrigin-Name: e93297a9d775688e6274c54ba75b19fc1fe8b29b73b9b5e7f94f3f2ca37f045f
* Provide and use a version of sqlite3VdbeFreeCursor() that guarantees thedrh2022-04-01
| | | | | | cursor pointer is not NULL. This saves a few bytes of code space and a few CPU cycles. FossilOrigin-Name: cb5e6f8e265c91221227e5f15b95798c688773262407dd138d414103184702f6
* Refactor the Vdbe.iVdbeMagic field into Vdbe.eVdbeState. Split the RUNNINGdrh2022-04-01
|\ | | | | | | | | | | state into separate RUNNING and READY. This gives a size reduction and performance increase. FossilOrigin-Name: 5a50a42fde9477868fad31099f5fe976437825fac44f8b3a4cf6c739c7667bbb
| * Rename Vdbe.iVdbeMagic to eVdbeState. Remove unnecessary states. This isdrh2022-03-31
| | | | | | | | | | a preliminary step toward splitting RUN_STATE out into several other states. FossilOrigin-Name: ff91191d232305d44ae6c0fbca2542a749422dc716fa1fd5d54f58c7d6052c14
* | Have the sqlite3_context object carry the encoding for the prepared statementdrh2022-04-01
|/ | | | | | | | that it represents, so that sqlite3_result() and similar can set the encoding according to the prepared statement, even if the database encoding has changed. dbsqlfuzz c409b10d0a6bccf78ab00f47e1d29d42ee5b3565 FossilOrigin-Name: d4e19314f564126e180e091f9135c7bc55a10442edb46fbd3a4cfad21201dfa6
* Faster version of sqlite3VdbeMemRelease().drh2022-03-02
| | | FossilOrigin-Name: 86c5fa2f301e4bdb538099f654b70b6ba0e214778cba2c53c53844e5d7ca129f
* Reorganize the bits in Mem.flags. Free up one bit for reuse.drh2022-02-28
| | | FossilOrigin-Name: fe454291d959c299d6608dfc165c9e05fb53e431b0fc7aed1cb4a557cd61d8ab
* Expand the comment on the definition of the Mem object to better explain thedrh2022-02-28
| | | | | meanings of the various flag bits. FossilOrigin-Name: f2f0426035d4e0334be000a3eb62bbd7d61fdab7c2ef9ba13cfdf6482396dd13
* The performance increase in the previous check-in of this branch was due todrh2022-02-28
| | | | | | | the revised loop in initMemArray() and reordering fields of Mem - not the call the memcpy(). Changing the code to avoid memcpy() results in an even better gain, and code that is far less dodgy. FossilOrigin-Name: d74aa979530d4236f5900d2ef998b27065d352d7c18bcd822e5c8f1041a1a81c
* An optimization to initMemArray() saves almost 500K cycles. But it seems adrh2022-02-28
| | | | | | little dodgy. I want to think about this more before merging to trunk. Perhaps there is a cleaner way to accomplish the same. FossilOrigin-Name: 7fefd8676110a53e6c98a697e2dbf820740fe602a1e83b6caa8d099c41a15d80
* Revise the initialization processing for OP_Column to make it aboutdrh2022-02-25
| | | | | 1.8 million cycles faster. FossilOrigin-Name: 3b7259ebd5b9b1f75577521c4d0d96f5503d302a513b20a0b17dbe8c3823dd33
* Refactor sqlite3_vtab_in() to make use of the existingdrh2022-02-02
| | | | | | sqlite3_value_pointer() mechanism for passing the list of IN operator RHS values into xFilter, for improved memory safety. FossilOrigin-Name: 8965929be236fe1a6994f31b94c1b7590c7c1e809470c542a76f3e0e275d032f
* Add new interfaces to enable virtual table to process IN operator constraintsdrh2022-02-01
| | | | | all at once, rather than one element at a time. FossilOrigin-Name: eb84b80e1f6d8c32bf0c9e1731f0233de0160a13f714f766779ae01fdf504e7b
* Small performance and size optimization to allocateCursor().drh2022-01-03
| | | FossilOrigin-Name: 23f042669aff535afa6ee9de367656848d01e90a1c9dab9359fa938a615b4195
* Omit the return value from sqlite3VdbeSerialGet() for a size reductiondrh2021-12-14
| | | | | and performance improvement. FossilOrigin-Name: 788e79f881d443fc1b3a213a7ba4f19bfd245e96c15bb21fcb6bffd92c4320b8
* Add SQLITE_STMTSTATUS_FILTER_HIT and _MISS for tracking the effectivenessdrh2021-12-06
| | | | | of Bloom filters. FossilOrigin-Name: 24ba535d200fc8a99dd8e66c6d100b5f6ae442098bafb152008429398eefe3e7
* Add a Bloom filter to the automatic-index mechanism.drh2021-12-01
| | | FossilOrigin-Name: 50ac4de1d7cbb586ea7969e1ae80ea8b021e194edc2fa7db19374b4ee9369bee
* Fix the zeroblob() function and related APIs so that they work with ↵dan2021-11-08
| | | | | SQLITE_OMIT_INCRBLOB builds. FossilOrigin-Name: bc401a75dd9f3c29c5969ae36264e68ccefc0937e44e232ca1f6b550f7fd6e22
* More precision in comparing integers and floating point values whiledrh2021-07-19
| | | | | | processing the integer primary key for OP_SeekGE and similar. [forum:/forumpost/2bdb86a068|Forum post 2bdb86a068]. FossilOrigin-Name: f9c6426de3b413ff8fcf04a00931ca5f123f996c572b35181af114afa8d811d7
* Add the sqlite3_changes64() and sqlite3_total_changes64() API functions.dan2021-06-22
| | | FossilOrigin-Name: 48fdec22c966003f5577e0bf52906ef90df11e4e395723a646304e67ed976f37
* Set the database connection error code for an oversize argument todrh2021-06-09
| | | | | | | sqlite3_bind_blob64() or sqlite3_bind_text64(). [forum:/info/a636276f0d451667|Forum post a636276f0d451667] and [forum/forumpost/33821c8db543c|33821c8db543c]. FossilOrigin-Name: 56ff58c0b8905aa10c85f1418da8d6089d23fd9a220c5cb17027d46affe05002
* Add the experimental sqlite3session_changeset_size() API.dan2021-04-21
| | | FossilOrigin-Name: b5564a6fd54875db1de884fdc0e5eeabcd6aa5595ad03a8a60843503e830a2d8
* Further sanity checking of the OpenDup cursors.drh2021-03-18
| | | FossilOrigin-Name: 0ec71cf16983697f68ab8d921d80a5f39611e4cb5e6e19cbc4a9ad6d49bfc835
* Change the name of Vdbe.magic to Vdbe.iVdbeMagic to disambiguate withdrh2021-02-03
| | | | | sqlite3.magic. FossilOrigin-Name: 6b29e549bb34933bfd0758e31085e65dcc0f75446c478fc775d96cf01c22cf43