aboutsummaryrefslogtreecommitdiff
path: root/src/vdbeaux.c
Commit message (Collapse)AuthorAge
...
| * Add an sqlite3_db_config() option - SQLITE_DBCONFIG_STMT_SCANSTATS - for ↵dan2023-02-28
| | | | | | | | | | enabling and disabling the collection of sqlite3_stmt_scanstats() statistics in SQLITE_ENABLE_STMT_SCANSTATUS builds. Collection of statistics is disabled by default. FossilOrigin-Name: 0f5579bef27b84ee855065cfe87703c51e1f9773906a9e0d4e4dafc90bd0e553
| * Back out the 'txn' enhancement to date/time functions. The duration of adrh2023-02-08
| | | | | | | | | | | | "transaction" is confused and needs to be straightened out prior to moving forward with this change. FossilOrigin-Name: 4a145f07322d768a07619bed27e0390d50f3a01d07787b9296234a5ceb6f1218
| * Add support for the 'txn' argument to date/time functions that works likedrh2023-02-07
| | | | | | | | | | 'now' but keeps the same time for the entire transaction. FossilOrigin-Name: 5e4f45af96247e29910403a63ac148cb313b005f9c014b37a9a49d98f5fef9a6
| * Reduce the frequency of calls to sqlite3ProgressCheck().drh2023-01-12
| | | | | | FossilOrigin-Name: 795aca4a269ea4ede547844037c218ac714c40e8bee003e4d9b786befc9cf97a
| * Attempt to provide a mechanism to do early termination of long-runningdrh2023-01-12
| | | | | | | | | | | | | | statement preparation by invoking the progress handler at strategic points during sqlite3_parpare(). This experiment shows that sqlite3_prepare() might leave the resulting prepared statement uninitialized following an interrupt. FossilOrigin-Name: 79636f2d80aee70832913a78933da2a7e30cc037810b93903ebbc1925ea93fef
| * Fix lots of harmless, nuisance compiler warnings, mostly unused parameterdrh2022-12-23
| | | | | | | | | | warnings in extensions. FossilOrigin-Name: c14bbe1606c1450b709970f922b94a641dfc8f9bd09126501d7dc4db99ea4772
| * Avoid having to reinitialize Vdbe.pResultRow upon each call to sqlite3_step()drh2022-12-22
| | | | | | | | | | for a small size reduction and performance increase. FossilOrigin-Name: 6a00d67f5955ab86eea982c27b3a03b680fdf644ec63f49586ade6342a4d64a6
| * 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
| * Update comments in sqlite.h.in to account for sqlite3_stmt_scanstatus_v2().dan2022-12-05
| | | | | | FossilOrigin-Name: 009462f2344b1f468cf9440343a47fec68d783a2bfb4fa6168bb227ec910b918
| * Add loops and rows counters to "USE TEMP B-TREE FOR ORDER BY" records. Also ↵dan2022-12-05
| | | | | | | | | | fix the sqliteHwtime() function so that it returns a 64-bit value. FossilOrigin-Name: 41a0e05e8c0fca3b803fe4bd017a157c172b2ca518356a2a4d4ed4f12d01a1e3
| * 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
| * Fix an over-zealous assert() reported by Yong Heng.drh2022-11-30
| | | | | | FossilOrigin-Name: 6ee61f8cede4998f0c838d6506b058c6b09f34b3d7f30ed296100785c93f8d00
| * Enhance the ability of the OP_Found and similar opcodes to detect truncateddrh2022-11-04
| | | | | | | | | | | | index records and report SQLITE_CORRUPT. dbsqlfuzz 2b12f90aeff8e081706c7e9b58834f04869f446c. Test cases in TH3. FossilOrigin-Name: 059a09da2c5fd9c7e723c713565fbaf71602079feef0704129cc5cbbd0033936
| * Correct sort order for serial-type 10 entries in the database file. Thisdrh2022-10-18
| | | | | | | | | | is a continuation of [4fb77e96fa89a23a]. FossilOrigin-Name: 904b54625d985e742888e06ba792cab316b9ec9d6669d9cf509bac48030373ca
| * Fix sqlite3VdbeRecordCompareWithSkip() so that it sorts the internal-usedrh2022-10-18
| | | | | | | | | | | | serial-type of 10 together with NULLs. dbsqlfuzz 5ff35e9d49a5fcca5051e23960ff2f483a538bab FossilOrigin-Name: 4fb77e96fa89a23a9365320c4190834edd6c09cfaf1ca30b34ce19b747ebbec0
| * Optimize the IS NULL and IS NOT NULL operators so that they avoid loadingdrh2022-10-13
| |\ | | | | | | | | | | | | | | | large strings or blobs off of disk if all it needs to know is whether or not the string or blob is NULL. FossilOrigin-Name: cb94350185f555c333b628ee846c47bcc9df5f76bb82de569b8322f30dbbe1bc
| | * Adjust the implementation of sqlite3VdbeTypeofColumn() to make it easierdrh2022-10-13
| | | | | | | | | | | | | | | to test (and slightly smaller). FossilOrigin-Name: 79fdd021df256c6a2b9973fd6bf8e52ffaaf4d369d40489b8395ac97880b1325
| | * Proposed optimization to the IS NULL and NOT NULL operators that avoidsdrh2022-10-13
| |/ | | | | | | | | | | loading the entire content of larges strings and BLOBs. Response to [forum:/info/3c08d4715dc05b00|forum post 3c08d4715dc05b00]. FossilOrigin-Name: 45f171565442f9fd6574fb93ae7abe83c168b20be68af42531bc55571450d3ab
| * Any function call can abort. Take this into account when deciding if a DMLdrh2022-08-30
| | | | | | | | | | | | | | statement needs a statement journal. See [forum:/forumpost/9b9e4716c0d7bbd1|forum thread 9b9e4716c0d7bbd1] for more information. FossilOrigin-Name: 5c95ae6c9b93b9bcf698bb1cad93b2da2e28121b35e7c539b1ddc0ef2de33cfe
| * 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
| * Add the new internal interface sqlite3DbNNFreeNN(db,ptr) where both thedrh2022-08-22
| | | | | | | | | | | | | | db and ptr parameters are guaranteed to be non-NULL. Use this where appropriate to save more than 2 million CPU cycles on the standard performance test. FossilOrigin-Name: e5eaa80e81fdf86f2875a912b880272b8d099b82b08e945a7988c5dd0fe9d6b5
| * Add a OOM term to a single assert() statement.drh2022-07-26
| | | | | | FossilOrigin-Name: 217fc3ebd423e050508d6af97e0664f301824ef9a997ed2d302c006a41227917
| * Small performance increase and size reduction by splitting out thedrh2022-07-25
| | | | | | | | | | sqlite3VdbeGetLastOp() from sqlite3VdbeGetOp(). FossilOrigin-Name: 92ac01d41d46ab73e189b1e5596ea63e5edb5b15639c5d7bdb981b95366c069b
| * Improved comment on sqlite3VdbeSwap(). No changes to code.drh2022-07-03
| | | | | | FossilOrigin-Name: 6a8e4fb72a9e3dea9e5752c3d54fddba8878b355bd43f3c879f042f247a6610f
| * Performance improvement in resolveP2Values(). Save over 1 million CPUdrh2022-07-01
| | | | | | | | | | | | cycles by omitting the loop termination condition and exiting when the OP_Init (always the first opcode in any VDBE program) is encountered. FossilOrigin-Name: bb179140c8abfd9d05d62380daba027bdeabbbafc720b7e36b99a36af806017e
| * Fix a typo in a comment. No changes to code.drh2022-06-22
| | | | | | FossilOrigin-Name: ef9de201b33678a80bb27c5be8f9dc973c8a4f14af9bfdd3ace36887c8a591ea
| * Improved debugging comment generation for the OP_Column opcode.drh2022-05-14
| | | | | | FossilOrigin-Name: 3e073bfddfcd652dfae8656d8978a4de427d21847fdaccfce53b6b895ad33f01
| * Fix false-positives in sqlite3VdbeNoJumpsOutsideSubrtn(). All tests pass now.drh2022-04-23
| | | | | | FossilOrigin-Name: 1300d978d5a072780e0f16722e42461dc983de9b4dfb2f5a7023c74c92ab9bc8
| * For debug builds, if the RIGHT JOIN body subroutine contains a jump thatdrh2022-04-23
| | | | | | | | | | | | | | escapes the subroutine, then abort the prepared statement with a descriptive error and SQLITE_INTERNAL. This extra sanity check causes many tests to fail. FossilOrigin-Name: 2c5bb2bff26cc70d8cac78ddd12d5ac37ab1472f5f88afbd975950a18ac2804d
| * Improved comment field in the bytecode generated for OP_Column and OP_Rowid.drh2022-04-18
| | | | | | FossilOrigin-Name: 009bbf8026106c5a74cced06cced48badb870a4b6e6a2f8104a544d2a8d79e45
| * Fix assert() statements associated with artifical null-value cursorsdrh2022-04-14
| | | | | | | | | | created by RIGHT JOIN. FossilOrigin-Name: f5bce5f152259767497ae6826c558003822d976b3f35f4d74edee59a3490efb2
| * The ".testctrl optimizations 0x400000" command disables the generation ofdrh2022-04-07
| | | | | | | | | | | | | | | | | | OP_ReleaseReg opcodes. OP_ReleaseReg opcodes are usually only generated for SQLITE_DEBUG builds and are used to verify that registers are descoped propertly. But they can get in the way of code understanding when studying bytecode dumps. So this new optimization setting is provided to temporarily turn OP_ReleaseReg opcodes off. FossilOrigin-Name: fa5276725f246cef9d58b27c1e617ee3f873f7a9b88284a4e8fc453ebda338bc
| * Tag an always-taken branch using ALWAYS().drh2022-04-04
| | | | | | FossilOrigin-Name: ad8bc3d7443ff57ce5a8756428e717ac42ec0295191a9b4d7ae44846d8fa03a2
| * Only invoke sqlite3VdbeClearObject() from a single location, so that thedrh2022-04-04
| | | | | | | | | | | | compiler is more likely to in-line the code. Performance increase and size reduction. FossilOrigin-Name: c6947a96e61f71aa61ca3d70d9e2612d784ab04d60fa88852b03cfce86b1bf2b
| * Performance optimization in the sqlite3VdbeHalt() routine.drh2022-04-03
| | | | | | FossilOrigin-Name: 9564d72a0820dbcb38f905fcd42ed4c858ea8fb5f648b189ceb65380a14a785b
| * 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
| * Expand the getVarint32() macro in a few places, as the C-compiler seems todrh2022-04-02
| | | | | | | | | | be able to optimize better when that macro is expanded manually. FossilOrigin-Name: cd4fe34b98bf5ce26f3596c717edb73932f3b46ad6e9b4934d06b7b3c176a0d6
| * 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
| * New macro ROUND8P() which works like ROUND8() but assumes that the input isdrh2022-04-01
| | | | | | | | | | | | already a multiple of the size of a pointer. It becomes a no-op for 64-bit machines, giving a small size reduction and speed boost. FossilOrigin-Name: d126f304cde66ebfe21a4967c22dcba0bac27cbce56318b14bd50051e49c978c
| * 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
| * Remove an unnecessary branch from sqlite3VdbeReset().drh2022-04-01
| | | | | | FossilOrigin-Name: a7d79560a0efd6221ba59ce84bcb4fa94024a901ac4a45e192ddecc6e1b5c78c
| * 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
| | * Split out the RUN state into separate READY and RUN states.drh2022-03-31
| | | | | | | | | FossilOrigin-Name: d698826b08b88e227eb83f84b3cdb19f17306b532eccfa162090abccdf3c63d8
| | * 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
| * Fix harmless compiler warnings.drh2022-03-31
| | | | | | FossilOrigin-Name: b916087aacba53530d2bd19eef2a4fd7a253bf7fa87b49e0df17f7987d7164ae
| * Refinement to [3f9887d4a58cbfdb]: The SQLITE_CONSTRAINT error should onlydrh2022-03-31
| | | | | | | | | | | | be returned if the prepared statement came from sqlite3_prepare_v2(). The legacy sqlite3_prepare() is documented to return only SQLITE_ERROR. FossilOrigin-Name: f2d9262e4427ab37ba26c004fc7a4790c86c1856d695a6b4ec3e72732ea54c09
| * Performance increase in the loop that frees an opcode array.drh2022-03-28
| | | | | | FossilOrigin-Name: 4ccebb86aae178dbce905d782f04d98211f8fce9aacd71c12b8694c92a4f5c40
| * Another small performance gain by using sqlite3DbFreeNN().drh2022-03-28
| | | | | | FossilOrigin-Name: daa924af987253345bdb1c71b13378681bd252521e94d01f5d4629601232c352