SQLite

Timeline
Login

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

618 check-ins using file ext/misc/appendvfs.c version 55121d31

2021-03-06
15:13
Limit parenthesis nesting depth in FTS3 expressions to SQLITE_MAX_EXPR_DEPTH. (check-in: 5ddd8032 user: drh tags: trunk)
14:46
Ensure the correct collation sequence is used for comparisons when delimiting a RANGE window. (check-in: 01eae68e user: dan tags: trunk)
13:28
Fix a crash in fts3 that could occur when running a NEAR query on a corrupt database. (check-in: 609d9499 user: dan tags: trunk)
13:02
Fix a possible NULL pointer dereference when applying a DROP COLUMN to a corrupt database schema. dbsqlfuzz 419aa525df93db6e463772c686ac6da27b46da9e (check-in: 349ccf58 user: drh tags: trunk)
2021-03-05
18:33
Modify the SQLITE_DBCONFIG_ENABLE_VIEW option so that it always permits TEMP views, just as SQLITE_DBCONFIG_ENABLE_TRIGGER always permits TEMP triggers. (check-in: 83dab8b3 user: drh tags: trunk)
15:42
Fix problems with RETURNING clauses attached to UPDATEs on tables with virtual columns. (check-in: 6b41b136 user: dan tags: trunk)
15:29
Fix another problem with RETURNING clauses in UPDATEs against tables with virtual columns. (Closed-Leaf check-in: f0ef5c76 user: dan tags: returning-fix)
15:10
Fix an assert() failure that could be triggered by a correlated sub-query in a RETURNING clause. (check-in: 551260c8 user: dan tags: returning-fix)
14:08
Fix the processing of implied LIMIT clauses when flattening a compound query. (check-in: 90c6b9fc user: drh tags: trunk)
09:42
Create new branch named "appendvfs_tighten" (check-in: 48c968bf user: larrybr tags: appendvfs_tighten)
2021-03-04
19:44
Mark the NotUsed parameter to the dropColumnFunc() function as unused, to avoid a harmless compiler warning. (check-in: 23459071 user: drh tags: trunk)
18:34
Put ALWAYS() on a branch that is now always true because of changes in OOM behavior due to check-in [9adf6e2469d18bc3]. (check-in: 8a1bb9c3 user: drh tags: trunk)
18:31
Update shell.c.in so that SQLITE_SHELL_IS_UTF8 is set to 0 if the -municode option is passed to gcc on windows. (check-in: 99e6a0f0 user: dan tags: trunk)
16:32
Remove a branch made unreachable by check-in [e893f88750ea64d4]. (check-in: 20d7dc12 user: drh tags: trunk)
16:10
Fix a segfault that could occur following an OOM condition. (check-in: 9adf6e24 user: dan tags: trunk)
16:03
Earlier detection of a misplaced ORDER BY or LIMIT clause in a compound SELECT. This prevents problems in recursive CTEs with multiple recursive terms in which there is an ORDER BY or LIMIT clause on the last non-recursive term. (check-in: e893f887 user: drh tags: trunk)
14:18
Fix a crash that could occur if a sub-select inside an EXISTS expression features an ORDER BY clause containing one or more window functions. (check-in: 9768e7db user: dan tags: trunk)
2021-03-03
19:54
Merge recent trunk enhancements into the reuse-schema branch. (check-in: 73bf458e user: drh tags: reuse-schema)
19:41
Merge in recent enhancements. (check-in: b0fc8ca1 user: drh tags: begin-concurrent-pnu-wal2)
19:36
Fix a buffer overrun that could occur in fts5 when running a prefix query against a corrupt db. (check-in: 4da40620 user: dan tags: trunk)
19:32
Merge recent trunk enhancements into the wal2 branch. (check-in: 0ae81039 user: drh tags: wal2)
19:25
Merge recent trunk enhancemenets into the begin-concurrent-pnu branch. (check-in: 59d3ec29 user: drh tags: begin-concurrent-pnu)
19:17
Merge recent trunk changes into the begin-concurrent branch. (check-in: acdafef8 user: drh tags: begin-concurrent)
16:46
Remove the --timeout option from the valgrindfuzz Makefile target. (check-in: 3f520b8b user: dan tags: trunk)
16:00
Fix a case where fts3 was erroneously reporting corruption. (check-in: e6c7683c user: dan tags: trunk)
14:07
Fix a harmless assertion fault resulting from [6e6b3729e0549de0] that was discovered by dbsqlfuzz. Enhance .selecttrace output to show omitted ORDER BY clauses. New dbsqlfuzz test cases added. (check-in: 27a0388a user: drh tags: trunk)
11:00
Fix a problem with using ALTER TABLE commands on database schemas that contain expressions of the form "<expr> NOT NULL" or "<expr> IS NULL" that can be evaluated at prepare time. (check-in: d2630ffa user: dan tags: trunk)
2021-03-02
21:07
Cast a string size variable to 64-bit to avoid any possibility of integer overflow. (check-in: a5940294 user: drh tags: trunk)
16:27
Limit the size of the exponent input in the second argument to the ieee754() SQL function, to avoid integer overflow. Ticket [22dea1cfdb9151e4]. (check-in: 99aab32d user: drh tags: trunk)
13:50
Change the timeout for test case "valgrindfuzz" from 600 seconds to 1200. (check-in: 7c6aa6f3 user: dan tags: trunk)
13:36
Do not run test file windowpushd.test as part of the "no_optimization" permutation. (check-in: 275a75aa user: dan tags: trunk)
00:42
Add ALWAYS() to an always-true conditional. (check-in: fa3506db user: drh tags: trunk)
2021-03-01
21:43
Add #ifndef macros so that the build works again with -DSQLITE_OMIT_AUTHORIZATION and -DSQLITE_OMIT_WINDOWFUNC. (check-in: 9400bdc6 user: drh tags: trunk)
16:16
Fix a couple of memory-sanitizer complaints that could be triggered by a corrupt database. (check-in: 39c8686c user: dan tags: trunk)
16:15
Fix another msan complain triggered by a corrupt database. (Closed-Leaf check-in: d235d406 user: dan tags: msan-fix)
2021-02-28
08:24
Initialize extra field in PgHdr1 to fix an msan complaint. (check-in: 4cb2ea57 user: dan tags: msan-fix)
2021-02-27
15:32
Add OOM test case associated with the fix in the previous commit. (check-in: a631c38d user: dan tags: trunk)
15:12
Remove a NEVER() that might sometimes be tree following an OOM. (check-in: ccb8cf52 user: drh tags: trunk)
2021-02-26
21:39
Fix a segfault that could occur when optimizing a NOT NULL constraint against an IPK column of a sub-query. (check-in: e4d1970e user: dan tags: trunk)
20:39
Attempt to optimize "x IS NULL" and "x IS NOT NULL" expressions when x is a column with a NOT NULL constraint. This addresses the performance issue described by forum post a5fc33cf9d8f4ff5. (check-in: de9c86c9 user: dan tags: trunk)
20:14
Attempt to optimize "x IS NULL" and "x IS NOT NULL" expressions when x is a column with a NOT NULL constraint. (Closed-Leaf check-in: 5ecd8425 user: dan tags: ifnull-opt)
15:20
Minor simplification in resolve.c. (check-in: 310dac34 user: dan tags: trunk)
2021-02-25
18:28
Fix test case in altercorrupt.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds. (check-in: 062b338f user: dan tags: trunk)
18:23
Fix a problem with UPDATE and DELETE statements that use both INDEXED BY and LIMIT clauses in SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds. (check-in: cc2b4b38 user: dan tags: trunk)
16:55
Fix handling of INSERT on views with implicitly named hidden columns in SQLITE_ENABLE_HIDDEN_COLUMNS builds. (check-in: 15795a96 user: dan tags: trunk)
15:50
Ensure that tests like "rbu.test" and "notify2.test" that are only run by specific configurations during release testing are run for both release and debug versions of the tests. (check-in: 911df43f user: dan tags: trunk)
2021-02-23
16:40
When a sub-transaction is released, if no pages required by containing sub-transactions were journaled, truncate the statement journal. This prevents out of control statement journal growth in some cases. See forum thread e78ffd751185a67e for context. (check-in: 23ca2389 user: dan tags: trunk)
15:53
Allow WHERE terms to be pushed down into sub-queries that contain window functions, provided that the WHERE term is made up of entirely of constants and copies of expressions found in the PARTITION BY clauses of all window functions in the sub-query. (check-in: 20689468 user: dan tags: trunk)
15:36
Further tests for the push-down optimization with window functions. (Closed-Leaf check-in: 4b089f70 user: dan tags: window-functions-pushdown)
2021-02-22
20:56
Allow WHERE terms to be pushed down into sub-queries that contain window functions, provided that the WHERE term is made up of entirely of constants and copies of expressions found in the PARTITION BY clauses of all window functions in the sub-query. (check-in: dac51f30 user: dan tags: window-functions-pushdown)
19:57
Add a few simple test cases for MATERIALIZED and NOT MATERIALIZED. (check-in: 64878124 user: drh tags: trunk)
16:42
Implement the MATERIALIZED and NOT MATERIALIZED hints on common table expressions. (check-in: b5a0778c user: drh tags: trunk)
15:44
When a sub-transaction is released, if no pages required by containing sub-transactions were journaled, truncate the statement journal. This might prevent out-of-control statement journal growth in some cases. (Closed-Leaf check-in: e36327fb user: dan tags: stmt-jrnl-truncate)
14:25
Add an ALWAYS() on a branch that is now unreachable. (Closed-Leaf check-in: ace54c5b user: drh tags: as-materialize-redux)
11:07
Fix inverted logic regarding the materialization hint on the push-down optimization. (check-in: b66a4957 user: drh tags: as-materialize-redux)
03:04
Add the AS MATERIALIZED and AS NOT MATERIALIZED syntax that works like it does in PostgreSQL. (check-in: a6bb272e user: drh tags: as-materialize-redux)
2021-02-21
23:44
Materialize any CTE that is used more than once. (check-in: ba59159f user: drh tags: as-materialize-redux)
21:04
Rename the "struct SrcList_item" object to the more succinct "SrcItem". This is a symbolic change only. The logic is unmodified. (check-in: bfd5bf2c user: drh tags: trunk)
01:19
Simplified resolution of CTE names. Slightly faster and about 100 bytes of code smaller. (check-in: 0d2c992f user: drh tags: trunk)
2021-02-20
21:20
Performance improvement in resolving the INDEXED BY index name for the common case where there is no INDEXED BY clause. (check-in: 554b286a user: drh tags: trunk)
19:22
Fix a case where FTS3/4 could pass a NULL pointer to memcpy() when handling a corrupt db. (check-in: 68bb541a user: dan tags: trunk)
18:02
Update sqlite3changeset_apply_v2() so that it handles no-op UPDATE changes (UPDATE changes that modify no columns). This fixes a regression introduced by [e4ccfac09b]. Also modify sqlite3rebaser_rebase() so that it does not output changesets containing such UPDATEs. (check-in: 0288a801 user: dan tags: trunk)
14:57
Break out the Cte object from the With object. This will make it simpler to add new kinds of Cte objects (ex: DML statements) and/or MATERIALIZED keywords in the future. It brings trunk into closer alignment with the experimental as-materialize branch. (check-in: f03efe90 user: drh tags: trunk)
13:36
Simplification to where.c manually cherrypicked from the as-materialize branch. (check-in: 03805a61 user: drh tags: trunk)
12:47
Merge changes from trunk. (Later:) Abandon this line of development. See the as-materialize-redux branch. (Closed-Leaf check-in: 7a90571e user: drh tags: as-materialize)
2021-02-19
18:39
Fix another problem handling corrupt database files in the ALTER TABLE DROP COLUMN code. (check-in: 9edf2ddc user: dan tags: trunk)
15:34
Add tests for ALTER TABLE DROP COLUMN commands. (check-in: 05dbea9b user: dan tags: trunk)
14:32
Add support for "ALTER TABLE ... DROP COLUMN ..." commands. (check-in: c844a331 user: dan tags: trunk)
14:13
Fix a crash that could occur in ALTER TABLE DROP COLUMN if the sqlite_schema table was corrupt. (Closed-Leaf check-in: 126ee1ec user: dan tags: alter-table-drop-column)
09:46
Omit an branch made unreachable by the improved error message from dropping the last column of a table. (check-in: c5719fc5 user: drh tags: alter-table-drop-column)
09:36
The COLUMN keyword in ALTER TABLE DROP COLUMN is optional. (check-in: a22f87fb user: drh tags: alter-table-drop-column)
09:09
Give a better error message on DROP COLUMN when attempting to drop the last column of a table. (check-in: 5e1f362b user: drh tags: alter-table-drop-column)
02:30
Add a NEVER() to an unreachable branch in the DROP COLUMN logic. (check-in: 963f498a user: drh tags: alter-table-drop-column)
2021-02-18
23:53
Add missing VdbeCoverage() macros. (check-in: 9bb720e6 user: drh tags: alter-table-drop-column)
23:03
Enhance renameParseSql() to better handle OOMs. (check-in: 68bcde7a user: drh tags: alter-table-drop-column)
22:47
Merge changes from trunk into the alter-table-drop-column branch. (check-in: 9ea64007 user: drh tags: alter-table-drop-column)
20:27
Fix DROP COLUMN so that it works even if the user has registered an authorizer callback. (check-in: e5f14418 user: dan tags: alter-table-drop-column)
19:25
Fix a problem with schema error detection when processing ALTER TABLE DROP COLUMN commands. (check-in: 565a6fd0 user: dan tags: alter-table-drop-column)
17:48
Add test cases for ALTER TABLE DROP COLUMN. (check-in: 204ee5e2 user: dan tags: alter-table-drop-column)
15:59
Avoid invoking the update or pre-update hooks during VACUUM operations. (check-in: 3c25cb4a user: dan tags: trunk)
15:45
Improvement to the INSERT optimization of check-in [16ac213c57196361] so that it works with SQLITE_ENABLE_HIDDEN_COLUMN but is also easier to maintain and a little faster as well. (check-in: f985a78e user: drh tags: trunk)
14:27
Disable the optimization of [16ac213c57196361] when the SQLITE_ENABLE_HIDDEN_COLUMN compile-time option is used, as the optimization does not work in that case. (check-in: 5168b06b user: drh tags: trunk)
12:18
Ensure that the pre-update hook is invoked for INSERT operations on WITHOUT ROWID tables that use the xfer optimization. (check-in: 66bbad23 user: dan tags: trunk)
01:02
Add missing VdbeCoverage() macros to some of the new RETURNING code. (check-in: 53a53909 user: drh tags: trunk)
00:59
Performance optimization in the resolver. (check-in: 1aafb94d user: drh tags: trunk)
00:26
Performance optimization in the code generator for INSERT for the common case where the target table has neither generated nor hidden columns. Also fix a redundant (and thus unreachable) branch in the resolver. (check-in: 16ac213c user: drh tags: trunk)
2021-02-17
21:13
Use the sqlite3ParserAddCleanup() mechanism to ensure that the AggInfo structure associated with an aggregate query is deallocated, for a performance increase and size reduction. (check-in: 7a139967 user: drh tags: trunk)
20:46
Fix a problem with OOM error handling in the new code on this branch. (check-in: ea999c9d user: dan tags: alter-table-drop-column)
20:19
Merge trunk changes into this branch. (check-in: 0cd5e2f9 user: dan tags: alter-table-drop-column)
20:08
Fix various issues with the changes on this branch. Add test cases for the same. (check-in: 10538ec6 user: dan tags: alter-table-drop-column)
13:19
Enhance the ".once" and ".output" commands in the CLI so that if the filename argument begins with "|" the name becomes the concatenation of all subsequent arguments. Hence, commands like ".once | open -f" become possible without the need for quotes. (check-in: c46a94a6 user: drh tags: trunk)
2021-02-16
20:43
Add experimental implementation of ALTER TABLE DROP COLUMN. Only some cases work so far. (check-in: f0217937 user: dan tags: alter-table-drop-column)
20:32
Simplification to the resolveAlias() routine. (check-in: 00bead39 user: drh tags: trunk)
20:01
New SELECTTRACE macros more clearly deliniate when the query planner is invoked in the middle of PRAGMA vdbe_addoptrace output. (check-in: 7c03ce49 user: drh tags: trunk)
19:29
Remove unnecessarily complexity from sqlite3WithReleaseByParse(). Improved TreeView output for the enhanced CTE structures. This code still does not work 100%. I'm saving my place in order to (maybe) come back to it later. (check-in: 30bb18b4 user: drh tags: as-materialize)
16:32
Trying to get the new AS MATERIALIZE syntax of CTEs to work. There are still performance and memory management issues. This is a WIP check-in. (check-in: bf0fd9b2 user: drh tags: as-materialize)
00:48
Change the syntax from "GENERATED AS" to "AS MATERIALIZED" so as to match the syntax of PostgreSQL 12+. (Closed-Leaf check-in: 78dcddd9 user: drh tags: with-generated-as)
2021-02-15
17:51
Merge the LIKE operator fix from trunk. (check-in: 8c861878 user: drh tags: with-generated-as)
17:02
Fix an issue with the LIKE operator when it includes the "ESCAPE '_'" clause. Ticket [c0aeea67d58ae0fd]. (check-in: 27d41179 user: drh tags: trunk)
14:55
Merge minor fixes from trunk. (check-in: d876b287 user: drh tags: with-generated-as)
14:32
Add tests for sqlite3_column_count(). (check-in: 7cc65ae5 user: dan tags: trunk)
13:17
Ensure that the ALTER TABLE statements return 0 for sqlite3_column_count(). (check-in: 29c1932a user: drh tags: trunk)
11:14
Fix an error in the test case fix in [ecd71203]. (check-in: 5411bfa4 user: dan tags: trunk)
2021-02-13
23:46
If the GENERATED keyword occurs before the AS keyword in a common table expression (CTE) definition, then that CTE becomes an "optimization barrier". For now, that means the CTE is always materialized. It also means that query flattener or pushdown optimizations that cross the CTE boundary are omitted. (check-in: 186ec18b user: drh tags: with-generated-as)
21:01
Add a test-control that allows setting a LIKE pattern for common table expression names such that CTEs with matching names become an optimization barrier - They are not flattened and are implemented by materialization. (Closed-Leaf check-in: 15692ec0 user: drh tags: optbarrier-test-ctrl)
18:14
Fix incorrect test name labels in the select1.test script. (check-in: 179c79ea user: drh tags: trunk)
16:39
Avoid manifesting a CTE (or other view) multiple times when it is possible to reuse the first manifestation. (check-in: 9692f510 user: drh tags: trunk)
14:26
Fix a problem in the unreleased union-all flattening enhancement (check-in: e4f8a79f user: dan tags: trunk)
2021-02-12
21:22
Fix a test case to account for the fact that different versions of OpenBSD behave differently when a program tries to read() from a file-descriptor open on a directory. (check-in: ecd71203 user: dan tags: trunk)
21:07
Parsing of DML statements in a WITH clause. But at this point, it just generates an error about "not yet supported". (Leaf check-in: 964ff68d user: drh tags: dml-in-cte)
11:37
Ensure all RBU tests are run as part of release testing. (check-in: a18dc08b user: dan tags: trunk)
2021-02-10
20:20
Merge latest trunk changes into this branch. (check-in: d29c41bd user: dan tags: reuse-schema)
20:00
Fix a longstanding problem causing an RBU vacuum to omit releasing some locks before finishing. (check-in: 66c07a07 user: dan tags: trunk)
19:49
Remove an assert() added by the previous commit that is sometimes false. (Closed-Leaf check-in: fb36ac4d user: dan tags: shm-lock-fix)
19:40
Fix a longstanding problem causing an RBU vacuum to omit releasing some locks before finishing. (check-in: cb5bdf82 user: dan tags: shm-lock-fix)
17:31
In RBU, avoid passing VFS xShmLock calls through to the underlying VFS in cases where xShmMap calls may not be. This fixes a bad interaction with ZipVFS. (check-in: bd1e9e0a user: dan tags: trunk)
2021-02-08
15:56
Correctly detect correlated subqueries when resolving names in RETURNING clauses. (check-in: b43cfa04 user: drh tags: trunk)
13:41
Improved name resolution for references to a table begin modified from within a subquery in the RETURNING clause. (check-in: 799d205b user: drh tags: trunk)
2021-02-07
23:28
Do not allow RETURNING in the DML statements of a trigger. (check-in: 7a8fe646 user: drh tags: trunk)
12:59
Fix harmless compiler warnings. (check-in: 5f8bf995 user: drh tags: trunk)
2021-02-06
14:56
Remove an ALWAYS() and NEVER() in the authorizer that become reachable as of [078dbff04a95a001]. Test case for coverage in TH3. (check-in: b469327e user: drh tags: trunk)
14:37
Fix the OSSFuzz-discovered shift problem from two days ago. This patch was omitted from [078dbff04a95a001] apparently because I made the edit to "sqlite3.c" rather than "resolve.c" where it belongs. (check-in: 864772ff user: drh tags: trunk)
2021-02-05
17:34
Remove unreachable code. Fix a shift UB problem introduced yesterday and discovered by OSSFuzz. (check-in: 078dbff0 user: drh tags: trunk)
2021-02-04
23:20
Change the RETURNING algorithm so that outputs accumulate in an ephemeral table until all modifications have been completed, and only then do results start being returned. This should help prevent problems with interleaved sqlite3_step() calls on two separate DML statements. It also seems to be closer to how PostgreSQL works, which might prevent compatibility problems. (check-in: c4615eb2 user: drh tags: trunk)
22:59
Remove dead code. Fix RETURNING for INSERT into a virtual table. (Closed-Leaf check-in: dbfa3869 user: drh tags: returning-manifested)
21:19
Initial commit (Leaf check-in: e73dbce8 user: shearer tags: selective-debug)
21:17
Fix an issue with RETURNING from UPSERT. (check-in: 757b74ba user: drh tags: returning-manifested)
20:52
Snapshot. New design appears to work on a simple test case. (check-in: 8a65fbee user: drh tags: returning-manifested)
17:29
Preliminary changes for a new implementation of RETURNING that captures all results in a buffer and plays them all back after the DML statement completes. This avoids problems with interleaved DML statements. This particular check-in is a non-functional work in progress. (check-in: 04b77d63 user: drh tags: returning-manifested)
13:52
Add NEVER() to a branch that check-in [5d54d9fd40638138] apparently made unreachable. (check-in: 5c8e6296 user: drh tags: trunk)
13:44
Performance optimization in sqlite3FinishCoding(). (check-in: 0f34f241 user: drh tags: trunk)
11:14
Work toward handling interleaved RETURNING statements. Trunk does not handle that case correctly. This branch is a partial implementation of ideas that might, however. (Closed-Leaf check-in: e1eb6213 user: drh tags: interleaved-returning)
2021-02-03
19:38
Corrections to the 'filepath_normalize' test suite helper procedure. (check-in: 32f4d044 user: mistachkin tags: trunk)
18:32
Change the name of Vdbe.magic to Vdbe.iVdbeMagic to disambiguate with sqlite3.magic. (check-in: 6b29e549 user: drh tags: trunk)
14:20
Avoid doing any foreign-key constraint related processing for an UPDATE statement that does not modify any columns that are part of FK constraints, even if the table has a self-referencing FK. (check-in: 7f3b036e user: dan tags: trunk)
13:20
Fix a harmless compiler warning. (check-in: 1eb69c64 user: drh tags: trunk)
13:08
Add support for the RETURNING clause following PostgreSQL syntax. Also change the behavior of SQLITE_DBCONFIG_ENABLE_TRIGGER so that TEMP triggers are always allowed, regardless of the setting. (check-in: 416c898b user: drh tags: trunk)
12:35
Fix an assert() that might be off-by-one in the case of a prior errors in the parse. (check-in: 06b15b17 user: drh tags: trunk)
00:55
Modify the SQLITE_DBCONFIG_ENABLE_TRIGGER setting so that it only disables main-schema triggers and allows TEMP trigger to continue operating. This is safe, since only the application (not an attacker) can add TEMP triggers. It will also all us to disengage SQLITE_DBCONFIG_ENABLE_TRIGGER on Fossil databases since Fossil has no main-schema triggers but does use TEMP triggers. (Closed-Leaf check-in: a10c5a25 user: drh tags: returning)
00:05
Load enhancements from trunk into the returning branch. (check-in: b84c7f60 user: drh tags: returning)
2021-02-02
20:46
Do not allow aggregates in a RETURNING clause. Fix a memory leak that occurs when window functions are used in a RETURNING clause. (check-in: 2e9bd94b user: drh tags: returning)
20:41
Modify the sessions extension to use more efficient SQL when applying a changeset or patchset. (check-in: e4ccfac0 user: dan tags: trunk)
12:01
Report an error if RETURNING is used for DELETE or UPDATE of a virtual table. (check-in: bd5dee84 user: drh tags: returning)
00:16
Allow the RETURNING trigger to exist for virtual tables. (check-in: 2f244ab4 user: drh tags: returning)
2021-02-01
21:26
Add a few test cases for RETURNING together with UPDATE/DELETE LIMIT. (check-in: 7611c77d user: drh tags: returning)
12:39
Improved corrupt database detection in balance_nonroot(). (check-in: 5d54d9fd user: drh tags: trunk)
01:57
Modify RETURNING so that it does not return changes implemented by cascading foreign keys or by triggers. (check-in: 6e62470a user: drh tags: returning)
2021-01-31
16:45
Mark an unreachable branch as ALWAYS(). (check-in: cb8b797a user: drh tags: returning)
15:50
New opcode OP_ChngCntRow used to output the result of PRAGMA change_count. Only this new opcode, and not OP_ResultRow, checks for foreign key errors. Faster performance, and now also works with RETURNING. (check-in: 154fc2b1 user: drh tags: returning)
12:41
When setting the number of result columns in a RETURNING trigger, be sure to set that value in the top-level bytecode program, not in the immediate caller of the trigger. (check-in: 1f1ce7ce user: drh tags: returning)
2021-01-30
21:55
Improved comments on the new code. (check-in: a38f0c1d user: drh tags: returning)
16:16
Add an ALWAYS() to an unreachable branch. (check-in: 6bb6de42 user: drh tags: returning)
14:17
Change the OP_ResultRow opcode so that it does not cancel pending statement transactions. (check-in: fea91e3a user: drh tags: returning)
12:07
Fix a obsolete assert() in the bytecode engine. Improved OOM detection in sqlite3AddReturning(). (check-in: 138b10d5 user: drh tags: returning)
03:06
Fix handling of an OOM condition in sqlite3AddReturning(). (check-in: 52204cd7 user: drh tags: returning)
02:43
Fix a memory deallocation problem that comes up when doing a RETURNING query on a corrupt database. I think I fixed this before, but it got unfixed with stale editor content. (check-in: 02b1415e user: drh tags: returning)
02:34
Another attempt to get trigger selection correct for RETURNING triggers. (check-in: 1b8ed522 user: drh tags: returning)
02:22
When running the RETURNING trigger, if it is tagged as a DELETE trigger, do not use it as INSERT or UPDATE. (check-in: 3c7a6e04 user: drh tags: returning)
01:30
Test cases added. RETURNING works with UPSERT as does PG. (check-in: f5698f96 user: drh tags: returning)
2021-01-29
22:33
Better handling of errors in RETURNING due to corrupt database files. (check-in: 6aa2a058 user: drh tags: returning)
21:31
RETURNING works even if "PRAGMA count_changes=ON" is set. (check-in: a9122d97 user: drh tags: returning)
21:18
Allow "*" wildcards in the RETURNING clause. (check-in: b0e3ae30 user: drh tags: returning)
19:32
Working prototype. (check-in: b7ef4dc2 user: drh tags: returning)
16:20
Fix possible division-by-zero in the new log() SQL functions. Problemm discovered by OSSFuzz. (check-in: 1ffd321a user: drh tags: trunk)
14:22
Incorporate the sqlite3TriggerList() optimization from trunk. And move the pReturning field to the uninitialized area in the Parse object, to save memset() time. (check-in: 29fbaf0e user: drh tags: returning)
13:47
Performance optimization (and size reduction) in sqlite3TriggerList() for the common case where there are no TEMP triggers. (check-in: 0defaf73 user: drh tags: trunk)
2021-01-27
20:35
Merge recent enhancements from trunk. (check-in: 5fbcb208 user: drh tags: returning)
19:15
Fix an issue with IN operator optimization introduced by check-in [4a43430fd23f8835] and described by ticket [ee51301f316c09e9]. (check-in: 9dc7fc9f user: drh tags: trunk)
17:15
Ensure a cursor used by the SeekScan operator does not point to a valid row on the first iteration of the loop. Possible fix for [ee51301f316c09e]. (Closed-Leaf check-in: 390cf60a user: dan tags: fix-2d6e8400)
2021-01-25
21:24
Add an extra log message in the case of an SQLITE_CORRUPT_INDEX error. (check-in: 0571c241 user: drh tags: trunk)
2021-01-22
21:23
Enhance the query planner to enable it to use an index for IS NOT NULL constraints, even if STAT4 is not enabled. (check-in: 7b2a7c73 user: drh tags: trunk)
20:28
Merge fixes from trunk. Omit a conditional in sqlite3IsLikeFunction() that was made unreachable by this enhancement. (Closed-Leaf check-in: 0b42f9eb user: drh tags: isnotnull-opt)
2021-01-21
21:36
Do not allow VACUUM to resize the page_size to 512 if the reserve_byte value is 31 or greater. forum post e807885dc5. (check-in: d5ea75a0 user: drh tags: trunk)
20:42
Performance optimizations in exprAnalyze() (check-in: 6d60cf54 user: drh tags: isnotnull-opt)
17:54
Always enable the IS NOT NULL optimization, even if STAT4 is not enabled. (check-in: fc98218c user: drh tags: isnotnull-opt)
16:02
Fix a problem caused by using an SQL variable in an OVER clause within a trigger program. Edit: The problem appears to have existed ever since window functions landed on trunk (check-in [17198a1206e2fbc9]) on 2018-06-30, version 3.25.0. (check-in: 02264ab6 user: dan tags: trunk)
15:40
Fix a problem caused by using an SQL variable in an OVER clause within a trigger program. (Closed-Leaf check-in: 4f676466 user: dan tags: fix-over-trigger)
2021-01-20
23:01
Improvements to the auxiliary "main.mk" makefile so that it works better with multi-threaded builds. (check-in: d1873054 user: drh tags: trunk)
15:10
Incorporate the 3.34.1 patches into the reuse-schema branch. (Leaf check-in: cc0e5828 user: drh tags: reuse-schema-3.34)
14:10
Version 3.34.1 (Leaf check-in: 10e20c0b user: drh tags: release, patch, version-3.34.1, branch-3.34)
10:59
Add tests for sqlite3session_memory_used() interface. (check-in: 5596611f user: dan tags: trunk)
2021-01-19
20:38
Fix an issue with sha3_query() when the first argument contains blank SQL statements. (check-in: a1a7a5f2 user: drh tags: branch-3.34)
20:17
Bump the version number to 3.34.1. (check-in: cea7d0f8 user: drh tags: branch-3.34)
20:09
Fix a problem handling sub-queries with both a correlated WHERE clause and a "HAVING 0" clause where the parent query is itself an aggregate. The problem was apparently introduced by check-in [6e6b3729e0549de0] (check-in: 30a4c323 user: drh tags: branch-3.34)
20:04
Prevent potential segfault in the sqlite-expert idxPopulateStat1 context cleanup code. (check-in: 69e31d52 user: drh tags: branch-3.34)
2021-01-18
19:28
Fix harmless compiler warnings seen with MSVC. (check-in: dc7938d2 user: mistachkin tags: trunk)
19:27
Update test helper procedure 'get_pwd' to handle the ComSpec environment variable being absent. (check-in: fe197955 user: mistachkin tags: trunk)
12:35
Enhance the query planner so that it is able to code EXISTS operators in the WHERE clause as if they were IN operators, when appropriate. (check-in: c1862abb user: drh tags: trunk)
00:11
More comments on the EXISTS-to-IN optimization logic. (Closed-Leaf check-in: 92cc2909 user: drh tags: exists-to-in)
2021-01-17
00:13
Minor simplification of the EXISTS-to-IN logic. (check-in: cac90a9f user: drh tags: exists-to-in)
2021-01-16
20:22
Improved handling of vector equalities in the EXISTS-to-IN translator. (check-in: ef49ee4a user: drh tags: exists-to-in)
18:55
Give the EXISTS-to-IN optimization the ability to handle some cases that involve vector comparisons, instead of throwing a mysterious error in those cases. (check-in: 87e78a19 user: drh tags: exists-to-in)
18:22
Add debugging output about the EXISTS-to-IN optimization when the ".wheretrace" flag has the 0x20 bit set. (check-in: 0dad5ce3 user: drh tags: exists-to-in)
12:15
Fix a hyperlink in the Lemon documentation. (check-in: 2ffb2ffa user: drh tags: trunk)
2021-01-15
17:51
Add OOM injection tests for new code on this branch. (check-in: 9a181dba user: dan tags: exists-to-in)
16:37
Update header comments for routines added by this branch. (check-in: 950030d6 user: dan tags: exists-to-in)
15:32
Ensure the EXISTS->IN transformation preserves the collation sequence of the comparison operation. (check-in: a373baae user: dan tags: exists-to-in)
15:21
Fix a potential NULL pointer dereference following OOM. (check-in: 8ce3cb90 user: drh tags: exists-to-in)
15:17
Add a new optimizer disabling bit to close off the exists-to-in optimization, for testing purposes. (check-in: a80c9a07 user: drh tags: exists-to-in)
14:25
Small performance improvement in the EXISTS-to-IN translator for the common case where the EXISTS operator is not found in the WHERE clause. (check-in: dcb7772d user: drh tags: exists-to-in)
14:15
Merge the latest trunk enhancements into the exists-to-in branch. (check-in: 13c4c908 user: drh tags: exists-to-in)
11:39
Add simple tests (and a fix) for the change on this branch. (check-in: 897f3f40 user: dan tags: exists-to-in)
2021-01-14
20:57
Improvements to the min/max optimization. Fix for a performance regression introduced at [b8ba2f17f938c035] reported by forum post 4050026ab8 (check-in: 249a71cc user: drh tags: trunk)
20:50
Allow the planner to convert an EXISTS(SELECT...) expression in a WHERE clause to the equivalent IN(...) expression in situations where this is possible and advantageous. (check-in: 9f90a882 user: dan tags: exists-to-in)
00:53
The early-out of the inner loop on the min/max optimization was overly aggressive for the cases where there is a join and outer loops contain IN operators. Fix this. Test case in TH3. (Closed-Leaf check-in: ccd3bae1 user: drh tags: minmax-opt-exp)
2021-01-13
21:05
Fix a harmless compiler warning. (check-in: 83ec01e3 user: drh tags: minmax-opt-exp)
19:28
Expand the number of optimization-disable bits from 16 to 32. Use one of the new bits to disable the min/max optimization, so that we can more easily verify that we get the same answer both with and within that optimization. (check-in: fd0c9a12 user: drh tags: minmax-opt-exp)
15:23
Further enhancements to the min/max optimization of check-in b8ba2f17f938c035 to fix the performance regression identified by forum post 4050026ab8. (check-in: 188772a1 user: drh tags: minmax-opt-exp)
12:59
cli: Omit surplus whitespace at the end of lines in .explain output. (check-in: 11e4eb09 user: drh tags: trunk)
11:44
In the .selecttrace output, show the ORDER BY clause added by the Min/Max optimization. (check-in: db0ecfe6 user: drh tags: trunk)
2021-01-12
20:16
Lexer and grammar rules for a RETURNING clause on DELETE/INSERT/UPDATE. Actually making this work, though, will involve a lot more code which will likely slow down processing for the common case where there is no RETURNING clause. Furthermore, RETURNING seems to be of limited usefulness and it is not standard SQL. So we abandon it here. These experimental changes are parked in a branch as an historical reference. If circumstances changes, we might take up the cause again some day. (check-in: abf8da81 user: drh tags: returning)
16:26
Merge the ParseCleanup enhancement to trunk. (check-in: 35824c1b user: drh tags: trunk)
15:30
Fix a potential use-after-free following an OOM in sqlite3ParserAddCleanup() and add a mechanism to detect situations where this might occur in the future. (Closed-Leaf check-in: 38ef8ab9 user: drh tags: parse-cleanup)
14:23
Rerun autoconf. (check-in: 8f3ab5da user: drh tags: trunk)
14:19
Fix for the top-level configure script so that it works with tcl 8.7. (check-in: 4810f814 user: dan tags: trunk)
2021-01-11
20:37
Add a linked list of ParseCleanup objects to the end of a Parse object and use that list as a place to put other sub-objects that need to be deallocated. Have a single such list for infrequently used sub-objects is more efficient than doing an a separate check for each kind of sub-object. Edit: Now possible to have use-after-free following an OOM. (check-in: affa2b7b user: drh tags: parse-cleanup)
2021-01-09
19:10
New CLI command: ".stats vmstep" enables the display of the virtual-machine step count only, after each command. Useful for optimization problems. (check-in: 49dfce46 user: drh tags: trunk)
18:24
More detailed compile-time testing before attempting to use atomic load intrinsics. See forum post fc0237a39b30ac0a. (check-in: 5204c2c4 user: drh tags: trunk)
2021-01-08
19:53
Fix an issue with sha3_query() when the first argument contains blank SQL statements. (check-in: 24baab9a user: drh tags: trunk)
2021-01-07
16:59
Update cksumvfs to check that the xCurrentTimeGetInt64 method of the underlying VFS is not NULL before invoking it. (check-in: c71f6cad user: dan tags: trunk)
16:29
Fix problems with some "crashsql" tests. (check-in: 0c8e2ede user: dan tags: trunk)
16:10
Fix harmless typos in comments per forum post 7849e58dd5 (check-in: d1e22e2f user: drh tags: trunk)
2021-01-04
18:28
Add extra test for handling of embedded nul characters in the fts4 unicode61 tokenizer. (check-in: c2c2c7e9 user: dan tags: trunk)
2021-01-02
23:56
In Lemon, factor the parser stack overflow detection logic out of the yy_reduce() subroutine and into the main parser routine, so that when overflow is detected, it can exit immediately. This saves a single conditional in the main loop of the parser. (check-in: 203c049c user: drh tags: trunk)
2021-01-01
22:06
Avoid allocating space to hold the prepared statements for CREATE statements when parsing the schema of an existing database, since those prepared statements are never used.. This helps to make startup faster, (check-in: d01e9f2d user: drh tags: trunk)
21:02
Faster and smaller test to ensure that the sqlite_schema.sql field is always a CREATE statement of some kind. (check-in: 76de2bb0 user: drh tags: trunk)
20:04
Change the unions of the Table.addColOffset field from characters to bytes. This makes the query that implements ALTER TABLE ADD COLUMN more complex and slightly slower, but also makes CREATE TABLE statement parsing faster by avoiding a call to sqlite3UtfCharLen(). Since, CREATE TABLE parsing is far more common than ALTER TABLE, this is a net win for performance. (check-in: 6f25f252 user: drh tags: trunk)
19:17
Use the column name hash to improve performance of column name collision detection while parsing CREATE TABLE statements. (check-in: d02820f0 user: drh tags: trunk)
18:32
Modify the makefile rule for "startup" so that it always builds with -Os and -DSQLITE_THREADSAFE=0 and no other options, for consistency of performance. (check-in: 5ac939e0 user: drh tags: trunk)
18:23
Size reduction and performance increase in sqlite3Prepare(). (check-in: 41f45c8e user: drh tags: trunk)
17:01
Small size reduction and performance improvement in sqlite3VdbeMakeReady() by linking the new prepared statement into the prepared statement list sooner rather than later. (check-in: 2996e800 user: drh tags: trunk)
16:43
Streamline processing of the authenticator callback for the common case when there is no callback. (check-in: d3196685 user: drh tags: trunk)
15:13
Add the "startup" test program designed to measure startup performance, and in particular schema parsing time. (check-in: 7b3b31ef user: drh tags: trunk)
01:44
Do not attempt to take a pointer to the ceil() and floor() functions as those routines are intrinsics on some versions of MSVC. (check-in: e5d7209e user: drh tags: trunk)
2020-12-30
13:20
New test case for the HAVING fix of check-in [f62f983b56623f0e]. (check-in: 45f46317 user: drh tags: trunk)
13:10
New test cases for cursor renumbering in the UNION ALL query flattener. (check-in: 270babf2 user: drh tags: trunk)
2020-12-29
16:48
Add an ALWAYS on an always-true conditional in the cursor renumbering logic of the UNION ALL flattener. Edit: turns out this change is incorrect and the conditional is reachable after all. See the nearby trunk check-in for test cases. (Closed-Leaf check-in: 5774318e user: drh tags: mistake)
15:06
Do not set the P3 parameter on OP_RowCell when copying an index btree, as P3 is not used in that case. (check-in: eef070a4 user: drh tags: trunk)
2020-12-28
21:42
Fix missing comma in ctime.c that would cause the ENABLE_MATH_FUNCTIONS output rw to merge with whatever row followed. Problem reported in forum post aacac97680. (check-in: 328bc4a0 user: drh tags: trunk)
2020-12-23
16:46
Add the sqlite3session_memory_used() API to the sessions module. For querying the amount of heap memory currently being used by a session object. (check-in: 823f75c2 user: dan tags: trunk)
2020-12-22
20:35
Fix SQLITE_OMIT_WINDOWFUNC builds by moving declaration of sqlite3ExpandSubquery out of "ifndef SQLITE_OMIT_WINDOWFUNC" block. (check-in: 9587fa8b user: dan tags: trunk)
19:57
Fix a couple spelling typos in comments. (check-in: 907ddf86 user: mistachkin tags: trunk)
16:23
Fix a problem handling sub-queries with both a correlated WHERE clause and a "HAVING 0" clause where the parent query is itself an aggregate. The problem was apparently introduced by check-in [6e6b3729e0549de0] (check-in: f62f983b user: dan tags: trunk)
14:54
Simplification to the aggregate-function analysis error detection logic at the end of sqlite3Select(). (check-in: 82884438 user: drh tags: trunk)
2020-12-21
19:50
Fix problems with joining UNION ALL sub-queries against other sub-queries that contain LEFT JOIN. (check-in: d554f710 user: dan tags: trunk)
18:39
Fix a problem when flattening joins between a UNION ALL sub-query and another sub-query that uses more than one window function. (check-in: ef9733fe user: dan tags: trunk)
14:51
Enhance documentation to show that "ro" is the correct way to say "readonly" in the mode= query parameter. (check-in: 788b9685 user: drh tags: trunk)
12:14
Add the --timer option to fuzzcheck. Get the --timeout option working in fuzzcheck when running dbsql tests. (check-in: 3b0c9b41 user: drh tags: trunk)
2020-12-20
14:51
Always declare the sqlite3WhereTrace variable, even for non-debug builds. (check-in: 88d93ee3 user: drh tags: trunk)
2020-12-19
15:39
Fix a broken assert() in fts5 that could be triggered by corrupt database records. (check-in: b79f59f9 user: dan tags: trunk)
13:58
Allow UNION ALL sub-queries to be flattened even if the parent query is a join. (check-in: df1d6482 user: drh tags: trunk)
2020-12-18
18:04
Fix for the previous fix in the case where a UNION ALL sub-query is joined against some other compound query. (Closed-Leaf check-in: 63c5cfb9 user: dan tags: union-all-flattener)
16:13
When flattening UNION ALL subqueries into a join query, ensure that separate cursor numbers are used for each segment of the newly flattened query. (check-in: c510377b user: dan tags: union-all-flattener)
2020-12-17
17:17
Fix a part of the header comment for flattenSubquery(). (check-in: dc0937ce user: dan tags: union-all-flattener)
16:48
Add test cases and minor fixes to this branch. (check-in: 5d6dc29d user: dan tags: union-all-flattener)
15:17
In the CLI, add the ".filectrl data_version" command. And put the various ".filectrl" subcommands in alphabetical order. (check-in: 34344521 user: drh tags: trunk)
11:30
Merge latest trunk changes into this branch. (check-in: 9f41f604 user: dan tags: reuse-schema)
11:24
Fix a problem with sqlite3_expanded_sql() that could occur with statements that use both numbered (e.g. "?1") and unnumbered (i.e. "?") parameters. (check-in: 2a6cd683 user: dan tags: trunk)
2020-12-16
21:09
Enhance the sqlite3BtreeTransferRow() routine so that it does more careful checks for corrupt database pages. (check-in: 85952e71 user: drh tags: trunk)
20:00
Allow sub-queries that use UNION ALL to be flattened, even if the parent query is a join. Still some problems on this branch. (check-in: 00e4bf74 user: dan tags: union-all-flattener)
14:20
Remove an unnecessary and incorrect #ifdef. Fix harmless compiler warnings. (check-in: 31cd1bbf user: drh tags: trunk)
13:20
Fix a typo in the sqlite3_free_filename() documentation. (check-in: 7316ee19 user: drh tags: branch-3.34)
13:17
Fix a typo in the sqlite3_free_filename() documentation. (check-in: 48301edc user: drh tags: trunk)
2020-12-15
19:27
Fix another integer overflow triggered by a corrupt database in recently modified vacuum code. (check-in: 4e2dd2a5 user: dan tags: trunk)
16:28
When the -statstep option is passed to the "rbu" executable, print out memory stats right before exiting, as well as every -statstep steps. (check-in: 94f81b51 user: dan tags: trunk)
13:55
Change an fts5 assert() that can be triggered by a corrupt database to an if() condition. (check-in: ea0a7f10 user: dan tags: trunk)
2020-12-14
16:50
Merge the latest trunk enhancements into the begin-concurrent-pnu branch. (check-in: daf04650 user: drh tags: begin-concurrent-pnu)
16:26
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: a1708e84 user: drh tags: begin-concurrent)
15:39
Enhance UPSERT so that it allows multiple ON CONFLICT clauses and does not require a conflict target for DO UPDATE. (check-in: 6b01a24d user: drh tags: trunk)
15:25
Fix an integer overflow problem in new VACUUM code. (check-in: 59b4367f user: dan tags: trunk)
13:52
Minor changes for test coverage. (Closed-Leaf check-in: e5a8fa50 user: drh tags: generalized-upsert)
2020-12-12
00:43
More test cases. No new problems discovered. (check-in: f34dd67e user: drh tags: generalized-upsert)
00:28
New test cases with corresponding bug fixes. (check-in: f22c21a9 user: drh tags: generalized-upsert)
2020-12-11
19:36
Begin adding test cases. Fix one bug found so far. More are pending. (check-in: aadd67dd user: drh tags: generalized-upsert)
19:01
Fix an assert() broken by recent changes to vacuum. (check-in: dd058da8 user: dan tags: trunk)
17:11
Small performance tweaks. (check-in: 5321d60c user: drh tags: generalized-upsert)
16:49
Bug fixes so that legacy tests pass. New tests for new functionality have not yet been added. (check-in: aa76790e user: drh tags: generalized-upsert)
16:03
Add an "#ifndef SQLITE_AMALGAMATION" block around the typedef for u64 in shathree.c. (check-in: b411f29e user: dan tags: trunk)
14:34
Fix the configure script on the autoconf distribution so that the --disable-threadsafe option works. See FreeBSD bug 244459. (check-in: e64ff2cc user: drh tags: trunk)
14:22
Fix the expert extension so that it handles generated columns correctly. (check-in: c2ae7ba6 user: dan tags: trunk)
01:17
Logic is in place to handle multiple ON CONFLICT clauses, but it does not work. Any use of ON CONFLICT will likely lead to memory faults. This is an incremental check-in to save my place. (check-in: 15514231 user: drh tags: generalized-upsert)
2020-12-10
20:31
Use an iterator for the index loop in sqlite3GenerateConstraintChecks(). The idea is that this iterator can be enhanced to traverse the indexes in any order, as required by multi-index UPSERT. (check-in: 64a4a91e user: drh tags: generalized-upsert)
19:54
Remove a redundant branch added by [56a54258560]. (check-in: b4d6f6d7 user: dan tags: trunk)
19:51
Changes to avoid loading large records into memory within VACUUM. (check-in: 56a54258 user: dan tags: trunk)
19:20
Fix minor issues with new code on this branch. (Closed-Leaf check-in: f7fa76d0 user: dan tags: vacuum-lomem)
18:07
Merge trunk changes into this branch. (check-in: 7337eed6 user: dan tags: vacuum-lomem)
18:06
Better integrate the changes on this branch with OP_Insert and OP_IdxInsert. (check-in: 101cef14 user: dan tags: vacuum-lomem)
13:49
Add an optional function to the chsumvfs extension. When activated by the SQLITE_CKSUMVFS_INIT_FUNCNAME macro, this function will invoke the file-control that sets the number of reserved bytes to 8. This can be used to initialize a cksumvfs database file by programming languages that do not have access to the sqlite3_file_control() interface. (check-in: 01841fb4 user: drh tags: trunk)
12:49
The DO UPDATE code generator searches for the correct ON CONFLICT clause to use. (check-in: a47e35ee user: drh tags: generalized-upsert)
2020-12-09
23:35
Fix compilation issues with MSVC related to C99. (check-in: c0de6c1f user: mistachkin tags: trunk)
20:33
Transfer large index or WITHOUT ROWID records between b-trees when vacuuming without loading them into memory. (check-in: dfd4ca68 user: dan tags: vacuum-lomem)
20:30
For upsert, the constraint check code generator uses a copy of the index list for the target table, which can potentially be reordered. (check-in: 3194c00c user: drh tags: generalized-upsert)
16:49
Add tests for a 'delete' command on a contentless table where values that weren't actually inserted are NULL. (check-in: 818c647c user: dan tags: trunk)
16:32
Avoid loading large intkey rows when VACUUMing, even if the page-size is changing. (check-in: 0d2c3776 user: dan tags: vacuum-lomem)
13:11
Improved comments in sqliteInt.h. No changes to code. (check-in: 8ccb8d1d user: drh tags: generalized-upsert)
01:34
Initialize all terms in the ON CONFLICT clause stack. (check-in: 5e683fd1 user: drh tags: generalized-upsert)
2020-12-08
20:19
Experimental changes to vacuum to avoid loading large records entirely into memory. Currently only works in limited cases only - for rowid tables when the page-size does not change. (check-in: c90e063c user: dan tags: vacuum-lomem)
14:29
Enhance UPSERT parsing to allow multiple ON CONFLICT clauses. Only the very last clause may omit the conflict target, but the conflict target may now be omitted for the DO UPDATE resolution. (check-in: 2ca62f4c user: drh tags: generalized-upsert)
2020-12-07
23:14
Fix a bad assert() in math1Func(). (check-in: 4b286129 user: drh tags: trunk)
21:19
Fix to the --disable-math option to ./configure. (check-in: 99ff6418 user: drh tags: trunk)
21:13
Many more math functions. Semantics follows PG wherever possible. (check-in: 6b93627b user: drh tags: trunk)
17:15
Begin adding new SQL functions that depend on -lm: ceil(), ceiling(), floor(), ln(), log(), and log10() so far. More to follow. (check-in: 4db5f2f7 user: drh tags: trunk)
2020-12-04
18:47
Update this branch with latest trunk changes. (check-in: 846e8444 user: dan tags: reuse-schema)
17:05
Fix harmless compiler warnings associated with the recent FTS5 enhancements. (check-in: 1db7c751 user: drh tags: trunk)
16:58
Fix a bug in the ".eqp" command of the shell that was introduced by the recent sqlite3SelectTrace/SQLITE_TESTCTRL_TRACEFLAGS changes. (check-in: fd02dffc user: drh tags: trunk)
16:49
Ensure that fts5 function matchinfo() is registered before running tests that use it in fts5corrupt3.test. (check-in: 932e05e0 user: dan tags: trunk)
16:26
Fix a test script problem in walvfs.test. (check-in: 4c5076fb user: dan tags: trunk)
16:25
Fix an incorrect datatype no the sqlite3WhereTrace variable in test1.c. (check-in: 4e6dab30 user: drh tags: trunk)
16:09
Eliminate the sqlite3_unsupported_selecttrace global variable by creating a new test-control to control SELECT tracing. Note that SELECT tracing is only available on debug builds. (check-in: fb07c4e3 user: drh tags: trunk)
16:04
Further changes to the trace variables to try to eliminate (harmless) compiler warnings in all configurations. (Closed-Leaf check-in: 3a4c98b9 user: drh tags: traceflags-test-control)
01:17
Alternative implementation of ".selecttrace" and ".wheretrace" that uses a test-control rather than global variables. (check-in: d36d6f29 user: drh tags: traceflags-test-control)
2020-12-03
21:22
When merging prefix lists in fts5, use 16-way merges instead of 2-way merges. This faster. (check-in: 026a9350 user: dan tags: trunk)
19:25
Do not simulate OOM faults on the SQLITE_FCNTL_CKPT_START and SQLITE_FCNTL_CKPT_DONE file-controls, as those are write-only and the return value is always ignored. (check-in: 62a2d394 user: drh tags: trunk)
14:21
Enhance the generate_series() table-valued function to support negative step values. (check-in: 9b60fc48 user: drh tags: trunk)
2020-12-02
20:07
Prevent potential segfault in the sqlite-expert idxPopulateStat1 context cleanup code. (check-in: c24f1344 user: mistachkin tags: trunk)
19:08
Allow a search for an N character prefix in fts5 to use a prefix index of size N+1, if no prefix index of size N exists. (check-in: 78a7801d user: dan tags: trunk)
18:27
Fix the ".open" command in the CLI so that it accepts command-line options both before and after the filename. (check-in: d330bf0c user: drh tags: trunk)
16:23
Improve performance for fts5 column filters that filter for more than one column. e.g. "{col1 col2 col3}:phrase". (check-in: d8de2f23 user: dan tags: trunk)
02:58
Parameterize the hash function in mkkeywordhash.c. This was an attempt to find a better hash function, which turned out to not be successful. (check-in: 2195d731 user: drh tags: trunk)
00:22
Increase the version number to 3.35.0 to begin the next development cycle. (check-in: edbabaa3 user: drh tags: trunk)
00:20
Slightly faster tokenization of non-keyword identifiers. (check-in: 55fa22bd user: drh tags: trunk)
2020-12-01
23:18
Add the --lookaside SIZE COUNT command-line option to the dbfuzz2 testing tool. (check-in: 2466960c user: drh tags: trunk)
16:36
Merge the 3.34.0 release into the reuse-schema branch. (check-in: 73b5f614 user: drh tags: reuse-schema)
16:14
Version 3.34.0 (check-in: a26b6597 user: drh tags: trunk, release, major-release, version-3.34.0)
2020-11-30
18:52
Update the tea/win/makefile.vc file that ships as part of the autoconf package to use "sqlite3" instead of "tclsqlite3" for the installed dll filename. (check-in: 23212b1a user: dan tags: trunk)
18:43
Update the tea/win/makefile.vc file that ships as part of the autoconf package to use "sqlite3" instead of "tclsqlite3" for the installed dll filename. (Closed-Leaf check-in: 93d4d9dc user: dan tags: win-tea-fix)
14:20
Do not reuse the obsolete SQLITE_TESTCTRL_PRNG_RESET value for SQLITE_TESTCTRL_SEEK_COUNT. Give SEEK_COUNT its own unique value. This avoids incompatibility with legacy test code. (check-in: fdba0b12 user: drh tags: trunk)
2020-11-27
20:56
Improve the speed of the tokenizer by recognizing that tokens starting with letters "_", "Y", or "Z" can never be SQL keywords and must be ordinary identifiers. (Closed-Leaf check-in: 16e281ed user: drh tags: faster-tokenizer)
19:40
Fix a compiler warning in fts5_aux.c. (check-in: 8edb983b user: dan tags: trunk)
16:15
Add missing cast to fts5 bm25() code. (check-in: 6ff96738 user: dan tags: trunk)
16:08
Remove a redundant "if( rc==SQLITE_OK )" from the fts5 bm25() code. (check-in: d85f4f27 user: dan tags: trunk)
16:05
Move an "if( rc==SQLITE_OK )" to outside a loop body in the fts5 bm25() code. (check-in: 14a4dcf3 user: dan tags: trunk)
15:28
Fix a case in the FTS5 integrity check where a corrupt database could cause a buffer overread. (check-in: a32b4f65 user: dan tags: trunk)
2020-11-26
20:13
Update mkunicode.tcl to match the change erroneously made to machine generated file fts5_unicode2.c in [b7b7bde9]. (check-in: 326d579d user: dan tags: trunk)
18:41
Merge latest changes from wal2 branch. (check-in: b451bb72 user: dan tags: begin-concurrent-pnu-wal2)
18:08
Merge latest trunk changes into this branch. (check-in: cb1f6f18 user: dan tags: wal2)
17:54
Merge latest changes from begin-concurrent-pnu into this branch. (check-in: d2de81a2 user: dan tags: begin-concurrent-report)
17:36
Merge latest changes from trunk into this branch. (check-in: a42e6f34 user: dan tags: begin-concurrent-pnu)
11:37
Update this branch with latest changes from trunk. (check-in: ddb97eee user: dan tags: begin-concurrent)
2020-11-25
20:29
Merge trunk changes into this branch. (check-in: f4b7c100 user: dan tags: reuse-schema)
18:44
Update a requirement mark in the e_expr.test script. (check-in: bb174a07 user: drh tags: trunk)
16:28
Fix harmless compiler warnings about unused function parameters. (check-in: 25d067c2 user: drh tags: trunk)
15:29
Fix a potential NULL pointer dereference in the geopoly_overlap() routine of the GeoPoly extension. (check-in: b5665712 user: drh tags: trunk)
14:50
Fix the shell1.test test script so that it works on windows. (check-in: 9bd15b07 user: drh tags: trunk)
13:59
Change the -init option to the command-line shell to honor the -bail option. Also change it to report an error if the filename mentioned cannot be opened. (check-in: a29f54bd user: drh tags: trunk)
2020-11-24
23:40
Fix a typo in the sqlite3_txn_state() documentation. (check-in: 5b432529 user: drh tags: trunk)
21:19
Add the new sqlite3_txn_state() interface to the set of routines accessible by run-time loadables extensions. (check-in: db25f1dc user: drh tags: trunk)
19:55
Fix a harmless typo in a comment. (check-in: b2a201f1 user: drh tags: trunk)
17:55
Fix a bug in OOM handling code introduced by [6a28713d]. (check-in: 8a786ce9 user: dan tags: trunk)
16:44
Ensure that super-journal and other journal filenames passed by SQLite to an sqlite3_vfs.xOpen() implementation may be safely passed to sqlite3_uri_parameter() and similar functions. (check-in: 6a28713d user: dan tags: trunk)
13:14
Remove the VERSION_NUMBER macro from configure.ac as it has been unused since 2009 check-in [7f4810747b086498]. See also forum post bb2c634fcd. (check-in: 5466dd55 user: drh tags: trunk)
2020-11-23
21:05
Syntactic changes to work around a bug in gcov 9.3.0. No changes to the generated code for release builds. (check-in: 4f1573b1 user: drh tags: trunk)
17:36
In os_unix.c, put ALWAYS() on unreachable branches associated with pathname normalization. (check-in: b45a08e3 user: drh tags: trunk)
15:30
Fix a test script problem causing crash8.test to fail when run with leak-sanitizer. (check-in: 2c437f7a user: dan tags: trunk)
14:50
Allow "substring()" as an alias for "substr()" for compatibility with other SQL engines. (check-in: aa2ee575 user: drh tags: trunk)
2020-11-20
14:16
Add file doc/vdbesort-memory.md, containing notes on the way vdbesort.c uses heap memory. (check-in: 07f53899 user: dan tags: trunk)
11:17
Declare a variable "const" in order to avoid compiler warnings. (check-in: 4f5481bf user: dan tags: wal2)
2020-11-19
21:12
The xFullPathname method of the unix VFS now normalizes the filenames by omitting surplus "/", "/./" and "/../" strings. (check-in: c38dec6f user: drh tags: trunk)
21:01
More test case changes so that shared-cache mode tests all work with normalized database names. (Closed-Leaf check-in: 6f0d5f09 user: drh tags: stronger-nofollow)
20:07
Fix the tkt3793 test case so that work even when filenames are normalized. (check-in: e85d32ac user: drh tags: stronger-nofollow)
19:43
Use an ephemeral table rather than a RowSet to remember rowids in the two-pass UPDATE algorithm, as this uses much less memory for large UPDATEs. (check-in: 842c4327 user: drh tags: trunk)
16:08
Fix things so that sqlite3_database_file_object() works with wal2 filenames. (check-in: c2426ae8 user: dan tags: wal2)
2020-11-18
23:44
If a read() or pread() indicates that the database file is unreadable due to filesystem damage, then it returns SQLITE_IOERR_CORRUPTFS which is then converted into SQLITE_CORRUPT before being returned to the application. (check-in: 849e4e14 user: drh tags: trunk)
21:50
Improvements to the mechanism that attempts to report SQLITE_CORRUPT if pread() says that the underlying filesystem is corrupt. (Closed-Leaf check-in: b887c750 user: drh tags: detect-corrupt-fs)
21:15
Merge trunk changes into this branch. (check-in: 6004de52 user: dan tags: reuse-schema)
20:55
Update cksumvfs.c so that if SQLITE_AMALGAMATION is defined, SQLITE_CKSUMVFS_STATIC is implied. (check-in: 184e9d78 user: dan tags: trunk)
18:36
Add test infrastructure for cksumvfs. And update cksumvfs so that it works in concert with version 2 VFSs. No changes to core SQLite. (check-in: 43d4801d user: dan tags: trunk)
14:30
Fix a problem causing sqlite3_carray_bind() to return an undefined value. (check-in: 083203a5 user: dan tags: trunk)
14:12
Update test code to fix a problem with SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 29c779a0 user: dan tags: trunk)
12:48
On unix, for certain error codes of read()/pread() return SQLITE_IOERR_CORRUPTFS instead of SQLITE_IOERR_READ. And then convert this error into SQLITE_CORRUPT prior to returning back to the application. (check-in: 9538ea84 user: drh tags: detect-corrupt-fs)
2020-11-17
21:26
Claw back most of the performance lost in the previous commit. (Closed-Leaf check-in: df8ce267 user: drh tags: lowmem-update-exp)
21:09
Fix trivial memory leaks in the shell and sqldiff programs. (check-in: 272793e5 user: dan tags: trunk)
18:25
Fix test file busy2.test so that it works with the "inmemory_journal" permutation. (check-in: b192fddd user: dan tags: trunk)
14:41
Add a single-argument form to the CARRAY table-valued function, with content bound using the sqlite3_carray_bind() interface that is included with the extension. (check-in: 7b229cb1 user: drh tags: trunk)
2020-11-16
18:45
Enhance the unix VFS so that it removes extra "/", "/./" and "/../" from the database filename. (check-in: 7ba89d3e user: drh tags: stronger-nofollow)
2020-11-14
20:03
Modify UPDATE so that two-pass updates on a rowid table use an ephemeral table to store rowids rather than a RowSet. This uses less memory, though it is slower. (check-in: 4673096d user: drh tags: lowmem-update-exp)
2020-11-12
18:16
Improved diagnostics output with ".wheretrace 0x800". No changes to non-debug builds. (check-in: 772ae83c user: drh tags: trunk)
2020-11-11
19:11
Fix a typo in a comment. No changes to code. (check-in: 572f1ed5 user: drh tags: trunk)
2020-11-08
20:44
Use NEVER and ALWAYS macros to confirm that the return value from sqlite3ExprSkipCollateAndLikely() is never NULL in some of its use cases. (check-in: 76d2eb86 user: drh tags: trunk)
2020-11-06
16:48
Add ALWAYS() to conditionals associated with SHM locking that are always true. (check-in: b599e890 user: drh tags: trunk)
2020-11-05
19:13
Suppress errors associated with TEMP triggers that reference objects in non-TEMP databases. This is a continuation of the fix for ticket #3810 shown in check-in [ba1afc040171810d] from 2009-08-06, based on a bug report in forum post 157dc791df (check-in: 991ca9b2 user: drh tags: trunk)
14:50
Remove unused variable from speedtest1.c (check-in: c0a18565 user: drh tags: trunk)
2020-11-03
11:54
Make platform compilation clearer, including the section that applies to both *ix and Windows Add link to the detailed compilation instructions Add brief Android section, it seems strange to omit it since Android is the majority use case by numbers (Closed-Leaf check-in: 2a71bebf user: shearer tags: docupdate)
11:27
Update for new git-style syntax in Fossil (check-in: d46b6778 user: shearer tags: docupdate)
11:20
Add links, especially for the docsrc repo, which is otherwise hard to find (check-in: e03867e2 user: shearer tags: docupdate)
2020-11-02
00:40
Fix an another OSS-Fuzz discovered assertion fault due to ALTER TABLE and strange triggers. (check-in: 6646d789 user: drh tags: trunk)
2020-10-31
18:58
Add the -tabs command-line option to the CLI. (check-in: 7d01e84d user: drh tags: trunk)
16:33
Update the ALTER TABLE command to correctly handle UPDATE ... FROM statements within trigger programs. (check-in: 3e6af890 user: dan tags: trunk)
2020-10-27
11:58
Prettify btree.h headings. Close branch. (Closed-Leaf check-in: ee9689ad user: shearer tags: btree-code-documentation)
11:13
Typo in btree.h (and unwanted merge; this branch for cherrypicking btree.h only) (check-in: eb6e5fc1 user: shearer tags: btree-code-documentation)
11:07
Final commit in btree.h reorg. No more unknowns. (check-in: ea06f1d1 user: shearer tags: btree-code-documentation)
2020-10-26
18:14
Always create a statement journal when using the OP_ParseSchema opcode, as you never know when it might fail. See the discussion on forum post daa2c728cc. (check-in: aa512f72 user: drh tags: trunk)
16:22
Ensure that the table argument passed to Tcl_GetIndexFromObjStruct() in the sessions module test code is declared "static". (check-in: 80eba105 user: dan tags: trunk)
13:24
Prevent fts5 tokenizer unicode61 from considering '\0' to be a token characters, even if other characters of class "Cc" are. See forum thread 09609d7e22 for details. (check-in: b7b7bde9 user: dan tags: trunk)
2020-10-22
18:50
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: 0e7e113d user: drh tags: trunk)
18:16
Test case updates. (Closed-Leaf check-in: 27c681c9 user: drh tags: avoid-bad-indexes)
15:47
Sometimes it makes sense to do a full table scan rather than try to use an index when most of the rows will be selected. This branch is trying to tune the query planner to make that happen more often. (check-in: 0f42099a user: drh tags: avoid-bad-indexes)
2020-10-20
14:40
Fix the sqlite3_hard_heap_limit() so that it works with sqlite3_realloc64() in addition to sqlite3_malloc64(). Improvements to OOM processing and debugging aids in the fuzzcheck utility. (check-in: 602d7369 user: drh tags: trunk)
12:37
Fix an assert() inside of debug-only code that can fail following an OOM. (check-in: 79da254f user: drh tags: trunk)
2020-10-19
20:49
Fix an incorrect table ref-count in the new recursive CTE logic that might result in a reference to freed memory following a syntax error. (check-in: 75a02888 user: drh tags: trunk)
12:35
Enhance recursive common table expressions to support two or more recursive terms. (check-in: 77e64647 user: drh tags: trunk)
01:44
New test cases for recursive CTEs with multiple recursive terms. (Leaf check-in: cd5182bd user: drh tags: cte-enhancement)
01:23
Allow multiple recursive terms in the compound SELECT of a recursive CTE. This facilitates writing a query to find find the connected components of an undirected graph. (check-in: 5481fa8c user: drh tags: cte-enhancement)
2020-10-18
18:35
Fix harmless compiler warnings. (check-in: 7f8802bb user: mistachkin tags: trunk)
2020-10-17
22:13
Fix the SQLITE_DESERIALIZE_FREEONCLOSE flag so that it works as it is documented to work. See forum post ba1dff667a (check-in: d6fac8a1 user: drh tags: trunk)
19:09
Fix an incorrect printf() in debugging logic in where.c. Problem reported by forum post 80a9c47769772207. (check-in: 883da4da user: drh tags: trunk)
2020-10-15
17:59
Minor fixes to the cksumvfs documentation in the header comment of the source file. Enhance speedtest1.c so that it can more easily do performance comparisons of cksumvfs. (check-in: ed3bb818 user: drh tags: trunk)
14:37
The windows VFS accepts query parameter "exclusive=true" to cause it to take a mandatory file lock, preventing other applications from even reading the file. See forum thread 11b5560864189b5d. (check-in: 05b573fd user: drh tags: trunk)
2020-10-14
21:31
Enhancements to TclKit batch tool for MSVC. (check-in: 2a8a4552 user: mistachkin tags: trunk)
21:30
Fix typo in a documentation comment. (check-in: 462adc7d user: mistachkin tags: trunk)
15:46
Enhanced documentation for sqlite3_vtab_nochange() to make it clear that it is an optimization and that virtual table implementations should be prepared for it to always return false. (check-in: 3e264361 user: drh tags: trunk)
2020-10-12
18:09
Fix some fts5 problems with signed integer overflow causing segfaults in -ftrapv builds. (check-in: 7e17c2f4 user: dan tags: trunk)
17:57
Improved quoting of the table name argument for the ".import" command of the CLI. See forum post 34591fefbe. (check-in: ce97b56d user: drh tags: trunk)
16:54
Add options --data-only and --nosys to the ".dump" command in the CLI. (check-in: 57123b14 user: drh tags: trunk)
15:27
Fix ALTER TABLE so that it can run even if the schema contains unknown collation sequences. (check-in: bc4bb943 user: dan tags: trunk)
14:56
Add the --nosys option to the .schema command in the CLI. (check-in: b72ee694 user: drh tags: trunk)
14:29
Fix UPDATE FROM statements on virtual tables that are declared WITHOUT ROWID. See forum post 0fee7951eb for more information. (check-in: bcb0bc6a user: dan tags: trunk)
13:24
Fix BEGIN IMMEDIATE and BEGIN EXCLUSIVE so that they work even if one or more of the database files in the connection are read-only. Test cases for this are in TH3. (check-in: 2fa08c39 user: drh tags: trunk)
2020-10-07
11:24
In the CSV extension, use SQLITE_TRANSIENT rather than SQLITE_STATIC on return values that can in fact change. (check-in: 54b54f02 user: drh tags: trunk)
2020-10-06
15:48
More additions and improvements to btree.h documentation (check-in: a49a7cde user: shearer tags: btree-code-documentation)
2020-10-05
16:41
Allow fts5 trigram tables created with detail=column or detail=none to optimize LIKE and GLOB queries. Allow case-insensitive tables to optimize GLOB as well as LIKE. (check-in: 64782463 user: dan tags: trunk)
2020-10-03
19:16
Do not apply affinities when creating entries for automatic indexes on views. Fix for [95302bdb]. (check-in: df12f097 user: dan tags: trunk)
17:06
Fix a segfault caused by running "column LIKE NULL" against an fts5 table using the trigram tokenizer. Fix for [e33ee62575fc22]. (check-in: 6e72a08d user: dan tags: trunk)
14:36
FTS5 does not handle tokens that contain embedded nul characters. Prevent the trigram tokenizer from returning such tokens. Fix for [2ba5930b2]. (check-in: b1d04874 user: dan tags: trunk)
2020-10-02
15:15
Fix some test code so that testfixture can build with SQLITE_OMIT_WAL defined. (check-in: dd009cd7 user: dan tags: trunk)
13:48
Additional corner-case fixes for the in-scan-vs-index or OP_SeekScan optimization. (check-in: ad5ab24e user: drh tags: trunk)
12:49
Remove an incorrect assert() from the OP_SeekScan opcode. (check-in: c0400f8c user: drh tags: trunk)
12:42
Fix a faulty assert() statement. Add new test cases. (check-in: 80ecdb3d user: drh tags: trunk)
11:55
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: 091d7193 user: drh tags: trunk)
02:02
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: c75c3a3b user: drh tags: trunk)
2020-10-01
17:24
Add experimental "trigram" tokenizer to fts5. (check-in: c4e8ec79 user: dan tags: trunk)
17:15
Add the -trigram option to the fts5txt2db.tcl script. (Closed-Leaf check-in: a394dd26 user: dan tags: fts5-trigram)
16:10
Add tests for the trigram tokenizer. Fix minor issues. (check-in: 897ced99 user: dan tags: fts5-trigram)
15:46
Fix the OP_SeekScan opcode so that its variable names do not cause problems for the test/vdbe-compress.tcl script. (check-in: 7a78274a user: drh tags: trunk)
14:38
Remove a debugging printf() accidentally left in the previous check-in. (check-in: e9d1efa5 user: drh tags: trunk)
14:36
The IN-early-out optimization does not work for virtual tables. Do not try to use it there. Fix for ticket [2d5a3163563d559f]. Test cases in TH3. (check-in: dbec6910 user: drh tags: trunk)
2020-09-30
20:35
Add experimental unicode-aware trigram tokenizer to fts5. And support for LIKE and GLOB optimizations for fts5 tables that use said tokenizer. (check-in: 0d7810c1 user: dan tags: fts5-trigram)
18:06
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: 4a43430f user: drh tags: trunk)
18:03
For the OP_SeekScan opcode, adjust the number of steps run before giving up based on the estimated number of comparisons needed to perform a seek. (Closed-Leaf check-in: dc4172e6 user: drh tags: in-scan-vs-index)
17:32
Back out the incorrect optimization of check-in [e51ecadcbdef5ce6] as ticket [5c4e7aa793943803] reports a case where the optimization does not work. (check-in: 7395e96b user: drh tags: trunk)
15:36
In the query flattener when substituting expression Y in place of expression X, if X is marked has having come from an ON or USING clause of a LEFT JOIN, then be sure that all subexpressions of Y, not just the root node of Y, are similarly marked. Otherwise, if Y is an AND operator, it will be split up during WHERE clause analysis and the subexpressions will not get the special treatment needed by LEFT JOIN ON/USING clauses. Fix for ticket [66e4b0e271c47145]. (check-in: 69f9eb73 user: drh tags: trunk)
09:17
Better understanding of savepoint code (check-in: ce6d8d62 user: shearer tags: trunk)
00:48
Add an sqlite3FaultSim() call to btreeNext() to make it easier to simulate I/O errors in calls to sqlite3BtreeNext(), and in OP_SeekScan. (check-in: 29cca775 user: drh tags: in-scan-vs-index)
00:10
In the OP_SeekScan opcode, changes to pOp must occur after the call to VdbeBranchTaken() so that the VdbeBranchTaken() attributes the branch to the correct opcode. (check-in: 61fbe7aa user: drh tags: in-scan-vs-index)
2020-09-29
23:52
The OP_SeekScan opcode is a no-op if the cursor is not pointing to a valid row upon entry. (check-in: 4afc96b5 user: drh tags: in-scan-vs-index)
20:22
Coverage testing of the OP_SeekScan opcode. Fix a problem that comes up when OP_SeekScan reaches the end of the table. (check-in: 9e57e758 user: drh tags: in-scan-vs-index)
17:29
Improved comments on the new OP_SeekScan opcode. (check-in: 6110fdd5 user: drh tags: in-scan-vs-index)
16:05
Improved performance by manually in-lining the sqlite3VdbeIdxKeyCompare() routine for the OP_IdxGT opcode and its kin. (check-in: 2206a2c8 user: drh tags: in-scan-vs-index)
15:32
Typo fix to repair the early-out optimization. Also avoid unnecessary OP_SeekHit opcodes. (check-in: 8fd7d8df user: drh tags: in-scan-vs-index)
01:48
The OP_SeekScan opcode works, but using it requires disabling the IN-earlyout optimization because the OP_IfNoHope opcode might move the cursor. (check-in: f3c36b84 user: drh tags: in-scan-vs-index)
2020-09-28
19:51
Revisiting the IN-scan optimization to try to fix it for the corner case where the statistics deceive the query planner into using a scan when an indexed lookup would be better. This check-in changes the code generation to do the IN-scan using a new OP_SeekScan opcode. That new opcode is designed to abandon the scan and fall back to a seek if it doesn't find a match quickly enough. For this work-in-progress check-in, OP_SeekScan is still a no-op and OP_SeekGE still ends up doing all the work. (check-in: d720b698 user: drh tags: in-scan-vs-index)
15:49
Small performance improvement and size reduction by reducing the size of the WhereTerm object. (check-in: 43f7ddad user: drh tags: trunk)
13:34
Avoid the possibility of integer overflow on the --pagecache option to the CLI. See forum post 10a2892377 (check-in: d3d13df3 user: drh tags: trunk)
2020-09-25
17:17
Clarify (check-in: 14dba0f3 user: shearer tags: btree-code-documentation)
16:54
Distinguish between checkpoints (WAL-only, implementation specific) and savepoints (Btree internal implementation of COMMIT/ROLLBACK subtransactions) and SQL SAVEPOINT (identical name for SQL-level subtransactions) (check-in: ae686ab6 user: shearer tags: btree-code-documentation)
14:26
Reset to trunk's func. Still learning Fossil. (check-in: a4840cf5 user: shearer tags: btree-code-documentation)
13:56
More classification of functions. Fix incorrect comment that sqlite3BtreeCursorHasHint() is only used within asserts. (check-in: 78d8db7c user: shearer tags: btree-code-documentation)
09:42
Merge recent trunk changes into the btree-code-documentation branch (check-in: 3a576608 user: shearer tags: btree-code-documentation)
08:17
Add reminder comment that, by definition, these functions won't be called from elsewhere in SQLite. Useful to remember for beginners who may suspect unusued code. (check-in: 6f5c1fde user: shearer tags: btree-code-documentation)
2020-09-24
11:41
Added context to explain that the test coverage is about MC/DC in general, not just an SQLite-specifc test harness. (check-in: 770dbedd user: shearer tags: btree-code-documentation)
06:37
Group metadata definitions together (check-in: 5c306f42 user: shearer tags: btree-code-documentation)
2020-09-23
17:31
Figured out where/how sqlite3BtreeRowCountEst() is called (check-in: a4653715 user: shearer tags: btree-code-documentation)
2020-09-21
20:18
Fix harmless compiler warning seen with MSVC. (check-in: 4591ee03 user: mistachkin tags: trunk)
14:53
In fts5 integrity checks, do not compare the contents of the index against an external content table unless specifically requested. (check-in: 78216369 user: dan tags: trunk)
2020-09-20
13:33
Remove a new assert() that the compiler finds is always true at compile-time, to avoid a compiler warning. (check-in: 8bbaee23 user: drh tags: trunk)
12:10
Attempt to silence harmless static analyzer warnings in Lemon and in the Lemon-generated parser. (check-in: de8ce22a user: drh tags: trunk)
2020-09-17
21:11
Fix a typo in the documentation comment for sqlite3_preupdate_hook(). (check-in: 4542d194 user: dan tags: trunk)
17:01
Fix a problem in sqlite-expert causing it to ignore equality constraints on the second or subsequent columns of a multi-column PRIMARY KEY. (check-in: c666c85a user: dan tags: trunk)
15:16
Fix a problem in fts5 causing the in-memory hash table to be flushed more often than necessary. (check-in: 9a55601d user: dan tags: trunk)
15:04
Order btree.h by logical function, add comments (check-in: ab53b317 user: shearer tags: btree-code-documentation)
14:16
Fix a "jump depends on unitialized value" valgrind/asan error in fts5. (check-in: 66f94d62 user: dan tags: trunk)
11:56
Earlier detection of corruption in the rtreecheck() SQL function to prevent a (harmless) read of an uninitialized value. (check-in: e2074b24 user: drh tags: trunk)
11:32
Prevent use-after-free of the u.vtab.idxStr string following an OOM while generating the OP_VFilter opcode. (check-in: 751fe4ed user: drh tags: trunk)
00:46
DISTINCT may not be ignored inside a UNION ALL common table expression. Fix for ticket [c51489c3b8f919c5] (check-in: 7d2b590d user: drh tags: trunk)
2020-09-16
19:48
Fix a pair of assert()s in "PRAGMA foreign_key_check" that might have given a false-positive following an OOM. (check-in: 9ea3039b user: drh tags: trunk)
16:55
Fix harmless compiler warnings in Lemon. (check-in: 6c94ba4b user: drh tags: trunk)
16:55
Merge bugfixes made since version 3.33.0 into this branch. (Leaf check-in: 2e269dcd user: dan tags: reuse-schema-3.33)
16:49
Fix a buffer overread found by OSSFuzz that could occur if a WITHOUT ROWID table with many columns was NATURAL JOINed against itself. (Leaf check-in: 807643c5 user: dan tags: branch-3.33)
16:48
Do not invoke usleep() for more than 999999 microseconds. (check-in: 1f0055d0 user: dan tags: branch-3.33)
16:45
Fix a tsan error that could occur when using shared-cache mode. (check-in: 61981b97 user: dan tags: branch-3.33)
16:44
Fix another (harmless in practice) tsan error in shared-cache mode. (check-in: 553e20c3 user: dan tags: branch-3.33)
16:41
Apply the same fix for ticket [9eda2697f5cc1aba] to text-to-integer conversions that was done for floating point conversions by check-in [1c76f1d8ec0937a2]. (check-in: 1b4801de user: dan tags: branch-3.33)
16:40
Correctly handle expressions like "x IS (not) true/false" within the rhs of IN() expressions. Fix for [f3ff1472]. (check-in: 42361033 user: dan tags: branch-3.33)
16:39
Fix a crash that could occur in SQLITE_MAX_EXPR_DEPTH=0 builds when processing SQL containing syntax errors. (check-in: 6438db45 user: dan tags: branch-3.33)
16:38
Do not skip over TK_IF_NULL_ROW operators when bypassing TK_COLLATE operators. Fix to check-in [ac31edd3eeafcef4] which was itself a fix for ticket [45f4bf4eb4ffd788]. (check-in: 85041611 user: dan tags: branch-3.33)
2020-09-15
20:48
Fix a buffer overread found by OSSFuzz that could occur if a WITHOUT ROWID table with many columns was NATURAL JOINed against itself. (check-in: 3d35fa0b user: dan tags: trunk)
12:29
Do not invoke usleep() for more than 999999 microseconds. (check-in: 1f5ed852 user: drh tags: trunk)
2020-09-11
15:01
Catch fts5 index corruption caused by issuing 'delete' commands with incorrect data earlier in some cases. Also fix a couple of test script problems. (check-in: b79f19ed user: dan tags: trunk)
2020-09-10
15:09
Try again to fix the typo in the sqlite3_txn_state() documentation. (check-in: 6d1ab040 user: drh tags: trunk)
14:54
Fix typo in the documentation for the new sqlite3_txn_state() interface. (check-in: 23f7d017 user: drh tags: trunk)
12:41
If an amalgamation is created using SQLITE_ENABLE_UPDATE_DELETE_LIMIT, ensure that it can still be compiled without that option by setting the SQLITE_UDL_CAPABLE_PARSER flag in the preamble. (check-in: 5b905d7d user: drh tags: trunk)
2020-09-07
11:23
Merge latest trunk changes into this branch. (check-in: ae1a778d user: dan tags: reuse-schema)
11:14
Fix another (harmless in practice) tsan error in shared-cache mode. (check-in: 5a74fa3f user: dan tags: trunk)
2020-09-06
17:40
Remove an artifical limitation on the length of columns in the "box" output mode of the command-line shell. (check-in: 783fa887 user: drh tags: trunk)
2020-09-05
06:21
Fix a bug in Lemon that might cause it to crash if there is a multi-terminal token with a space following the "|" separator. This does not affect SQLite. (check-in: 430c5d1d user: drh tags: trunk)
2020-09-04
19:12
Merge tsan error fix from trunk into this branch. (check-in: 93cc60b3 user: dan tags: reuse-schema)
19:10
Fix a tsan error that could occur when using shared-cache mode. (check-in: de80bc87 user: dan tags: trunk)
17:40
Update this branch with latest changes from trunk. (check-in: ca8deb44 user: dan tags: reuse-schema)
17:30
Ensure that the busy-handler count is reset at the end of each sqlite3_file_control() and sqlite3_prepare() (and _v2() and _v3()). (check-in: 5dd05940 user: dan tags: trunk)
2020-09-02
16:14
Add tests for virtual table shmlock. (Leaf check-in: 1c6a8442 user: dan tags: shmlock-vtab)
15:26
Fix reporting on locks from external processes. Various other fixes. (check-in: 459de23e user: dan tags: shmlock-vtab)
2020-09-01
20:56
Add file-controls and a vtab frontend for querying the unix VFS for the currently held shm-locks. Still some issues. (check-in: ef10e1b3 user: dan tags: shmlock-vtab)
19:02
Fix harmless compiler warning. (check-in: a711e8cd user: mistachkin tags: trunk)
12:26
In the Lemon output, add a prefix comment that explains that the output file is automatically generated and shows the name of the source file. (check-in: d34caf3b user: drh tags: trunk)
11:20
Lemon updates: (1) include the #defines for all tokens in the generated C file, so that the C-file can be stand-alone. (2) If the grammar begins with a %include {...} directive on line one, make that directive the header for the generated C file. (3) Enhance the lemon.html documentation. (check-in: 84d54eb3 user: drh tags: trunk)
01:52
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: 35505c68 user: drh tags: trunk)
00:26
Fix a harmless compiler warning. (check-in: 3ca0b7d5 user: drh tags: trunk)
00:09
Minor changes - fix a compiler warning and add an assert(). (Closed-Leaf check-in: 07222dce user: drh tags: in-early-out-fail)
2020-08-31
20:37
Update this branch with the "PRAGMA noop_update" fix from begin-concurrent-report. (Leaf check-in: 1d984722 user: dan tags: begin-concurrent-unixshmlock-opt)
20:29
Update this branch with the "PRAGMA noop_update" fix from begin-concurrent-pnu. (check-in: 3c0423f0 user: dan tags: begin-concurrent-report)
20:27
Restore the "PRAGMA noop_update" feature that was broken by [2b3241cf67c8eea7]. (check-in: 5fa4cbcb user: dan tags: begin-concurrent-pnu)
19:58
Merge the SEEK_COUNT instrumentation enhancement from trunk. (check-in: 689ede95 user: drh tags: in-early-out-fail)
18:49
New test-control that returns the number of calls to sqlite3BtreeMovetoUnpacked() on the main database and then resets the counter. This only works for SQLITE_DEBUG builds. (check-in: dca5b919 user: drh tags: trunk)
16:31
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 2020-08-31: This experiment did not work out. A better approach is now on trunk. (check-in: e9d983c6 user: drh tags: in-early-out-fail)
12:29
Fix the documentation for the OP_IdxGT family of opcodes to show that the P5 operand is not used. (check-in: 62f7d2a6 user: drh tags: trunk)
2020-08-29
19:00
Fix a sanitizer warning in zipfile.c. (check-in: ded1a75b user: dan tags: trunk)
15:36
Improve performance of wal-mode locking on unix in cases where there are hundreds of connections to a single database within the same process. (check-in: 30214727 user: dan tags: begin-concurrent-unixshmlock-opt)
15:15
Improve performance of wal-mode locking on unix in cases where there are hundreds of connections to a single database within the same process. (check-in: a1c19eea user: dan tags: trunk)
2020-08-28
20:01
Fix handling of an xShmLock(SHARED, UNLOCK) call when the caller does not hold any lock on the specified slot, but another connection in the same process holds an EXCLUSIVE. (Closed-Leaf check-in: 3eb36502 user: dan tags: unixshmlock-opt)
19:27
Modify the unixShmLock() function to avoid iterating through the (possibly large) set of connections to the same database file. (check-in: e0faddf0 user: dan tags: unixshmlock-opt)
18:47
Add the miscellaneous 'series' extension to the shell. (check-in: fc0856dc user: mistachkin tags: trunk)
13:10
Update Lemon documentation. Patches from sgbeal. (check-in: f5dc8344 user: drh tags: trunk)
12:58
Fix a couple of unreachable branches. (check-in: f2d26f2b user: drh tags: trunk)
11:19
Add fts5 test to confirm that for a table with columns a, b, c and d, "{a b}" and "-{c d}" are handled similarly. (check-in: 1a049209 user: dan tags: trunk)
2020-08-27
20:55
Remove a (harmless) redundant variable from the CLI implementation. (check-in: 3f7bbb84 user: drh tags: trunk)
18:36
Include the original text of the CHECK constraint in the error message for anonymous CHECK constraints. (check-in: 5ce34a95 user: drh tags: trunk)
16:28
Apply the same fix for ticket [9eda2697f5cc1aba] to text-to-integer conversions that was done for floating point conversions by check-in [1c76f1d8ec0937a2]. (check-in: aafb7a21 user: drh tags: trunk)
14:53
Do not attempt to run test script analyze3.test as part of the "prepare" permutation. (check-in: f7f13cb1 user: dan tags: trunk)
2020-08-26
19:07
Enhance the ".databases" command in the CLI so that it shows the result of sqlite3_db_readonly() and sqlite3_txn_state() for each database file. (check-in: 0ffd16d2 user: drh tags: trunk)
10:50
If the argument to the ".read" command in the CLI begins with "|" then run the remainder of the argument as a command and read input from the output of that command. (check-in: 6c716f4b user: drh tags: trunk)
2020-08-25
19:09
Add support for the sqlite3_txn_state() interface. (check-in: ad195e3d user: drh tags: trunk)
2020-08-24
23:44
Reduce the N in the logN term for the sorting cost associated with computing DISTINCT by B-Tree by half, under the assumption that the DISTINCT will eliminate about half the rows of output. This is really a wild guess. But we do not have any better way of estimating what the row-count reduction due to DISTINCT will actually be. (check-in: 8787417e user: drh tags: trunk)
10:52
Correctly handle expressions like "x IS (not) true/false" within the rhs of IN() expressions. Fix for [f3ff1472]. (check-in: 493a2594 user: dan tags: trunk)
2020-08-20
16:25
Fix a crash that could occur in SQLITE_MAX_EXPR_DEPTH=0 builds when processing SQL containing syntax errors. (check-in: 5f58dd3a user: dan tags: trunk)
11:03
Avoid a buffer overrun in test code that could occur if certain test functions were passed a hex-string containing an odd number of digits. (check-in: 3c5e63c2 user: dan tags: trunk)
2020-08-19
23:51
Try to make SQLite easier to compiler for Mac Catalyst. See forum post 803387a1c5. (check-in: e1595a20 user: drh tags: trunk)
23:32
Do not skip over TK_IF_NULL_ROW operators when bypassing TK_COLLATE operators. Fix to check-in [ac31edd3eeafcef4] which was itself a fix for ticket [45f4bf4eb4ffd788]. (check-in: 871f2ddc user: drh tags: trunk)
15:24
Update releasetest_data.tcl so that the "Fast-One" configuration runs bigmmap.test as part of release testing. (check-in: a0aa35aa user: dan tags: trunk)
15:21
Fix a problem in test file bigmmap.test. (check-in: d8e47382 user: dan tags: trunk)
2020-08-17
09:11
Fix the -quote option on the CLI to set the correct column separator. (check-in: c778f829 user: drh tags: trunk)
2020-08-16
00:30
Optimization to sqlite3BeginWriteOperation(). (check-in: 2173d4c6 user: drh tags: trunk)
2020-08-15
23:48
Optimization of the sqlite3SrcListDelete() routine. (check-in: 1b4acd1a user: drh tags: trunk)
22:23
Remove more unnecessary sqlite3GetVdbe() calls, replacing them with assert()s. (check-in: b7dc9321 user: drh tags: trunk)
21:55
Avoid unnecessary calls to the sqlite3GetVdbe() routine. Add assert() statements to prove each call is unnecessary. (check-in: 86d3790c user: drh tags: trunk)
19:58
Omit the unnecessary not-NULL check on the upper bound of a forward index range scan. The subsequent OP_IdxGT will always catch the NULL. Similarly, omit the not-NULL check on the lower bound of a reverse index range scan, as the SeekLE opcode will disallow the NULL. (check-in: e51ecadc user: drh tags: trunk)
2020-08-14
21:51
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: 7fee0b10 user: drh tags: trunk)
21:37
Update the version number to 3.34.0 for the next development cycle. (check-in: 70f34f3d user: drh tags: trunk)
21:32
Optimizations to the logic that converts main table accesses into equivalent index accesses. Code is now slightly smaller and faster than trunk. (Closed-Leaf check-in: 611b6404 user: drh tags: delete-bytecode-optimization)
20:04
For UPDATE and DELETE, use OP_DeferredSeek always. If the seek must later be resolved, add the OP_FinishSeek opcode after all WHERE clause terms have been processed. This obviates the need for the WHERE_SEEK_TABLE and WHERE_SEEK_UNIQ_TABLE flags to sqlite3WhereBegin() and the ensuing complication, and it allows the covering index optimization to be used further into WHERE clause processing. (check-in: a495f60d user: drh tags: delete-bytecode-optimization)
17:39
Experimental change to try to get some DELETE operations to access values using the index rather than the main table, so as to avoid unnecessary main table seeks. (check-in: 2f7cb6ab user: drh tags: delete-bytecode-optimization)
16:14
Fix an inconsequential memory leak in sqldiff. Update the "Sanitize" case in wapptest.tcl to use -fsanitize=address,undefined, and to run more tests. (check-in: 613fb5c2 user: dan tags: trunk)
13:55
Merge the 3.33.0 release into the reuse-schema branch. (check-in: e456d437 user: drh tags: reuse-schema)
13:23
Version 3.33.0 (check-in: fca8dc8b user: drh tags: trunk, release, version-3.33.0)
2020-08-13
17:27
Fix "make test" handling of environment variable QUICKTEST_OMIT so that it can be used to exclude test files in other than the main test directory. (check-in: b0509760 user: dan tags: trunk)
2020-08-12
16:19
Improvement on the previous fix. (check-in: f6cffa2d user: drh tags: trunk)
15:39
Fix an assertion() fault in ALTER TABLE found by OSSFuzz. Test case in TH3. (check-in: 41de742c user: drh tags: trunk)
2020-08-11
21:53
Fix harmless USAN warnings from gcc9. (check-in: 72c4c69f user: drh tags: trunk)
18:17
New test cases for the use of the ieee754 and decimal extensions in the CLI. (check-in: bc1590f3 user: drh tags: trunk)
18:00
Modify a test for corruption within the wal checkpoint code to account for the pending-byte page. And for the fact that test configurations might move the pending-byte page. (check-in: 7dfb74c3 user: dan tags: trunk)
17:20
Minor comment fixes. No changes to code. (check-in: 533aeb90 user: drh tags: trunk)
16:46
Remove an unused #define from sqliteInt.h. (check-in: d5b254f9 user: drh tags: trunk)
14:55
Merge all changes since the 3.32.0 release into the reuse-schema branch. (check-in: b1a77b7e user: drh tags: reuse-schema)
14:06
Update this branch with latest from begin-concurrent-pnu. (check-in: 3ee73880 user: dan tags: begin-concurrent-report)
14:01
Do not run tests in concreport.test for non SQLITE_ENABLE_PREUPDATE_HOOK builds. (check-in: e39e7a6f user: dan tags: begin-concurrent-report)
13:22
Merge all the latest changes into the begin-concurrent-pnu-wal2 branch. (check-in: ebefcb86 user: drh tags: begin-concurrent-pnu-wal2)
11:34
Merge latest trunk changes into this branch. (check-in: 91262e66 user: dan tags: wal2)
2020-08-10
21:30
Merge recent trunk fixes into the begin-concurrent-pnu branch. (check-in: 2ae78c99 user: drh tags: begin-concurrent-pnu)
21:16
Merge recent trunk enhancements into begin-concurrent. (check-in: ed4c742c user: drh tags: begin-concurrent)
21:01
Simplify #ifdefs associated with Parse.eParseMode. Fix an #ifdef error associated with SQLITE_OMIT_AUTOVACUUM. (check-in: 5bbd4bdd user: drh tags: trunk)
19:35
Fix a problem causing test failures in corruptL.test for some permutations. (check-in: 680bdc65 user: dan tags: trunk)
19:30
Fix a problem building fts3 separately from the amalgamation. (check-in: 2a167cfb user: dan tags: trunk)
14:34
Fix a shell tool build error caused by some combinations of options. (check-in: 33cd5341 user: dan tags: trunk)
14:18
Fix harmless compiler warnings that surface in newer versions of GCC. (check-in: 9d670a31 user: drh tags: trunk)
11:21
Fix another test script problem in walvfs.test. (check-in: 1b89d393 user: dan tags: trunk)
10:43
Fix minor test script problems. (check-in: 5d54cd44 user: dan tags: trunk)
2020-08-09
17:58
Fix a harmless compiler warning. (check-in: 6f91769f user: drh tags: trunk)
2020-08-08
20:15
Fix the check-in at [41474548ef3f7454] so that it computes the pointer in time for error checking at the end of the routine in the case of a non-OOM error. (check-in: 13d2fed7 user: drh tags: trunk)
20:11
Fix test script busy2.test so that it works with the inmemory-journal permutation. (check-in: b412d1d1 user: dan tags: trunk)
20:03
Changes to busy2.test, corruptL.test and fkey5.test so that new test cases pass with all test permutations. (check-in: d62d1711 user: dan tags: trunk)
19:52
Fix a test script problem causing an error for SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds in corruptL.test. (check-in: a85520e0 user: dan tags: trunk)
17:55
Move a pointer computation until after OOM checks to avoid a nuisance USAN warning. (check-in: 41474548 user: drh tags: trunk)
17:02
Change the name of sqlite3SelectTrace to sqlite3_unsupported_selecttrace. (check-in: 5ecd03a2 user: dan tags: trunk)
15:40
Update requirement marks due to wording improvements in the documentation. (check-in: bf875a1c user: drh tags: trunk)
00:44
Reorder declarations in the decimal extension for C89. (check-in: eface2da user: drh tags: trunk)
2020-08-07
19:52
Do the oversize-WAL corruption test before the size hint is issued. (check-in: fdc5fb90 user: drh tags: trunk)
18:52
Fix a file-descriptor leak in test script corruptL.test. (check-in: ec2c340c user: dan tags: trunk)
16:28
Return an SQLITE_CORRUPT error if the final expected size of the database when checkpointing is not reasonable - where reasonable is defined (basically) as the sum of the sizes of the database and wal files. (check-in: e2799563 user: dan tags: trunk)
14:47
Add the --checkpoint option to speedtest1. (check-in: 4cffa9bb user: drh tags: trunk)
14:22
Fix compilation issues with MSVC. (check-in: c5a7e6d2 user: drh tags: trunk)
2020-08-06
16:45
Fix the columnar output modes in the CLI so that they work with parameters. See https://sqlite.org/forum/forumpost/17ba6aac24 for details of the problem fixed. (check-in: d573aa9b user: drh tags: trunk)
2020-08-04
16:11
Fix compilation issues with MSVC. (Closed-Leaf check-in: af07d845 user: mistachkin tags: msvcWarn)
2020-07-31
23:34
Back out a NEVER() that turns out to be reachable. (check-in: 8cf342d4 user: drh tags: trunk)
20:56
Improved non-locking PRNG. (check-in: eb7a9c04 user: drh tags: begin-concurrent)
17:08
Merge latest wal2 changes into this branch. (check-in: ebd39665 user: dan tags: begin-concurrent-pnu-wal2)
16:01
Merge latest trunk changes into this branch. (check-in: 0c0d0a77 user: dan tags: wal2)
02:07
Remove an ALWAYS() that turns out to be reachable. (check-in: 12bb75d9 user: drh tags: trunk)
2020-07-30
23:47
Test for schema corruption is reachable after all. (check-in: 2032236c user: drh tags: trunk)
22:33
Provide an alternative "guaranteed-safe" method for overwriting the WAL index on recovery, in case some platform is found for which memcpy() cannot do this safely. (check-in: 168cccba user: drh tags: trunk)
19:56
Merge begin-concurrent-pnu changes into this branch. (check-in: fd01e788 user: dan tags: begin-concurrent-report)
19:37
Merge latest trunk change into this branch. (check-in: 2b3241cf user: dan tags: begin-concurrent-pnu)
19:19
Merge latest trunk changes into this branch. (check-in: e8a66515 user: dan tags: begin-concurrent)
17:37
Fix compiler warnings in MSVC. (check-in: 96e3dba2 user: drh tags: trunk)
17:29
Allow for page numbers as large as 4294967294 (0xfffffffe) which means database files as large as 281 TB. (check-in: 166e82dd user: drh tags: trunk)
17:14
Fix unreachable branches. (Closed-Leaf check-in: 905752da user: drh tags: larger-databases)
2020-07-29
16:18
Dozens and dozens of typo fixes in comments. This change adds no value to the end product and is disruptive, so it is questionable whether or not it will ever land on trunk. (Leaf check-in: a80ae2c9 user: drh tags: typos)
12:23
Fix signed/unsigned compiler warnings. (check-in: 1d69eee8 user: drh tags: larger-databases)
2020-07-28
20:32
Earlier detection of out-of-range page numbers in the btree layer. (check-in: 805bb67a user: drh tags: larger-databases)
17:51
Merge enhancements from trunk. (check-in: 969c25bb user: drh tags: larger-databases)
17:29
If a writer crashes in WAL mode and leave the SHM file in an inconsistent state, subsequent transactions are now able to recover the SHM file even if there are active read transactions. (check-in: ee8a1080 user: drh tags: trunk)
17:17
Add an sqlite3FaultSim() to make an OOM case more accessible and remove the ALWAYS() on the conditional that is false when the OOM actually occurs. (Closed-Leaf check-in: 2a251af8 user: drh tags: unlocked-recovery)
2020-07-27
20:16
On recovery, always overwrite the old with the new, even if they are the same. Add ALWAYS() macros on branches currently thought to be unreachable, pending additional testing. (check-in: 7052cf1d user: drh tags: unlocked-recovery)
15:05
Fix a couple of test scripts to match the new wal recovery behaviour on this branch. (check-in: 3af61e83 user: dan tags: unlocked-recovery)
15:01
Improved error reporting if walLockExclusive() fails. (check-in: cf962d21 user: drh tags: unlocked-recovery)
2020-07-25
20:16
When trying to read the index header, accept either of the two headers that have a valid checksum after 15 attempts to get exactly matching headers fail. (Closed-Leaf check-in: 3549faef user: drh tags: more-aggressive-wal-recovery)
20:16
Allow a wal mode recovery to proceed even if there are readers. (check-in: 74374aeb user: dan tags: unlocked-recovery)
2020-07-24
13:49
Merge recent changes from trunk. (check-in: 22e8e690 user: drh tags: larger-databases)
11:01
Remove a surplus space from a comment (check-in: 73fecc68 user: drh tags: trunk)
09:17
Fix other potentiall pointer aliasing problems associated with subclassing of the sqlite3_file object for various VFS implementations. (check-in: 270ac1a0 user: drh tags: trunk)