SQLite Release 3.46.1 On 2024-08-13
En esta página
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.