SQLite

Timeline
Login

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

262 check-ins using file src/os_unix.c version 2ea8d3ed49

2024-08-20
22:44
Fix a name resolution issue with CTEs. (Leaf check-in: 4fa8235dd5 user: drh tags: srcitem-opt)
22:05
Fix minor comment issues. (check-in: c1bbed19f4 user: drh tags: srcitem-opt)
20:01
Remove unreachable code. (check-in: 17699329aa user: drh tags: srcitem-opt)
19:09
Tighter checking of access constraints on union members in SrcItem. Improved invariant checking. (check-in: fd72d3400a user: drh tags: srcitem-opt)
17:41
Fix some stray SrcItem field name fixes. (check-in: bc5f5ce59e user: drh tags: srcitem-opt)
17:24
Fix a memory leak so that now all dev tests (including TH3) are passing. (check-in: 3995c45fff user: drh tags: srcitem-opt)
16:50
Memory issues fixes so that mdevtest now passes. (check-in: b249516f6a user: drh tags: srcitem-opt)
2024-08-19
22:48
Refactor the SrcItem object so that information about subqueries is stored in a separately allocated Subquery object. This reduces the memory requirements for SrcItem and makes the code run faster. It also provides an expansion path for subquery processing that does not burden simple queries. The current checking mostly works, but there are still issues that need to be tracked down and fixed. (check-in: 8ff5dda844 user: drh tags: srcitem-opt)
2024-08-18
14:46
Fix a problem with detail=none, content='' tables. (check-in: 4b8070816a user: dan tags: fts5-locale)
2024-08-17
23:23
Give unique names to fields in the SrcItem object, to facilitate analysis of how those fields are used using "grep". (check-in: 9f5aeef3cb user: drh tags: srcitem-opt)
19:46
Reduce the size of the SrcItem object by combining fields into a union. (check-in: a4c59ac3c6 user: drh tags: srcitem-opt)
19:40
Fix a broken assert() in fts5_storage.c. (check-in: 01116e3279 user: dan tags: fts5-locale)
19:11
Merge trunk changes into this branch. (check-in: 6a8ff9ba5e user: dan tags: fts5-locale)
19:07
Tests to improve coverage of fts5_expr.c. (check-in: f4b839e526 user: dan tags: fts5-locale)
17:22
Add tests to restore coverage of fts5_tokenizer.c. (check-in: 8f9257361b user: dan tags: fts5-locale)
16:17
Adjust Makefile.in so that it outputs a slightly better error message on an attempt to build something that requires TCL libraries when HAVE_TCL is false. (check-in: a4043cbeb8 user: drh tags: trunk)
15:52
Adjust the "configure" script so that it just disables the ability to run tests rather than erroring out if tclsh is unable to recommend a suitable tclConfig.sh. (check-in: 793ff83d09 user: drh tags: trunk)
14:59
Fix a typo in an "ifdef" that broke SQLITE_OMIT_ANALYZE builds. (check-in: c09da26cb6 user: dan tags: trunk)
2024-08-16
19:05
Add tests to restore coverage of fts5_config.c. (check-in: 9d971b31df user: dan tags: fts5-locale)
18:58
Merge the latest trunk enhancements into the wal2 branch. (check-in: a78208b597 user: drh tags: wal2)
18:51
If a subquery has an ORDER BY clause and that ordering is helpful in satisfying the ORDER BY or GROUP BY of the outer query without doing an extra sort, then omit or reduce the sort in the outer query. Call this the "order-by-subquery optimization". (check-in: 7a0cdc7edb user: drh tags: trunk)
17:54
Add tests to restore coverage of fts5_storage.c. (check-in: 38841881a0 user: dan tags: fts5-locale)
16:20
Add tests to restore coverage of fts5_main.c. (check-in: 681edd08ab user: dan tags: fts5-locale)
15:35
Ensure that memory allocations in ANALYZE are always 8-byte aligned in order to satisfy a new assert() added by [539e4f661767ef90]. (check-in: a1915cbdec user: drh tags: trunk)
11:26
Fix handling of COLLATE. Add test cases for the same. Code cleanup for improved understandability and maintainability. (Closed-Leaf check-in: 41a41c173a user: drh tags: order-by-subquery)
02:19
Bug fix in the subquery ORDER BY propagator. (check-in: 5a9a3b8af7 user: drh tags: order-by-subquery)
00:37
Improvements to the subquery ORDER BY decision algorithm. Fewer false-negatives. (check-in: b82421e3f5 user: drh tags: order-by-subquery)
2024-08-15
23:38
If a subquery is materialized due to an ORDER BY and that ordering is useful in helping to satisfy the ORDER BY or GROUP BY in the order query without doing an extra sort, then omit the extra sort. (check-in: 2fbb4dc232 user: drh tags: order-by-subquery)
20:33
Extra tests. (check-in: fb257540d3 user: dan tags: fts5-locale)
18:50
Further tests and fixes for this branch. (check-in: d27985245a user: dan tags: fts5-locale)
15:31
Improved help message for --disable-tcl on the configure script. (check-in: 96e6cfb211 user: drh tags: trunk)
15:23
Reinstate the --disable-tcl option on ./configure. Forum thread 845d4a57becc7f3c. (check-in: de927016aa user: drh tags: trunk)
2024-08-14
20:00
Doc typo correction reported in the forum. (check-in: 48900a867c user: stephan tags: trunk)
17:58
Improved documentation for the sha3() SQL functions in the shathree.c extension in ext/misc. (check-in: 0ce609103e user: drh tags: trunk)
15:04
Add a compile-time option that enables setting the encryption key. (Leaf check-in: dafc517415 user: drh tags: iotester)
14:50
incremental improvements to iotester. (check-in: 51f5d3d991 user: drh tags: iotester)
14:26
Fix an assert() in fts5 that might fail with an expression like "... NOT ''". (check-in: 317c91edfc user: dan tags: trunk)
14:12
More incremental improvements to the iotester program. (check-in: 30a383fc3d user: drh tags: iotester)
13:31
Further improvements to the new iotester program. (check-in: dd71dde547 user: drh tags: iotester)
2024-08-13
21:15
More tests for the new code on this branch. (check-in: 00792e807f user: dan tags: fts5-locale)
21:04
Add the sha3_agg() aggregate to the shathree extension. (check-in: c4d7f9996c user: drh tags: trunk)
20:16
Use the xDelete method of the VFS rather than direct interation with the filesystem. (check-in: 96df5aa656 user: drh tags: iotester)
19:30
Infrastructure for a new test program named "iotester" that strives to verify the operation of a VFS object. (check-in: b46d86c22b user: drh tags: iotester)
15:04
Add tests and fix minor issues with the code on this branch. (check-in: def5243a7b user: dan tags: fts5-locale)
2024-08-12
18:39
Add extra documentation comments to fts5_main.c. (check-in: 1a7a9bd3f6 user: dan tags: fts5-locale)
17:28
Fix problem with some fts5 aux function APIs with (locale=, detail=none/column) tables. (check-in: bf116dec6f user: dan tags: fts5-locale)
17:03
Fix further issues to do with fts5 locale support. (check-in: e626123580 user: dan tags: fts5-locale)
13:31
Merge current trunk into this branch. (check-in: 900a593ddf user: stephan tags: wasm-build-rework)
11:46
Update the porter tokenizer to use locales. (check-in: 3291ce3a33 user: dan tags: fts5-locale)
11:13
Update the auxiliary function API to include xTokenize_x2() instead of xSetLocale(). (check-in: f7d56a1f21 user: dan tags: fts5-locale)
09:49
Resolve parameters Bind $int_N and $test_T in fuzzcheck inputs. (check-in: 9c10664416 user: drh tags: trunk)
2024-08-10
20:24
Merge the latest trunk enhancements into main reuse-schema branch. (check-in: 31a71a79bf user: drh tags: reuse-schema)
20:03
Merge trunk changes into this branch. (check-in: b243007525 user: dan tags: fts5-locale)
19:57
Prevent the fts5 xPhraseNext() or xPhraseFirst() APIs from returning an out-of-range column number, even if the database is corrupt. (check-in: d4014c87ba user: dan tags: trunk)
19:18
Fix an uninitialized variable in fts5_tcl.c. (check-in: 924d3467ce user: dan tags: fts5-locale)
18:59
Update the fts5_tokenizer_v2 API so that the locale is passed as parameter to xTokenize(), instead of via a separate call to xSetLocale(). (check-in: 03e63ed24e user: dan tags: fts5-locale)
15:46
Revision to check-in [d9f726ade6b258f8] so that OOM and other unrelated failures are not overridden by a syntax error in the tokenizer spec. (check-in: 3778b2a9ca user: drh tags: trunk)
15:05
Fix harmless compiler warning related to the TCL8-to-TCL9 transition. This change in testing code only and is not relevante to the core SQLite. (check-in: c86ef65545 user: drh tags: trunk)
14:53
Fix behavior change in the offset() SQL function introduced by check-in [f0b671183f44d0ae]. (check-in: c2ac17f183 user: drh tags: trunk)
10:05
Enhancements to covering-index prediction. In particular, avoid the false-positive prediction described by forum post e60e4c295d22f8ce. Add early detection of over-prediction of covering-indexes so that sqlite3_prepare() will return an error rather than just generate bad bytecode. (check-in: f0b671183f user: drh tags: trunk)
09:56
Add an assert() to fix a harmless compiler warning in the recovery extension. (check-in: 2502339339 user: drh tags: trunk)
2024-08-09
22:48
Fix a few minor TCL9 compatibilities issues. (check-in: 69eed19914 user: drh tags: trunk)
20:59
Ensure tokenizers registered with xCreateTokenizer_v2() can be accessed using xFindTokenizer(), and that those registered with xCreateTokenizer() work with xFindTokenizer_v2(). (check-in: a3ef7d47b5 user: dan tags: fts5-locale)
18:53
Import the second ALTER TABLE fix from trunk. (Closed-Leaf check-in: 1de3e58836 user: drh tags: covering-index-patch)
18:42
Fix another instance where ALTER TABLE was returning SQLITE_INTERNAL instead of SQLITE_ERROR one malformed input. (check-in: b416756320 user: drh tags: trunk)
18:22
Merge the error code fix from trunk. (check-in: 81dfb8cd5d user: drh tags: covering-index-patch)
18:18
Fix the internal routine sqlite3ResolveExprListNames() so that it returns SQLITE_OK or SQLITE_ERROR instead of WRC_Continue or WRC_Abort. Without this fix, some times of obscure syntax errors end up returning SQLITE_INTERNAL rather than SQLITE_ERROR. (check-in: 9052187efd user: drh tags: trunk)
17:09
Do not attempt to use a covering index based purely on columns-used when doing an UPDATE or DELETE of a WITHOUT ROWID table. Raise an SQLITE_INTERNAL error if there is ever a situation where a table reference cannot be converted into an index reference when the query planner thinks that a covering index is appropriate. (check-in: fae39ae932 user: drh tags: covering-index-patch)
13:56
Add SQLITE_TESTCTRL_EDITSTMT for making rogue changes to the statement bytecode, to test the death-cursor error detection mechanism. (Closed-Leaf check-in: 58ffd5d97e user: drh tags: death-cursor)
12:35
Bind the new debug parameters in fuzzinvariants.c. (check-in: 7e1dc26305 user: drh tags: trunk)
12:19
Remove unused static var cBadGroup from ext/consio/console_io.c to resolve a compiler warning reported in the fossil forum. This is a build fix, not a functional change. (check-in: fa047c3ea7 user: stephan tags: trunk)
10:56
Fix some signed/unsigned compiler warnings on this branch. (check-in: 681d228023 user: dan tags: wal2)
02:10
Change the null-cursor in the previous check-in into a death-cursor. Any access of the cursor causes the prepared statement to return an SQLITE_INTERNAL error. We'll need to add a way to edit the bytecode using sqlite3_test_control() in order to test the death-cursor code path. (check-in: 8894b243ef user: drh tags: death-cursor)
01:38
If there is any question about whether or not the WHERE_IDX_ONLY flag in the query planner is correct, create a backup null-cursor for the table, so that we never try to run an OP_Column against an unopened cursor. (check-in: 7f1617f7bf user: drh tags: death-cursor)
2024-08-08
19:45
Do not allow the WHERE_IDX_ONLY query planner result in cases where a partial index is used on an UPDATE or a DELETE, since the code might still need to access the original table due to parameterized terms in the WHERE clause of the partial index. (Closed-Leaf check-in: 7058d93b09 user: drh tags: partial-index-terms-patch)
16:04
In the vdbe_addoptrace output, show OP_Column opcodes that fail to translate from table to index. This is an aid to testing and analysis only. No changes to production code. (Closed-Leaf check-in: 7f464793fc user: drh tags: extra-debug)
15:26
Ensure sqlite3expert.c unregisters any SQL user-functions it registers with the database handle before returning. (check-in: 123b154ce3 user: dan tags: trunk)
15:07
Add assert() statements and reorganize code slightly in fts3 and fts5 to make it easier to follow. (check-in: 797b0a13fd user: dan tags: trunk)
14:45
Do not let the number of terms on a VALUES clause be limited by SQLITE_LIMIT_COMPOUND_SELECT, even if the VALUES clause contains elements that appear to be variables due to the use of double-quoted string literals. Chromium issue 358174302. (check-in: 670beb133e user: drh tags: trunk)
12:14
Back out the --memory option to ".parameter init" in the CLI, as the capability is no longer needed for testing due to the new "$int_N" and "$text_T" automatic bindings, and the "init --memory" is hence just added complication. (check-in: 3b1b0c1419 user: drh tags: trunk)
12:08
In the CLI, recognize magic parameter names "$int_NNN" and "$text_TTT" and bind them with integer value NNN and text value TTT respectively. Intended for testing and debugging use only. (check-in: a929cdb00f user: drh tags: trunk)
10:51
Move a misplaced va_end, as reported in forum post 702c79e9da. (check-in: daa25fb35f user: stephan tags: trunk)
10:10
Add the --memory option to the ".parameter init" CLI command. When present, the --memory option causes the sqlite_parameters table to be created in a completely independent :memory: database. This can be done to avoid parameter binding queries from being affected by debug settings such as ".wheretrace", ".treetrace", "PRAGMA vdbe_addoptrace=on", and similar. (check-in: 4e69dce209 user: drh tags: trunk)
2024-08-07
21:20
Fix a broken assert in fts5_expr.c. (check-in: 08cc548840 user: dan tags: trunk)
15:17
Add a new assert() to help static analyzers understand that a pointer is never NULL. (check-in: 433f2b942e user: drh tags: trunk)
14:54
Fix a harmless compiler warning in an assert(). (check-in: 5e4c9a74b2 user: drh tags: trunk)
2024-08-06
23:09
Remove unused test cases from FTS5, as they interfere with "grep". (check-in: 048a71bae4 user: drh tags: trunk)
22:49
Improved robustness of parsing of tokenize= arguments in FTS5. Forum post 171bcc2bcd. (check-in: d9f726ade6 user: drh tags: trunk)
20:00
Improvements to ./configure that will hopefully break fewer builds. (check-in: 769e32a69b user: drh tags: trunk)
10:29
Change the AggInfoColumnReg() and AggInfoFuncReg() macros for compilers that cannot parse empty elements of a comma expression. Forum post 8fd21998dc. (check-in: 533a6251f1 user: drh tags: trunk)
2024-08-04
10:13
Restore legacy "tcl_install" makefile target, as an interim measure until I can figure out what is going on. (check-in: 931ad7d9e3 user: drh tags: trunk)
2024-08-03
23:00
Fix to the previous checkin: The colUsed parameter should have high-order bit set if any of the 64-th or greater columns of the virtual table is used. The lower 63 bits of colUsed always show the usage of the first 63 columns of the virtual table. (check-in: 90ac845775 user: drh tags: trunk)
21:45
Ensure that the sqlite3_index_info.colUsed mask always includes the PK fields of WITHOUT ROWID virtual tables. (check-in: ff4ac279b0 user: drh tags: trunk)
18:58
Fix a typo in [c327c0c0] preventing the shell tool from running ".dump" scripts that feature virtual tables. (check-in: 10e97abb87 user: dan tags: trunk)
18:45
Ensure the sqlite3_index_info.colUsed mask always includes the PK fields of WITHOUT ROWID vtabs in cases where they may be used. (Closed-Leaf check-in: c327c0c02c user: dan tags: vtab-pk-colUsed-fix)
15:55
Add the --status option to the test runs using testrunner.tcl. Only works on Unix platforms. The "exec" command appears to interfere with VT100 escape codes on windows. (check-in: 94015cda4c user: drh tags: trunk)
2024-08-02
21:06
Change things so that locale=1 is required to write fts5_locale() values to an fts5 table, and so that blobs may not be stored in indexed (i.e. not UNINDEXED) columns of these tables. (check-in: c98ccc1216 user: dan tags: fts5-locale)
18:20
Make sure the input buffer is big enough for an memcpy() when doing the restore autodetection in the shell. (check-in: 1637d29d51 user: drh tags: trunk)
17:36
Add the "-d SECS" option to the "status" command of testrunner.tcl (check-in: 2151ea3163 user: drh tags: trunk)
15:28
New MSVC makefile targets: tclextension, tclextension-install, tclextension-uninstall, and tclextension-list. (check-in: c38734f575 user: drh tags: trunk)
13:56
Fix typo in a progress message in the builttclext.tcl script. (check-in: 5e7c946456 user: drh tags: trunk)
11:32
Fix problems in the configure/Makefile system caused by recent enhancements and report by forum post 242ebd0c81. (check-in: a59319fe4a user: drh tags: trunk)
00:59
New configuration option: --with-tclsh=FILE. New makefile targets: tclextension, tclextension-install, tclextension-uninstall, tclextension-list. (check-in: 888284d1d4 user: drh tags: trunk)
00:56
Previous Makefile.in change broke the tclextension-install target. (Closed-Leaf check-in: 7748367c78 user: drh tags: autoconf-revamp)
00:51
Continuing refinements of the tclextension-install makefile target. (check-in: 871c20a848 user: drh tags: autoconf-revamp)
00:19
Extra robustness for the SQLite Tcl Extension builder, so that it works on Debian Linux. (check-in: 2f0738daaf user: drh tags: autoconf-revamp)
2024-08-01
23:30
Simplification the ./configure script. Carry Makefile CFLAGS and OPTS through into builttclext.tcl. Fix a bug in tclsqlite.c introduced by the previous check-in. (check-in: 72a80aa0ab user: drh tags: autoconf-revamp)
23:00
Add the tclextension-list makefile target. The the makefile running on Mac. (check-in: 2f667cc8e5 user: drh tags: autoconf-revamp)
20:26
New makefile targets: tclextension-install and tclextension-uninstall. Seem to work on Linux. (check-in: 534f8344ab user: drh tags: autoconf-revamp)
20:18
Work on a TCL script that will compile and install the TCL extension. Works on Linux only, so far. This is an incremental check-in. (check-in: 58babd2aa4 user: drh tags: autoconf-revamp)
18:10
Clean up and restructure the TCL configuration sections in autoconf. The new --with-tclsh=FILE option lets you select the specific tclsh that you want to run. (check-in: 8fafc679d9 user: drh tags: autoconf-revamp)
17:15
Clarify the role of Fts5Storage.pSavedRow in the new feature on this branch. (check-in: e8a61d5c48 user: dan tags: fts5-locale)
14:43
Include a test case summary in the output of "errors" in testrunner.tcl. (check-in: 173df1478e user: drh tags: trunk)
14:16
Add the "errors" command to testrunner.tcl. (check-in: 03b7f99229 user: drh tags: trunk)
01:06
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: ff9fdd07d2 user: drh tags: reuse-schema)
00:38
Merge the latest trunk enhancements into the wal2 branch. (check-in: eac582056f user: drh tags: wal2)
2024-07-31
23:49
Merge the latest trunk enhancements into the lateral-join branch. (check-in: ac6ae84626 user: drh tags: lateral-join)
23:46
Merge all the latest trunk enhancements into the exists-to-join branch. (Leaf check-in: 9084a4c872 user: drh tags: exists-to-join)
22:36
Fix the tclsqlite.c TCL interface module so that it works with both Tcl8 and Tcl9. Make changes across the TCL-based test harness to enable SQLite to be tested with either Tcl8 or Tcl9. Get the --with-tcl= argument on the configure script working. Testing changes only - no changes to the SQLite core. I believe the previous merge attempt didn't work because of errors in the merge itself, not because of faults in the code. Trying again... (check-in: ea9d88f9ca user: drh tags: trunk)
22:26
testrunner.db should be in WAL mode for improved concurrency while running "watch sqlite3 test/testrunner.tcl status". (Leaf check-in: f23ad09798 user: drh tags: tcl9)
22:25
Make the #include section of tclsqlite.c the same as tclsqlite.h. (check-in: 2afadbeb12 user: drh tags: tcl9)
22:17
Fix typo in testrunner.tcl for the "status" command that was causing it to fail if any errors were seen. (check-in: 8327c5ed53 user: drh tags: tcl9)
21:59
Use `<tcl.h>` instead of `"tcl.h"` to include the TCL interface. (check-in: 4e32d4aed7 user: drh tags: tcl9)
21:46
Changed: Move this back onto the branch. It isn't ready for trunk yet. Fix the tclsqlite.c TCL interface module so that it works with both Tcl8 and Tcl9. Make changes across the TCL-based test harness to enable SQLite to be tested with either Tcl8 or Tcl9. Get the --with-tcl= argument on the configure script working. Testing changes only - no changes to the SQLite core. (check-in: 2a04b1bea1 user: drh tags: tcl9)
20:49
Fix various problems with the code on this branch. (check-in: 8bd4ae7e95 user: dan tags: fts5-locale)
19:57
More tweaks to testfixture-implemented TCL commands to make them safe for Tcl9. (check-in: 67897ca97d user: drh tags: tcl9)
19:56
Under Tcl9, the %x format letter truncates to 32-bits. Must use %llx in order to get a 64-bit rendering. (check-in: a3044e0ae6 user: drh tags: tcl9)
17:15
Fixes to testfixture routines needed to test snapshots. (check-in: 66f61c3b35 user: drh tags: tcl9)
16:37
Fix a typo in testrunner_data.tcl that prevented --with-tcl specifications from being carried through into sub-builds. Adjust test cases to account for new floating-point differences discovered when --with-tcl was fixed. (check-in: b8f8135191 user: drh tags: tcl9)
15:46
Add missing documentation for new features to fts5.h. (check-in: fa0da3b28e user: dan tags: fts5-locale)
15:04
Remove obsolete testfixture TCL commands formerly required by Windows but now handled by Tcl itself. Update tests case accordingly. (check-in: 4f065fb638 user: drh tags: tcl9)
13:00
Fix problems uncovered while testing Tcl9 on Windows. (check-in: d5523c77fd user: drh tags: tcl9)
12:19
Minor adjustments to get Tcl9-based testing working on Macs. (check-in: 066c8672ee user: drh tags: tcl9)
11:42
Adjust the configure script so that the --with-tcl option is used to find the appropriate tclsh. (check-in: 6fb9e37c75 user: drh tags: tcl9)
11:12
Patch to testrunner.tcl so that it works with Tcl9's pedantic UTF-8 checking. (check-in: 8d4a23d32d user: drh tags: tcl9)
10:59
Fixes to tclsqlite.c to facilitate TEA installs. (check-in: 7157c3c910 user: drh tags: tcl9)
10:52
Merge latest changes from trunk into this branch. (check-in: ff64939ec8 user: dan tags: fts5-locale)
02:01
Fix a problem with strictly conforming UTF8 in shell1.test. (check-in: 8ee187f98d user: drh tags: tcl9)
01:53
Adjust a few tests that don't work even with the new floating point comparison routine. (check-in: 895125a489 user: drh tags: tcl9)
01:45
Implement a new comparison routine to compare text renderings of floating point values. This gets the number of failures down to just 5. But the routine needs work, and probably refactoring. (check-in: 71f2ee5db0 user: drh tags: tcl9)
2024-07-30
20:39
Fix cases surrounding blob values being stored in locale=1 fts5 tables. (check-in: ae435aff17 user: dan tags: fts5-locale)
20:39
All tests in "make test" now pass with Tcl9, except for about 198 cases where the error involves small differences in the rendering to floating point values. (check-in: 8e27f5326c user: drh tags: tcl9)
18:49
More adjustments to the incrblob channel: Apparently you need to wait until the close2Proc is called with a flag of 0 before actually shutting down the channel. (check-in: fa549a5507 user: drh tags: tcl9)
18:42
Adjustments to test cases for session so that they work with Tcl9. (check-in: d417415b96 user: drh tags: tcl9)
18:15
Tcl_ChannelType implementations for Tcl9 apparently require that wideSeekProc be implemented. Also adjust minor test script issues for fts5 tests so that they can be run sequentially and so that they do not depend on the specific floating point output formats generated by Tcl. (check-in: 19fda979c5 user: drh tags: tcl9)
17:09
Get rid of "-encoding binary" across all test cases, as that is no longer supported in Tcl9. Use "-translation binary" instead. (check-in: e0d9670dd9 user: drh tags: tcl9)
16:59
Use the SQLite format() function to format floating point values for test results, to avoid inconsistences in TCL versions. (check-in: 6a63c47219 user: drh tags: tcl9)
16:51
Fix the incrblob channel so that partial close works with Tcl9. (check-in: d54ec2de78 user: drh tags: tcl9)
15:55
Update the highlight() and snippet() functions to use locales when available. (check-in: 569ae56a67 user: dan tags: fts5-locale)
15:49
First attempt at getting the build to work with Tcl 9.0. (check-in: 6e5bb48a74 user: drh tags: tcl9)
2024-07-29
20:31
Fix xColumnText() and xColumnSize() APIs. Add xColumnLocale() and xTokenizeSetLocale(). (check-in: 14006711d8 user: dan tags: fts5-locale)
17:59
The idea here was to simply an expression like "(a=5) IS TRUE" into "(a=5)=TRUE". But that does not work, since the original form is FALSE if y is NULL whereas the second form is NULL. Patch save for historical reference only. (Closed-Leaf check-in: d029e94399 user: drh tags: broken-istrue-opt)
15:00
Fix a couple of asan problems on this branch. (check-in: 4e3e529313 user: dan tags: fts5-locale)
2024-07-27
20:28
Fix documentation typo. Forum post 993cb82402 (check-in: 86de4e755e user: drh tags: trunk)
19:46
Ensure that an fts5 UPDATE does not strip the locale from columns that it does not write to. (check-in: 69205264de user: dan tags: fts5-locale)
2024-07-26
20:50
Add the fts5_locale() function, and begin adding the related functionality to fts5. (check-in: 8839ef7cfb user: dan tags: fts5-locale)
2024-07-25
16:28
Fix a non-bare-bones-mode test case broken by the previous checkin. (check-in: 3be729493b user: stephan tags: wasm-build-rework)
16:21
Strip progress handlers and window functions from the wasm bare-bones (formerly 'minimal') JS bits, noting that we can't yet use OMIT_WINDOWFUNC (for the C parts) without a custom amalgamation. Currently at 604kb. (check-in: ec02e9237e user: stephan tags: wasm-build-rework)
14:00
More work on the minimal-mode wasm build (now 603kb uncompressed). Remove the hard-coded feature-enable flags from sqlite3-wasm.c and rely on the build to provide them. Some wasm build cleanup, but attempts to completely overhaul it have been thwarted by my inability to make script-generated makefile code more legible/maintainable than the current eval spaghetti. (check-in: b029c40679 user: stephan tags: wasm-build-rework)
10:50
Start work on an overhaul of the wasm build process, with an eye towards less over-engineering. (check-in: ed746b3dd3 user: stephan tags: wasm-build-rework)
2024-07-24
23:58
wasm minimal build: strip authorizers and JSON support (saves approx 35kb). Strip vtab support from the JS bits but cannot yet strip it from the C bits because that requires a custom-configured sqlite3.c. (check-in: eb64d10655 user: stephan tags: trunk)
22:07
Restructuring of the wasm build to support an experimental 'minimal' build mode which elides all non-core APIs. (check-in: ee2191f730 user: stephan tags: trunk)
13:53
Add the percentile extension to the CLI by default. (check-in: bcc3184696 user: drh tags: trunk)
13:41
Add the percentile_cont(Y,P) variant of percentile() to the percentile extension. (check-in: 095c22e622 user: drh tags: trunk)
12:12
JNI SQLTester: fix --new command to force-replace db if it already exists. Add no-op impls for --stmt-cache and --jsonglob commands. (check-in: f1185dc349 user: stephan tags: trunk)
2024-07-23
16:23
Enhance the percentile() extension function to include the median() variant. Update the implementation to implement its own sorting algorithm, so that the extension no longer depends on qsort(). (check-in: 6e31b1bab1 user: drh tags: trunk)
2024-07-22
21:46
Doc typo fix. No code changes. (check-in: 8d558ad25b user: stephan tags: trunk)
21:21
Move a block of JS code which was inadvertently (and harmlessly) moved in the previous checkin. Clarify the semantics of an internal-use-only API. Add another WAL-related JS test. (check-in: 6cd9f55a97 user: stephan tags: trunk)
20:58
OPFS VFSes: remove the on-open() pragma calls, as those (A) already reflected the build-time default settings and (B) they made it illegal to run locking_mode=exclusive, which is a requirement for WAL mode without shared memory. Modify part of the test suite to demonstrate that the SAHPool VFS can run in WAL mode so long as locking_mode=exclusive is used. (check-in: 19cd8e2b05 user: stephan tags: trunk)
19:52
wasm build: resolve a circular dep and do some minor tidying up. (check-in: 9df3f1f24c user: stephan tags: trunk)
19:31
Fix undesirable C++-style comments in the parser. (check-in: e330596aed user: drh tags: lateral-join)
17:09
Do not abort the resolver early if a LIMIT expression does not resolve, as that can result in a memory leak. (check-in: ac6dc8c605 user: drh tags: lateral-join)
16:59
Only allow variables in LIMIT clauses if the LIMIT is within a LATERAL subquery and the variable resolves to another FROM clause term to the left of the subquery. We cannot allow variables from outer contexts because the LIMIT value is computed before the cursors in the outer context have been initialized. (check-in: 0a2531c3a3 user: drh tags: lateral-join)
16:15
Allow LIMIT expressions to appear in any outer context. (check-in: c9d3427de5 user: drh tags: lateral-join)
13:55
Do not allow LIMIT and OFFSET to be expressions except for in a LATERAL. (check-in: 1034782137 user: drh tags: lateral-join)
00:46
Allow LIMIT and OFFSET to contain variables from prior terms of the FROM clause in a LATERAL subquery. Forum post dfe2cd37ca3a9a80 (check-in: 4f0515138a user: drh tags: lateral-join)
2024-07-21
23:36
Merge debugging output fixes from trunk into the lateral-join branch. (check-in: 9182e99952 user: drh tags: lateral-join)
23:34
Fixes to TreeView debugging output for VALUES clauses. (check-in: b6aed8bcb0 user: drh tags: trunk)
23:10
Improved debugging output when using PRAGMA vdbe_addoptrace: Show the range of opcodes being checked for Column-to-Copy conversion. (check-in: 2c122026db user: drh tags: trunk)
21:37
Fix to the case of a LATERAL subquery that references a prior table that uses a covering index. Forum post fc29fa4f14. (check-in: 6d863172dc user: drh tags: lateral-join)
18:03
Assert added to ensure that LATERAL subqueries are materialized instead of implemented as a co-routine. (check-in: 6c14b94fb6 user: drh tags: lateral-join)
10:35
Fix LATERAL subqueries so that they are able to reference other subqueries to their left that are implemented as co-routines. See Forum post dfe2cd37ca3a9a80. (check-in: 31e175fcd0 user: drh tags: lateral-join)
2024-07-20
17:38
Fix rule (1c-ii) of the fromClauseTermCanBeCoroutine() decision so that it work with LATERAL. Add testcase() macros to verify bitmask conditions are all checked. (check-in: 23d83a41ea user: drh tags: lateral-join)
16:11
Fix an oversized allocation in sqlite3ExprCodeIN(). (check-in: d7be326a80 user: dan tags: trunk)
14:06
Add testcase() macros to bitmap tests in the new code. (check-in: 874bc7bc25 user: drh tags: lateral-join)
09:36
Remove an unnecessary error offset assignment. (check-in: 4ee74b7224 user: drh tags: lateral-join)
08:31
Optimizations and improved comments. (check-in: 84b80233e7 user: drh tags: lateral-join)
03:57
Do not do an early abort if a lateral subquery is an empty set. (check-in: 9e50d338eb user: drh tags: lateral-join)
03:19
"LATERAL" may not be a keyword, as that would cause problems for legacy databases that have tables named "lateral". It has to be parsed as an identifier. (check-in: 8217bddaf8 user: drh tags: lateral-join)
01:19
Experimental implementation of LATERAL JOIN. (check-in: 3c045a96bc user: drh tags: lateral-join)
2024-07-18
19:17
Minor typo fixes in test-script-interpreter.md. (check-in: bf54b26092 user: stephan tags: trunk)
18:44
Fix a problem in FTS5 where it reports the wrong error code following an OOM. (check-in: 0c1cc4071e user: drh tags: trunk)
2024-07-17
18:38
Fixes for platforms with 32-bit pointers that require 64-bit values to be aligned. (check-in: 539e4f6617 user: dan tags: trunk)
16:27
Add extra assert() statements to the fixes on this branch. (Closed-Leaf check-in: 81b6360050 user: dan tags: alignment-fixes)
2024-07-15
10:11
Slight doc touchup for [af41a1e6fc8b36e9bf65] based on feedback. No code changes. (check-in: be7b1fc0c5 user: stephan tags: trunk)
2024-07-13
18:16
Improve one of the JS test cases. (check-in: 3767d8bef2 user: stephan tags: trunk)
16:53
Fixes for platforms with 32-bit pointers that require 64-bit values to be aligned. (check-in: 2212d7488e user: dan tags: alignment-fixes)
15:42
Add JS binding for sqlite3_column_decltype(). (check-in: 5252d292b1 user: stephan tags: trunk)
15:21
JS doc touchups. No code changes. (check-in: a8e240495f user: stephan tags: trunk)
14:07
Add JS bindings for sqlite3_stmt_busy() and sqlite3_stmt_explain(). (check-in: b772edfb44 user: stephan tags: trunk)
13:22
Add missing sqlite3_bind_parameter_name() binding to JS. (check-in: 6dcfcc7e1c user: stephan tags: trunk)
12:50
Add JS bindings and tests for sqlite3_interrupted(), is_interrupted(), and db_readonly(). (check-in: 5589ba5651 user: stephan tags: trunk)
11:47
Remove a stray/harmless duplicate wasm function export entry. (check-in: 5402e4fb1c user: stephan tags: trunk)
01:40
Add several convenience links to the OPFS VFS concurrency tester app for launching it with various combinations of options. (check-in: 397d6a18f1 user: stephan tags: trunk)
01:02
Add an option to the opfs-sahpool VFS which tells it to ignore a previous init failure and retry, as an opt-in workaround for a browser quirk which occasionally denies OPFS access on the first attempt and permits it on subsequent attempts. This resolves issue #79 of the npm distribution. (check-in: fbf3948a4b user: stephan tags: trunk)
00:55
Rename the new opfs-sahpool init-retry flag to the suitably descriptive, and suitably onerous, forceReinitIfPreviouslyFailed, based on feedback. (Closed-Leaf check-in: c9f0a60902 user: stephan tags: sahpool-reinit-fallback)
2024-07-12
14:41
sqldiff: fail if the 2nd db argument cannot be opened read-only. (check-in: e8b33525fc user: stephan tags: trunk)
13:49
Work around a difficult-to-trigger Atomics API message-passing quirk in the OPFS VFS which appears in rare instances in some browsers when running high I/O loads. This resolves issue #12 of the npm distribution. (check-in: af41a1e6fc user: stephan tags: trunk)
13:45
sqldiff: if the first db argument does not exist, fail instead of creating an empty db. Resolving that for the second argument is trickier, as discussed in forum post ec2d429e32. (check-in: 0547ccf776 user: stephan tags: trunk)
2024-07-11
19:50
Reformulate the forceReinitIfFailed handling based on feedback, to correct the type-checking and resolve a potential race condition. (check-in: c4f4683091 user: stephan tags: sahpool-reinit-fallback)
14:07
Remove the timing and counter metrics from the OPFS VFS, as they're long-since unused so are just wasted CPU cycles. (Closed-Leaf check-in: 67c035c34f user: stephan tags: opfs-errant-op)
12:57
Add some docs explaining [64f4f3cd878b1a72]. (check-in: 4fdf9a322f user: stephan tags: opfs-errant-op)
12:36
Proposed workaround for the "errant op" case in the OPFS VFS, as discussed in issue #12 of the npm distribution. (check-in: 64f4f3cd87 user: stephan tags: opfs-errant-op)
11:04
Add an option to force the opfs-sahpool VFS init to re-run after it fails on a first attempt, as a workaround for flaky environments where initial access to OPFS sync access handles is rejected but then permitted on a second attempt. Reported and discussed in issue #79 of the npm distribution. (check-in: 5286e0f654 user: stephan tags: sahpool-reinit-fallback)
2024-07-10
08:33
Rename some JS files for consistency. This affects only the build process, not the deliverables. (check-in: bcef3f71a2 user: stephan tags: trunk)
2024-07-08
17:39
Fix a use-after-free that could occur following an OOM introduced by [d8cedbe0]. (check-in: 4fabfacfcf user: dan tags: trunk)
16:01
Improve the error message returned when fts5 finds a row is missing from its content table. (check-in: 9b1afd4acb user: dan tags: trunk)
2024-07-05
13:55
Use a mini Bloom filter to help reduce the number of pointless searches for prior SubrtnSig objects when generating code for IN operators with subqueries as their right operand. (check-in: d8cedbe055 user: drh tags: trunk)
09:56
Improved reuse of subqueries associated with IN operators, especially when the IN operator is duplicated due to predicate push-down. (check-in: c9a3498113 user: drh tags: trunk)
01:05
Small performance optimizations. (Closed-Leaf check-in: 99fd34b58a user: drh tags: reuse-subqueries)
2024-07-04
18:56
Add test cases to in7.test. (check-in: 07817efc10 user: dan tags: reuse-subqueries)
18:26
Disable the reuse of IN-clause subqueries if the subquery is an explicit "SELECT ALL". The ALL keyword is almost never used in actual practice (most developers don't even know it can be used) so this should not interfere with the optimization, but it does give us a convenient way to turn it off for testing purposes. (check-in: a81299be2c user: drh tags: reuse-subqueries)
17:49
Update EXPLAIN output to include P4_SUBRTNSIG. (check-in: 61e56923c8 user: dan tags: reuse-subqueries)
16:57
Be more aggressive about reusing subqueries that appear on the RHS of IN operators that have been replicated due to the predicate push-down optimization. (check-in: 2accf32b6e user: drh tags: reuse-subqueries)
11:15
Add comment using the name "predicate push-down optimization" to what we have also called "WHERE-clause push down". No changes to code. (check-in: be77fe701c user: drh tags: trunk)
09:45
For shell completion, use pragma_table_xinfo instead of pragma_table_info, so that generated columns are handled, as reported in forum post f0735e05d8d7e857. (check-in: a204ffc06b user: stephan tags: trunk)
2024-07-03
20:19
When constructing an ephermeral table to use as the right-hand side of an IN operator, also construct a Bloom filter to speed membership testing. (check-in: baa83b460c user: drh tags: trunk)
20:10
Show the creation of IN-operator Bloom filters in the EXPLAIN QUERY PLAN output. (Closed-Leaf check-in: c10a1b99d4 user: drh tags: in-bloom)
18:56
Add a new sqlite3FaultSim() call to OP_NotFound to use for testing purposes. (check-in: 84fd275bfd user: drh tags: in-bloom)
17:51
Use a Bloom filter to improve performance of IN operators when the RHS of the IN operator is a subquery. (check-in: 1933496539 user: drh tags: in-bloom)
2024-07-02
13:54
Add assert() statements to FTS5 to hush-up warnings from scan-build. (check-in: 77a76654e6 user: drh tags: trunk)
12:16
Rework the deliberate_fall_through macro along the lines suggested by forum post 7ec11023dd so that it works better with LLVM, while preserving compatibility with MSVC and older GCCs. (check-in: fc248a4a0a user: drh tags: trunk)
11:30
In the CLI, if the XDG_CONFIG_HOME environment variable is not set, then also search in ~/.config/sqlite3/sqliterc for the initialization file. See forum thread 5cc6d059e9e092ed. (check-in: 33841c9c3c user: drh tags: trunk)
2024-06-29
15:57
Fix a typo in a comment in a test case. No changes to code. (check-in: f501166de4 user: drh tags: trunk)
12:22
Add a NEVER() around a branch in sqlite3ExprAffinity() that is designed to prevent an infinite loop, but which can now never be reached due to recent changes. (check-in: da0b794852 user: drh tags: trunk)
2024-06-28
18:21
Update fts5 comment/docs to include the order matches are visited in by the xPhraseFirst/xPhraseNext API. (check-in: e41930ef5b user: dan tags: trunk)
18:07
Additional steps to make sure calls to sqlite3ExprToRegister() are sane. (check-in: 1c42d7176b user: drh tags: trunk)
17:14
Do not convert an expression node that is already TK_REGISTER into a new TK_REGISTER. This is a follow-up to [663f5dd32d9db832] that fixes a bug discovered by dbsqlfuzz. (check-in: fcb669cfaa user: drh tags: trunk)
2024-06-27
15:03
Merge all the latest trunk enhancements into the recursive-cte-orderby-fix branch. (Leaf check-in: 5f159e5425 user: drh tags: recursive-cte-orderby-fix)
14:54
Merge the latest trunk enhancements into the exists-to-join branch. (check-in: fc643f8a12 user: drh tags: exists-to-join)
2024-06-24
18:06
Fix an incorrect tcl comment that appeared in many fts5 test files. (check-in: d07085e203 user: dan tags: trunk)
16:08
Fix some problems with calling fts5 api functions from within non-full-text queries. (check-in: 56d265f956 user: dan tags: trunk)
14:53
Enhance the output of ".scanstats vm" to include the absolute number of ticks for each VM instruction, instead of just the percentage of the total. (check-in: 1535828335 user: dan tags: trunk)
2024-06-19
18:54
Revert Lemon so that it only shows -D options that are actually used. Though the change to display the options in sorted order is retained. (check-in: e54eb217c9 user: drh tags: trunk)
18:46
In lemon, show all the -D options in the generated header, even if none of them are used. (check-in: 2aa009c38b user: drh tags: trunk)
16:38
Enhance lemon.c so that when it shows the compile-time options in the header comment of the generated output file, it shows all options, even those not used, and it shows them in sorted order. (check-in: eed76e6698 user: drh tags: trunk)
11:08
Remove some extraneous flags from the fiddle-debug build. Internal doc tweaks in the main wasm makefile. (check-in: afae2c9e6f user: stephan tags: trunk)
2024-06-18
22:03
Minor cleanups in the new fiddle build code. (check-in: d356aebdd4 user: stephan tags: trunk)
21:50
Rework the fiddle build to build separate debug and non-debug bundles, with the latter in ./fiddle-debug. (check-in: a9f1758f1c user: stephan tags: trunk)
20:47
Remove an extraneous CSS file and import its CSS into the one HTML file which uses it. (check-in: 66085ca423 user: stephan tags: trunk)
20:40
Add fiddle-debug make target to ext/wasm. It builds the same target files as a non-debug build, as opposed to a new copy, but adds various debug-related flags. (check-in: 993143c5c3 user: stephan tags: trunk)
19:36
Add instructions for how to do debugging builds of the CLI on Windows. (check-in: abe81c1861 user: drh tags: trunk)
12:19
Update sqlite3_analyzer to report on the number of WITHOUT ROWID tables and to provide separate aggregate statistics for WITHOUT and WITH ROWID tables. (check-in: 4152894433 user: drh tags: trunk)
09:58
Internal doc typo fixes, as reported in the forum. No code changes. (check-in: ea16b286b4 user: stephan tags: trunk)
2024-06-16
17:06
Remove some dead JS code. (check-in: 754e6e059b user: stephan tags: trunk)
2024-06-14
23:13
Do not omit the ORDER BY clause from a recursive CTE just because the query that contains the CTE also contains an ORDER BY clause. Plus other changes imported from the recursive-cte-orderby-fix branch. (check-in: 13242289c5 user: drh tags: trunk)
2024-06-12
22:15
Remove some dead JS code. Improve the exception-to-C-result-code conversion to account for the case of a file disappearing while the OPFS VFS is waiting to acquire a lock on it. (check-in: 5bd9fd5f61 user: stephan tags: trunk)
21:01
Remove some JS docs which no longer apply. No code changes. (check-in: f253cab335 user: stephan tags: trunk)
15:50
Fix a problem with rolling back hot journals using the unix-dotfile VFS. (check-in: a44703135e user: dan tags: trunk)
15:29
Omit tests that depend on sqlite3_release_memory() in lock5.test when running the memsubsys1 or memsubsys2 permutations. (Closed-Leaf check-in: 9d63033bf4 user: dan tags: unix-dotfile-fix)
11:41
Do not attempt to run hot journal rollback tests in lock5.test with the "inmemory_journal" permutation, which cannot generate hot journals. (check-in: 1e6fa95b88 user: dan tags: unix-dotfile-fix)
2024-06-11
20:28
Handle the case where unix-dotfile is used with URI parameter nolock=1. (check-in: 3925a5b904 user: dan tags: unix-dotfile-fix)