Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
126 check-ins using file src/vdbeapi.c version 2ddd60f4a3
2024-09-18
| ||
18:04 | Improvements to the scope of valueFromFunction(). (Leaf check-in: b021399a6e user: drh tags: branch-3.28) | |
2024-06-07
| ||
00:20 | Allow the query planner access to the argument of LIMIT even if that argument is a bound parameter. (check-in: 148d505ca0 user: drh tags: branch-3.28) | |
2024-06-06
| ||
16:06 | Better optimize queries that use parameters in the LIMIT clause. (Closed-Leaf check-in: b44f267671 user: drh tags: branch-3.28-var-in-limit) | |
2024-04-02
| ||
18:48 | Fix typos in comments. Provided ".wheretrace" debugging output for the interstage heuristic module. Do omit automatic index loops in the interstage heuristic. (check-in: 357d9513d2 user: drh tags: branch-3.28) | |
18:31 | Fix table-valued functions so that they will work as the right table in a LEFT JOIN. Ticket [2ae0c599b735d59e] (check-in: 1f97086d62 user: drh tags: branch-3.28) | |
11:54 | Add a heuristic in between the two solver() passes of the query planner that tries to prevent a very slow query plan in cases where the output row count estimate is imprecise. (check-in: 74b247d958 user: drh tags: branch-3.28) | |
2023-11-29
| ||
16:26 | Fix a duplicate assert() caused by the second cherrypick in the previous check-in. (check-in: f10d4fc4a8 user: drh tags: branch-3.28) | |
16:07 | Remove Window objects from the corresponding Select.pWin list when they are deleted, as they are, for example, when the ORDER BY clause is optimized out. (check-in: f9c6e6a710 user: drh tags: branch-3.28) | |
2023-10-19
| ||
21:05 | Ensure that when an ephemeral cursor is reopened with a second invocation of to OP_OpenEphemeral, the sequence counter is reset and the cache marked as stale. Fix for [9cdc5c46]. (check-in: d4bfa8d21a user: drh tags: branch-3.28) | |
2023-09-15
| ||
20:04 | Drop support for the view-scan optimization as it was causing multiple performance regressions. In its place, reduce the estimated row count for DISTINCT subsqueries by a factor of 8. (check-in: 796a65fa61 user: drh tags: branch-3.28) | |
2023-02-26
| ||
11:52 | In the omit-unused-subquery-columns optimization, be sure to remove the EP_Skip and EP_Unlikely flags from the result set expressions that get nulled-out. dbsqlfuzz bf1d3ed6e0e0dd8766027797d43db40c776d2b15. Also fix an incorrect ".selecttrace" code block. (check-in: 83a7f13edb user: drh tags: branch-3.28) | |
2023-02-16
| ||
21:01 | Fix an #ifdef that uses a different macro name from the main branch. (check-in: ad6ac5d3e8 user: drh tags: branch-3.28) | |
19:04 | Back-port omit-unused-subquery-column enhancements into the 3.28 branch. (check-in: 57a4e91f43 user: drh tags: branch-3.28) | |
14:29 | Do not compute result columns of subqueries that are never used. Make those columns NULL instead. This optimization potentially resolves the enhancement request described by [ticket baa5bb76c35a124c]. (check-in: 0163b697dd user: drh tags: branch-3.28) | |
2022-10-24
| ||
13:50 | Improve the ability of the query planner to recognize covering indexes even on tables with more than 63 columns and where the index is over columns beyond the 63rd column. (check-in: 3d1992de47 user: drh tags: branch-3.28) | |
2022-10-19
| ||
11:22 | If a query uses an index where one or more of the columns of the index is an expression and if the corresponding expression is used elsewhere in the query, then strive to read the value of the expression out of the index, rather than recomputing it. This is the "Indexed Expression Optimizations". (check-in: 3da1032878 user: drh tags: branch-3.28) | |
2022-09-01
| ||
10:41 | In the query planner, add a heuristic that will reduce the cost of a full table scan for a materialized view or subquery if the full scan is the outer-most loop. This is shown to speed up some queries. (check-in: e3754cc188 user: drh tags: branch-3.28) | |
2022-08-10
| ||
17:03 | Merge the branch-3.28a fixes into branch-3.28. (check-in: ba6bf33147 user: drh tags: branch-3.28) | |
2022-08-09
| ||
20:22 | Fix a rounding error caused by scalar->logarithm->scalar conversion when using stat4 data to estimate some range scans. (check-in: 68d86f2b20 user: drh tags: branch-3.28) | |
2021-07-13
| ||
15:30 | Remove two incorrect assert() statements from the logic used to derive column names and types from subqueries. This allows the SQL associated with CVE-2020-13871 (ticket [c8d3b9f0a750a529]) to be tested. (Closed-Leaf check-in: d2e6722037 user: dan tags: branch-3.28a) | |
2021-07-12
| ||
14:38 | Fix a defect in the query-flattener optimization identified by ticket [8f157e8010b22af0]. This fix is associated with CVE-2020-15358. (check-in: 9e001b635f user: dan tags: branch-3.28a) | |
2020-10-22
| ||
18:58 | Minor tweaks to query planning weights so that when STAT4 is enabled and functioning, a full table scan is more likely to be selected if that seems like the fastest solution. Only do this when STAT4 info is available because an error has a large potential downside. (check-in: 263293f1e6 user: drh tags: branch-3.28) | |
2020-10-02
| ||
13:57 | Import further corner-case fixes for the in-scan-vs-index or OP_SeekScan optimization from trunk. (check-in: c144d6404f user: drh tags: branch-3.28) | |
12:11 | For the OP_SeekScan optimization, the OP_IdxGT does not necessarily come right after the OP_SeekGE. So use the P2 operand of OP_SeekScan to point to the first instruction after OP_IdxGT. Problem found by dbsqlfuzz. (check-in: ec37744c6e user: drh tags: branch-3.28) | |
02:07 | Disable the OP_SeekScan opcode of the in-scan-vs-index optimization when in PRAGMA reverse_unordered_selects mode, as the OP_SeekScan only works with forwards scans. Thanks to OSSFuzz for pointing out the problem to us. (check-in: 9a1cdf7e9c user: drh tags: branch-3.28) | |
2020-09-30
| ||
18:22 | Improved query optimization for multi-column indexes where the second or later columns are constrained by an IN operator and the earlier index columns limit the search to a small number of rows. Use the new OP_SeekScan opcode which does scanning of the relevant range of the index but gives up and falls back to doing a seek if the number of rows scanned grows to large, in order to guard against pathological cases where the estimated number of rows to be scanned is far too small. (check-in: f07ac3fb38 user: drh tags: branch-3.28) | |
2020-09-01
| ||
02:02 | Improvements to the IN-early-out optimization so that it works more efficiently when there are two or more indexed IN clauses on a single table. (check-in: 49b7631e86 user: drh tags: branch-3.28) | |
2020-08-31
| ||
19:19 | An attempt to improve the performance of the IN-early-out optimization (see check-in [09fffbdf9f2f6ce3]) by avoiding unnecessary calls to the b-tree search algorithm in OP_IfNoHope when the index key is at hand and the same answer can be obtained by doing a quick key comparison. Update: Experiment did not work out. (Closed-Leaf check-in: 8301da31d0 user: drh tags: branch-3.28-in-early-out-fail) | |
2020-08-17
| ||
21:03 | When doing an UPDATE or DELETE using a multi-column index where only a few of the earlier columns of the index are useful for the index lookup, postpone doing the main table seek until after all WHERE clause constraints have been evaluated, in case those constraints can be covered by unused later terms of the index, thus avoiding unnecessary main table seeks. (check-in: 0ecda43371 user: dan tags: branch-3.28) | |
2020-05-06
| ||
18:46 | Provide the SQLITE_DEFAULT_LEGACY_ALTER_TABLE compile-time option. (check-in: b2325a6e1c user: drh tags: branch-3.28) | |
2020-01-17
| ||
15:33 | More restrictions on changes to shadow tables when in defensive mode. (check-in: b302b260ca user: drh tags: branch-3.28) | |
15:24 | Validate the type, name, and tbl_name fields of the sqlite_master table when loading the schema, unless writable_schema is engaged. (check-in: 3d13fbf248 user: drh tags: branch-3.28) | |
14:56 | Do not allow shadow tables to be dropped in defensive mode. (check-in: ad1f760f16 user: drh tags: branch-3.28) | |
14:30 | Import the 3.31.0-beta FTS3/4 code directly into the 3.28 branch, thus providing 3.28 with all the latest 3.31 fixes. FTS3 has not been enhanced to use any core functionality that was not already available in 3.23, so no modifications were made to FTS3 sources for this import. (check-in: be4269c624 user: drh tags: branch-3.28) | |
2019-07-18
| ||
20:55 | Fix a problem where self-joins on views that are aggregate queries may return the wrong result. Cherrypick of [74ef97bf51dd531a]. (check-in: 2f0a564f6e user: mistachkin tags: branch-3.28) | |
2019-06-03
| ||
15:10 | Fix harmless compiler warning in lemon. (check-in: 3a05242953 user: mistachkin tags: branch-3.28) | |
13:53 | Fix the count-of-view optimization so that it is (correctly) disabled for a query that includes a WHERE clause or a GROUP BY clause. Cherrypick of [05897ca48a40c6771]. (check-in: 583e5a0ab6 user: mistachkin tags: branch-3.28) | |
2019-05-02
| ||
17:06 | Add options to wapptest.tcl similar to those supported by releasetest.tcl. Also add the -noui switch, for running without wapp altogether. (check-in: 005a169406 user: dan tags: trunk) | |
15:56 | Earlier detection of a database corruption case in balance_nonroot(), to prevent a possible use of an uninitialized variable. (check-in: c509d8a8ae user: drh tags: trunk) | |
14:15 | Merge enhancements from trunk (check-in: 3a4751a9f2 user: drh tags: hard-heap-limit) | |
01:41 | The "LIKE Optimization" (which converts a LIKE into a BETWEEN operator that is able to use an index) does not work and cannot be used if the collating sequence of the column is not TEXT and if the pattern starts with a "+" sign. This is another case of ticket [c94369cae9b561b1f996d005]. The new test case was discovered by Manuel Rigger. (check-in: b043a54c3d user: drh tags: trunk) | |
00:52 | Fix an issue (discovered by OSSFuzz) in the enhanced OP_Concat operator from check-in [713caa382cf7dd] earlier today. (check-in: 3e897702f8 user: drh tags: trunk) | |
2019-05-01
| ||
19:01 | Add a test case for ticket [ae0f637bddc5290b44669e066a]. (check-in: ece481695f user: drh tags: trunk) | |
18:59 | When values have real affinity and are converted into strings for CHECK constraints or index expressions, do the conversions into a real-number format even if the values are stored as integers for efficiency. This appears to fix ticket [ae0f637bddc5290b446]. (check-in: 5997d07566 user: drh tags: trunk) | |
17:36 | Fix an incompatibility with -DSQLITE_OMIT_LOAD_EXTENSION=1 in dbdata.test. (check-in: a77cd85b1a user: dan tags: trunk) | |
17:32 | Fix a case in wapptest.tcl where a failed test might report 0 errors. (check-in: 2be1ed70df user: dan tags: trunk) | |
15:32 | Avoid unwelcomed side effects on the input operands in the OP_Concat operator. Fix for ticket [3be1295b264be2fac49b681] (check-in: 713caa382c user: drh tags: trunk) | |
15:25 | Update wapptest.tcl so that it deletes extra files if the "Keep files:" checkbox is clear. Set it by default. (check-in: 09623cc4cc user: dan tags: trunk) | |
14:41 | In "PRAGMA vdbe_trace" output, show the results of OP_Affinity opcodes. (check-in: 56604bb60a user: drh tags: trunk) | |
08:48 | Fix an incompatibility with auto-vacuum mode in new test script recover.test. (check-in: 36dd5b0804 user: dan tags: trunk) | |
2019-04-30
| ||
20:43 | Update wapptest.tcl to use a simpler slave script. And to leave scripts wapptest_configure.sh and wapptest_make.sh in each test directory. (check-in: 07e527d781 user: dan tags: trunk) | |
15:36 | Fix a problem allowing a Table object to be deleted from within a call to the xDestroy method of the associated virtual table, causing a use-after-free error. (check-in: 1dbbb0101e user: dan tags: trunk) | |
14:26 | Fix an error message in the Lemon parser generator. (check-in: b6d7d42b74 user: drh tags: trunk) | |
11:54 | Small performance increase and size reduction in the implementation of the LIKE and GLOB operators. (check-in: f97626f921 user: drh tags: trunk) | |
01:08 | Slightly smaller and faster implementation of the OP_MakeRecord opcode. (check-in: 3bdce7ef1a user: drh tags: trunk) | |
2019-04-29
| ||
16:44 | Changes to oserror.test so that it works even on systems that allow an unusually large number of file descriptors. (check-in: a27b0b880d user: drh tags: trunk) | |
13:48 | Do not de-duplicate columns index columns associated with a WITHOUT ROWID table if the columns have different collating sequences. This is the fix for ticket [3182d3879020ef3b2]. There is one test case added, but most of the tests are done in TH3. (check-in: 1b1dd4d48c user: drh tags: trunk) | |
13:30 | Improved header comment and precondition checking for the new isDupColumn() function. (Closed-Leaf check-in: 740d5ff6cc user: drh tags: tkt-3182d38790) | |
11:41 | Fix a buffer overwrite in shell.c.in (part of the new .recover code). (check-in: 92facbc73a user: dan tags: trunk) | |
11:27 | Fix a stack overflow that could occur when renaming a table that has a trigger containing a window function invocation that itself contains a specific syntax error. (check-in: c621fc668c user: dan tags: trunk) | |
2019-04-28
| ||
19:27 | Take collating sequence into account when removing redundant columns from indexes on WITHOUT ROWID tables. This is the first proof-of-concept fix for ticket [3182d3879020ef3]. More testing needed. (check-in: b34fa5bff4 user: drh tags: tkt-3182d38790) | |
2019-04-27
| ||
20:30 | Add the ".recover" command to the shell tool. For recovering as much data as possible from corrupt databases. (check-in: 50fe484589 user: dan tags: trunk) | |
20:16 | Fix a minor typo in a comment. No changes to code. (check-in: 9520907217 user: drh tags: trunk) | |
20:15 | Fix building the shell with SQLITE_OMIT_VIRTUAL_TABLE. And without SQLITE_ENABLE_DBPAGE_VTAB. (Closed-Leaf check-in: 425d708c39 user: dan tags: dbdata) | |
19:36 | Add comments and fix formatting issues in new code in shell.c.in. (check-in: b91d819bd1 user: dan tags: dbdata) | |
18:47 | Add the "--lost-and-found" option to the ".recover" command. For setting the name of the orphaned rows table. (check-in: 67bb88e24c user: dan tags: dbdata) | |
15:35 | Fix a problem in the .recover command with recovering WITHOUT ROWID tables where the PK columns are not the leftmost in the CREATE TABLE statement. (check-in: 91df4b8e03 user: dan tags: dbdata) | |
2019-04-26
| ||
21:11 | Have .recover store all orphaned rows in a single table, with extra columns to indicate the orphaned page and sub-tree they were discovered within. (check-in: 7221f6e33e user: dan tags: dbdata) | |
17:08 | Omit tests of the LIKE optimization in like3.test when SQLITE_ENABLE_ICU is defined. (check-in: af53c41a12 user: dan tags: trunk) | |
15:40 | Fix another problem with database freelist handling in the ".recover" command. (check-in: bee2652ac2 user: dan tags: dbdata) | |
15:14 | Fix a locking-page related problem with the ".recover" command. (check-in: afdae10424 user: dan tags: dbdata) | |
2019-04-25
| ||
20:06 | Merge latest trunk changes into this branch. (check-in: 1da302d85d user: dan tags: dbdata) | |
19:23 | Unless the "--freelist-corrupt" option is specified, do not have the .recover command attempt to recover data from pages that are on the database free-list. (check-in: 8d2f52bb64 user: dan tags: dbdata) | |
18:15 | Add the sqlite3_hard_heap_limit64() interface and the corresponding "PRAGMA hard_heap_limit=N" command. (check-in: b0ccef61a7 user: drh tags: hard-heap-limit) | |
16:20 | Fix a bug preventing .recover from working on databases where the final page of the db is corrupt. (check-in: 959bbd11e9 user: dan tags: dbdata) | |
2019-04-24
| ||
20:48 | Improve the performance of the .recover command. (check-in: a50768314d user: dan tags: dbdata) | |
17:04 | New test cases in test/fuzzdata8.db. (check-in: 7be6222c9e user: drh tags: trunk) | |
16:13 | Fix another instance in fts3 where a corrupt record can cause a buffer overflow. (check-in: e1724f1d61 user: dan tags: trunk) | |
15:57 | Fix a problem in fts5 where a corrupt position list could lead to a buffer overwrite. (check-in: 516ca89451 user: dan tags: trunk) | |
15:13 | Fix an error in fts3_write.c allowing a corrupt database to cause a crash. (check-in: 6e4a5f2281 user: dan tags: trunk) | |
04:53 | Correction to the #if in the previous check-in. (check-in: 30dc05ac12 user: mistachkin tags: trunk) | |
00:37 | Fix for 8-byte alignment asserts that can trigger in some circumstances with 32-bit MSVC. (check-in: 4c02832e0c user: mistachkin tags: trunk) | |
2019-04-23
| ||
22:00 | Make no atttempt to generate VDBE code for VACUUM after a syntax error. (check-in: 930842470d user: drh tags: trunk) | |
20:48 | Have ".recover" handle "\r" and "\n" in the same way as ".dump". (check-in: f95f0f02ab user: dan tags: dbdata) | |
18:03 | Fixes for the ".recover" shell command. (check-in: 8dcc1d89d9 user: dan tags: dbdata) | |
15:30 | Changes to the --hexdb decoder option in the shell (and also in the TCL test code) so that it works on systems where sscanf() does not recognize "%hhx" as wanting to delivery results into a character-size variable. (check-in: 4258e42d92 user: drh tags: trunk) | |
15:21 | Minor simplification of NULL value handling for STAT4. Cherrypick of [69bad9257f8db6a2] from trunk. (check-in: 442c177dc4 user: mistachkin tags: branch-3.28) | |
15:08 | Minor simplification of NULL value handling for STAT4. (check-in: 69bad9257f user: mistachkin tags: trunk) | |
12:31 | New test cases in fuzzdata8.db. (check-in: 0fe3c3fd30 user: drh tags: trunk) | |
12:30 | Improvement on the previous check-in. Parse.rc is less reliable than Parse.nErr for detecting SQLITE_TOOBIG errors. (check-in: 8d478cfb92 user: drh tags: trunk) | |
2019-04-22
| ||
20:52 | Enhance the ".recover" command. Fix a problem with overflow pages in dbdata.c. (check-in: f193ca587f user: dan tags: dbdata) | |
20:05 | Early detection of SQLITE_TOOBIG when processing nested queries. (check-in: 5d85d80ef8 user: drh tags: trunk) | |
11:47 | Fix an assert() that may be false for corrupt databases. (check-in: b2ce5ed175 user: dan tags: trunk) | |
2019-04-20
| ||
20:57 | Add the ".recovery" command to the shell tool. For recovering the maximum amount data from corrupt databases. Still needs work. (check-in: 7461d2e120 user: dan tags: dbdata) | |
2019-04-19
| ||
23:05 | Mark a single branch as no longer reachable. (check-in: 4f35b3b78a user: drh tags: trunk) | |
22:01 | Increase the version number to 3.29 for the next development cycle. (check-in: 6cf16703fd user: drh tags: trunk) | |
18:10 | Mark two branches as unreachable. Oops - one of those branches was reachable via fuzzcheck tests. (Closed-Leaf check-in: 9b888fcc5a user: drh tags: mistake) | |
17:26 | Improved optimization of the AND and OR operators. (check-in: 0fbd154eb4 user: drh tags: trunk) | |
16:34 | Fix a problem with renaming a table that starts with "sqlite". Fix for ticket [f00d7b65]. (check-in: a2ead8aa45 user: dan tags: trunk) | |
16:21 | Use macros to determine if an expression is always true or always false. (check-in: 6de980a09c user: drh tags: trunk) | |
13:38 | Streamline the processing of the AND operator. Slightly smaller and faster. (check-in: 7713996aa9 user: drh tags: trunk) | |
2019-04-18
| ||
21:14 | Add the sqlite_dbptr virtual table to the dbdata extension. For querying the links between b-tree pages. (check-in: 3213a15f21 user: dan tags: dbdata) | |
19:21 | Minor simplification of NULL value handling for STAT4. (Closed-Leaf check-in: 5718a9d5fc user: mistachkin tags: nullStat4) | |
17:37 | Undo change to 'analyze9.test' because the extra output can be useful for debugging. (Leaf check-in: f3081e5909 user: mistachkin tags: msvc) | |
2019-04-17
| ||
23:56 | Fix a couple minor test issues. (check-in: 1f1866d11c user: mistachkin tags: msvc) | |
23:32 | Work around lack of a C99 feature in MSVC. (check-in: f6ebe1c2be user: mistachkin tags: msvc) | |
21:17 | Add the experimental dbdata extension. (check-in: a3ab588329 user: dan tags: dbdata) | |
21:12 | Small performance and size optimization in sqlite3WalFindFrame(). (check-in: 03f2e78899 user: drh tags: trunk) | |
13:58 | Fix a typo in the CLI help output for the ".dump" command. (check-in: 57638248de user: drh tags: trunk) | |
13:23 | In the "pgidx" report from "showdb", also show the number of rows on each database btree page. (check-in: 2bda9dc41c user: drh tags: trunk) | |
12:29 | In the "pgidx" command of the showdb utility, try to identify orphaned pages and show when pages have been zeroed out. (check-in: eed701ef91 user: drh tags: trunk) | |
12:07 | Small performance improvement on the variable-length integer decoder: sqlite3GetVarint(). (check-in: 5df2bf62fc user: drh tags: trunk) | |
11:34 | Faster and smaller implementation of sqlite3StrICmp(). (check-in: 7ac500fb5a user: drh tags: trunk) | |
2019-04-16
| ||
19:49 | Version 3.28.0 (check-in: 884b4b7e50 user: drh tags: trunk, release, version-3.28.0) | |
11:21 | Avoid a sanitizer error (pointer arithmatic overflow) in vdbesort.c. (check-in: af61a2fc45 user: dan tags: trunk) | |
10:51 | Avoid a sanitizer error in test1.c. Have releasetest.tcl/wapptest.tcl create a file called "makecommand.sh" that can be used to rerun a test from the command line. (check-in: 4de4480ffd user: dan tags: trunk) | |
2019-04-15
| ||
19:17 | Fix a bug in test module test_fs.c causing a segfault on OpenBSD. (check-in: ee88660029 user: dan tags: trunk) | |
15:41 | Fix a problem with the user-auth extension and deserializing in-memory databases. (check-in: 09fa0b3c4a user: dan tags: trunk) | |
15:35 | Merge recent changes from trunk into reuse-schema (check-in: 5c6c9e7f6f user: drh tags: reuse-schema) | |
15:28 | Merge all recent enhancements. (check-in: 1cd536ecc8 user: drh tags: begin-concurrent-pnu-wal2) | |
15:17 | Merge the latest trunk enhancements. (check-in: 8950f1195a user: drh tags: wal2) | |
15:07 | Merge the latest enhancements from trunk. (check-in: 6caaaf21c9 user: drh tags: begin-concurrent-pnu) | |
14:59 | Merge the latest enhancements from trunk. (check-in: 7c328e8894 user: drh tags: begin-concurrent) | |
13:59 | Fix a test script problem in fts5corrupt3.test. (check-in: 734192d876 user: dan tags: trunk) | |
13:51 | Update tool/symbols.sh to ignore symbols from sessions and rebaser and to not try to compile with ICU which is not available on all platforms. (check-in: 0bab4ece6e user: drh tags: trunk) | |
2019-04-14
| ||
00:40 | Remove a stray tab from the source code. (check-in: 0ada58e930 user: drh tags: trunk) | |