Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
200 most recent check-ins using file ext/misc/series.c version 0c97f63378
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) | |
01:29 | Do not compute unused result columns of subqueries. This optimization will potentially resolve the performance optimization request of [ticket baa5bb76c35a124c]. (Closed-Leaf check-in: 0c21b6a5f8 user: drh tags: branch-3.26) | |
01:21 | Update test cases so that they work with TCL 8.7 and later. (check-in: e9b762de0e user: drh tags: branch-3.26) | |
2023-02-15
| ||
13:00 | Update the configure script so that it contains the correct version number. (check-in: a7cbf30808 user: drh tags: branch-3.26) | |
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-08-11
| ||
18:56 | Fix an RBU problem with restarting an update after the *-oal file is already larger than 4GiB. (Leaf check-in: 56869f54f3 user: dan tags: rbu-replace-hack) | |
18:44 | If the special "sqlite_rbu_replace_hack" table is present in an RBU database, use REPLACE instead of INSERT when writing index entries to imposter tables. (check-in: 4b73e151cd user: dan tags: rbu-replace-hack) | |
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) | |
2020-01-09
| ||
20:33 | Only register the fts3_tokenizer() function using a single text encoding. (check-in: 966964af10 user: drh tags: trunk) | |
20:33 | Fix a harmless compiler warning. (check-in: edbf911fde user: drh tags: trunk) | |
20:11 | Fix an assert() in window.c that could fail with some obscure SELECT statements that use window functions. Ticket [678ecf429f8d1a5f] (check-in: 83dc55679a user: dan tags: trunk) | |
2020-01-08
| ||
12:17 | When doing a text-to-double conversion on a BLOB with an odd number of bytes and assuming a UTF16 encoding, ignore the last byte. Ticket [9eda2697f5cc1aba]. (check-in: 1c76f1d8ec user: drh tags: trunk) | |
11:36 | Fix a minor formatting error in the display of BLOB values during VDBE tracing. (check-in: 295442887a user: drh tags: trunk) | |
10:57 | Improvements to the documentation of sqlite3_create_collation(). (check-in: fa866aec56 user: drh tags: trunk) | |
04:36 | Simplification of the logic in the constant-propagation optimization. (check-in: 1c3e5c20a9 user: drh tags: trunk) | |
01:43 | Fix the constant propagation optimization so that it does not try to propagate constant expressions that have affinity. Ticket [82ac75ba0093e5dc] (check-in: 6db1c3498f user: drh tags: trunk) | |
00:39 | Fix a misworded comment. No code changes. (check-in: ee0bc7ede0 user: drh tags: trunk) | |
2020-01-07
| ||
18:10 | Enforce SQLITE_VTABRISK restrictions. (check-in: 3d87ff312e user: drh tags: new-security-options) | |
18:10 | Fix a performance regression caused by the previous check-in. (check-in: d7d98d3dff user: drh tags: trunk) | |
16:09 | Invert the UNTRUSTED_SCHEMA setting to be TRUSTED_SCHEMA. (check-in: f5fcf1fbc6 user: drh tags: new-security-options) | |
15:44 | Merge recent fixes from trunk. (check-in: 5dfa33a09e user: drh tags: new-security-options) | |
14:51 | Provide the ability to tag an application-defined function as "testonly". (Leaf check-in: e6f5c0e0ac user: drh tags: testonly-functions) | |
13:32 | Add an "|| CORRUPT_DB" term to an assert() statement inside of btree. (check-in: 03c1d75ddc user: drh tags: trunk) | |
09:06 | Fix an instance of an undefined behaviour (a left-shift of a 64-bit unsigned integer by a value greater than 64) that could occur in fts3. (check-in: e1f12978b5 user: dan tags: trunk) | |
2020-01-06
| ||
20:48 | In the typeof() optimization in OP_Column, expand the size of the bogus buffer provided for data so that it is big enough to cover the increased number of bytes displayed during register tracing from check-in [54553bf16fabd72d]. This is the correct fix for ticket [bbd55a97e66ff50d], though the earlier one does not hurt and is useful to retain. (check-in: e1154c39ba user: drh tags: trunk) | |
19:30 | Merge enhancements from trunk. (check-in: 9c50f6c28a user: drh tags: new-security-options) | |
19:23 | Rewrite the (debugging use only) sqlite3VdbeMemPrettyPrint() function to use the safer StrAccum interface rather than writing directly into a static string buffer. Perhaps this will address ticket [bbd55a97e66ff50d], which we are unable to reproduce. (check-in: 69f6a7e42f user: drh tags: trunk) | |
18:59 | Backout change [4d0b9109f7a5312d4e1] because the conditional it added is no longer reachable due to check-in [1409758f72c0206c]. (check-in: b3f2696705 user: drh tags: trunk) | |
18:44 | Move variable declaration to start-of-block for MSVC. (check-in: 55c136ef61 user: mistachkin tags: trunk) | |
17:33 | Do not attempt to use the skip-scan optimization if prior terms of the index are already used for non-equality constraints. Ticket [304017f5f04a0035] (check-in: d7126a9ced user: drh tags: trunk) | |
17:06 | Ensure the SF_Aggregate flag on a SELECT statement is set if a DISTINCT is transformed to a GROUP BY. Ticket [9c944882]. (check-in: 1409758f72 user: dan tags: trunk) | |
15:25 | Refactor names of flags for improved legibility. (check-in: 411e8ec221 user: drh tags: new-security-options) | |
2020-01-05
| ||
21:53 | Remove a NEVER in btree due to a new test case from dbsqlfuzz. (check-in: 46f8ef70fb user: drh tags: trunk) | |
2020-01-04
| ||
20:58 | Refactor the names of the new controls for restricting what actions the schema can take behind the application's back. (check-in: 65d7d39a85 user: drh tags: new-security-options) | |
19:58 | Enhance PRAGMA function_list to show internal functions if the direct use of internal functions is enabled via the SQLITE_TESTCTRL_INTERNAL_FUNCTIONS test control. (check-in: 7a8d7ca726 user: drh tags: new-security-options) | |
19:19 | Merge all fixes and enhancements from trunk. (check-in: b878c30f03 user: drh tags: new-security-options) | |
19:14 | Fix DBSTAT so that it returns no rows, rather than an error when the WHERE clause is "schema=NULL". (check-in: 5b246b47ae user: drh tags: trunk) | |
19:12 | Fix harmless compiler warnings. (check-in: 8452fe0343 user: drh tags: trunk) | |
18:38 | Omit the omit flat from eq constraints on column "name" of dbstat virtual tables. Fix for [74a4c386]. (check-in: cfff5cb227 user: dan tags: trunk) | |
18:33 | Record when the OP_IfNotOpen branch is and is not taken. (check-in: 182a898b14 user: drh tags: trunk) | |
17:55 | Remove another NEVER added by check-in [7b62555e285f32d3]. Dbsqlfuzz found another test case. (check-in: 481f4956af user: drh tags: trunk) | |
17:42 | New test cases in test/in4.test require rtree, so disable those tests on builds that lack the rtree extension. (check-in: b5900914f7 user: drh tags: trunk) | |
16:55 | Fix a problem where the loop for the RHS of a LEFT JOIN uses values from an IN() clause as the second or subsequent field of an index. (check-in: 95ef68966c user: dan tags: trunk) | |
15:37 | Merge the latest fixes from trunk. (check-in: 26ef709a47 user: drh tags: new-security-options) | |
15:21 | Fix a false-positive in the register validity tracking logic by moving the temporary register release call before the jump that uses that temporary register. (check-in: 9da48a5ca6 user: drh tags: trunk) | |
14:57 | Improve a testcase in test/fuzzdata8.db to make it more resilient. (check-in: 139aefe600 user: drh tags: trunk) | |
14:50 | Back out another NEVER added by check-in [7b62555e285f32d3] - the test case was already in test/fuzzdata3.db, but it only occurs if compiled without SQLITE_ENABLE_PREUPDATE_HOOK. (check-in: 61f873b14c user: drh tags: trunk) | |
14:00 | Omit the omit flag from eq constraints on column "aggregate" of dbstat virtual tables. Fix for [727074e2]. (check-in: 74ef6f2b6d user: dan tags: trunk) | |
12:34 | Restore a NEVER and an assert in btree that was removed by check-in [7b62555e285f32d3]. Dbsqlfuzz found test cases. (check-in: 04a05c83f5 user: drh tags: trunk) | |
01:43 | Enhance PRAGMA function_list so that it shows all instances of each FuncDef, the number of arguments, the encoding, the type, and the flags. Use this capability to locate and fix incorrect function flags in the standard build. (check-in: 9ca906d24a user: drh tags: new-security-options) | |
2020-01-03
| ||
21:57 | Invert the SQLITE_FUNC_SAFE bit to be SQLITE_FUNC_UNSAFE. The external bit is still SQLITE_INNOCUOUS. It gets inverted as the appdef function is registered. (check-in: 1c266cb3be user: drh tags: new-security-options) | |
20:57 | When UNSAFE_IN_VIEW is disabled, only allow functions in views that are tagged with SQLITE_INNOCUOUS. (check-in: 9ee79b254e user: drh tags: new-security-options) | |
20:16 | In fts3, avoid making a very large memory allocation if the merge-hint record is corrupt. (check-in: 9add58fe96 user: dan tags: trunk) | |
17:40 | Add NEVER macros to error-detection branches that were made unreachable (as far as I can tell) by check-in [ceacc28b03580334]. (check-in: 7b62555e28 user: drh tags: trunk) | |
16:38 | Improvement to check-in [7405e98225761180] so that missing or null filenames given to the zipfile extension throw an immediate error. (check-in: 523e09bd22 user: drh tags: trunk) | |
15:51 | Improve a specific case of early database corruption dectecion in the b-tree layer. (check-in: ceacc28b03 user: dan tags: trunk) | |
15:22 | Merge fixes from trunk. (check-in: 002406df22 user: drh tags: new-security-options) | |
14:34 | Remove an over-zealous ALWAYS() macro and add a test case that shows that the conditional can sometimes be false. (check-in: 536e9a9d1b user: drh tags: trunk) | |
14:27 | Fix a possible NULL pointer dereference caused by using a "VALUES(...)" as a component of a compound SELECT with non-integer ORDER BY clause terms. (check-in: 9d79111642 user: dan tags: trunk) | |
14:16 | Fix the OP_Copy-coalesce optimization so that if the previous row happens to end with OP_Copy but is not a candidate for the optimization due to jumps, then the optimization is correctly bypassed. (check-in: b36126c188 user: drh tags: trunk) | |
13:55 | Ensure that when a Select object is reset a new, empty, SrcList is allocated. (check-in: 4889cbf898 user: dan tags: trunk) | |
02:20 | When generating the name of a view (or common table expression) because the SQL does not specify a name, avoid the names "true" and "false" which might be confused for the boolean literals of the same name, leading to an inconsistent abstract syntax tree. (check-in: ff9492d3ff user: drh tags: trunk) | |
00:28 | Fix a problem in sqlite3TreeViewBareExprList() in which the routine was not interpreting the new ExprList format correctly. (check-in: cd56872afb user: drh tags: trunk) | |
2020-01-02
| ||
23:50 | Merge enhancements from trunk. (check-in: 091403a670 user: drh tags: new-security-options) | |
22:28 | Add the two-size lookaside memory allocator. Also, reduce the per-entry size of the ExprList object. (check-in: 51665bf0f9 user: drh tags: trunk) | |
22:23 | NEVER() and ALWAYS() macros tagging unreachable branches. (Closed-Leaf check-in: 34b877742e user: drh tags: two-size-lookaside) | |
21:41 | Merge the latest enhancements from trunk. (check-in: bd57e6d923 user: drh tags: two-size-lookaside) | |
21:30 | Do not allow the zipfile virtual table to start a transaction if no filename has been specified. (check-in: 7405e98225 user: drh tags: trunk) | |
19:50 | Fix some test logic in the OP_Delete opcode so that it works after a cursor-trip. (check-in: 28900e5cab user: drh tags: trunk) | |
18:37 | Ifdef-out code that is only possible with the sessions extension. (check-in: 4fcf07f796 user: drh tags: trunk) | |
17:46 | Have the OP_ReleaseReg opcode also invalidate the registers if P5 is non-zero. (check-in: 937be22106 user: drh tags: trunk) | |
16:24 | Handle blobs that are the return values of functions being cast to text in utf16 databases in the same way as blobs read directly from the database. Fix for [771fe617]. (check-in: e782096aa0 user: dan tags: trunk) | |
15:02 | Fix the OP_Move opcode so that it correctly manages dependency tracking. This change impacts debugging builds only. (check-in: 5377add4b8 user: drh tags: trunk) | |
14:42 | Enhancements to aid testing and debugging: In PRAGMA vdbe_trace=on output, show pScopyFrom dependencies on register values. Add the sqlite3VdbeRegisterDump() procedure, callable from a debugger, that shows the values of all registers. Pass the VDBE pointer into test_trace_breakpoint() so that sqlite3VdbeRegisterDump() is callable from the breakpoint. (check-in: 9886cb4b79 user: drh tags: trunk) | |
13:26 | Add the test_trace_breakpoint() subroutine that is invoked after each instruction is printed while running PRAGMA vdbe_trace=on. Only works for SQLITE_DEBUG builds. Also add parameters "pc" and "pOp" to test_addop_breakpoint() to make it easier to set conditionals. (check-in: 49a6368c38 user: drh tags: trunk) | |
02:50 | Use OP_Copy instead of OP_SCopy to move the results of a scalar subquery. (check-in: 435c272dcf user: drh tags: trunk) | |
00:45 | The sqlite3WhereEnd() call now unwinds all Expr modifications made by the sqlite3WhereBegin(). (check-in: 7bfd42f1dc user: drh tags: trunk) | |
2020-01-01
| ||
23:02 | Provide the -DSQLITE_ENABLE_INTERNAL_FUNCTIONS=1 compile-time option. Fix the ".testctrl internal_function" command in the CLI so that it does not signal an error on a valid input. (check-in: 8ee2ce92c0 user: drh tags: trunk) | |
21:14 | When generating code for a subquery, make a copy of the Select object and generate the code out of the copy, in case the code generator makes modifications to expression and the Select object needs to be reused. (check-in: 4edddcc0bc user: drh tags: trunk) | |
20:17 | Ensure that when code for a scalar SELECT featuring window functions is generated more than once by the planner, separate ephemeral tables are opened for each instance. (check-in: ce14173252 user: dan tags: trunk) | |
16:43 | Fix the sqlite3ExprImpliesNonNullRow() routine so that it correctly handles a numeric comparison of two AND subexpressions. (check-in: 07e504d517 user: drh tags: trunk) | |
15:43 | New test-only SQL functions: implies_nonnull_row(), expr_compare(), and expr_implies_expr(). The SQLITE_TESTCTRL_INTERNAL_FUNCTIONS test-control is modified to toggle internal function access on and off for a single database connection. (check-in: 473892a8ec user: drh tags: trunk) | |
13:55 | Factor out code generation for in-line SQL functions into a separate routine inside of expr.c. (check-in: 586a65a28f user: drh tags: trunk) | |
01:26 | Issue OP_ReleaseReg opcodes against the array of registers used to compute index records after the index record has been computed. (check-in: e3330861b4 user: drh tags: trunk) | |
2019-12-31
| ||
23:17 | Remove an incorrect assert() statement. Ticket [46fcd700b855e6d1] (check-in: eca7ec9cda user: drh tags: trunk) | |
22:52 | Experimental branch with new sqlite3_db_config() options that could possible enhance security for applications reading potentially compromised database files. (check-in: 96a2db2612 user: drh tags: new-security-options) | |
18:39 | Also set the SQLITE_DIRECTONLY flag on the load_extension() function. (check-in: 3bd095a531 user: drh tags: trunk) | |
18:12 | Set the SQLITE_DIRECTONLY flag on the fts3_tokenizer() function of FTS3, thus preventing that function from being called from within a trigger or view. (check-in: f3171dc22e user: drh tags: trunk) | |
15:12 | Refactor names. Use "small" instead of "mini" to describe the smaller of the two lookaside memory allocation sizes. (check-in: 88d2449838 user: drh tags: two-size-lookaside) | |
14:49 | Merge recent enhancements from trunk. (check-in: 39d5557937 user: drh tags: two-size-lookaside) | |
12:18 | The OP_ResultRow opcode releases the SCopy dependences on all its registers, as the values in those registers will not be reused. (check-in: 1dc83c5d54 user: drh tags: trunk) | |
2019-12-30
| ||
23:50 | Back out the NEVER() from check-in [40d10e7aad5b8992] because it is reachable after all. Ticket [892575cdba4e1e36] (check-in: f481636f1a user: drh tags: trunk) | |
23:41 | Add an ALWAYS() to a conditional which is apparently always true. (check-in: ea44c607b8 user: drh tags: trunk) | |
20:42 | Put a NEVER() on a defensive branch. (check-in: 40d10e7aad user: drh tags: trunk) | |
20:42 | Fix a typo in a comment. No changes to code. (check-in: d4813a8d81 user: drh tags: trunk) | |
14:32 | Do not use HIDDEN columns for NATURAL joins. Fix for [7c0e06b16]. (check-in: ab09ef4271 user: dan tags: trunk) | |
06:55 | In ALTER TABLE, rename columns and tables in expressions that are optimized out by the "AND 0" optimization. Doing this also fixes an otherwise harmless assert() failure. (check-in: a9e0354c99 user: dan tags: trunk) | |
2019-12-29
| ||
22:08 | Do not allow triggers that run as part of REPLACE conflict resolution during an UPDATE to modify the the table being updated. Otherwise, those triggers might delete content out from under the update operation, leading to all kinds of problems. Ticket [314cc133e5ada126] (check-in: db4b7e1dc3 user: drh tags: trunk) | |
00:52 | Add the OP_FinishSeek opcode which completes an OP_DeferredSeek if the seek has not already completed. Also add the sqlite3WhereUsesDeferredSeek() interface to the query planner. The UPDATE implementation adds an OP_FinishSeek before running the final OP_Insert if one is needed. Ticket [ec8abb025e78f40c] and also an assertion fault reported by Yongheng. (check-in: 21ef6e9933 user: drh tags: trunk) | |
2019-12-28
| ||
18:25 | Do not attempt to flatten compound sub-queries in a FROM clause into the parent if any component of the sub-query uses a window function. (check-in: eeb76f621d user: dan tags: trunk) | |
18:08 | Change an assert() in where.c to a testcase() macro, since the condition may be false. This was a problem with the assert() only, there is no bug in release builds that omit assert(). (check-in: 82be135dee user: dan tags: trunk) | |
16:20 | Disable early coding of transitive constraints at the end of each loop in the WHERE clause processing if the loop being coded is for a LEFT JOIN, even if the loop is part of an OR-clause optimization for virtual tables. Test cases in TH3. (check-in: 9421b442ca user: drh tags: trunk) | |
15:24 | Fix an instance where the planner might choose to use the OR-optimization when it adds no benefit. The same quirk causes an assert() to fail. This is not a bug in released versions - without the assert() the library still gets the right answer, it just does so less efficiently than it should. (check-in: f4bed1d7af user: dan tags: trunk) | |
14:33 | Further improvements to .wheretrace during loop code generation. (check-in: c4d5b75c93 user: drh tags: trunk) | |
14:07 | New enhancements to .wheretrace. The 0x20000 flag shows the WHERE clause before and after coding each loop. The 0x800 flag shows status at the start and at the end of each loop. An extra "C" tag is shown on coded terms. (check-in: 59cc46e5a6 user: drh tags: trunk) | |
13:39 | Expose some of the Where data structure debug printing routines to the entire WHERE-clause processing module. (check-in: 85e7688776 user: drh tags: trunk) | |
13:17 | Add the --enable-all option to the main configure script as a short-hand to enable FTS4, FTS5, Geopoly/Rtree, JSON, and Sessions. In the amalgamation-autoconf, the --enable-rtree option (which is enabled by default) also now activates Geopoly. (check-in: 52ea0672d7 user: drh tags: trunk) | |
13:01 | Simplifications to the initialization of the sqlite3_index_info structure that is used to communicate with virtual table modules. Avoid adding unused constraints to the sqlite3_index_info structure. Extra constraints are harmless, but might be confusing to people trying to understand the code. (check-in: 5e6357fc95 user: drh tags: trunk) | |
12:33 | If the ".wheretrace 0x10000" bit is set, print WhereTerm.prereqAll and .prereqRight fields in the WhereTerm trace output. (check-in: a4f330b133 user: drh tags: trunk) | |
11:55 | Two new test cases added to test/fuzzdata8.db. (check-in: 1be2c18f40 user: drh tags: trunk) | |
09:08 | Second attempt to fix a problem with unwinding the WITH stack of the Parse object following an error. (check-in: 315d1f1a50 user: dan tags: trunk) | |
08:33 | Merge latest trunk changes with this branch. (Closed-Leaf check-in: d693be3753 user: dan tags: better-error-handling-1) | |
08:26 | Fix an assert() failure in altertable3-22.4. (check-in: c566a91d5c user: dan tags: better-error-handling-1) | |
03:55 | Fix a faulty assert() associated with query search limiting query plans. (check-in: 0d743585c2 user: drh tags: trunk) | |
02:40 | Convert an assert() back into a conditional. The conditional was converted into an assert() by check-in [6ae4ad6ebee4db88] (2009-05-28) because we were unable to find a test case for it. Yongheng's fuzzer just now found that test case. (check-in: 4d0b9109f7 user: drh tags: trunk) | |
01:52 | When an INSERT is receiving content from a SELECT, run an OP_ReleaseReg opcode at the top of each iteration of the loop in order to prevent spurious OP_SCopy misuse complaints. Ticket [de4b04149b9fdeae] (check-in: 6afadd3b3a user: drh tags: trunk) | |
00:36 | Recompute the values for all generated columns after NOT NULL ON CONFLICT REPLACE constraints fire. Tickets [37823501c68a09f9] and [5fbc159eeb092130]. (check-in: 4cc12c1886 user: drh tags: trunk) | |
2019-12-27
| ||
20:54 | Do not attempt to unwind the WITH stack in the Parse object following an error. This fixes a separate case to [de6e6d68], but also causes an assertion fault at select.c:4666 for test case altertab3-22.4. (check-in: d29edef934 user: dan tags: better-error-handling-1) | |
20:06 | Remove a NEVER() that is no longer true. Fix for [36ffedcb9]. (check-in: 597896ed0a user: dan tags: trunk) | |
19:46 | Fix a problem involving window function aliases being referenced from sub-selects. (check-in: e3b5fc05c0 user: dan tags: trunk) | |
18:15 | Add a missing "ifcapable rtree {...}" line to the window1.test test module. (check-in: 4e6fbb1a51 user: drh tags: trunk) | |
16:25 | Fix a problem with window functions in aggregate queries that do not have GROUP BY clauses. (check-in: 99609786f4 user: dan tags: trunk) | |
15:31 | Do not mistake constant integers in a PARTITION BY expression for references to ORDER BY style references to values returned by the SELECT statement. (check-in: 45c64d39d5 user: dan tags: trunk) | |
13:30 | Follow-up to check-in [c8c6dd0e6582ec91] - change the xAccess() method to return true if the file exists and it is anything other than a regular file, or if it is a regular file with a non-zero file size. (check-in: 8a39803ef8 user: drh tags: trunk) | |
08:57 | When determining if an aggregate within a sub-query should be processed as part of the sub-query or an outer query, consider any FILTER clause in the same way as the arguments to the aggregate. (check-in: 1ffc045d2b user: dan tags: trunk) | |
01:50 | Ensure that the Pager.changeCountDone flag is cleared whenever dropping the write lock, even when transitioning from EXCLUSIVE locking mode into NORMAL locking mode while in WAL mode. Ticket [fb3b3024ea238d5c]. (check-in: 846b1de6e5 user: drh tags: trunk) | |
00:19 | Fix buffer underflows in the zipfile extension associated with zero-length or NULL filename in the ZIP archive. But report on the mailing list by Yongheng and Rui. (check-in: 465a15c5c2 user: drh tags: trunk) | |
2019-12-26
| ||
23:40 | If an UPSERT can cause an Abort due to a constraint failure, make sure the query planner knows this. Ticket [7c13db5c3bf74001]. (check-in: f14ce94866 user: drh tags: trunk) | |
23:16 | An UPDATE of a table that is indexed by a constant virtual column that uses the one-pass optimization might cause the table seek to be omitted before reaching row DELETE/INSERT. Fix this by coding an extra OP_Column in that circumstance. Ticket [ec8abb025e78f40c] (check-in: e545604959 user: drh tags: trunk) | |
14:36 | Fix an assert() in fts5 that could fail if an xSavepoint() call on another vtab fails. Fix for [167b2aac] . (check-in: a5d7f5d24a user: dan tags: trunk) | |
01:10 | Makefile.in fix so that it works on systems that require a .EXE suffix on executables. (check-in: f482a4cdfa user: drh tags: trunk) | |
01:02 | Add two new fuzzer test cases from dbsqlfuzz. (check-in: f8d5586a8c user: drh tags: trunk) | |
00:56 | In the xAccess() method of the unix VFS, return true if the named object is a directory, regardless of what stat() reports as the st_size for the object. Different filesystems report st_size differently for directories. Problem reported on the mailing list by Stefan Brüns. (check-in: c8c6dd0e65 user: drh tags: trunk) | |
00:54 | Fix an FTS3 test case that depends on the ICU extension so that it only runs if SQLite is compiled with ICU. (check-in: 19c6240bdb user: drh tags: trunk) | |
00:53 | Fix an incorrect assert() added by check-in [fa58aad48a788802]. Problem found by dbsqlfuzz. (check-in: a17b29f08c user: drh tags: trunk) | |
00:20 | Disable the optimization that tries to pull the value of an expression from an index on that expression if the expression is a constant. (check-in: e5fd8b5050 user: drh tags: trunk) | |
2019-12-25
| ||
23:54 | When the sqlite3WindowRewrite() routine detects and error, have it convert the SELECT statement into just "SELECT null" so that it does not leave the parse tree in a goofy state that can cause problems with subsequent code before the stack has a chance to unwind and report the error. Ticket [d87336c81c7d0873] (check-in: fa58aad48a user: drh tags: trunk) | |
2019-12-24
| ||
21:42 | Fix a minor performance regression from check-in [401c9d30e06191d9] (check-in: 76f54ee867 user: drh tags: trunk) | |
21:01 | Backout the early VTable cursor close change from yesterday, as Yongheng and Rui have found a test case for which it fails. The new test case is added to fuzzcheck. (check-in: ddb10f0374 user: drh tags: trunk) | |
20:51 | Fix a problem causing fts5 integrity-check failures if numeric values are inserted into a table within a utf-16 database. Fix for [752fdbf6]. (check-in: bae060f382 user: dan tags: trunk) | |
18:53 | Make the zipfile() extension function more robust against zero-length filenames. (check-in: b9c2005f02 user: drh tags: trunk) | |
16:20 | Fix another case where malformed utf-8 was being mishandled in fts5. Fix for [df46a6f3]. (check-in: 1c0a05b09a user: dan tags: trunk) | |
15:35 | Fix an assert() added as part of commit [a11b393dc] that can fail if fts5 database records are corrupt. (check-in: 4630c1ec01 user: dan tags: trunk) | |
15:01 | Extra defense against problems following an OOM. dbsqlfuzz find. Also import the latest dbsqlfuzz test cases. (check-in: 0a70f5ddaf user: drh tags: trunk) | |
14:27 | Fix a spurious report of corruption that could be made by the fts5 integrity-check in SQLITE_DEBUG builds if the fts5 index contains malformed utf text. Ticket [d62981b76de521e3] (check-in: a11b393dc2 user: dan tags: trunk) | |
13:41 | Convert an ALWAYS() into an assert() with an extra error term. Dbsqlfuzz find, with test case in TH3. (check-in: b473ad35c5 user: drh tags: trunk) | |
01:53 | Allow comparison operators of a register against itself. Ticket [188f912b51cd802a], (check-in: 401c9d30e0 user: drh tags: trunk) | |
2019-12-23
| ||
21:11 | Test case for the zipfile-extension bug fix of the previous check-in. (check-in: bc8bfc7fcd user: drh tags: trunk) | |
21:04 | Fix the zipfile() function in the zipfile extension so that it is able to deal with goofy filenames that contain embedded zeros. (check-in: cc0fb00a12 user: drh tags: trunk) | |
20:41 | Thoroughly reset the rtree cursor at the start of each VFilter operation, including clearing its cache. This prevents left over pages in the cache which can cause problems on shutdown after a LEFT JOIN. Ticket [5eadca17c4dde90c] (check-in: 4c50afafce user: drh tags: trunk) | |
20:07 | Remove an extra deflateInit2() call accidently left in check-in [f5ee30426e8876e7] (check-in: 953e6aa6d9 user: drh tags: trunk) | |
19:28 | Do an early close of virtual table cursors to avoid unnecessary cursor contention in UPDATE for some virtual table implementations. Ticket [56a74875be799b85] (check-in: eb95dac7f6 user: drh tags: trunk) | |
18:02 | Early detection of database corruption in balance_deeper(). (check-in: 61c2233654 user: drh tags: trunk) | |
15:17 | Fix a case in which SQLite could fail to identify "x BETWEEN ? AND ?" being true as implying that x is not null. Ticket [dfd66334]. (check-in: 2f17974912 user: dan tags: trunk) | |
14:20 | For expressions like (x, y) IN (SELECT ...) where the SELECT uses window-functions, require that all columns on the LHS be indexed before an index can be used. Fix for [d9ed4ebe]. (check-in: 0b1dbd60f5 user: dan tags: trunk) | |
13:24 | Fix a shift-overflow problem in yesterday's check-in [36fdeb4f0a66970a] that OSSFuzz helpfully discovered overnight. Thanks Google. (check-in: bff38e2b53 user: drh tags: trunk) | |
03:37 | Fix the OP_Cast operator so that when casting to TEXT, it always leaves the result in the encoding of the database. Ticket [0911b5d161b039c6]. Test cases in TH3. (check-in: f347744e0d user: drh tags: trunk) | |
02:43 | Change the assert() back into a testcase(). See also check-ins [9ab985a9c8160b90] and [ddb17d92df194337] and other check-ins that those reference. Fix for ticket [9d708e474201c001] (check-in: 2c44c73499 user: drh tags: trunk) | |
02:18 | Enhance the sqlite3VdbeMemAboutToChange() shallow-copy validation mechanism by adding the new OP_ReleaseReg opcode to tell MemAboutToChange() that a range of registers is no longer needed so that the source register can be freely changed. This is a change to debugging and test builds only and does not impact release builds. Fix for ticket [c62c5e58524b204d] and [5ad2aa6921faa1ee]. The previous fix to ticket [5ad2aa6921faa1ee] is backed out by this change since this change is a better fix. (check-in: 36fdeb4f0a user: drh tags: trunk) | |
2019-12-22
| ||
23:48 | Change the code generator for the IN operator so that it avoids creating OP_Eq and OP_Ne opcode with the same P1 and P3 arguments. This enables us to back out check-in [ddb17d92df194337] and also fix ticket [188f912b51cd802]. (check-in: 9ab985a9c8 user: drh tags: trunk) | |
20:29 | Make a hard copy of strings in constraint checks prior to applying OP_RealAffinity, to avoid problems with a pointer accounting assert. This change is not strictly necessary - the correct answer is obtained without it and no UB occurs - however the pointer accounting asserts are useful to prevent other problems so it is a simple matter to bring this piece into compliance. Ticket [5ad2aa6921faa1ee] (check-in: 89a9dad633 user: drh tags: trunk) | |
20:03 | When constructing the virtual MATCH term of the WHERE clause for a virtual table that is in a LEFT JOIN, be sure to set the correct Expr.iRightJoinTable value. This value does not appear to ever be used, except inside of a single assert(). But it is good to set it correctly, nevertheless. This fixes ticket [7929c1efb2d67e98], which as far as I can tell is completely harmless. (check-in: ef604882a2 user: drh tags: trunk) | |
19:41 | In the WHERE clause debugging output (the .wheretrace output) show the parent index of any WhereTerm that is a child. (check-in: 7fc733328c user: drh tags: trunk) | |
18:55 | Fix to the optimization of check-in [a47efb7c8520a011] that reads the values of expressions used in an index-on-expression directly from the index rather than recomputing the value. If the expression has a top-level COLLATE or unlikely() operator, be sure to clear the corresponding flags prior to converting it into a TK_COLUMN expression. Failure to do this is most likely harmless in production, but might cause an assertion fault in debugging builds. Ticket [b0cb8aff561a6dcd]. Test cases in TH3. (check-in: 56539e1c13 user: drh tags: trunk) | |
18:23 | Back out the asserts of check-ins [a500893b6f64aced] and [d9c9fe9f5ad3fc91] as ticket [1b06916e01c82b66] demonstrates a case that refutes them. (check-in: ddb17d92df user: drh tags: trunk) | |
18:06 | When parsing a CREATE TABLE from the sqlite_master table, delete the CHECK constraints if there are any errors, since there might otherwise be attempts to use those CHECK constraints if PRAGMA writable_schema=ON is set. This undoes the fix in check-in [ea721b34477ab8b4] for a more general solution. (check-in: a982e6434c user: drh tags: trunk) | |
17:32 | Ensure sqlite3WindowRewrite() is called on a SELECT statement before any terms aremoved from it as part of IN() clause processing. Fix for [f00d096ca]. (check-in: 8c856404b4 user: dan tags: trunk) | |
14:29 | Fix "PRAGMA data_version" so that it works the same way with locking_mode=PERSIST and journal_mode=PERSIST configured. Fix for 7a458c2a5f. (check-in: 45748e2db0 user: dan tags: trunk) | |
2019-12-21
| ||
20:43 | Fix a spurious report of corruption from the fts3/4 integrity-check triggered by using the languageid option. (check-in: 70815e273f user: dan tags: trunk) | |