SQLite

Timeline
Login

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

670 check-ins using file src/printf.c version 78fabb49

2021-11-06
11:58
Add the rbu_exclusive_checkpoint query parameter to RBU. (Leaf check-in: c15806a4 user: drh tags: reuse-schema-3.36)
2021-10-26
10:16
Fix an RBU problem with restarting an update after the *-oal file is already larger than 4GiB. (check-in: 0e79584a user: drh tags: reuse-schema-3.36)
10:02
Fix an RBU problem with restarting an update after the *-oal file is already larger than 4GiB. (Leaf check-in: e4662603 user: drh tags: branch-3.36)
2021-10-01
21:01
Fix harmless compiler warnings. (check-in: 94b59691 user: drh tags: trunk)
20:39
Change things so that SQLITE_OMIT_VIRTUALTABLE implies SQLITE_OMIT_ALTER_TABLE. (check-in: 2f7c946c user: dan tags: trunk)
17:06
Fix a potential write outside of array bounds in the --hexdb decoder of the CLI when given corrupt input. (check-in: c7fdd775 user: drh tags: trunk)
15:05
Fix a buffer overread in fts5 that could occur when processing an "ORDER BY rowid DESC" query against corrupt database records. (check-in: fe098a93 user: dan tags: trunk)
2021-09-30
21:42
Adjust 3 query result expectations to reflect changed group_concat() behavior with varying separator. (Closed-Leaf check-in: 86f9c07a user: larrybr tags: group_concat_varsep)
18:42
Fix a problem with view handling in SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 6e791a24 user: dan tags: trunk)
17:39
Fix rtreedoc.test so that it works with SQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: a300adc2 user: dan tags: trunk)
17:20
Simplify windowed group_concat() by allowing a change in undocumented behavior (fails some new tests) (check-in: 9d8e6167 user: larrybr tags: group_concat_varsep)
10:47
Update a test case in rtreedoc.test to account for the fact that release builds generate fewer VM instructions than debug builds. (check-in: 7d16b302 user: dan tags: trunk)
2021-09-29
20:17
Add NEVER() macros on branches that are not reachable since [a0df216f7c3f8963]. (check-in: 5d771f35 user: drh tags: trunk)
19:18
Fix a typo in altertab3.test. (check-in: 18d38b13 user: dan tags: trunk)
19:15
Have the dbstat module arrange things internally so that there are 256 addressable bytes following each page buffer. This way, small buffer overreads caused by corrupt database pages do not lead to undefined behaviour. (check-in: c4c705ab user: dan tags: trunk)
18:33
Fix another problem with ALTER TABLE and vector UPDATE statements within triggers. (check-in: a0df216f user: dan tags: trunk)
16:38
Add new test file rtreedoc3.test. (check-in: 54604869 user: dan tags: trunk)
16:35
Sync w/trunk (check-in: a4c18b2f user: larrybr tags: group_concat_varsep)
14:14
Add extra tests for the group_concat() fix on this branch. (check-in: 3d148615 user: dan tags: group_concat_varsep)
14:01
Improved testability of changes from check-in [255b0eeed113d83b]. (check-in: bbfd083c user: drh tags: trunk)
13:36
Fix an out-of-bounds read in fts5 that could occur when processing corrupt records. (check-in: 9bbc01fb user: dan tags: trunk)
00:32
Get group_concat() to handle varying separator lengths when windowing (check-in: 98e0f2bf user: larrybr tags: group_concat_varsep)
2021-09-28
10:44
Fix a potential ALTER TABLE problem with expressions like ( (<sub-select>) IN () ). (check-in: df0d7e36 user: dan tags: trunk)
2021-09-27
17:11
Have the dbstat virtual table take a copy of each page buffer that it traverses instead of just a reference to the page-cache object. This avoids problems if an error causes transaction rollback while a dbstat cursor is open. dbsqlfuzz crash-417224040fee04f0f0e62b70265c518893b08769. (check-in: 6ab25f8b user: dan tags: trunk)
15:44
Fix a problem in ALTER TABLE causing table or column references in sub-selects ton the RHS of a vector SET clause in an UPDATE within a trigger (i.e. "SET (a,b) = ( (SELECT...), <expr> )"). (check-in: 255b0eee user: dan tags: trunk)
2021-09-25
20:28
Load recent dbsqlfuzz cases into test/fuzzdata8.db. (check-in: 7a8fcf6d user: drh tags: trunk)
20:19
Fix a memory leak in rtree triggered by corrupt database records. dbsqlfuzz 397ad036a9013d7318da30ef84947d2baaaa6d6c. (check-in: 706322c2 user: dan tags: trunk)
18:21
Fix a bad interaction between the pager cache and the dbstat module that could lead to a malfunction following an OOM. dbsqlfuzz 9ed3e4e3816219d3509d711636c38542bf3f40b1. (check-in: e03554a6 user: dan tags: trunk)
17:07
Add const to parameters on various internal interfaces. (check-in: 70c221c5 user: drh tags: trunk)
2021-09-24
19:57
Dbsqlfuzz (a097eaad43c3c845b236126df92fb49b25449b0c) found a way to reach the assert() that was added to sqlite3_declare_vtab() by [eb94f4a8174436b1]. This check-in fixes the problem. (check-in: 857d26a6 user: drh tags: trunk)
16:14
Add lots of new "const" on internal function parameters. There is opportunity for many more - this is a work in progress. (check-in: a3c71a67 user: drh tags: trunk)
12:59
Ensure that sqlite_stat1 and sqlite_stat4 are ordinary tables (not views or virtual tables) before trying to load them (dbsqlfuzz bc02a0cde82dee801a8d6f653d2831680f87dca1). This prevents sqlite3_declare_vtab() from running with db->init.busy turned on. Even so, enhance sqlite3_declare_vtab() to be able to deal with db->init.busy being on, in case there are undiscovered paths to that state. Each of these two changes are independently sufficient to prevent the problem fixed by the previous check-in [c7560c1329965ab5] but there is no harm in keeping that third layer of protection in place. (check-in: eb94f4a8 user: drh tags: trunk)
02:14
Ensure that the db->init.azInit array is initialized at all times. dbsqlfuzz 0ad6d441f9bf3dfc32626a9900bc1700495b16f9 (check-in: c7560c13 user: drh tags: trunk)
2021-09-23
17:27
Commencing dynamic extensibility transition. (a WIP, may not build) (check-in: 5ea71afe user: larrybr tags: cli_extension)
2021-09-22
14:43
Fix harmless compiler warnings. (check-in: d678ecca user: drh tags: trunk)
14:26
For shell.c.in, define CHAR_BITS to 8 on platforms that do not have that value set by default. This fixes the build on older machines. (check-in: 96610cc8 user: drh tags: trunk)
13:43
Fix harmless compiler warnings in shell.c.in, and a compiler warning in sqlite3expert.c which is a real error, though also harmless. (check-in: 56da0e9c user: drh tags: trunk)
13:07
Fix an incorrect assert() in rtree that was added recently by [f7ad73c49507c943]. Change it to testcase(). (check-in: 3aa0bf3a user: drh tags: trunk)
10:57
Enhance the TCL-based test harness so that it is possible to list multiple test modules on the "testfixture" command-line and have them all run. For example: "./testfixture test/shell*.test" (check-in: 45caf9b8 user: drh tags: trunk)
10:28
Use sqlite3_snprintf() for the ".changes" output formatting in the shell because it now uses %lld, and some older C compilers do not understand that construct. (check-in: 53dadf80 user: drh tags: trunk)
2021-09-21
20:03
Fix .expert name collision bug reported at https://sqlite.org/forum/forumpost/05e6f32984561f57?t=h (check-in: 4a3f98ad user: larrybr tags: trunk)
19:19
Speed and (slightly) simplify shell's input line early processing. (check-in: a1c7f7f8 user: larrybr tags: trunk)
17:26
Add the "PRAGMA table_list" command with its corresponding eponymous table-valued function: "pragma_table_list". (check-in: 2c0e7ae5 user: drh tags: trunk)
2021-09-20
21:42
Accomplish fileio standalone for Win32 with less intervention. (check-in: af5dcc9c user: larrybr tags: trunk)
20:15
Allow fileio extension to be a stand-alone DLL for Win32 (check-in: d1cc3105 user: larrybr tags: trunk)
2021-09-19
18:31
Adjust shell tests for *Nix and Windows test platform anomaly (Leaf check-in: 577544c5 user: larrybr tags: speedy_cli)
2021-09-18
21:35
Sync w/trunk, further streamline shell's resumable prescan. (check-in: 9e00f9f7 user: larrybr tags: speedy_cli)
16:15
Further tests for legacy rtree geom callbacks. (check-in: 99d6bb22 user: dan tags: trunk)
2021-09-17
21:12
Shell's .read pipe now works for Windows too. (check-in: 929bcc40 user: larrybr tags: trunk)
20:43
Add tests for legacy geometry callbacks to rtreedoc2.test. (check-in: 6ad00e52 user: dan tags: trunk)
13:07
Make the affinity() function available even if compiled without SQLITE_DEBUG. Surround the implementation of all test-only SQL functions with #ifndef SQLITE_UNTESTABLE. (check-in: b7e00ef8 user: drh tags: trunk)
2021-09-16
22:23
The dbsqlfuzz fuzzer found a refutation for a recent ALWAYS() macro. (check-in: ebfc18aa user: drh tags: trunk)
20:16
Minor changes to rtree.c so that we can get full branch coverage even when it is compiled without geopoly. (check-in: f05ae9b5 user: drh tags: trunk)
19:50
Add tests to rtreedoc.test. (check-in: b18c6ec4 user: dan tags: trunk)
17:02
Add a single new ALWAYS() to rtree.c, with justification. (check-in: 778e4499 user: drh tags: trunk)
16:41
Add a tag comment in rtree.c. No changes to code. (check-in: 213410fa user: drh tags: trunk)
14:17
Add a reference counter to a structure used internally by the Tcl interface so that it does not segfault if the database connection is closed from any of the various callback scripts that may be invoked. (check-in: e54a33ce user: dan tags: trunk)
14:07
Mark an unreachable branch in rtree. (check-in: e6c4afd5 user: drh tags: trunk)
13:52
Back out a couple of ALWAYS() macros from [4fab9089868bbb05]. Test case added to TH3. (check-in: d26963a5 user: drh tags: trunk)
13:20
For ALTER TABLE RENAME COLUMN, do not try to filter virtual tables out of calls to sqlite_rename_column(). Let the function filter them itself. The WHERE clause can mistakenly let virtual tables through if the sqlite_schema table is corrupt. The sqlite_rename_column() function must deal with them. We might as well let it deal with them always. (check-in: 7c82b43b user: drh tags: trunk)
12:33
Under SQLITE_DEBUG with PRAGMA vdbe_trace=ON, show an output line if the VDBE aborts for any reason. (check-in: 7e3d6810 user: drh tags: trunk)
07:32
Simplify the routine that attempts to estimate the size of an rtree index by looking at the sqlite_stat1 entry for the %_rowid table. (check-in: 06c329c1 user: drh tags: trunk)
05:39
Mark various unreachable branches in rtree.c with ALWAYS() or NEVER(). (check-in: 4fab9089 user: drh tags: trunk)
05:24
New ALWAYS() and assert() to mark unreachable branches in rtree.c. (Closed-Leaf check-in: f7ad73c4 user: drh tags: tree-testing)
2021-09-15
19:53
In rtree.c, remove an incorrect ALWAYS(). Add other ALWAYS() and NEVER(). (check-in: cbaac887 user: drh tags: tree-testing)
19:13
Add more ALWAYS() macros on unreachable branches in rtree.c (check-in: fbba89da user: drh tags: tree-testing)
16:20
Fix the xBestIndex method on rtree so that it correctly recognizes that rowid=? works the same as id=?. (check-in: c74c07cc user: drh tags: trunk)
15:56
Add ALWAYS() macros on some unreachable branches in rtree. (check-in: 9123f680 user: drh tags: trunk)
15:53
Further updates to rtreedoc.test. (check-in: e6672783 user: dan tags: trunk)
14:48
Fix non-build for a test configuration (check-in: c9a4ab05 user: larrybr tags: trunk)
13:09
Simplify some of the corrupt shadow-table detection logic in rtree. (check-in: 0c4f37aa user: drh tags: trunk)
11:15
Squelch needless narrowing warning. (check-in: 5540e6ab user: larrybr tags: trunk)
10:49
Ensure rtreedoc.test is not run for builds without the rtree extension. (check-in: 42dff223 user: dan tags: trunk)
2021-09-14
20:07
Add test cases to rtreedoc.test. (check-in: afe0ec4d user: dan tags: trunk)
18:57
Update requirements marks to reflect recent documentation changes. (check-in: 08cab892 user: drh tags: trunk)
14:16
Add test cases to rtreedoc.test. (check-in: b62de126 user: dan tags: trunk)
11:27
Minor updates to rtreedoc.test. (check-in: b22c75e4 user: dan tags: trunk)
2021-09-13
23:11
Shell to .read any named character source file/device (again.) (check-in: c6fe4f8d user: larrybr tags: trunk)
18:32
Add test cases to rtreedoc.test. (check-in: 4ee99d31 user: dan tags: trunk)
18:16
Add assert() statements to refute forum post 9f4e7f58fbb66ddd. (check-in: 83a83475 user: drh tags: trunk)
16:36
Add new test file rtreedoc.test. (check-in: 8c4b1482 user: dan tags: trunk)
13:53
Fix an incorrect comment and possible integer overflow in pager resulting from check-in [23ca23894af352ea]. Problem reported by forum post e2ea1a3f61. Also change the datatype of Pager.pageSize to i64 even though page size never exceeds 65536, in order to help prevent future problems of this kind. (check-in: f4a552ed user: drh tags: trunk)
2021-09-11
14:33
Fix a case where the system error was not being set correctly. (check-in: 13a524b3 user: dan tags: wal-shm-exceptions)
02:42
CLI prescanner made to match SQLite's rules for delimited identifiers. Tests begun. (check-in: 15b105c5 user: larrybr tags: speedy_cli)
2021-09-10
22:00
Make replace.tcl useful with TCL 8.4 (check-in: 2dd61dd9 user: larrybr tags: trunk)
21:28
If an EXCEPTION_IN_PAGE_ERROR exception is caught, make the underlying OS error code available via sqlite3_system_errno(). (check-in: fdb20e9e user: dan tags: wal-shm-exceptions)
19:45
Make CLI prescan handle goofy identifier delimiters too. Streamline code. (check-in: 968aed69 user: larrybr tags: speedy_cli)
18:35
Fix (luckily harmless) typo in memdb.c per https://sqlite.org/forum/forumpost/15af8872d5999df1 (check-in: d577030c user: larrybr tags: trunk)
01:45
When showHeader set at CLI invocation, do not auto-set it later. (check-in: 733b7d4f user: larrybr tags: trunk)
01:02
Back out changes [00286ca5d998d802] and [6844ede29e1dac93] (replacing the associated branches with NEVER()) and add a single new test to btreeOverwriteCell() that detects when an overflow pages is also mapped into a b-tree page and raises and immediate SQLITE_CORRUPT error before making any changes. dbsqlfuzz 81791bd980fe6935ff2c7334ec8bef11c1c12b82 and others. (check-in: 32210fa4 user: drh tags: trunk)
00:58
Speed-up CLI's processing for huge block comments, for any content (check-in: c4568f9f user: larrybr tags: speedy_cli)
2021-09-09
19:19
Remove a NEVER() in btree that is sometimes reachable. dbsqlfuzz b9140023005430654c8fe544cf0a082ef8d561c1. (check-in: 6844ede2 user: drh tags: trunk)
18:06
Avoid masking off an OOM fault in rtreecheck(). (check-in: 3ebfe712 user: drh tags: trunk)
14:03
Improved database corruption detection in the editPage() subroutine of the btree rebalancer. dbsqlfuzz f035b1b5a100a5f0cffb95c958b6c67d7c5eaf1f. (check-in: 00286ca5 user: drh tags: trunk)
2021-09-08
21:49
Speedup CLI's gulping of many huge block SQL comments. (check-in: 729620c5 user: larrybr tags: trunk)
19:25
Fix PRAGMA integrity_check so that it does not try to enforce types on ANY columns in a STRICT table. (check-in: 57384fda user: drh tags: trunk)
2021-09-07
20:58
For sqldiff, sqlite_schema comparisons must use compound (synthesized) PK. (check-in: 5bdd8466 user: larrybr tags: trunk)
19:23
New test cases added to fuzzdata8.db. No code changes. (check-in: 51e5aada user: drh tags: trunk)
19:04
Make sqldiff able to compare sqlite_schema tables (for detailed schema differences.) (check-in: 7ff92da9 user: larrybr tags: trunk)
16:05
Fix a memory leak in fts5 that could occur when writing to an fts5 table that is being scanned by an fts5vocab cursor. (check-in: 1183552d user: dan tags: trunk)
15:41
Fix a potential NULL pointer deference in the LIKE optimization. The problem was introduced by the addition of generated columns in check-in [b855acf1831943b3] (SQLite version 3.31.0, 2020-01-22). Reported by Wang Ke in [forum/forumpost/699b44b3ee|forum post 699b44b3ee]. (check-in: b9417d40 user: drh tags: trunk)
2021-09-06
16:15
Fix a use-after-free error that could occur if an fts5 table is written while scanning it using an fts5vocab cursor. (check-in: e751c2ec user: dan tags: trunk)
15:59
Fix an issue in the "shrink.test" test script reported by forum post 90a74bd618. (check-in: 6c3734ed user: drh tags: trunk)
11:44
Restore the use of system isnan() that was removed by check-in [ea748edecb261f2b]. See forum thread d7c530ac587f59e6. (check-in: b3cfe23b user: drh tags: trunk)
2021-09-05
18:45
Complete shell.c maker's migration to TCL v.8.4 (check-in: e4b9b5b1 user: larrybr tags: cli_extension)
2021-09-03
18:11
Fix an assertion fault in pcache introduced by [4bc93658aa563f2f] and detected by OSSFuzz. Test case in TH3. (check-in: 2262a494 user: drh tags: trunk)
2021-09-02
16:29
Get shell.c maker acceptable to TCL v8.4 and minor tweaks (check-in: c60f4f90 user: larrybr tags: cli_extension)
01:21
Meld -safe option into CLI (check-in: c7c84998 user: larrybr tags: cli_extension)
2021-08-31
15:53
Have the planner ensure that if one scan uses a subset of the WHERE clause of another, that scan is estimated to cost less and return fewer rows. (check-in: c7b34930 user: dan tags: trunk)
2021-08-30
17:02
Do not disable a rowid=? term used to drive an IPK index if it is a transitive constraint. Commit [f1f9b5de] made the same change for non-IPK indexes. (check-in: 46e28cbc user: dan tags: trunk)
2021-08-27
11:26
Patch lemon to fix "error" token handling, according ot forum post e680f42f53090061. (check-in: 106b5e53 user: drh tags: trunk)
2021-08-26
21:12
Change the structuree exception handler in wal.c to catch EXCEPTION_IN_PAGE_ERROR instead of EXCEPTION_ACCESS_VIOLATION. (check-in: 0c6ab539 user: dan tags: wal-shm-exceptions)
18:31
Add the --safe to the CLI. Also the --nonce option and the .nonce command. (check-in: c76870cb user: drh tags: trunk)
2021-08-24
17:07
Correctly preserve the collating sequence for a column when changing its datatype. Fix for the problem reported by forum post 36be3d3a08da9d92. Test cases in TH3. (check-in: c7f0813c user: drh tags: trunk)
2021-08-23
15:56
Fix a typo in a comment. No changes to code. (check-in: d953646a user: drh tags: trunk)
10:28
Back out the change that allows typeless columns in strict tables. Replace that capability with an ANY type for strict tables that will accept any datatype with BLOB affinity. (check-in: d8fd1a2b user: drh tags: trunk)
2021-08-21
20:54
Allow typeless columns in STRICT tables that are able to accept any data type. (check-in: 1e2dcc2d user: drh tags: trunk)
16:42
Defer deleting subqueries in the compound-SELECT code generator until the end of code generation, in order to avoid deleting expressions out from under the aggregation function sanity checking assert()s that occur near the end of SELECT code generation. This fixes the assertion fault described by forum post cfcb4b461d. The problem goes back to check-in [6e6b3729e0549de0]. (check-in: 600f1991 user: drh tags: trunk)
15:49
Add test cases to ensure that there is at least one test that causes an exception to be thrown from each SEH_INJECT_FAULT macro. (check-in: e480146f user: dan tags: wal-shm-exceptions)
2021-08-20
19:51
Improvement to error handling in Lemon. No impact on SQLite. Forum post 2f468f43cbc48d7f (check-in: 18cc2f85 user: drh tags: trunk)
18:18
Use VVA_ONLY() instead of TESTONLY() in SEH macros so that the build works for coverage testing. (check-in: 9e9d5b56 user: drh tags: wal-shm-exceptions)
17:23
Add missing SEH_INJECT_FAULT macros. (check-in: 27e9bdb3 user: dan tags: wal-shm-exceptions)
16:19
Add some assert() statements and fix small issues with code on this branch. (check-in: bd9b373b user: dan tags: wal-shm-exceptions)
15:44
Support for STRICT tables. A table with the STRICT option only allows a few core datatypes on columns and enforces those types rigidly. Also, PRIMARY KEY columns must be NOT NULL. (check-in: f9c1d344 user: drh tags: trunk)
11:50
Fix a problem on this branch causing checkpoints that do not proceed because they can't get the CHECKPOINT lock to return incorrect output values. (check-in: 5a98820c user: dan tags: wal-shm-exceptions)
08:05
Improved error messages for the SQLITE_CONSTRAINT_DATATYPE error. (Closed-Leaf check-in: 39abca01 user: drh tags: strict-tables)
01:12
Do not allow the xfer-optimization to move the content of an ordinary table into a strict table. (check-in: 1ed1b594 user: drh tags: strict-tables)
2021-08-19
23:10
Enable this branch to run both with and without the -DSQLITE_USE_SEH option. (check-in: 840e0a14 user: drh tags: wal-shm-exceptions)
21:01
If SQLITE_USE_SEH is defined, handle structured-exceptions thrown by MSVC builds if the *-shm file mapping is accessed after it becomes invalid for some reason. (check-in: 5c5fa470 user: dan tags: wal-shm-exceptions)
16:29
Improved comments. Fewer opcodes for integrity_check on strict tables. (check-in: 4ee57fb5 user: drh tags: strict-tables)
02:58
Enhance PRAGMA integrity_check so that it verifies the datatype of all columns in STRICT tables. (check-in: 97c9248b user: drh tags: strict-tables)
00:24
STRICT tables require all fields of the PRIMARY KEY to be NOT NULL. (check-in: 5efdf9ac user: drh tags: strict-tables)
2021-08-18
23:00
Merge the WITHOUT ROWID, NOT NULL ON CONFLICT bug fix into the strict-tables branch. (check-in: 7ee01ee4 user: drh tags: strict-tables)
22:26
Fix ON CONFLICT clause processing for NOT NULL constraints of PRIMARY KEY columns on WITHOUT ROWID tables. Ticket [f2be158c57aaa8c6] (check-in: 13abba09 user: drh tags: trunk)
19:22
Trying to insert an incorrect datatype into a STRICT table raises an SQLITE_CONSTRAINT_DATATYPE error. Seems to work, though lots more testing is needed. (check-in: a19305e5 user: drh tags: strict-tables)
13:13
What would it be like if you could add the keyword "STRICT" after a CREATE TABLE statement to cause the table to (1) allow only a few well-defined datatypes, (2) rigidly enforce those types, (3) require NOT NULL on PK columns, (4) always enforce foreign key constraint, and so forth? This branch seeks to explore that question. (check-in: 78732b9f user: drh tags: strict-tables)
12:05
Rename the Column.eType field to Column.eCType - with an extra "C". (check-in: b9b0dcd5 user: drh tags: trunk)
2021-08-17
19:59
Fix an off-by-one error in the error-handling logic of the Lemon parser-generator. This does not affect SQLite. Forum cff80737bf. (check-in: 7cca8080 user: drh tags: trunk)
2021-08-12
14:22
By default, do not use memory mapping to access the temporary files used for external sorts. The old behaviour (to use memory mapping by default) may be restored by building with SQLITE_ENABLE_SORTER_MMAP defined. (check-in: 306694df user: dan tags: trunk)
2021-08-11
18:43
During DELETE, if an index entry is missing, do not raise the SQLITE_CORRUPT_INDEX error (added by [f339f31f9e9a856b]) if in "PRAGMA writable_schema=ON" mode. (check-in: 19e56291 user: drh tags: trunk)
13:48
Do not apply the push-down optimization to CTE subqueries that will be reused in other contexts in where the same optimization is unlikely to be valid. Fix for the bug reported by forum post d496c3d29bc93736. (check-in: a7ce29a6 user: drh tags: trunk)
13:19
Improved comment on the OP_OpenDup used to get a new cursor for a reused materialized CTE. (check-in: b1926cc0 user: drh tags: trunk)
2021-08-09
19:54
Fix a compiler warning in pcache1. Reduce the maximum size of a pcache1 cache to 2147418112 pages. (check-in: 4bc93658 user: drh tags: trunk)
19:41
Merge recent trunk enhancements into the begin-concurrent-report branch. (check-in: 25a768cb user: drh tags: begin-concurrent-report)
19:33
Merge recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: 514b3cef user: drh tags: begin-concurrent-pnu)
19:15
Sync to trunk (check-in: dd356ace user: larrybr tags: cli_extension)
18:35
Merge recent trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 47a9b759 user: drh tags: begin-concurrent-pnu-wal2)
18:26
Merge recent trunk enhancements into the wal2 branch. (check-in: 84dac820 user: drh tags: wal2)
18:21
Merge recent trunk enhancemenets into the begin-concurrent branch. (check-in: b88b6328 user: drh tags: begin-concurrent)
18:17
Merge recent trunk enhancements into the reuse-schema branch. (check-in: c8d1f17f user: drh tags: reuse-schema)
18:13
Further improvements to the eOpenState bit values. (check-in: d44f74f1 user: mistachkin tags: trunk)
18:07
Ensure that the pcache1 cache size does not get so big that it overflows the integer that is keeping track of the cache size. (check-in: bf9d70fc user: drh tags: trunk)
17:45
Fix harmless compiler warnings and improve the presentation for the new --threadsafe option to the CLI. (check-in: 7929dc2f user: drh tags: trunk)
17:37
Undocumented "--threadsafe N" option added to the CLI for testing purposes. One of SQLITE_CONFIG_SINGLETHREAD, _MULTITHREAD, or _SERIALIZED is called depending on the value of the N integer. (check-in: 2d8f297c user: drh tags: trunk)
17:36
Improved Hamming bit-distance between the SQLITE_STATE constants. (check-in: 5100b045 user: drh tags: trunk)
13:06
Fix comments associated with sqlite3.eOpenState. No logic changes. (check-in: fd8f498f user: drh tags: trunk)
11:03
Merge latest trunk changes into this branch. (check-in: 67ed7422 user: dan tags: wal2)
2021-08-07
23:16
Refactor sqlite3.magic into sqlite3.eOpenState. (check-in: e5d6512a user: drh tags: trunk)
2021-08-06
20:17
Fix an RBU problem with restarting an update after the *-oal file is already larger than 4GiB. (check-in: 087b8b41 user: dan tags: trunk)
19:38
Attempt to fix the showwal.c utility program so that it works on WAL files larger than 4GiB. (check-in: 5c0f9ea9 user: drh tags: trunk)
15:26
Fix harmless compiler warnings. Omit redundant copies of os_common.h and hwtime.h from the amalgamation. (check-in: 09142700 user: drh tags: trunk)
2021-08-05
15:27
Store the collating sequence name for each column of a table as an extension to the column name, for an additional savings in the heap space needed to hold the schema. (check-in: 832ac4c1 user: drh tags: trunk)
2021-08-04
14:50
Add NEVER() macros on recently introduced unreachable branches. (check-in: 806939eb user: drh tags: trunk)
13:42
Always prefer built-in SQL functions over app-defined SQL functions within sqlite3NestedParse(). Formerly this was the case for a few calls to sqlite3NestedParse(), but not for all of them. (check-in: 164662ef user: drh tags: trunk)
11:29
Avoid using LIKE with the target db in RBU. It is possible the user may issue "PRAGMA case_sensitive_like = 1" or override the like() user function, causing RBU to malfunction. (check-in: 7cbd8cd5 user: dan tags: trunk)
2021-08-03
23:23
Fix the build for SQLITE_ENABLE_UPDATE_DELETE_LIMIT. (check-in: 5150d2da user: drh tags: trunk)
18:45
Improved harmony with the reuse-schema branch. (check-in: cbc703f7 user: drh tags: trunk)
17:05
Merge recent trunk enhancements into the begin-concurrent-report branch. (check-in: 385e3b4e user: drh tags: begin-concurrent-report)
16:49
Merge recent trunk changes into the begin-concurrent-pnu branch. (check-in: 2c25f25b user: drh tags: begin-concurrent-pnu)
16:44
Merge recent trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: 5b6f6514 user: drh tags: begin-concurrent-pnu-wal2)
16:31
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 8d806cf9 user: drh tags: begin-concurrent)
16:11
Merge recent trunk enhancements into the reuse-schema branch. (check-in: d71adc3f user: drh tags: reuse-schema)
2021-08-02
20:29
Merge recent trunk enhancements into the wal2 branch. (check-in: f615d7ba user: drh tags: wal2)
18:03
Refactor field names in the Column object, zCnName and zCnColl, to make them unique and thus easier to find amid all the other code. (check-in: 8b781dca user: drh tags: trunk)
16:41
Refactor the Table object to reduce its memory footprint. (check-in: bbb6759b user: drh tags: trunk)
2021-07-31
20:30
Refactor the way that DEFAULT expressions are stored on columns, in order to save memory in the common case where the column has no DEFAULT clause. (check-in: 8646547e user: drh tags: trunk)
19:37
Sync to trunk (check-in: d449941b user: larrybr tags: cli_extension)
2021-07-30
23:30
Recognize certain standard datatypes ("INT", "INTEGER", "REAL", "TEXT", and "BLOB") and if a column has one of those datatypes, store the type part of the bit-field information in the Column structure to save space. (check-in: d2da62a9 user: drh tags: trunk)
20:09
If a generated column uses the optional keywords GENERATE ALWAYS, try to avoid putting those keywords in the typename of the column. Forum post ff3ffe09251c105b (check-in: 3c954863 user: drh tags: trunk)
18:39
Avoid clownfeet in the names columns when the column names are quoted in the original CREATE TABLE statement. (check-in: 980f7292 user: drh tags: trunk)
12:47
Reduce clownfooting in the allocation of the Table.aCol array. This reduces the amount of heap space required to hold large schemas by about 11%. (check-in: 2941ded0 user: drh tags: trunk)
2021-07-29
18:34
Enhance the wal.c source file with an ASCII-art schematic of the -shm file header. (check-in: a6c160e0 user: drh tags: trunk)
17:31
Improvements to asserts to enforce magic numbers in the wal-index format. Also improve automatic configure and make builds on legacy PPC iBooks. (check-in: 87b8d478 user: drh tags: trunk)
17:23
Complete warning-free build on old PPC iBook. (Closed-Leaf check-in: ef2a0850 user: drh tags: wal-asserts)
17:01
Fix an error in one of the assert() statements added by [23b08fe9db24a953]. (check-in: ad24334b user: drh tags: wal-asserts)
16:49
Minor tweaks to various TCL build scripts so that they work even for TCL 8.4, which is obsolete, but is also all that is available for some legacy platforms. (check-in: 2269ce64 user: drh tags: wal-asserts)
16:48
Improve comments and add new assert() statements in WAL to help document how everything works. (check-in: 23b08fe9 user: drh tags: wal-asserts)
14:27
Merge the latest enhancements from trunk. (Leaf check-in: 8498d772 user: drh tags: win-blocking-locks)
00:33
Remove ALWAYS() macros that can be true if the internal test function implies_nonnull_row() is used in the result set of a query and contains comparison operator against a computed column. dbsqlfuzz 4c34db5bff6247f33ee49e341a1f3018e72be0a0. (check-in: 4d1dbfa3 user: drh tags: trunk)
2021-07-28
18:13
Add test case to ensure that sessions works with DELETE statements that use the truncate optimization (i.e. a DELETE without a WHERE clause). (check-in: a2fc5311 user: dan tags: trunk)
02:04
Fix a harmless uninitialized variable read that occurs after an error associated with a subquery that uses DISTINCT. Found by a fuzzer. (check-in: e9719f97 user: drh tags: trunk)
01:22
Reduce the scope of a variable in order to fix a harmless compiler warning that occurs under -DSQLITE_OMIT_AUTOMATIC_INDEX. (check-in: 36d5dbbe user: drh tags: trunk)
2021-07-26
19:49
Remove sqldiff --visible-controls option, make it always happen. Add test cases for controls made visible (check-in: ff74c0cc user: larrybr tags: trunk)
18:28
Give sqldiff --visible-controls option to deal with non-graphic text content robustly across platforms (check-in: 68d2373f user: larrybr tags: trunk)
01:35
Manual merge of new .connection shell command (check-in: 0d41f7f9 user: larrybr tags: cli_extension)
2021-07-23
19:26
Merge the ".connection" CLI enhancement from trunk. (check-in: d317d44f user: drh tags: win-blocking-locks)
18:43
Enhance the CLI with the ".connection" command that can switch between up to five different database connections. Used for manual testing of multiple database connections in the same process. (check-in: 54eaf076 user: drh tags: trunk)
14:53
Merge recent enhancements on trunk into the win-blocking-locks branch. (check-in: 9ecad2f8 user: drh tags: win-blocking-locks)
2021-07-22
21:11
Set the checkSchema flag if a CREATE TABLE parse fails because the table already exists, to ensure that the table was not previously deleted by some other connection. (check-in: 91bcb962 user: drh tags: trunk)
18:22
Fix ALTER TABLE DROP COLUMN so that it generates valid bytecode even when operating on a corrupt database and using PRAGMA writable_schema=ON. dbsqlfuzz 5f09e7bcc78b4954d06bf9f2400d7715f48d1fef (check-in: b65f4f76 user: drh tags: trunk)
16:07
One of the optimizations of check-in [de9c86c9e4cdb34f] does not work for terms originating in the ON/USING clause, as demonstrated by forum post 6cf3bb457c3f4685. This check-in disables that optimization for ON/USING terms. Also improve the TreeView display for the resulting "true"/"false" nodes to show that they originate from the ON/USING clause. Add a testcase() to the other optimization to show that it can still be used for ON/USING terms. (check-in: 1f679604 user: drh tags: trunk)
10:44
Fix a problem in the new os_unix.c code. Refine the threadtest3 test case some. (Leaf check-in: 2039d447 user: dan tags: unix-timed-wait-exp)
2021-07-21
15:42
Improved robustness of cursor renumbering in the UNION ALL flattener when operating on vector assignments of an UPDATE FROM. dbsqlfuzz 417d2b053b9b3c9edaf22dd515564f06999e029c (check-in: 60695359 user: drh tags: trunk)
2021-07-20
21:02
Add in-process blocking locks to os_win.c using a similar technique. (check-in: b67c157f user: dan tags: unix-timed-wait-exp)
17:23
Merge changes from the win-blocking-locks branch into this one. (check-in: 85fd18d7 user: dan tags: unix-timed-wait-exp)
16:07
Run a "PRAGMA quick_check", if necessary, on the modified table after an ALTER TABLE ADD COLUMN to verify that added NOT NULL or CHECK constraints are satisfied by existing rows. Abort the ADD COLUMN if not. Forum post c04814903d6ec4f7. (check-in: e3794997 user: drh tags: trunk)
14:57
Avoid a malfunction that could occur if the same correlated column reference appears in both the GROUP BY and the HAVING clause of a sub-select. dbsqlfuzz a779227f721a834df95f4f42d0c31550a1f8b8a2. (check-in: 1e35cc6d user: dan tags: trunk)
08:23
Fix issues in the new ADD COLUMN constraint checking. Add preliminary test cases. (Closed-Leaf check-in: 48434ad3 user: drh tags: add-column-constraint-check)
07:35
Demonstration code to show how NOT NULL and CHECK constraints can be verified after an ALTER TABLE ADD COLUMN. (check-in: 039f5403 user: drh tags: add-column-constraint-check)
02:02
It does not work to deserialized into TEMP, so do not allow it. The sqlite3_deserialize() routine now returns SQLITE_ERROR if you try. (check-in: 18068cc6 user: drh tags: trunk)
00:18
Fix compilation of 'threadtest3' for some older versions of MSVC. (check-in: b5ede6a6 user: mistachkin tags: trunk)
2021-07-19
20:52
More precision in comparing integers and floating point values while processing the integer primary key for OP_SeekGE and similar. Forum post 2bdb86a068. (check-in: f9c6426d user: drh tags: trunk)
20:34
Revise the testthread3.walthread6 test case to better demonstrate the advantages of blocking locks. (check-in: 952b4cae user: dan tags: unix-timed-wait-exp)
17:06
Merge trunk with this branch. (check-in: 853c621b user: dan tags: unix-timed-wait-exp)
16:49
Updates so that "threadtest3[.exe]" can be built for windows with MSVC. (check-in: 4ce585fb user: dan tags: trunk)
14:00
In defensive mode, allow statements that write to shadow tables to be prepared from with virtual-table xSync() calls. (check-in: c8601d83 user: dan tags: trunk)
03:38
Fix minor spacing issues in the MSVC makefile. (check-in: d78c272b user: mistachkin tags: trunk)
03:37
Minor enhancements to new OSTRACE messages. (check-in: 3249a6a3 user: mistachkin tags: win-blocking-locks)
2021-07-16
22:43
Try to omit the ORDER BY clause in subqueries if doing so does not change the result in any way. See Forum post 2d76f2bcf65d256a for details and history. (check-in: 85ddaf1b user: drh tags: trunk)
20:16
Minor comment improvements. (Closed-Leaf check-in: 6854b591 user: drh tags: omit-subquery-order-by)
18:30
Experiment with having SQLITE_ENABLE_SETLK_TIMEOUT builds on unix use a condition variable to wait for wal locks held by other threads. (check-in: 4a9f5ce7 user: dan tags: unix-timed-wait-exp)
17:11
De-typo sqlite3_expanded_sql() doc (check-in: 56b0f541 user: larrybr tags: trunk)
17:04
Modify the generate_series() table-valued functions so that its first argument (the START value) is required. Throw an error if that argument is not supplied. In this was the series.c loadable extension can be used as a demonstration of how to code an xBestIndex function to require certain parameters. Compile with -DZERO_ARGUMENT_GENERATE_SERIES to obtain the legacy behavior. (check-in: 459d85a2 user: drh tags: trunk)
15:30
Fix the "main.mk" makefile so that "series.c" is a dependency of "shell.c". (check-in: ff959917 user: drh tags: trunk)
01:19
Get the "omit ORDER BY in FROM-clause subqueries" optimization working for the core test cases. (check-in: e31c5888 user: drh tags: omit-subquery-order-by)
2021-07-15
23:34
By default, do not emit #line directives in the amalgamation. (check-in: bacfa936 user: mistachkin tags: trunk)
23:12
Initial work on blocking locks for the Win32 VFS. Various other small enhancements. (check-in: 584c2425 user: mistachkin tags: win-blocking-locks)
19:29
Attempt to omit ORDER BY clauses from FROM-clause subqueries if those ORDER BY clauses do not affect the output. See forum thread 2d76f2bcf65d256a for discussion. This can help the query flattener in some cases, resulting in faster query plans. The current implemention does not always work. (check-in: ef97c3e7 user: drh tags: omit-subquery-order-by)
16:39
Change references to the schema table in sqlite3_analyzer to the new SQLITE_SCHEMA name. (check-in: 3beb77d6 user: drh tags: trunk)
2021-07-14
21:18
Fix a use-after-free error in ioerr.test caused by an error in test code. (check-in: 1594056a user: dan tags: trunk)
19:35
Enhance the Windows VFS to recognize SQLITE_FCNTL_LOCK_TIMEOUT and make the value set there available to the winLockFile() function. (check-in: 954b5d61 user: drh tags: win-blocking-locks)
2021-07-13
22:49
Enhance comments pertaining to the interface linkage / calling convention macros. (check-in: c378e992 user: mistachkin tags: trunk)
21:59
Further revisions to #line handling for amalgamation builds. (check-in: 9a843212 user: mistachkin tags: trunk)
20:55
Get correct #line tags into amalgamation for other builds too. (check-in: 999eb800 user: larrybr tags: trunk)
11:59
Get #line tags into amalgamation, subject to configure. (check-in: 5d81b598 user: larrybr tags: trunk)
11:55
Merge from trunk, rename tool option for its effect (Leaf check-in: 9327f73c user: larrybr tags: line_tags)
11:30
Do not attempt to run Tcl sessions tests unless both SQLITE_ENABLE_PREUPDATE_HOOK and SQLITE_ENABLE_SESSIONS are defined. (check-in: 385db794 user: dan tags: trunk)
01:45
Amalgamation has #line directives by default. Minor mksqlite3c.tcl changes (check-in: ba3eff71 user: larrybr tags: line_tags)
2021-07-11
12:58
Much self-doc improvement for shell.c generation. Misleading error message fixed. (check-in: 7738ce1b user: larrybr tags: cli_extension)
2021-07-10
14:48
.tables fixup for legacy behavior. (check-in: 827ea61d user: larrybr tags: cli_extension)
03:42
Migration to dispatched meta-commands done (check-in: ac4267da user: larrybr tags: cli_extension)
2021-07-09
23:12
Clarify comment on sqlite3.h's interface decaration macros. (check-in: 7cb09aef user: larrybr tags: trunk)
16:00
Remove disused linkage macros. (Leaf check-in: f14d3571 user: drh tags: disused-link-macros)
14:59
Fix an assert() that might fail if sqlite3_create_function_v2() is invoked with NULL xStep and xFinal callbacks and a non-NULL xDestroy. (check-in: ab1550a6 user: dan tags: trunk)
13:52
Enhance the sqlite3_create_function() interfaces to assume a value of SQLITE_UTF8 is presented with a nonsense value for the preferred encoding. This is undocumented behavior added for robustness. (check-in: c1bb5cff user: drh tags: trunk)
13:29
Merge latest trunk changes into this branch. (check-in: 0e968f9d user: dan tags: reuse-schema)
11:52
Add the usual "#ifdef __cplusplus" magic to header file ext/misc/carray.h. Also update carray.h/carray.c to use SQLITE_API in the usual way. (check-in: 0f97c2a4 user: dan tags: trunk)
00:12
Allow CLI shell build to #include same user-specified header as library build. (check-in: eb8af9a4 user: larrybr tags: trunk)
2021-07-08
23:35
Rename optional SQLITE_CUSTOM_INC define to SQLITE_CUSTOM_INCLUDE. (check-in: 060aec37 user: mistachkin tags: trunk)
22:12
Allow library build to #include a user-specified header. (check-in: 71e6490b user: larrybr tags: trunk)
18:29
Preserve and return to the user any error message returned by a failed xConnect() call on an eponymous virtual table that prevents a query from being compiled. (check-in: bbbbeb59 user: dan tags: trunk)
12:12
Fix an issue with the SQLite Expert extension when a column has no collating sequence. Forum post 78165fa250. (check-in: b1e0c22e user: drh tags: trunk)
2021-07-07
19:44
Fix a harmless compiler warning in the "fuzzcheck" test program. (check-in: 8c432642 user: drh tags: trunk)
19:40
Fix a harmless compiler warning - duplicate local variable named "pRHS". (check-in: 5bc05faf user: drh tags: trunk)
18:43
General cleanup of mkshellc.tcl, + help and options, decruft (check-in: 8bdd5fbf user: larrybr tags: cli_extension)
16:48
Follow-up to [68db1ff9c44fa9c3]: The number of registers needed by PRAGMA foreign_key_check was increased too late for an assert() deep down inside of sqlite3ExprCode(). So move the size increase a little earlier. Forum post 79c9e4797d. (check-in: 7072404a user: drh tags: trunk)
15:52
Fix a recently introduced segfault that might occur if a sub-select were used as a term on the RHS of an IN(...) operator for which the LHS is a row-value. (check-in: f586c06a user: dan tags: trunk)
13:53
Improve the error message in cases where there is a row-value on the LHS of an IN() operator, the RHS is a list (not a sub-select) and at least one element of the list is not a row-value with the correct number of elements. (check-in: 6b22f4e7 user: dan tags: trunk)
11:51
Instead of disallowing writes to fts5 tables if there are fts5vocab cursors open on them (commit [c49a6ed7]), abort any fts5vocab queries if the on-disk structure of the fts5 table changes. (check-in: 9dbdc900 user: dan tags: trunk)
2021-07-06
20:44
Handle "<vector> IN (<vector>, <vector> ...)" in the same way as "<vector> IN (VALUES(<vector>, <vector>, ...)". (check-in: 981d230e user: dan tags: trunk)
15:47
Create new branch named "branch-3.36" (check-in: 5eea151d user: larrybr tags: branch-3.36)
02:07
More commands dispathed. Dispatch translation parameterized. (check-in: 372e3241 user: larrybr tags: cli_extension)
2021-07-05
19:01
Do not allow writes to an fts5 table if there are any open fts5vocab cursors. (check-in: c49a6ed7 user: dan tags: trunk)
18:37
Add the ATOMIC_INTRINSICS compile-time output output. Move sqlite3Int.h in front of ctime.c so that default values that are not overridden are shown in PRAGMA compile-time option output. (check-in: e3069526 user: drh tags: trunk)
17:15
Revert [5204c2c4a7b73a64], restoring the old pre-processor logic for determining the availability of the __atomic_store_n()/__atomic_load_n() primitives. (check-in: e690abb9 user: dan tags: trunk)
11:27
Allow sub-queries in the FROM clause of an UPDATE...FROM statement to access the object being updated without using an alias, as is required in the parent query. (check-in: 740cb430 user: dan tags: trunk)
02:40
Improved rebustness in sqlite3ExprListDup() when it contains a vector assignment from an UPDATE where the initial term is omitted. This can happen during a UNION ALL query flattening while processing a virtual table update in which the first term of the vector is repeated. Forum post 16ca0e9f32. (check-in: 2547cfe3 user: drh tags: trunk)
01:11
Ensure that TK_SELECT_COLUMN Expr nodes always have their iTable field set to to the number of columns in the vector. This is not strictly necessary. It just simplifies the state description and make the code easier to reason about. (check-in: 026f08d4 user: drh tags: trunk)
00:07
Fix an incorrect comment on testcase misc1-27.0. No changes to code. (check-in: 49829ae3 user: drh tags: trunk)
2021-07-04
22:38
Streamline most common command definition (check-in: dd76b41a user: larrybr tags: cli_extension)
22:33
Enhance the treeview debugging mechanism so that it correctly deals with TK_ROW expression nodes. (check-in: e87fdb65 user: drh tags: trunk)
2021-07-03
19:20
Create infrastructure for dynamic shell extension. (check-in: 5e7e0d4e user: larrybr tags: cli_extension)
18:57
Fix a (harmless) typo in a comment. No code changes. (check-in: d2b9b8da user: drh tags: trunk)
02:55
In the PRAGMA foreign_key_check, ensure that sufficient registers are allocated for the virtual machine, even if one or more foreign keys reuses the same column multiple times and has more columns than the table it is part of. Forum post a6b0c05277. (check-in: 68db1ff9 user: drh tags: trunk)
2021-07-02
12:25
Put ALWAYS() on a branch that is always true due to [d4097364c511709b]. Fix a testcase precondition associated with the same check-in. (check-in: 55e2fbeb user: drh tags: trunk)
12:08
Fix a harmless assertion fault discovered by OSSFuzz. The assertion fault is harmless because the assert() checks a condition that that is harmless if false and the assert() is disabled in production builds. (check-in: 79443aab user: drh tags: trunk)
2021-07-01
18:19
Allow unqualified "rowid" references to be used in join queries, provided that only one of the source objects has a rowid. Forum post ab5b077c32636e49 (check-in: d4097364 user: dan tags: trunk)
16:57
Import the updated nmakehlp.c file used by the TCL Extension Architecture (TEA) builds in the amalgamation tarballs. Forum post 5a5001f20a. (check-in: 595bf95b user: drh tags: trunk)
2021-06-30
14:04
Fix a memory leak in fts5 that could occur when processing a query containing multiple classes of error. (check-in: 7c279670 user: dan tags: trunk)
12:11
Fix an assert() in fts5 that might fail when dealing with corrupt records. (check-in: 9e760e25 user: dan tags: trunk)
11:53
Do not enforce the SQLITE_LIMIT_FUNCTION_ARG limit for internally generated SQL. This prevents problems with statements like ALTER TABLE if the function argument limit is set too low. Forum post 17735aa21f3ddab2. (check-in: 763fdec5 user: drh tags: trunk)
2021-06-28
15:25
When generating data for a RETURNING clause, avoid assuming cursor number 0 is available for use. (check-in: 4b2c59ac user: dan tags: trunk)
2021-06-25
14:48
The OP_ReopenIdx opcode should clear the cursor if the cursor is being reused. This prevents leaving the cursor in an initialized state which could cause problems for a subsequent OP_SeekScan opcode. Fix for ticket [6dcbfd11cf666e21] and the OP_SeekScan optimization of check-in [4a43430fd23f8835]. (check-in: d4bf5243 user: drh tags: trunk)
11:21
Remove a redundant "ANALYZE" line from the ".fullschema" output. (check-in: 7b47f420 user: drh tags: trunk)
11:14
Fix a bug in the ".fullschema" dot-command of the CLI brought to light by check-in [a2ddb89b206c1387] - raising an error on at attempt to access the rowid of a subquery or view. (check-in: 36875827 user: drh tags: trunk)
00:25
Document sqlite3_wal_hook() return. (check-in: 8acaf796 user: larrybr tags: trunk)
2021-06-24
18:23
Allow the SQLITE_OPEN_EXCLUSIVE flag in sqlite3_open(). Return the SQLITE_CANTOPEN_EXISTS extended code to indicate that the open failed because the database already exists. (check-in: d091150f user: drh tags: trunk)
2021-06-23
17:41
Make conditional nature of sqlite3_normalized_sql() better known. (check-in: 0e0ece71 user: larrybr tags: trunk)
16:07
Fully incorporate *_changes64() API improvement. (check-in: 6699a2f6 user: larrybr tags: trunk)
11:39
Show CROSS JOINs in the TreeView debuggingn output. (check-in: 72e09b6c user: drh tags: trunk)
11:12
Fix a problem handling ORDER BY terms of the form "ORDER BY likely(<integer>)" within window frames. (check-in: 710f75b9 user: dan tags: trunk)
2021-06-22
23:30
This is another alternative fix to the covering index on WHERE_MULTI_OR in a LEFT JOIN problem that is fixed on trunk nearby. In this alternative, covering indexes are simply disabled for WHERE_MULTI_OR on a LEFT JOIN. This might have run-time impact on some obscure queries. This patch is saved for historical reference only. (Closed-Leaf check-in: 66856410 user: drh tags: multi-or-covidx-fix3)
23:27
This is an alternative fix to the covering index on WHERE_MULTI_OR in a LEFT JOIN problem that is fixed nearby. This one works by having the OP_NullRow opcode create the index if it does not already exist. That is slightly more complex. This patch is saved for historical reference only. (Closed-Leaf check-in: 956bafb6 user: drh tags: multi-or-covidx-fix2)
23:24
When an index is used by all branches of the WHERE_MULTI_OR optimization and becomes a covering index, make sure the index has been created prior to NULLing it in the OP_NullRow opcode of a LEFT JOIN. See forum post 0575376e07. The covering-index for WHERE_MULTI_OR optimization was added by [62678be3df35cdcb]. Test cases are in the orindex01.test module of TH3. (check-in: 787c76a8 user: drh tags: trunk)
18:32
Add the sqlite3_changes64() and sqlite3_total_changes64() API functions. (check-in: 48fdec22 user: dan tags: trunk)
18:06
Fix a problem causing sqlite3_changes() to return an incorrect value following a "DELETE FROM tbl" command on an intkey table (because internal b+tree cells were being included in the count). (check-in: f662ff47 user: dan tags: trunk)
14:59
Ensure that the cell array used in balance_nonroot() is always large enough, even if the pages being balanced are corrupt. (check-in: 53f64e83 user: dan tags: trunk)
2021-06-20
22:52
Load recent dbsqlfuzz cases into test/fuzzdata8.db. (check-in: a766bba0 user: drh tags: trunk)
22:49
Remove a NEVER() that is reachable by a corrupt database. dbsqlfuzz 8456a0f88e39a49fb675d8f77394979ebb2a03c1. Test case in TH3. (check-in: 1c41e86f user: drh tags: trunk)
22:17
Do not allow an SQLITE_CORRUPT error to mask a prior SQLITE_IOERR in balance_nonroot(). dbsqlfuzz 5e1c86e7f18023f2b9abe3429977d7ea726f50d8 (check-in: 50e81876 user: drh tags: trunk)
2021-06-19
20:20
Remove unnecessary (redundant) variable initialization from sqlite3BtreeInsert() for a small size reduction and performance increase. (check-in: 70d18364 user: drh tags: trunk)
18:35
The previous check-in is a significant change to btree, so go ahead and increment the version number for the next development cycle. (check-in: 2eb66970 user: drh tags: trunk)
18:32
Split the sqlite3BtreeMovetoUnpacked() routine into two separate routines sqlite3BtreeTableMoveto() and sqlite3BtreeIndexMoveto(), since we usually know the type of btree in advance. This results in less branching and better performance. (check-in: 3b0d34e5 user: drh tags: trunk)
2021-06-18
19:01
Merge version 3.36.0 (check-in: 79221520 user: drh tags: reuse-schema)
18:36
Version 3.36.0 (check-in: 5c9a6c06 user: drh tags: trunk, release, version-3.36.0)
2021-06-17
17:44
Merge recent trunk changes into branch-concurrent-pnu-wal2 via that wal2 branch. (check-in: 2ff7e562 user: drh tags: begin-concurrent-pnu-wal2)
17:38
Merge recent trunk enhancements into begin-concurrent-report via begin-concurrent-pnu. (check-in: 204dbc15 user: drh tags: begin-concurrent-report)
17:30
Merge recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: 229107b1 user: drh tags: begin-concurrent-pnu)
17:29
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 59303e69 user: drh tags: begin-concurrent)
17:26
Merge recent trunk enhancements into reuse-schema branch. (check-in: 92d8f967 user: drh tags: reuse-schema)
16:53
Merge the latest trunk enhancements into the wal2 branch. (check-in: 41363fb9 user: drh tags: wal2)
2021-06-16
19:23
Add an ALWAYS on a branch in STAT4-only logic that is now always true due to check-in [c21bc5a2353e660f]. (check-in: 7bd55eee user: drh tags: trunk)
18:58
Omit a handful of tests from pager1.test when testing SQLITE_ENABLE_ZIPVFS builds. (check-in: c3036c28 user: dan tags: trunk)
16:56
Do not run test file sessionbig.test on 32-bit platforms. It uses too much memory. (check-in: 75e53215 user: dan tags: trunk)
15:56
Adjust the mkshellc.tcl script so that the generated code always uses unix-style line endings. (check-in: 9f69af4d user: drh tags: trunk)
13:26
Avoid ominous warning in showdb.c (check-in: f8d7ac01 user: larrybr tags: trunk)
12:26
Adjustments to requirement markings in comments. No changes to code. (check-in: be00e45b user: drh tags: trunk)
11:32
Enhanced defense against integer overflow in ALTER TABLE. (check-in: fb7f094e user: drh tags: trunk)
2021-06-15
20:10
Fix some #ifdefs so that builds work for all supported compile-time options. (check-in: ca7d78f7 user: drh tags: trunk)
20:07
Fix an incorrect ifdef in the previous check-in. (Closed-Leaf check-in: 4b2bb467 user: drh tags: ifdef-update)
18:46
Fix some minor #ifdef issues so that all of the supported compile-time options continue to build. (check-in: d8cf4070 user: drh tags: ifdef-update)
15:36
Update the "nmakehlp.c" utility program sources associated with the TCL Extension Architecture, obtained from https://core.tcl-lang.org/sampleextension/file. Perhaps this new version will sit better with salmonx's static analyzer (ref1), (ref2). (check-in: 603b851d user: drh tags: trunk)
15:15
Add NULL checks on all sqlite3_vfs_find(0) calls. This is not strictly necessary. There are no vulnerabilities here. However, adding these checks avoids unnecessary static analyzer complaints. Forum post ce1193be15. (check-in: 272a15b9 user: drh tags: trunk)
14:34
Prevent an infinite loop in the trim() SQL function if the second argument is a carefully malformed UTF8 string. (check-in: 829343c2 user: drh tags: trunk)
2021-06-14
20:49
Fix typos in testcase() macros from check-in [c09d90eec2a49b94]. (check-in: d4d9869c user: drh tags: trunk)
20:41
In the authorizer, use SQLITE_DROP_INDEX, not SQLITE_DROP_TEMP_INDEX when dropping an index in an attached database. (check-in: e5a5acd6 user: drh tags: trunk)
20:08
Fix an ALTER TABLE problem with handling infinite loops of CTEs in the database schema. (check-in: c09d90ee user: dan tags: trunk)
14:52
Fix a test script problem in corruptN.test. (check-in: 3ddfe9ae user: dan tags: trunk)
14:35
Update this branch with latest changes from trunk. (check-in: f21a53fb user: dan tags: reuse-schema)
14:25
Update this branch with latest changes from wal2. (check-in: 0ab89901 user: dan tags: begin-concurrent-pnu-wal2)
14:12
Update this branch with latest changes from trunk. (check-in: b38c2b8b user: dan tags: wal2)
14:01
Update this branch with latest changes from begin-concurrent-pnu. (check-in: a485d1a1 user: dan tags: begin-concurrent-report)
14:00
An index on the expression "likely(X)" should store the true value of X, even if X is a real number with no fractional part. The optimization of storing some REAL indexed values as INT (see [10d851353c2abead]) should be omitted for index columns that are expressions. Forum post 3b940c437a. (check-in: 791473bc user: drh tags: trunk)
13:49
Update this branch with latest changes from trunk. (check-in: 74b42754 user: dan tags: begin-concurrent-pnu)
12:23
Update this branch with latest trunk changes. (check-in: d8199634 user: dan tags: begin-concurrent)
11:20
Avoid allocating oversized column names in the sqllimit1.test module. (check-in: 7068f1f6 user: drh tags: trunk)
2021-06-13
19:14
The opcode that preceeds OP_SeekScan is usually OP_IdxGT but can sometimes be OP_IdxGE. Adjust asserts accordingly. Follow-up to [9a2ab6092d644fc3]. dbsqlfuzz e41762333a4d6e90a49e628f488d0873b2dba4c5 (check-in: d6803ed8 user: drh tags: trunk)
17:55
Improved defense against OOM errors in sqliteInitOne(). dbsqlfuzz 429db39cd5777c46479641e8637c48c62890042d (check-in: b6c57e0e user: drh tags: trunk)
08:23
Correct link in .ar help. (check-in: de9d0f95 user: larrybr tags: trunk)
2021-06-12
18:12
The sqlite3WithPush() routine might destroy its second argument if there was a prior OOM. Do not use the second argument of sqlite3WithPush() if this happens. (check-in: baa3f962 user: drh tags: trunk)
17:45
An alternative approach to the use-after-free problem. (Closed-Leaf check-in: 6796b7a2 user: drh tags: alternative-oom-fix)
16:17
Fix a use-after-free that could follow an OOM in ALTER TABLE. (Edit:) Still contains problems. (Closed-Leaf check-in: 193b14a5 user: dan tags: original-uaf-fix)
2021-06-11
13:18
Reapply two recent ALTER TABLE error checks that turned out to be necessary after all. dbsqlfuzz fc5a9deefda00dda914748985155a6d4c44174e5. (check-in: 230fedd9 user: drh tags: trunk)
12:41
Avoid bugs in some implementations of dlopen() by avoiding calls to dlopen() with a filename argument that exceeds FILENAME_MAX bytes. Forum post 08a0d6d9bf. (check-in: 01f3877c user: drh tags: trunk)
12:14
Fix a crash in new ALTER TABLE code that could follow an OOM. (check-in: 6f1f2a0a user: dan tags: trunk)
12:02
Remove an unreachable branch added by the previous commit. (check-in: 852ee0e9 user: dan tags: trunk)
11:14
Fix problems with ALTER TABLE and schemas that contain views with some recursive CTEs, or CTEs that reference other CTEs. Forum post 9d965f2956. (check-in: 8b1f9a51 user: dan tags: trunk)
2021-06-10
19:37
Fix an assert() added by the previous commit that could fail with some database schemas. (Closed-Leaf check-in: 5079b5d5 user: dan tags: alter-table-cte-fix-1)
19:08
Fix problems with ALTER TABLE and schemas that contain views with complex CTEs. (check-in: 32e3ecfc user: dan tags: alter-table-cte-fix-1)
14:36
Improved robustness following OOM in the constant propagation optimization. dbsqlfuzz 001a20255c0df7495c21df62a20ea5b51e22c390. (check-in: 8658a64d user: drh tags: trunk)
2021-06-09
14:45
Set the database connection error code for an oversize argument to sqlite3_bind_blob64() or sqlite3_bind_text64(). Forum post a636276f0d451667 and 33821c8db543c. (check-in: 56ff58c0 user: drh tags: trunk)
13:39
Add defensive code to better handle corrupt records in fts5. (check-in: a99c29b5 user: dan tags: trunk)
2021-06-08
23:46
Remove two assert()s in FTS5 that checks for database corruption right before actual code does the same check. dbsqlfuzz 9680db8f5338cb9b6060eb3a02d984555d4472e3. (check-in: f3f82967 user: drh tags: trunk)
17:56
Try to avoid a double-free in the showdb utility program when running pgidx on a corrupt database. See forum post a60ea5a4d4 for context (check-in: e3188a86 user: drh tags: trunk)
12:22
Add an assert() to prevent the value of the SQLITE_VTABRISK macros from being changed in a way that would break logic. (check-in: 33babdb5 user: drh tags: trunk)
12:15
Avoid a buffer overread in fts3 that could occur when handling corrupt data structures. (check-in: 45f459d2 user: dan tags: trunk)
2021-06-07
17:36
Fix a buffer overread that could occur in fts5 when handling corrupt records. (check-in: 078962a2 user: dan tags: trunk)
15:28
Fix a buffer overrun in fts3 that could occur when handling corrupt records and '^' queries. (check-in: 9d0b6b0f user: dan tags: trunk)
14:21
Add recent dbsqlfuzz test cases to test/fuzzdata8.db. (check-in: 16202200 user: drh tags: trunk)
13:50
Avoid use of uninitialized memory while running defragmentPage() on a corrupt database file. dbsqlfuzz 4c45cecc0b255aaf2ea85453ccd17e814fd0b6b2 (check-in: 35e40d75 user: drh tags: trunk)
11:50
Fix an assert() in the OP_ParseSchema opcode that might fail on a corrupt database file when running with PRAGMA writable_schema=ON. dbsqlfuzz e7d743ca65f2767e415095f0c5a49166a0f55eea. (check-in: 10801f65 user: drh tags: trunk)
00:54
Remove unnecessary end-of-line whitespace from the regexp.c extension. (check-in: 17e26a1f user: drh tags: trunk)
00:41
Omit the unnecessary highlighting of the security implications of SQLTIE_DIRECTONLY in the sqlite3_create_function() documentation. No changes to code. (check-in: 2aa9368b user: drh tags: trunk)
2021-06-04
23:26
A better fix for the problem addressed by [4eb80b0cc61526c1]. This fix also avoids reading uninitialized variables. (check-in: 1c71de43 user: drh tags: trunk)
21:46
Make MSVC build examples work when taken literally, and say when they do. (check-in: b53ca8ed user: larrybr tags: trunk)
17:47
Improvements to the OP_SeekScan optimization. Added the SQLITE_TESTCTRL_TUNE test-control. (check-in: 9a2ab609 user: drh tags: trunk)
16:17
Add the (missing) dependency of regexp.c to the shell.c rule in the makefiles. This dependency should have been added by [5d4535bfb603d7c8] but was missed. (check-in: c93be7e6 user: drh tags: trunk)
16:11
Fix harmless compiler warnings. (check-in: 83aca2d8 user: drh tags: trunk)
15:56
Fix more cases in the regexp extension where the 0x00 terminator at the end of the input string is being pattern matched. [forum/forumpost/9104f0d9e7|Forum post 9104f0d9e7]. (check-in: 569e00d4 user: drh tags: trunk)
13:40
Revamp SQLITE_TESTCTRL_TUNE to provide visibility of current turning parameter values. (Closed-Leaf check-in: 677e645e user: drh tags: seekscan-improvements)
13:16
Add support for SQLITE_TESTCTRL_TUNE and the ".testctrl tune ID VALUE" command in the CLI. (check-in: f1199d58 user: drh tags: seekscan-improvements)
12:29
Merge recent trunk enchancements into the seekscan-improvements branch. (check-in: d9e85fe8 user: drh tags: seekscan-improvements)
2021-06-03
18:56
Fix a case where combining row-value UPDATE FROM syntax with window functions over aggregates can cause an error. dbsqlfuzz ae4516bff08d736f203f09934e2f4d31e0b3e7ce (check-in: 4a587c34 user: dan tags: trunk)
18:51
Fix the truncate optimization so that PRAGMA count_changes and changes() return correct values even for a WITHOUT ROWID table. Forum post 07dedbf9a1. (check-in: 820ae3b1 user: drh tags: trunk)
13:51
Add the regexp() and regexpi() extension functions to the CLI. (check-in: 5d4535bf user: drh tags: trunk)
13:44
Fix a bug in the regexp extension in which the "." wildcard would match the 0x00 terminator at the end of the comparison string. (check-in: fa23108b user: drh tags: trunk)
12:31
Fix the case-insensitive version of the regexp() function so that it does not use the prefix optimization incorrectly. Forum post 983b43ef8e. (check-in: 1a8e43cc user: drh tags: trunk)
2021-06-02
19:28
Add an optimization control bit to disable the OP_SeekScan optimization. (check-in: f674c41e user: drh tags: seekscan-improvements)
18:50
Fix an ALWAYS which can be false. (check-in: a87f8ecd user: drh tags: seekscan-improvements)
17:32
Tighten assert() restrictions on the OP_SeekScan opcode. (check-in: dbc33d3a user: drh tags: seekscan-improvements)
17:14
Never use WHERE_IN_SEEKSCAN for the 2nd or subsequent IN operator. (check-in: d0b98619 user: drh tags: seekscan-improvements)
12:44
This is an attempt to address the OP_SeekScan performance issue identified by forum post b4fcb8a598. (check-in: d58efb3f user: drh tags: seekscan-improvements)
2021-06-01
21:07
Fix issue in 'mkopcodeh.tcl' tool that prevented its termination in rare circumstances. (check-in: a8d92113 user: mistachkin tags: trunk)
15:37
Fix a problem with running ALTER TABLE against schemas that contain compound SELECT statements with ORDER BY clauses containing one or more references to the second or subsequent component SELECT statements. This fixes the problem reported by forum post 31ceaa8461. (check-in: 587a3044 user: dan tags: trunk)
2021-05-29
23:07
Do not confuse the ">" operator with IS NOT NULL when checking to see if a partial index is usable. Forum post d813704d7c. (check-in: 8cc23931 user: drh tags: trunk)
21:50
Fix a subtle error in an assert(). dbsqlfuzz eefbd0215c0c1b4bcc32b8141b48b35f7b431300 (check-in: a5ec81eb user: drh tags: trunk)
2021-05-28
14:28
If a subquery is used to drive an index, this change avoids making an extra copy of the result of that subquery. But, such situations are probably sufficiently unusual that the added complexity of this enhancement is not worth the performance gain. So I'm going to park this check-in on a branch. If we later find a use case to justify it, we can merge it to trunk then. This is the "further change" that was promised by the prior check-in comment. (Leaf check-in: 4488cb88 user: drh tags: copy-optimization)
12:48
Make a deep copy of the result of a subquery in case the subquery is reused. Fix for the problem reported by forum post 28216b36ac and introduced by check-in [f30fb19ff763a7cb]. Further changes to try to optimize the new OP_Copy opcode back into either OP_SCopy or OP_Move will be attempted separately. A test case will be in TH3. (check-in: c9f0b9cb user: drh tags: trunk)
12:15
Fix a potential memory leak in json_group_object() following an error. dbsqlfuzz cd32630de3ff039d97089592b63cb3616f8ec9dd (check-in: 21676731 user: drh tags: trunk)
2021-05-27
16:31
Add the merge-test.tcl script to ease verification of LTS branches. (check-in: f958ffbc user: drh tags: trunk)
15:24
The SQLITE_ENABLE_SHARED_SCHEMA compile-time option is on by default in the configure-generated makefile, permitting a complete test of this branch using "./configure && make test". (check-in: e867d226 user: drh tags: reuse-schema)
14:09
Improved comment on the prpagateConstants() routine. No changes to executable code. (check-in: d61a875d user: drh tags: trunk)
10:23
Remove a NEVER that is reachable following OOM in writable_schema=ON mode with a corrupt schema. (check-in: 4eb80b0c user: drh tags: trunk)
2021-05-26
23:10
Improvements to the constant-propagation optimization in order to better deal with unusual affinities. See forum post 6a06202608 for more detail. (check-in: 9be208a6 user: drh tags: trunk)
19:52
Minor optimization to opcode comparison logic in the fixes to the constant-propagation optimization on this branch. (Closed-Leaf check-in: f17dec40 user: drh tags: constant-propagation-fix)
19:37
Add new test file whereM.test. Containing tests for the change on this branch. (check-in: c4c76b82 user: dan tags: constant-propagation-fix)
18:51
Avoid assuming that an expression like "x=10" in a WHERE clause implies that CASE(x AS TEXT)=='10'. (check-in: 389ec669 user: dan tags: constant-propagation-fix)
18:46
Take care that the code is not generated for the same Select object more than once, as transformations that apply during the first pass might cause problems for the second pass. dbsqlfuzz 836b625cd8a41809ef80fc7ebaa6554357bcb463. (check-in: f30fb19f user: drh tags: trunk)
14:32
Update an assert() in wherecode.c that might fail following an unrelated SQL error. (check-in: 3e2c36a8 user: dan tags: trunk)
2021-05-25
16:10
Do not run sessionbig.test as part of the session_strm permutation. It is too slow. (check-in: 708ce7ad user: dan tags: trunk)
15:21
Update an allocation routine in the sessions module to allow it to allocate the maximum size permitted by sqlite3_realloc64(). (check-in: 0b45e821 user: dan tags: trunk)
11:39
Enhance the shell tool ".dump PATTERN" command so that it dumps the contents of shadow tables when a virtual table is identified by the PATTERN. (check-in: b0bc5ab9 user: dan tags: trunk)
2021-05-24
14:35
Fix a problem in the in-memory journal code that could occasionally lead to a segfault when a sub-transaction that modified zero pages was committed. (check-in: 17960165 user: dan tags: trunk)
12:28
Minor comment improvements in fuzzcheck.c. (check-in: 7aca8d52 user: drh tags: trunk)
12:13
New dbsqlfuzz cases added to test/fuzzdata8.db. (check-in: 5bb5c9ec user: drh tags: trunk)
11:35
Fix the TreeView module so that it works with the TK_ERROR exprssion. Also fix an assert() that was failing due to the recent TK_ERROR addition. (check-in: dd56fbe0 user: drh tags: trunk)
00:17
Additional defenses (above and beyond [b986600520696b0c]) to prevent an invalid subquery from causing problems downstream. If an error is found while analyzing a subquery expression, change the expression to TK_ERROR so inhibit further processing on that expression. dbsqlfuzz cf624b8c0484c66e0f552bf6475e3e3f2c22b24e. (check-in: 0be6b6c9 user: drh tags: trunk)
2021-05-23
17:47
Do not push a WITH clause onto the processing stack if prior errors have occurred. dbsqlfuzz 6b7a144674e215f06ddfeb9042c873d9ee956ac0. (check-in: c2066dde user: drh tags: trunk)
2021-05-22
15:05
Merge latest trunk changes into this branch. (check-in: dbc65a69 user: dan tags: reuse-schema)
11:23
Do not invoke sqlite3ExprAffinity() after a syntax error that might have left the tree in an inconsistent state. See also [e8a1515b44380cc5] and forum post 7e484e225c. (check-in: b9866005 user: drh tags: trunk)
11:00
The fix in the previous check-in was only correct if the OOM occurs on the initial allocation. This changes should make it correct for a resize as well. (check-in: 57087ab2 user: drh tags: trunk)
01:30
If an FTS5 Cursor fails to enlarge the space for the aInst array, set the size of the aInst array to zero. dbsqlfuzz 294254b8105cca409f27a711f1eb2e9e63cbcac5. (check-in: 4ae5e5b5 user: drh tags: trunk)
2021-05-21
21:49
If there are errors in a nested CTE, be sure to abandon processing. Do not continue since the parse tree may have been left in a goofy state which could cause use-after-free and segfaults. See forum post aa4a7a3980 for an example. (check-in: 94225d69 user: drh tags: trunk)
17:31
Merge latest changes from wal2 into this branch. (check-in: 4efefb59 user: dan tags: begin-concurrent-pnu-wal2)
16:42
Merge the latest trunk enhancements into the wal2 branch. (check-in: 95cc7783 user: drh tags: wal2)
16:41
Fix a problem with SQLITE_MAX_MEMORY in malloc.c. (check-in: c18dbe2f user: dan tags: trunk)
16:32
Merge the latest trunk changes into begin-concurrent-report branch via the begin-concurrent-pnu branch. (check-in: 1dc6cf51 user: drh tags: begin-concurrent-report)
16:17
Merge recent trunk changes into the begin-concurrent-pnu branch. (check-in: a8d05f8e user: drh tags: begin-concurrent-pnu)
15:33
Merge all recent trunk changes into the begin-concurrent branch. (check-in: 0dba9010 user: drh tags: begin-concurrent)
2021-05-20
23:25
Fix a faulty assert() statement in sqlite3ExprListDup(). This is a continuation of the fix at [59812e7ef705226c]. (check-in: 240f7494 user: drh tags: trunk)
18:11
Enhance one test case to use various alternative definitions of DUAL. (check-in: 179dcb6b user: drh tags: trunk)
17:15
Ensure that objects within view definitions are not incorrectly resolved to CTEs that are part of the statement using the view. (check-in: f7dcc4b5 user: dan tags: trunk)
11:42
Ensure the required b-tree mutexes are held for "CREATE TABLE IF NOT EXISTS" and "DROP TABLE IF EXISTS" statements on attached databases. (check-in: 67bde016 user: dan tags: trunk)
00:44
Replace [0f0959c6f95046e8] with a new and better solution that also fixes the CTE name resolution problem described in forum post 8590e3f6dc. Test cases for both problems added. (check-in: 5614279d user: drh tags: trunk)
00:10
Fixes and improvements to PRAGMA compile_options. (check-in: 34579549 user: drh tags: trunk)
2021-05-19
23:29
final merge from trunk (Leaf check-in: 06629569 user: larrybr tags: compile_options)
21:55
When constructing the synthensized SELECT statement that is used to choose the rows in an UPDATE FROM, make sure the first table is really the table being updated, and not some common-table expression that happens to have the same name. forum post a274248080. More changes associated with CTE name resolution are pending. (check-in: 0f0959c6 user: drh tags: trunk)
20:01
Incorporate ..._DESERIALIZE revision. (check-in: b70587cc user: larrybr tags: compile_options)
19:55
merge from trunk (check-in: 19ffe3cf user: larrybr tags: compile_options)
19:28
Add a comment with useful information about SHM locking. No changes to deliverable code. (check-in: 4e81ea3b user: drh tags: trunk)
19:27
Fix a formatting error on the comment. (Closed-Leaf check-in: 6f2fb60e user: drh tags: better-comment)
16:55
Add a table of shared-memory lock offsets in a comment in the os_unix.c code. Include some assert()s to help verify the numbers. (check-in: b480aacb user: drh tags: better-comment)
14:49
Allow aggregate sub-selects within ORDER BY and PARTITION BY clauses of window frame definitions. (check-in: 3daab949 user: dan tags: trunk)
12:17
Improved column name and column type determination for the RETURNING clause. (check-in: 699c3399 user: drh tags: trunk)
02:33
Cure some TCL test failures and narrow an object scope. (check-in: 1155696c user: larrybr tags: trunk)
2021-05-18
19:10
In the MULTI-INDEX OR query plan, code for sub-expressions can sometimes be generated twice. But for some subqueries, generating code off of the same tree twice causes problems. So now MULTI-INDEX OR makes a copy of the sub-expressions it uses to avoid code-generating them more than once. dbsqlfuzz 9ebd2140e7206ff724e665f172faea28af801635. (check-in: 4a55f725 user: drh tags: trunk)
12:36
Improved comments on the generated opcodes.h file. (check-in: f2a17f1f user: drh tags: trunk)
00:52
Add a CORRUPT_DB term to an assert() added earlier today. (check-in: 304739d2 user: drh tags: trunk)
2021-05-17
17:14
Fix harmless compiler warnings. (check-in: ace12a39 user: drh tags: trunk)
16:54
Enhance the integer-comparison optimization on the OP_Eq and similar opcodes so that it avoids a lot of useless work. (check-in: 4221f41a user: drh tags: trunk)
16:20
Fix problems with refering to CTEs from within sub-selects in PARTITION BY or ORDER BY clauses of window frame definitions. Also a problem with renaming a column when the schema contains a trigger containing a correlated sub-select within a window frames PARTITION BY or ORDER BY clause. (check-in: 4c6cd54a user: dan tags: trunk)
13:11
When deleting an SQL function that does not exist, return without doing anything at all rather than creating a tombstone function. In this way, function deletes that happen inside virtual-table destructors that are run when a database connection is closing do not create new tombstones in the function table after the function table has already been purged. forum post 726219164b. (check-in: 391c7313 user: drh tags: trunk)
11:19
Performance improvement in sqlite3TableLock(). (check-in: 0d77e371 user: drh tags: trunk)
2021-05-15
19:36
Performance optimization in the memory allocation of allocateCursor. (check-in: 9d16323d user: drh tags: trunk)
13:08
Performance optimization to the clearCell() routine inside of btree. (check-in: c4e02619 user: drh tags: trunk)
2021-05-14
20:01
Small performance improvement for sqlite3BtreeInsert(). (check-in: 4ae64484 user: drh tags: trunk)
15:37
Avoid adding superfluous virtual WHERE clause terms that might arise due to the constant propagation optimization. (check-in: cf63abbe user: drh tags: trunk)
14:26
Attempt the constant propagation optimization on any WHERE clause that has a top-level AND operator, even if the query is not a join. This is an attempt to partially address the concern raised in forum post 830d37b928. (check-in: e994c9f2 user: drh tags: trunk)
13:32
Fix an over-length source code comment in whereexpr.c. No logic changes. (check-in: af5eb902 user: drh tags: trunk)
2021-05-13
18:24
Modify the sqlite3_stmt_readonly() interface so that it returns false for CREATE TABLE IF NOT EXISTS statements even if the table already exists and the statement is really a read-only no-op. Likewise for DROP TABLE, CREATE INDEX, and DROP INDEX. Update the documentation for sqlite3_stmt_readonly() to reflect this new behavior. (check-in: cf8eb465 user: drh tags: trunk)
13:43
The content columns of the index-btree that implements a WITHOUT ROWID table are not ordered and so the query planner should not assume they are ordered. Fix for the issue identified by forum post 6c8960f545. (check-in: c21bc5a2 user: drh tags: trunk)
2021-05-12
22:15
Further simplification of the reverse-order scan logic of the previous check-in. (check-in: b2b0e23b user: drh tags: trunk)
22:02
Fix the query plan for an indexed lookup on a WITHOUT ROWID table with a DESC primary key when the primary key is constrained by an inequality. See forum post 8988341615. Test cases in TH3. (check-in: f65c929b user: drh tags: trunk)
15:39
Fix a race condition that can lead to deadlock in the memdb VFS if one thread is trying to open an existing database at the same moment that another thread that is the only prior user of that database is trying to close it. (check-in: b635375d user: drh tags: trunk)
14:17
Add the new threadtest5 test program for stressing multiple database connections in the same process hammering on a single database. Primarily designed to test memdb, but works on any database. (check-in: 8db1c069 user: drh tags: trunk)
11:55
Enhance the memdb VFS so that it is able to share databases among multiple database connections in the same process, as long as the database filename begins with "/". This provides a way for threads to share an in-memory database without the use of shared-cache mode. (check-in: 533fffc4 user: drh tags: trunk)
02:52
Respond correctly to OOM during mutex allocation. (Closed-Leaf check-in: 98dae595 user: drh tags: memdb-enhancement)
02:09
Mark an unreachable branch as NEVER(). (check-in: 6c20d9d4 user: drh tags: memdb-enhancement)
2021-05-11
11:40
Fix a NEVER() that can sometimes be true. (check-in: 8f9f1cbc user: drh tags: memdb-enhancement)
10:47
Fix a NEVER() that can sometimes be true. dbsqlfuzz 9a86fb3830977e216fde061bfbe1c1e5c2e9bfc4 (check-in: f39666e6 user: drh tags: trunk)
2021-05-10
23:48
Enhance the memdb VFS to provide the ability to share a single database among multiple database connections. (check-in: 0617c66a user: drh tags: memdb-enhancement)
13:28
Add new output columns to the "PRAGMA database_list" statement. (Leaf check-in: 905085a7 user: drh tags: database-list-enhancement)
2021-05-08
17:18
Enable the sqlite3_serialize() and sqlite3_deserialize() interfaces by default. Omit the SQLITE_ENABLE_DESERIALIZE option and replace it with the SQLITE_OMIT_DESERIALIZE option. (check-in: 6df3b03e user: drh tags: trunk)
11:57
Fix help-text typo in the CLI. (check-in: 56075314 user: drh tags: trunk)
2021-05-07
15:46
Detect misuse of aggregate functions in the ORDER BY clause of a query even if the query also contains window functions. (check-in: 0d11d777 user: drh tags: trunk)
14:16
This was suppose to be a merge from trunk. But something went wrong. (Closed-Leaf check-in: c5e2de1d user: dan tags: bad-merge)
2021-05-06
20:47
Fixes for cksmvfs and rbu so that they work together. (check-in: f35f6972 user: dan tags: trunk)
13:45
Remove an assert() in FTS5 that can (rarely) be false in the event of an OOM while processing a corrupt database file. (check-in: 5f12f891 user: drh tags: trunk)
11:02
Improved detection of oversized cells in balance_nonroot(), especially in index b-trees when a cell is being moved from a child page into the parent page in order to become a new divider cell. (check-in: 9080d3d5 user: drh tags: trunk)
2021-05-05
19:46
Provide the sqlite3PrintMem() routine on SQLITE_DEBUG builds, which can be invoked from a debugger to get a summary of the status of an sqlite3_value or Mem object. (check-in: 5ac24179 user: drh tags: trunk)
11:47
Fix an undefined-integer-overflow problem in fts3.c. (check-in: a0bf931b user: dan tags: trunk)
2021-05-04
23:21
When applying the optimization that disables WHERE clause terms that drive indexes, make sure not to do so if the term being disabled is a transitive constraint. Fix for the problem identified by forum post eb8613976a. (check-in: f1f9b5de user: drh tags: trunk)
18:24
Also for the 0x20000 bit of ".wheretrace", show when WHERE clause terms are disabled. (check-in: 625fb253 user: drh tags: trunk)
16:51
Additional debugging output for whereScanNext() showing equivalence classes when the ".wheretrace" setting contains the 0x20000 bit. (check-in: 9280e3d9 user: drh tags: trunk)
12:07
Back out the EXISTS-to-IN optimization. It slows things down rather than speeds them up depending on the query. And (see forum post 8692d94725) it sometimes results in an incorrect answer. We may come back and revisit this optimization later, but for now it seems best just to disable it. (check-in: 16252d73 user: drh tags: trunk)
2021-05-03
13:35
Fix minor coverity warnings in the CLI. (check-in: 204086a9 user: drh tags: trunk)
13:24
Fix a potential memory leak following OOM in the decimal extension. (check-in: 5127f737 user: drh tags: trunk)
2021-05-01
12:09
Back out the NEVER() inserted by [c7309ed3c7588c7e] because it is reachable after all. dbsqlfuzz bc17a306a09329bba0ecc61547077f6178bcf321 (check-in: 20a4f3f1 user: drh tags: trunk)
2021-04-30
16:12
Guard against a NULL-pointer dereference following OOM in the JSON extension. (check-in: ea221f3c user: drh tags: trunk)
12:30
Fix a harmless "unused variable" warning when compiling with -DSQLITE_COVERAGE_TEST. (check-in: 0bef3fb1 user: drh tags: trunk)
2021-04-29
19:30
Reduce API lifetime requirement for objects passed to sqlite3_bind_...() with SQLITE_STATIC. Also fix broken session doc links (by zapping refs.) (check-in: 327eb479 user: larrybr tags: trunk)
18:03
Fix the operation of the "-" argument to --load-dbsql in the fuzzcheck program. (check-in: 1f18b3cb user: drh tags: trunk)
15:49
Fix the IN-early-out optimization so that it works even for the corner case where the NULL bypass fires before the affinity of the LHS operator has been set. Fix for the problem described in forum post 6a3ec138e9. (check-in: eb40248c user: drh tags: trunk)
13:58
Enhanced "PRAGMA vdbe_trace=on" output associated with the seekHit flag. (check-in: 68395000 user: drh tags: trunk)
13:37
Fix harmless compiler warnings. See forum post 256140e470. (check-in: 1b8da792 user: drh tags: trunk)
10:48
Update test/fuzzdata8.db with recent dbsqlfuzz finds. (check-in: bce2ea39 user: drh tags: trunk)
2021-04-28
17:37
Ignore the TEMP or TEMPORARY keyword on CREATE statements which parsing the schema out of an existing database file. Those keywords should never be there. This change simply adds robustness in case a legacy or damaged database is seen. (check-in: 65ec39f0 user: drh tags: trunk)
15:43
Adjust a VDBE coverage macros due to the enhancement at [506333742103c1f4]. (check-in: daed59b4 user: drh tags: trunk)
2021-04-27
17:36
Create new branch named "testing_help" (Leaf check-in: a97a5022 user: larrybr tags: testing_help)
17:18
Further improvements to the handling of RETURNING clauses on changes to TEMP tables with triggers. dbsqlfuzz 683913e98f54fe4f14e8dd11a48011f73bdca58d (check-in: ff3538ae user: drh tags: trunk)
13:04
RETURNING bug fix: Correctly deal with RETURNING statements on changes to TEMP tables that also have triggers. dbsqlfuzz 78b9400770ef8cc7d9427dfba26f4fcf46ea7dc2 (check-in: d0b15ecc user: drh tags: trunk)
11:28
Fix a segfault that could occur when querying a corrupt data structures with an fts5token table. (check-in: cbedfa05 user: dan tags: trunk)
04:47
merge latest trunk (check-in: 3ff22824 user: larrybr tags: compile_options)
00:05
Better error messages on showdb. (check-in: 7e18e114 user: drh tags: trunk)
2021-04-26
23:57
Improved robustness of the "showdb" debugging program when it is parsing corrupt database files. (check-in: 3eabac2e user: drh tags: trunk)
22:30
New dbsqlfuzz cases added to test/fuzzdata8.db. (check-in: 88d20500 user: drh tags: trunk)
21:23
Fix the UNION ALL flattener optimization so that it works better with recursive CTEs. dbsqlfuzz 88ed5c66789fced139d148aed823cba7c0926dd7 (check-in: f80d7bb2 user: drh tags: trunk)
21:00
Add ALWAYS() to branches that are no longer reachable due to recent enhancements. (check-in: 63c50fbd user: drh tags: trunk)
20:18
refix altertab.test (check-in: db032156 user: larrybr tags: trunk)
15:32
Fix a problem that could cause a crash in sqlite3BtreeDelete() when operating on a corrupt database file. (check-in: 6c633466 user: dan tags: trunk)
15:28
More aggressive detection of OOM errors in resolveAlias(). dbsqlfuzz 7f96832c2ef7ee472022ed805b064e55e41094b2 (check-in: e99faf4f user: drh tags: trunk)
14:32
When doing the optimization that attempts to avoid sorting on a GROUP BY, do not assume that the values in an index on an expression are non-NULL. Bug discovered by Wang Ke's fuzzer and reported at forum post 74330094d8. (check-in: 7178dc3a user: drh tags: trunk)
14:09
Do not initialize eponymous virtual tables when parsing the schema. This can happen if the db is corrupt. (check-in: cb8c41aa user: dan tags: trunk)
2021-04-25
23:13
Skip test when no JSON. (check-in: 6fcb2438 user: larrybr tags: trunk)
2021-04-24
23:40
Make window range queries more robust against corrupt database files. dbsqlfuzz f22df3a7b2aab0937a415484514fc2f68a293c99. (check-in: 50633374 user: drh tags: trunk)
12:24
Treat byte-order marks (BOMs) at the start of a token as whitespace. This enhancement is inspired by forum post ed8f696a20. (check-in: 3d55c21c user: drh tags: trunk)
12:20
Fix testcase altertab-25.1 due to check-in [c7909e8e0d0577c6] disallowing ALTER TABLE on eponymous virtual tables. (check-in: 32255e39 user: drh tags: trunk)
2021-04-23
13:57
Fix harmless compiler warnings in fuzzcheck. (check-in: e7b4ffec user: drh tags: trunk)
12:58
Enhance the --load-dbsql and related options of fuzzcheck so that if the argument is a single - then filenames are read from standard input. (check-in: e1548802 user: drh tags: trunk)
12:16
Give a better final output line for the --spinner option on fuzzcheck. (check-in: 93729614 user: drh tags: trunk)
11:50
New dbsqlfuzz cases added to test/fuzzdata8.db. (check-in: 8da88508 user: drh tags: trunk)
11:37
Fix an assert() in fts5_index.c that may fail if the database records are corrupt. (check-in: dfadb96e user: dan tags: trunk)
00:59
Improved OOM detection in sqlite3ExprCheckIN(). dbsqlfuzz 46ae2d8f473ac672f3042cc14ab67aeab9ffa6c2 (check-in: fac12115 user: drh tags: trunk)
2021-04-22
20:01
Change a memcpy() into a memmove() to prevent a warning about overlapping regions passed to memcpy() in case of some obscure and unlikely database corruption. (check-in: bab132cb user: drh tags: trunk)
19:34
Fix harmless compiler warnings of unused function parameters in FTS5. (check-in: 14273915 user: drh tags: trunk)
18:52
Further tweaks for comments in sqlite3session.h. (check-in: 553ada28 user: dan tags: trunk)
18:39
Change to comments in sqlite3session.h. No changes to code. (check-in: 353ebb71 user: dan tags: trunk)
18:02
Raise an error on an attempt to rename an eponymous virtual table. (check-in: c7909e8e user: drh tags: trunk)
17:55
Add the experimental sqlite3session_changeset_size() API. (check-in: 3de544d4 user: dan tags: trunk)
17:40
Add the sqlite3session_object_config() API. Current used to enable/disable collecting data for sqlite3session_changeset_size(). (Closed-Leaf check-in: 4d5fd215 user: dan tags: session-changeset-size)
16:54
Improved handling of errors in ALTER TABLE RENAME. dbsqlfuzz 3e3e2e076e53d02288f80af41a11143a6ddf8c88 (check-in: 9c7a449f user: drh tags: trunk)
14:43
Fix the date/time translation logic in the zipfile extension so that it works with boundary cases. See forum post d82289d69f for the trouble report. (check-in: c8de5f06 user: drh tags: trunk)
13:59
Ensure that the typedefs for specific-length integers in zipfile.c are correct. (check-in: f1f2a490 user: drh tags: trunk)
12:38
In the whereLoopXfer() routine, ensure that the destination is fully initialized even if an OOM error occurs. (check-in: c4258708 user: drh tags: trunk)
2021-04-21
23:13
The new OP_Null opcode from check-in [8b54102a00852b72] was not coded correctly. This check-in attempts to fix that. (check-in: 02af30aa user: drh tags: trunk)
20:52
Add the experimental sqlite3session_changeset_size() API. (check-in: b5564a6f user: dan tags: session-changeset-size)
12:03
Add recent dbsqlfuzz test cases to test/fuzzdata8.db. (check-in: 6fe50dcc user: drh tags: trunk)
11:58
Initialize the key registers in the skip-scan optimization to NULL, in case the query is run on a corrupt database that causes the initialization of the key to be bypassed. dbsqlfuzz 62fdf2bece00d24cac8a4edf2cf562e6eeac779d (check-in: 8b54102a user: drh tags: trunk)
11:32
Fix a problem allowing SQL variables to be used expressions within the second and subsequent ON CONFLICT clauses of an UPSERT within a trigger. (check-in: 2a28910a user: dan tags: trunk)
2021-04-20
22:48
Remove a testcase() that is no longer relevant due to the previous check-in. (check-in: ca70c8ac user: drh tags: trunk)
20:48
More aggressive detection of database corruption in the rebuildPage() routine. (check-in: a18c6506 user: drh tags: trunk)
13:31
Update an assert() in btree.c that may fail with a corrupt database. (check-in: d74bf88c user: dan tags: trunk)
12:14
In the sqlite3SelectDup() routine, do not do an incomplete duplication due to OOM. This in turn requires several new NEVER() and ALWAYS() macros for unreachable branches. (check-in: a61c0e6b user: drh tags: trunk)
00:09
Add two ALWAYS() macros for branches no longer reachable due to the previous check-in. Later: Dbsqlfuzz quickly found ways to make both of these ALWAYS() conditionals false. (Closed-Leaf check-in: 8f339f43 user: drh tags: mistake)
2021-04-19
20:36
Improvement to check-in [d564d8882ef18b55] to detect the OOM fault even if it occurs deep down inside the duplicated expression. (check-in: 3e863cd0 user: drh tags: trunk)
19:59
An improvement to check-in [1a341378ab24a509] that omits the new Walker.bWalkWinDefn boolean (which is not always initialized) and uses a special value for xSelectCallback2 instead. (check-in: bef2238d user: drh tags: trunk)
18:03
Ensure that a WITHOUT ROWID table does not have the .iPKey field set, even if an OOM error occurs while parsing a schema in PRAGMA writable_schema=ON mode. Add extra assert() statements to triple-check that this never happens. dbsqlfuzz 803bb1f63d6f3bd6c14db568494d6e96be8f1ec9. (check-in: 41228350 user: drh tags: trunk)
16:45
Remove fts5 test functions fts5_expr(), fts5_expr_tcl(), fts5_isalnum() and fts5_fold() from release builds. (check-in: c68a6c6c user: dan tags: trunk)
15:05
In the query flattener, avoid invalidating an expression if an OOM occurs. This prevents problems in higher-level routines that might not check for the OOM after processing a subquery. dbsqlfuzz fb70fa8602421f87673e0670b0712ff2b5240ea0 (check-in: d564d888 user: drh tags: trunk)
2021-04-18
05:30
Ensure that all records are updated by setting the OPFLAG_SAVEPOSITION flag when updating records as part of ALTER TABLE DROP COLUMN. Fix for [c88f3036a2]. (check-in: 354a4db5 user: dan tags: trunk)
2021-04-17
20:13
Remove a couple of NEVER() macros from the code for walking window lists. (check-in: 4ec9ef4b user: dan tags: trunk)
20:13
Merge trunk bug/test fixes (check-in: 830b0b1c user: larrybr tags: compile_options)
20:04
Bring in permutations mod. (check-in: 7a1316f3 user: larrybr tags: trunk)
19:59
Do not run external_reader.test as part of permutation "journaltest", as it requires wal mode. (check-in: 9f5f16cf user: dan tags: trunk)
18:43
Allow more time for perf tests when instrumented. Condition another on feature it needs. (check-in: f0dd9cf2 user: larrybr tags: trunk)
18:39
Add new dbsqlfuzz cases to test/fuzzdata8.db. (check-in: d18793e5 user: drh tags: trunk)
14:42
Fix cases where code in expr.c was failing to handle OOM failures that occurred while processing sub-select expressions. (check-in: 62efe2ee user: dan tags: trunk)
13:46
Ensure that variables are not used in the WINDOW clause of a query inside of a trigger. dbsqlfuzz d9cf66100064952b66951845dfab41de1c124611 (check-in: 1a341378 user: drh tags: trunk)
2021-04-16
23:53
Merge from trunk. (check-in: 43894f0b user: larrybr tags: compile_options)
23:43
Add geopoly to $::sqlite_options() and use it to pass more tests. (check-in: 23da5016 user: larrybr tags: trunk)
22:53
Performance optimizations in the code generator, especially in name resolution. (check-in: ab83a998 user: drh tags: trunk)
21:29
Make a test conditioned on feature used. (check-in: 31afda7a user: larrybr tags: trunk)
19:25
Add new dbsqlfuzz-generated cases to test/fuzzdata8.db. (check-in: 1ac0a056 user: drh tags: trunk)
17:09
Fix another undefined behaviour in fts3 that could follow an OOM error. (check-in: fac3ff85 user: dan tags: trunk)
16:55
Avoid signed integer overflow when finding snippets in fts3 by using 64-bit integer offsets. (check-in: 4cc09a87 user: dan tags: trunk)
15:44
Merge from trunk. (check-in: d762784a user: larrybr tags: compile_options)
12:33
Remove an ALWAYS() from a branch in sqlite3ExprAddCollateToken() which can be false following an OOM. dbsqlfuzz 9e8516bf1e786c84e520ae43141b75b7399f8618. (check-in: 6af4e6d0 user: drh tags: trunk)
12:13
Fix an assert() in whereLoopAddOr() that can be wrong if an OOM occurs in an OR constraint on a virtual table if one of the terms of the OR is an IN operator. dbsqlfuzz 5ee7350b40014f5a878c5d6e76913a2d619f5146 (check-in: 5cb40e53 user: drh tags: trunk)
11:25
Fix an assert() in fts3 that might fail when handing corrupt records. (check-in: d0e2d674 user: dan tags: trunk)
11:05
Fix the comment on the implementation of the pi() SQL function. No changes to code. (check-in: 5620bd46 user: drh tags: trunk)
10:25
Dial back assumptions on compile option defaults to reflect actual conditionals. (check-in: cb312772 user: larrybr tags: compile_options)
01:03
Do not invoke sqlite3ExprAffinity() if there is a possibility that the Expr is incomplete due to a prior OOM. dbsqlfuzz b8a824706914488bd236da51118eb9174ceb870f (check-in: e8a1515b user: drh tags: trunk)
2021-04-15
23:43
Merge from (forked) trunk. Handle compile options that differ from default by being 0. (check-in: 6eb83f83 user: larrybr tags: compile_options)
19:09
Fix a bad interaction between constant propagation and transitive term handling causing patterns like "WHERE unlikely(t1.x=t1.y) AND t1.y=?" to return non-matching rows. See forum post c38462ab5e. (check-in: 2363a14c user: dan tags: trunk)
13:26
Add extra test case for OOM handling in where.c. (check-in: 7163de3d user: dan tags: trunk)
12:56
Make sure the WhereInfo.pExprMods list is properly cleared when existing sqlite3WhereBegin() early due to an OOM fault. dbsqlfuzz 1247a51318047aba42e7f6991dfa62577cb7a151. (check-in: 0e19af72 user: drh tags: trunk)
00:26
Bring pragma compile_options up to date. And make mkctimec.tcl help do so. (check-in: 63ea3e29 user: larrybr tags: compile_options)
2021-04-14
15:25
Prevent an assert() from failing if sqlite3_blob_reopen() is called on a blob-handle that has already hit an SQLITE_CORRUPT error. (check-in: b5dc7aba user: dan tags: trunk)
12:11
Fix a potential crash when using json_group_array() as a window function. (check-in: 3c266690 user: dan tags: trunk)
11:20
Fix an assert() in the code generator for expressions so that it is valid even after an OOM. (check-in: 427e83eb user: drh tags: trunk)
2021-04-13
17:45
Fix an undefined signed integer overflow in fts5. (check-in: e6f0adb0 user: dan tags: trunk)
13:48
Do not leave a WITHOUT ROWID table without a primary key index structure due to an OOM error. This prevents downstream troubles in the case of PRAGMA writable_schema=ON. dbsqlfuzz 69fb32cc82d59b4d790881566e3f6c727e616122 (check-in: 608b6644 user: drh tags: trunk)
13:20
The SQLITE_NoSchemaError flag should not apply to OOM errors while parsing the schema. (check-in: 9cc484ad user: drh tags: trunk)
13:01
Earlier detection empty_result_callbacks in sqlite3InitCallbac() to avoid problems with corrupt schemas an writable_schema=ON. dbsqlfuzz ca4ca43bdb22eab9859de4979aec615af851e111. (check-in: fb305fe0 user: drh tags: trunk)
12:28
In the rtreedepth() function, detect OOM when converting a zeroblob() on input. dbsqlfuzz ed23eda7cc3a8a054f85ea19d55c59ba2ca72744. (check-in: 69f843c8 user: drh tags: trunk)
01:12
Fix an error in the inversion function for json_group_array(). dbsqlfuzz 68a4b0f668b7bc27235e3f1c5cff8a2d94cfa17e. (check-in: e718a62e user: drh tags: trunk)
2021-04-12
23:18
Fix a faulty assert() inside sqlite3ExprDup(). (check-in: 59812e7e user: drh tags: trunk)
22:39
Fix an assert() in OP_ParseSchema so that it works even after an OOM. (check-in: 79b88353 user: drh tags: trunk)
18:32
Avoid taking the address of a NULL pointer following an OOM in FTS5. Doing so is harmless in actual practice, but it technically UB so we want to avoid it. (check-in: 1cfcd9dc user: drh tags: trunk)
17:34
Add an assert() to show that the SF_Resolved flag does not get set if errors are being suppressed. (check-in: f455c5b0 user: drh tags: trunk)
16:59
Fix a segfault that could occur if the ORDER BY clause of a compound SELECT contains a sub-select that uses one or more window functions. (check-in: 5ba15ebb user: dan tags: trunk)
12:58
Fix the display of SrcList in the sqlite3TreeView debugging routines. (check-in: 28ecb381 user: drh tags: trunk)
12:02
Avoid an assert() failure when a compound scalar sub-select is, due to a "WHERE (sub-select) AND (... OR ...)" clause, coded twice by the code generator. (check-in: a4e3f133 user: dan tags: trunk)
11:51
Fix harmless comment typo in main.c. (check-in: 785a553e user: drh tags: trunk)
2021-04-11
00:11
Add NEVER() to a branch that is no longer reachable due to check-in [a1d823f6879ce1ac]. (check-in: 5fda21fe user: drh tags: trunk)
2021-04-10
20:27
Avoid an uninitialized-memory valgrind error by tightening up corruption detection in internal routine defragmentPage(). (check-in: 8096f7ae user: dan tags: trunk)
20:21
Add NEVER() to a branch that became unreachable with check-in [58f36af2271517ab]. (check-in: e07ce463 user: drh tags: trunk)
15:34
Avoid invoking sqlite3Atoi64() will a null pointer following an error from ExpandBlob(). (check-in: 780412f2 user: drh tags: trunk)
14:49
Fix a problem with handling expressions like "(col IS NULL AND <expr1>) OR col == NULL" in WHERE clauses. Reported at https://sqlite.org/forum/forumpost/1c4f2fdcc4. (check-in: 40852ca8 user: dan tags: trunk)
13:37
Refactor NameContext.nErr into nNcErr to avoid confusion with Parse.nErr. Do not abandon sqlite3ResolveExprList() on nNcErr if nErr is still zero as we might have hit a problem with ORDER BY resolution that should be a suppressed error. dbsqlfuzz 41b9dad40919d3549ca7e52d893da81a6dded4ad (check-in: 7d674970 user: drh tags: trunk)
2021-04-09
22:34
Remove a NEVER() in a corruption detection conditional in defragmentPage(). dbsqlfuzz 9c61c33802600b2b01dfb09b0386ceb4ade02a19 (check-in: c174f5d3 user: drh tags: trunk)
22:20
Remove an ALWAYS() that is actually reachable following an OOM on an UPDATE FROM of a virtual table. dbsqlfuzz aa03237ef7c4a028c7cdaf8bbcde2b62e2bcd36e (check-in: 49eac389 user: drh tags: trunk)
20:50
Have the VFS in memdb.c return SQLITE_IOERR_NOMEM instead of SQLITE_NOMEM when an OOM error is encountered. This is required to get the pager module to handle such OOM errors correctly in some cases. (check-in: 09c96b4c user: dan tags: trunk)
2021-04-08
20:29
Fix a use-after-free error that could occur when processing "SELECT aggregate(DISTINCT <expr>)..." queries. (check-in: 0e478986 user: dan tags: trunk)
19:56
Remove an ALWAYS() that might be false under very unusual circumstances. dbsqlfuzz 300261f469ace7ecc57ed32ea7b0de3ea9d7dbf. Test case in TH3. (check-in: 466f5089 user: drh tags: trunk)
19:39
Handle the corruption fixed by the previous commit in a different way so as to also fix dbsqlfuzz crash 753de0a0ac5b25b18f1e4d41e650d3333cdc270c. (check-in: cb27ce25 user: dan tags: trunk)
15:19
Handle a special case of corruption that can present if "PRAGMA writable_schema=1" is set. Fix for dbsqlfuzz test case 6229ad63de49e3ba0630aaf0058868f36008bcca. (check-in: 58f36af2 user: dan tags: trunk)
14:15
Harden the filter_over grammar rule against OOM faults. dbsqlfuzz e47c54502a9c36778a5ed553199d5870e2ebd9f2 (check-in: f375f541 user: drh tags: trunk)
13:52
Remove an incorrect assert() from sqlite3EndTable(). dbsqlfuzz 4af45bcda779592449b1985433bca90b0e683b9b. (check-in: 38a1085c user: drh tags: trunk)
13:41
Fix an obscure memory leak in FTS3. dbsqlfuzz 26a51001beeff35649d2e328b05ec06f93c577a5 (check-in: be7cd9eb user: drh tags: trunk)
2021-04-07
18:17
Do not allow the use of rowid for views and subqueries unless compiled with -DSQLITE_ALLOW_ROWID_IN_VIEW. (check-in: a2ddb89b user: drh tags: trunk)
18:08
Add the SQLITE_ALLOW_ROWID_IN_VIEW option to omitttest.tcl. (Closed-Leaf check-in: 83b8e4c2 user: drh tags: no-rowid-on-view)
17:46
Merge latest changes into this branch. (check-in: 655c2841 user: dan tags: begin-concurrent-report)
17:32
Merge latest trunk changes into this branch. (check-in: 1f3f7e4b user: dan tags: begin-concurrent-pnu)
15:45
Also prohibit the use of rowid from a subquery. Add the SQLITE_ALLOW_ROWID_IN_VIEW compile-time option to restore legacy behavior in case somebody actually needs it. (check-in: 14b1d56e user: drh tags: no-rowid-on-view)
13:20
Unnecessary local variable initialization to fix a harmless compiler warning. (check-in: c22e47c7 user: drh tags: trunk)
12:59
In FTS3, if the xBegin method fails to start a transaction due to an OOM error, then make sure that the virtual table is left in a consistent state. dbsqlfuzz 85ef48423fda4eef79a551654445d8ef3537a590. (check-in: dd553578 user: drh tags: trunk)
12:36
Fix an assert in the automatic-index constructor that can be false following an OOM error. dbsqlfuzz ee04d66c627ed5b5301e0ce09e24db47e0f1544e. (check-in: cc6463fe user: drh tags: trunk)
12:21
Earlier detection of page 1 on the freelist (which is impossible) and reporting of that as database corruption. dbsqlfuzz 6fe6c504b320be5e3eed66896cb0db28bfb38a93. (check-in: b1bf0d98 user: drh tags: trunk)
12:02
Fix a possible crash that could occur when executing a drop column operation on a corrupt database schema. (check-in: c3378494 user: dan tags: trunk)
09:31
Fix seg-fault upon appendvfs attempt to open non-existent file. (check-in: 04f6439f user: larrybr tags: trunk)
2021-04-06
23:29
Do not apply the optimization that omits DISTINCT if all result terms are part of a UNIQUE index if the index is also a partial index. Fix for the bug reported by forum post 66954e9ece. (check-in: c2f940b0 user: drh tags: trunk)
22:56
Detect OOM earlier in the geopoly extension. dbsqlfuzz 0986e7b020e6137fc6b96331f91d15753d18e42d. (check-in: 72371175 user: drh tags: trunk)
21:20
Modify the drop column code to handle WITHOUT ROWID tables for which a single column appears more than once in the primary key. (check-in: e0d25070 user: dan tags: trunk)
19:13
Raise an error if a query tries to access the "rowid" of a view, as views do not have rowids. (check-in: 7a73c616 user: drh tags: no-rowid-on-view)
18:40
Restructure a loop in window.c to avoid hitting an assert() following an OOM. dbsqlfuzz test case 6ef74a9659de87e9be3d8694ad062c448aa7ef1d. (check-in: 887c19a1 user: dan tags: trunk)
18:02
Update an assert statement that could fail when using "PRAGMA writable_schema = 1" to access a database with a corrupt schema. (check-in: 55cad6f6 user: dan tags: trunk)
17:51
Fix issue with failing --enable-debug --enable-fts5 build. (check-in: e7491acc user: dan tags: trunk)
16:55
New test cases added to fuzzdata8.db. (check-in: 039ad662 user: drh tags: trunk)
16:42
Silence an msan warning triggered by a corrupt database by initializing a local variable in sqlite3Insert(). (check-in: f64deece user: dan tags: trunk)
16:16
Avoid a use-after-free that may occur when accessing a corrupt database schema with "PRAGMA writable_schema = 1" set. (check-in: a1d823f6 user: dan tags: trunk)
14:46
Remove some test routines from release builds of fts5. (check-in: 3088bf15 user: dan tags: trunk)
13:57
Fix incorrect RETURNING test cases in wherelimit.test (check-in: 20d21ff9 user: dan tags: trunk)
13:56
Earlier detection of OOM errors during window function processing. dbsqlfuzz b08676f5a0437552c95d2a5d7ef285f8c451ea35. (check-in: 8e04f52e user: drh tags: trunk)
13:53
Handle "RETURNING rowid" clauses attached to INSERTs on views without causing an assert() to fail. Fixes dbsqlfuzz crash 0081f863d7b2002045ac2361879fc80dfebb98f1. (check-in: 9c5b7386 user: dan tags: trunk)
13:03
Further improvements (subsequent to [d91450847a3a3a72]) to handling of attempts to delete a journal using the memdb VFS. dbsqlfuzz ac61dab357279a6a531de067f040e9a4828d2df0. (check-in: a0839406 user: drh tags: trunk)
12:50
Earlier detection and handling of OOM problems. dbsqlfuzz 39f2963ea5559aa3a16e24e0e3cb42aac85a7371. (check-in: 8d46df73 user: drh tags: trunk)
2021-04-05
22:42
Relax an assertion on the sqlite3WhereEnd() routine after dbsqlfuzz found a counter-example. (check-in: e6b591e7 user: drh tags: trunk)
22:30
Add a missing CORRUPT_DB to an assert in the OP_ResultRow opcode. (check-in: 82f92d79 user: drh tags: trunk)
19:23
Adjust the README.md file so that build instructions work for Fossil version 2.12 and later. Forum post 51f28bb701. (check-in: 51f87adc user: drh tags: trunk)
19:05
Do not allow floating point rounding errors to cause a window function xInverse() function to be invoked before the corresponding xStep() call. (check-in: 7a19fed4 user: dan tags: trunk)
17:50
Fix an assert() that can be false when doing an incremental vacuum on a corrupt database file. dbsqlfuzz cced0668cfd4da4eb2382cb9dd26c17c64aaff76. (check-in: 15b80101 user: drh tags: trunk)
16:20
Avoid coding unindexed WHERE constraints if an equivalent transitive term has already been coded by an outer loop. (check-in: 644bb77f user: dan tags: trunk)
13:41
Do not invoke the xDelete method when converting to PRAGMA journal_mode=OFF if the underlying VFS does not support that method. dbsqlfuzz 39d6af88ef5242f866c4f9b21ede330c5c1e36a8. (check-in: d9145084 user: drh tags: trunk)
11:39
As a continuation of [1f66a85b7757754f], ensure that an OOM that occurs while checking the validity of the schema is reported out as SQLITE_NOMEM and not as SQLITE_SCHEMA. (check-in: 5045c8a7 user: drh tags: trunk)
2021-04-04
23:56
Fix an assert() in sqlite3BtreeLast() that needs an "|| CORRUPT_DB" term. Dbsqlfuzz case b92b72e4de80b5140c30ab71372ca719b8feb618. (check-in: ad718388 user: drh tags: trunk)
14:22
Avoid compile error when SQLITE_OMIT_VIRTUALTABLE defined. (check-in: 0ee0ef47 user: larrybr tags: trunk)
12:52
Make shell .parameter feature type-agnostic. Hush harmless compiler warning. (check-in: 35cf295e user: larrybr tags: trunk)
2021-04-03
23:30
Improved robustness to OOM conditions in the window function logic. dbsqlfuzz 0c123f7d80b29beaafc8411c12129e46f7ffdac3. (check-in: 35ff7cbf user: drh tags: trunk)
20:35
Take care not to change an SQLITE_NOMEM error into SQLITE_SCHEMA. (check-in: 1f66a85b user: drh tags: trunk)
19:23
Fix a crash in handling queries of the form "SELECT aggregate(DISTINCT tbl.col) FROM ... LEFT JOIN tbl ...". Fixes a problem introduced by [ef4ac0ddd297bbd3]. (check-in: 0dcf808d user: dan tags: trunk)
2021-04-02
20:53
Merge latest trunk changes with this branch. (check-in: a2216259 user: dan tags: begin-concurrent-report)
20:43
Correctly capture the error when a RETURNING clause appears on an attempt to UPDATE an eponymous virtual table. dbsqlfuzz 486f791cbe2dc45839310073e71367a1d8ad22dd. (check-in: 778a9a6e user: drh tags: trunk)
20:40
Merge latest trunk changes into this branch. (check-in: a7e612ee user: dan tags: begin-concurrent-pnu)
20:29
Merge latest trunk changes into this branch. (check-in: 98420842 user: dan tags: begin-concurrent)
19:55
Add experimental SQLITE_FCNTL_EXTERNAL_READER file control. (check-in: e16da5af user: dan tags: trunk)
18:59
Fix a problem with the geopoly_bbox() function. (check-in: f3a2eb97 user: drh tags: trunk)
2021-03-31
23:56
When resolving names in the RETURNING clause, do not accept trigger names even within subquires. See forum post 34c81d83c9177f46 for context. (check-in: fd4ea3f6 user: drh tags: trunk)
17:42
When resolving column names in the RETURNING clause, do not ignore an incorrect table name qualifier. Raise an error instead. See forum post 85aef8bc01 for context. (check-in: 51d5c50b user: drh tags: trunk)
13:31
Defer deletion of expressions that are optimized out by the AND optimizer in the sqlite3ExprAnd() routine until the corresponding Parse object is deleted. This avoids a dangling pointer in AggInfo if sqlite3ExprAnd() is invoked by the push-down optimization. The dangling pointer appears to be harmless in release builds, only showing up in debug builds. Problem found by dbsqlfuzz. (check-in: c36b4358 user: drh tags: trunk)
11:31
Ensure that negative numbers may not be used in frame offset clauses even if they are initially text value. e.g. (RANGE BETWEEN '-1' PRECEDING ...). (check-in: 8b681b27 user: dan tags: trunk)
2021-03-30
01:52
Raise an error if a term of the form "TABLE.*" appears in the RETURNING clause, as SQLite does not (yet) know how to handle that. Ticket [132994c8b1063bfb]. (check-in: 3039bcaf user: drh tags: trunk)
2021-03-29
20:28
Do not do the EXISTS-to-IN transformation if the sub-select has LIMIT clause. (check-in: d07e246f user: dan tags: trunk)
20:04
Add "#ifdef SQLITE_DEBUG" blocks around test variables sqlite3_fts5_may_be_corrupt and sqlite3_fts3_may_be_corrupt. (check-in: 00455954 user: dan tags: trunk)
20:01
Simplify the comparison opcodes in the bytecode engine, for a performance improvement. (check-in: f2af5868 user: drh tags: trunk)
19:47
Fix VDBE coverage macros. (Closed-Leaf check-in: ebe100de user: drh tags: compare-opcode-opt)
18:53
Omit the SQLITE_STOREP2 and SQLITE_KEEPNULL options from the comparison opcodes, allowing them to run faster. This required refactoring the vector comparison logic, which in turn required changing OP_ElseNotEq into OP_ElseEq. (check-in: 380b4605 user: drh tags: compare-opcode-opt)
14:40
Add the OP_ZeroOrNull opcode and use it to compute boolean values for scalar comparisons, rather than the SQLITE_STOREP2 parameter to the comparison opcode. (check-in: 93781b6f user: drh tags: compare-opcode-opt)
13:47
The comparison opcodes (ex: OP_Eq) now set the iCompare flag so that the result of comparison can be used by subsequent OP_Jump or OP_ElseNotEq opcodes. (check-in: bd00df8f user: drh tags: compare-opcode-opt)
2021-03-28
23:37
Alternative implementation of the comparison opcode speed-up of check-in [4a8805d9a66dc888] that should pass muster with UBSAN. (check-in: afb18f64 user: drh tags: trunk)
20:44
Document the "%token" directive for Lemon. This directive has been in place for a while, but was previously undocumented. (check-in: 36624d37 user: drh tags: trunk)
2021-03-27
20:45
Performance improvement in the comparison opcodes by rewriting an array lookup using pointer arithmetic. This makes gcc 5.4.0 builds with -Os both faster and smaller. Though I suspect that in newer compilers with better optimizers in will probably make no difference at all in the generated machine code. Later: Even though the new code is perfectly valid, and generates correct machine code that is both smaller and faster, UBSAN complains about it in OSSFuzz. So we will take it out. So here was have an example of OSSFuzz coercing a widely used application to become bigger and slower. (Leaf check-in: 4a8805d9 user: drh tags: gcc-opt)
16:21
For the sqlite3_bind_text16 TCL binding used for testing, ensure that there are at least 3 terminating zeros, so that there will always be a \u0000 character even if the original byte sequence is an odd number of bytes. (check-in: c23d092f user: drh tags: trunk)
2021-03-26
23:59
In the sqlite3_bind_text and sqlite3_bind_text16 TCL commands of the test suite, ensure that the string is zero-terminated if the size argument is negative. (check-in: f472fd64 user: drh tags: trunk)
2021-03-24
23:30
Remove old testcases() macros. Also remove surplus end-of-line whitespace. (check-in: 54b41915 user: drh tags: trunk)
19:44
Comment improvements to on the distinct-agg optimization. Show a line in the EQP output when using an ephemeral table to implement DISTINCT on an aggregate. (check-in: 037ca79e user: drh tags: trunk)
17:28
Improvements to distinct aggregates such that they can sometimes avoid using an ephermeral table to test for duplicates if the column that is distinct is part of an index. (check-in: ef4ac0dd user: drh tags: trunk)
17:04
Fix a harmless compiler warning. (check-in: 26b005a9 user: drh tags: trunk)
2021-03-23
22:15
Fix a problem with renaming a column when there is a quoted string immediately following the column name somewhere in the schema. (check-in: 4719fae6 user: dan tags: trunk)
21:02
Add an ALWAYS() on a branch that is always taken. (check-in: 0646d226 user: drh tags: trunk)