 
Small. Fast. Reliable.
Choose any three.
 
SQLite Release 3.46.1 On 2024-08-13
Prior changes from version 3.46.0 (2024-05-23):
-  Enhance PRAGMA optimize in multiple ways, to make it
     simpler to use:
     
     -  PRAGMA optimize automatically implements a temporary
          analysis limit to prevent excess runtime
          on large databases.
     
-  Added the new 0x10000 bitmask option to check for updates on all tables.
     
-  Automatically re-analyze tables that do not have sqlite_stat1 entries.
     
 
-  Enhancements to the date and time functions:
     
     -  The strftime() SQL function now supports %G, %g, %U, and %V.
     
-  New modifiers 'ceiling' and 'floor' control the algorithm used to
          resolve ambiguous dates when shifting a date by an integer number
          of months and/or years.
     
-  The 'utc' and 'localtime' modifiers are now no-ops if SQLite knows
          that the time is already in UTC or in the localtime, respectively.
     
 
-  Add support for underscore ("_") characters between digits in
     numeric literals.
-  Add the json_pretty() SQL function.
-  Query planner improvements:
     
     -  The "VALUES-as-coroutine" optimization enables INSERT statements with 
          thousands of rows in the VALUES clause to parse and run in about half
          the time and using about half as much memory.
     
-  Allow the use of an index for queries like "SELECT count(DISTINCT col) FROM ...",
          even if the index records are not smaller than the table records.
     
-  Improved recognition of cases where the value of an SQL function is
          constant because all its arguments are constant.
     
-  Enhance the WHERE-clause push-down optimization so that it is able to
          push down WHERE clause terms containing uncorrelated subqueries.
     
 
-  Allocate additional memory from the heap for the SQL parser stack if
     that stack overflows, rather than reporting a "parser stack overflow" error.
-  JSON changes:
     
     -  Allow ASCII control characters within JSON5 string literals.
     
-  Fix the -> and ->> operators so that when the right-hand side operand is a string
          that looks like an integer it is still treated as a string, because that is what
          PostgreSQL does.
     
 
-  Allow large hexadecimal literals to be used as the DEFAULT value to a table column.
Changes in this specific patch release, version 3.46.1 (2024-08-13):
-  Improved robustness while parsing the tokenize= arguments in FTS5.
     Forum post 171bcc2bcd.
-  Enhancements to covering index prediction in the query planner. 
     Add early detection of over-prediction of covering indexes so that
     sqlite3_prepare() will return an error rather than just generate bad bytecode. 
     Forum post e60e4c295d22f8ce.
-  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 
     double-quoted string literals.
-  Fix the window function version of group_concat() so that it returns
     an empty string if it has one or more empty string inputs.
-  In FTS5 secure-delete mode, fix false-positive
     integrity-check reports about corrupt indexes.
-  Syntax errors in ALTER TABLE should always return SQLITE_ERROR.  In
     some cases, they were formerly returning SQLITE_INTERNAL.
-  JavaScript/WASM:
     
     -  Fix a corruption-causing bug in the JavaScript "opfs" VFS.
     
-  Work around a couple of browser-specific OPFS quirks.
     
 
-  Other minor fixes.
Hashes:
 
- SQLITE_SOURCE_ID: 2024-08-13 09:16:08 c9c2ab54ba1f5f46360f1b4f35d849cd3f080e6fc2b6c60e91b16c63f69a1e33
- SHA3-256 for sqlite3.c: 186a1baa476b6d546de155160ca6d30ff7b7e6ee375f0bb6445e1a3d180a7dad
A complete list of SQLite releases
      in a single page and a chronology are both also available.
      A detailed history of every
      check-in is available at
      
      SQLite version control site.