Commit Graph

  • 63338e3ba8 Simplifications to sqlite3AtoF(), resulting in slightly faster performance and slightly smaller size. drh 2026-02-16 23:52:51 +00:00
  • 7e21205a93 The sqlite3Atoi64() function runs a little faster here, but probably not enough to justify the extra complication. sqlite3Atoi64-opt drh 2026-02-16 20:41:13 +00:00
  • 438787c3b1 Add logical (range-based) conflict detection to BEGIN CONCURRENT transactions executed within a single process. bedrock-lcd dan 2026-02-16 20:20:02 +00:00
  • 6315919ba8 Fix a bad assert() in the previous check-in. numeric-conversion-perf drh 2026-02-16 17:22:17 +00:00
  • 5c977eaa0a Refactor the sqlite3AtoF() routine so that it requires a zero-terminated UTF-8 input. When the need arises to convert UTF16 or non-terminated strings, wrapper functions are used. Together, this makes the code slightly smaller and faster. drh 2026-02-16 16:56:59 +00:00
  • 1105c33900 Fix another case where SQLite might fail to identify an ON clause on a RIGHT or FULL join that refers to FROM-clause elements to its right. dan 2026-02-16 16:56:25 +00:00
  • 7b93f1a387 Fix a problem with identifying ON clauses attached to RIGHT or FULL JOINs (which is an error) if the join appeared in a flattened sub-query. dan 2026-02-16 11:59:14 +00:00
  • c47bc0ffca Performance improvement in floating-point conversions. drh 2026-02-16 11:14:59 +00:00
  • adbb756155 Avoid the big power-of-ten lookup table. fp-perf drh 2026-02-15 18:41:29 +00:00
  • 658908a32f Fix to [9d3a12d3926d55ef] to force the static const string literal to have two-byte alignment. Necessary to get that patch to work in Mac-ARM. drh 2026-02-14 22:04:53 +00:00
  • b3b2695d4b Add the "LLU" suffix to 64-bit integer constants, for portability to older compilers. drh 2026-02-14 21:47:08 +00:00
  • 775e4b7073 Fix to the generic version of the 128-bit multiple subroutine. drh 2026-02-14 21:31:31 +00:00
  • 4bee65dcb9 Another minor performance refinement. drh 2026-02-14 20:48:58 +00:00
  • 4d0611c1eb Minor corrections. drh 2026-02-14 19:42:55 +00:00
  • 10fb1e3077 Improved comment. No code changes. drh 2026-02-14 19:36:41 +00:00
  • db84cdb747 Use a precomputed table of 696 powers of 10 to improve the performance of floating-point to decimal and decimal to floating-point conversions. drh 2026-02-14 17:58:46 +00:00
  • 990d861038 Add new assert() statements to demonstrate that the complaint given in [forum:/forumpost/56ad8b632c|forum post 56ad8b632c] is not a real bug. drh 2026-02-13 16:02:27 +00:00
  • 23e57bc7cd Use only a single bit, rather than a whole byte, to store infrequently accessed boolean values in the Parse object. drh 2026-02-13 12:20:57 +00:00
  • 7d49eb1dff Add a "const" to avoid a harmless false-positive compiler warning. drh 2026-02-13 11:40:28 +00:00
  • df59c5da78 Respect "const" strings in the sqlite3ShadowTableName() function. Patch moved to trunk, where it was intended. drh 2026-02-12 18:15:26 +00:00
  • 643fb6cf4b Minor performance enhancement to floating-point rendering. drh 2026-02-11 19:42:46 +00:00
  • c652e34317 Correction to date/time computations associated with the timestamp-vfs. drh 2026-02-10 19:33:11 +00:00
  • c94f97fac7 Minor tweaks to the star-query optimization in the query planner. drh 2026-02-10 18:28:41 +00:00
  • 1f9ae1f780 Immediately reset all pending prepared statements on any call to sqlite3_set_authorizer(), even if the authorizer is being disabled. drh 2026-02-09 19:58:04 +00:00
  • 612bee531f Do not allow table-function argument expressions on the RHS of an OUTER join to refer to FROM clause elements to their right. dan 2026-02-09 14:45:17 +00:00
  • de702aebb9 Fix a method name typo in test-only code which could hide the triggering error condition. stephan 2026-02-08 12:13:19 +00:00
  • e45418c5f5 JS doc touchups. stephan 2026-02-08 05:08:30 +00:00
  • a0857f321c Improved output from calls to sqlite3ShowSrcList() made from a symbolic debugger. drh 2026-02-07 13:41:05 +00:00
  • 450a90097f Do a better job of not generating unnecessary Bloom filters associated with IN operators. drh 2026-02-05 21:14:34 +00:00
  • e58c1a987c Fix harmless compiler warning when the CLI is compiled with SQLITE_OMIT_PROGRESS_CALLBACK. drh 2026-02-05 13:03:04 +00:00
  • d0c4a5853b Display scanstatus results in neat columns. drh 2026-02-04 20:51:27 +00:00
  • b55d6f3754 Improved output for ".scanstatus est" in the CLI. drh 2026-02-04 18:10:49 +00:00
  • c9ccd27045 Improved display of scan-status estimates. scanstatus-improvements drh 2026-02-04 17:52:50 +00:00
  • 5e842d0ece Render scan-status values with 3 or 4 significant digits only, for improved readability. drh 2026-02-04 13:35:32 +00:00
  • 3fab5d2a40 Fix scanstatus output in QRF so that it shows the total number of cycles on the "QUERY PLAN" line. drh 2026-02-04 11:51:20 +00:00
  • 761118497a Improve the query planner by reducing the estimated number of output rows for each stage of a join if there are LIKE, GLOB, REGEXP, or MATCH constraints on the table where the pattern string is a constant. The reduction in the output row estimate is proportional to the length of the pattern string. drh 2026-02-03 17:21:59 +00:00
  • e54142009c Minor change to test/dotcmd01.test so that it works with STAT4. drh 2026-02-03 17:07:28 +00:00
  • 1131eddbf9 Improved comments on this enhancement. No code changes. prune-by-like-glob drh 2026-02-03 16:29:14 +00:00
  • 3212ab33d4 Refactor the implementation of this enhancement to keep all the code inside the query planner, not leaking out into SQL function implementations. Expand the enhancement to cover MATCH and REGEXP operators and overloads of LIKE and GLOB. drh 2026-02-03 14:00:28 +00:00
  • 49c70b88bc When reducing the truth probability of a LIKE/GLOB constraint, only consider non-wildcard characters in the pattern. drh 2026-02-02 20:54:28 +00:00
  • 77c5456d7f Do not reduce the estimated truth probability of LIKE and GLOB operators by quite so much. Fix a single test case whose output changed. drh 2026-02-02 16:03:24 +00:00
  • 5b23d027cf Merge the latest trunk enhancements into the prune-by-like-glob branch. drh 2026-02-02 14:24:47 +00:00
  • 71848d362d Update session module test code to correctly use Tcl_Size instead of int. dan 2026-02-02 11:42:19 +00:00
  • 1ac0d9bbf9 Add the "--timeout SECONDS" option to the ".progress" command in the CLI. drh 2026-02-01 21:10:04 +00:00
  • 213262fa53 Enhance the ".timer" command in the CLI to accept the "once" argument, and so that it leaves its last real-time result in the $TIMER variable. Also fix a harmless warning from an earlier check-in. drh 2026-02-01 15:58:37 +00:00
  • 5c8cd31246 An experimental query-planner change that reduces the estimated number of output rows for FROM clause terms that are restricted by a LIKE or GLOB operator, based on the number of bytes in the pattern. The idea is that longer patterns will match fewer records and hence should reduce the estimated output count. The implementation is not workable as it stands now. This is just a crazy idea, saved for future reference. drh 2026-02-01 00:37:04 +00:00
  • 1d8eb1d9b6 Fix a missed optimization opportunity due to a typo in check-in [898bfa1afd8260ea]. Reported by [forum:/forumpost/2026-01-31T00:49:53z|forum post 2026-01-31T00:49:53z]. drh 2026-01-31 02:17:55 +00:00
  • 4fd4e8f066 Make CROSS JOIN a join reorder barrier again, as the SQLite documentation says it is. It mistakenly stopped being a join barrier with check-in [c1ea064948ba08c4]. drh 2026-01-30 17:10:22 +00:00
  • c79b1f7d6c Fix the new CLI so that the ".eqp" setting does not affect the output of other dot commands such as .schema or .tables. drh 2026-01-30 16:03:22 +00:00
  • 4b4df2ee1e Change the new escape-character mechanism for CSV import so that there are separate options for an escape character for quoted and unquoted fields of the CSV. drh 2026-01-30 13:11:20 +00:00
  • 1d1cd36428 Undo the previous check-in. In its place, add the --escape option to the ".import" command. drh 2026-01-30 12:27:13 +00:00
  • a5cc01681e Enhance the CSV import capability in the CLI so that it understands backslash-escaped double-quotes. drh 2026-01-30 12:15:25 +00:00
  • 561e28b75b kvvfs fix for [https://github.com/sqlite/sqlite-wasm/issues/146|npm ticket #146]: use of a test-mode-only symbol in non-test runs leads to a null deref in xFileControl(). stephan 2026-01-30 06:37:34 +00:00
  • bfb33d476b Capture sqlite3_rsync's remote-end result code so the local side can exit with non-0 if, e.g., the remote sqlite3_rsync binary is found but fails to start. [forum:43eb1cd1c3979817|Confirmation received] that it resolves the motivating problem report. stephan 2026-01-28 17:25:18 +00:00
  • fabd481c76 Improved (faster) bytecode for the merge algorithm. drh 2026-01-28 16:59:34 +00:00
  • 2c49785000 Add a comment to sqlite3Stat4Value() explaining that it read a few bytes past the end of the specified buffer. dan 2026-01-28 10:52:53 +00:00
  • 60229c2971 Avoid unsigned integer overflow when evaluating an array index in a JSON path expression. [forum:/forumpost/2026-01-27T14:18:49z|Forum post 2026-01-27T14:18:49z]. drh 2026-01-27 23:33:42 +00:00
  • 836231691e Improved byte-code coverage testing verification in the merge algorithm. drh 2026-01-27 22:27:14 +00:00
  • c4e7964fd6 The tmstmpvfs.c extension should not modify the content of pages going into the WAL file, as that would corrupt the page checksum used for recovery. Instead, only insert timestamp information as content is written into the database file. drh 2026-01-27 16:18:35 +00:00
  • f5d29d6424 Teach sqlite3_rsync to increment its error count when a child process fails, based on [forum:8fe404e547faa42e|forum post 8fe404e547faa42e]. This passes basic sanity tests but requires more testing and needs a review of the final 'else' block in the new code. rsync-child-rc stephan 2026-01-27 16:15:22 +00:00
  • b4142c491e For CSV import in the CLI, when the table is created automatically because it does not previously exist, make the column types "ANY" instead of "TEXT" so that they will automatically adjust to different datatypes in the input text. drh 2026-01-27 14:59:08 +00:00
  • a943c0e973 Add the --csv option to the showtmlog utility program. drh 2026-01-27 14:27:19 +00:00
  • 6f8f9fbe25 Fix trivial buffer overreads in the sessions module that could occur when parsing changeset blobs. dan 2026-01-27 14:00:59 +00:00
  • 87efa1bd79 Additional usage notes added to the header comment of the tmstmpvfs.c source file. No code changes. drh 2026-01-27 12:50:52 +00:00
  • 389926bd3c Enhanced documentation in the header comment of tmstmpvfs.c. drh 2026-01-27 12:02:02 +00:00
  • f202df5857 Fix frame number computation in the log generated by tmstmpvfs.c. drh 2026-01-27 11:19:49 +00:00
  • e17a469d74 Enhancements to tmstmpvfs.c: (1) Use the exact same timestamp on logfile entries as on the pages that control, where appropriate. (2) Include the WAL frame number in ELOG_CKPT_PAGE logfile entries. drh 2026-01-26 21:20:28 +00:00
  • 8f03e92c41 Add test for fts3 compress= and uncompress= options. dan 2026-01-26 20:17:10 +00:00
  • 583644e660 Improve the comments on the generated byte-code for the merge algorithm. drh 2026-01-26 19:37:57 +00:00
  • 15357aaf10 Fix the initialization of the sqlite3Api[] constant to conform with the previous check-in. drh 2026-01-26 13:54:05 +00:00
  • 49bf78685e Add alternative sqlite3_carray_bind_v2() interface. drh 2026-01-26 13:44:42 +00:00
  • 840199ee18 Fix speedtest1.wasm build regression introduced with Emscripten 5.0.0. stephan 2026-01-26 10:53:24 +00:00
  • 713ee08d33 Fix a possible problem following OOM in a WITH statement. drh 2026-01-26 00:11:01 +00:00
  • 9b7005feea Always use the sort-and-merge algorithm for EXCEPT, INTERSECT, and UNION, even if there is no ORDER BY clause. drh 2026-01-25 23:28:42 +00:00
  • 33db5b73e5 The Select.addrOpenEphm field is no longer needed. Remove it and simplify related code. union-by-merge drh 2026-01-25 20:15:00 +00:00
  • 3b440ce573 Refactor one function name. Comment improvements. No functional changes. drh 2026-01-25 18:21:53 +00:00
  • 8e272dd9a7 Fix the jsonb_group_array() and jsonb_group_object() functions so that they return JSONB as they should, and not text JSON, when the array or object is empty. [forum:/forumpost/2026-01-25T00:47:06z|Forum post 2026-01-25T00:47:06z]. drh 2026-01-25 15:18:31 +00:00
  • 46a395ff3d Additional simplifications to achieve 100% MC/DC. drh 2026-01-25 13:26:19 +00:00
  • 619f1f7083 Fix harmless compiler warnings in FTS5. drh 2026-01-25 11:56:25 +00:00
  • 84075044de Remove additional unnecessary code associated with the setup phase of a recursive CTE. drh 2026-01-25 11:41:49 +00:00
  • fb288a432c Assert() statements added to sqlite3_result_text64() and sqlite3_bind_text64() to detect misuse of SQLITE_UTF8_ZT that can result in undefined behavior. drh 2026-01-24 17:18:56 +00:00
  • 40b6eace0e Expound upon the meaning of SQLITE_UTF8_ZT, in an attempt to head off confusion. drh 2026-01-24 12:19:00 +00:00
  • a5070d083c Expose SQLITE_UTF_ZT to WASM for completeness's sake, but the WASM build does not expose sqlite3_bind_text64() or sqlite3_result_text64() because it only supports UTF8 encoding, so ZT does not currently have a genuine use there. stephan 2026-01-24 01:17:06 +00:00
  • ca77c585be Fix an incorrect assert(). drh 2026-01-24 00:33:41 +00:00
  • e4445f04c5 In the cost metrics of the query planner, the estimated number of output rows from an EXISTS-to-JOIN loop should not be more than 1. [forum:/forumpost/989880d0aa|Forum post 989880d0aa]. drh 2026-01-23 20:46:54 +00:00
  • 4b736ce2f8 More code simplifications. drh 2026-01-23 18:52:45 +00:00
  • 447fd1bf29 Fix a minor EXPLAIN QUERY PLAN formatting problem. Remove a NEVER() that is reachable. drh 2026-01-23 17:06:54 +00:00
  • 1f567aef4c Remove code that is no longer used. drh 2026-01-23 16:07:51 +00:00
  • 40573642e8 Continuing work toward using sort-and-merge for UNION. drh 2026-01-23 14:37:08 +00:00
  • c46074808e Merge the latest trunk enhancements into the union-by-merge branch. drh 2026-01-23 11:44:40 +00:00
  • 8fd91361e6 Add the SQLITE_UTF8_ZT value which can be the encoding argument to sqlite3_result_text64() or sqlite3_bind_test64() to indicate that the argument is UTF-8 text that is zero-terminated. drh 2026-01-23 00:55:36 +00:00
  • cc11fb3bb2 Merge the latest trunk enhancements into the utf8-zt branch. utf8-zt drh 2026-01-22 19:29:34 +00:00
  • cb3d6d14fe Enhance the [/info/e33da6d5dc964db8|EXISTS-to-JOIN optimization] so that the inserted JOIN terms are not required to be on the inner-most loops, as long as all dependencies for the EXISTS-to-JOIN loops are in outer loops. This addresses the performance concern of [forum:/forumpost/2026-01-21T19:49:04z|forum post 2026-01-21T19:49:04z]. Test cases in TH3. drh 2026-01-22 19:02:32 +00:00
  • d3285e67a8 For the ".eqp full" show both the QUERY PLAN and the full byte code, just as it has in the past. drh 2026-01-22 15:59:45 +00:00
  • e0e67f1a73 Add a new encoding constant SQLITE_UTF8_ZT, which if used with sqlite3_result_text64() or sqlite3_bind_text64() declares that the string provided is UTF8 and zero-terminated at the length specified. drh 2026-01-21 19:24:07 +00:00
  • 2d98df1536 Add a new assert(). drh 2026-01-21 11:29:20 +00:00
  • e702822708 Strive to use sort-and-merge for compounds in CTEs. drh 2026-01-20 20:10:41 +00:00
  • ca0b14a490 Update the shell tool to work with SQLITE_OMIT_AUTOINIT builds. dan 2026-01-20 18:30:48 +00:00
  • e66806de33 Fix another test case to work with union-by-merge. drh 2026-01-20 18:20:26 +00:00
  • 815905544d Tiny JS doc touchup. stephan 2026-01-20 18:07:27 +00:00