2024-12-09 09:33:52 by Adam Ciarcinski | Files touched by this commit (6) | |
Log message: sqlite3: updated to 3.47.2 version 3.47.2 (2024-12-07): Fix a problem in text-to-floating-point conversion for SQLite that can cause \ values between '1.8446744073709550592eNNN' and '1.8446744073709551609eNNN' for \ any exponent NNN to be rendered incorrectly. In other words, some numeric text \ values where the first 16 significant digits are '1844674407370955' might be \ converted into the wrong floating-point value. See forum thread \ 569a7209179a7f5e. This problem only arises on x64 and i386 hardware. The problem \ was introduced in 3.47.0. Other minor bug fixes. |
2024-11-25 21:20:04 by Adam Ciarcinski | Files touched by this commit (8) | |
Log message: sqlite3: updated to 3.47.1 3.47.1 (2024-11-25): Fix the makefiles so that they once again honored DESTDIR for the \ "install" target. Add the SQLITE_IOCAP_SUBPAGE_READ capability to the VFS, to work around issues \ on some non-standard VFSes caused by making SQLITE_DIRECT_OVERFLOW_READ the \ default in version 3.45.0. Fix problems with line endings in the new sqlite3_rsync.exe utility on Windows. Fix incorrect answers to certain obscure IN queries caused by new query \ optimizations added in the 3.47.0 release. Other minor bug fixes. |
2024-10-22 20:25:29 by Adam Ciarcinski | Files touched by this commit (7) | |
Log message: sqlite3: updated to 3.47.0 SQLite Release 3.47.0 Allow arbitrary expressions in the second argument to the RAISE function. If the RHS of the ->> operator is negative, then access array elements \ counting from the right. Fix a problem with rolling back hot journal files in the seldom-used \ unix-dotfile VFS. FTS5 tables can now be dropped even if they use a non-standard tokenizer that \ has not been registered. Fix the group_concat() aggregate function so that it returns an empty string, \ not a NULL, if it receives a single input value which is an empty string. Enhance the generate_series() table-valued function so that it is able to \ recognize and use constraints on its output value. Preupdate hooks now recognize when a column added by ALTER TABLE ADD COLUMN has \ a non-null default value. Performance optimizations: Improved reuse of subqueries associated with the IN operator, especially when \ the IN operator has been duplicated due to predicate push-down. Use a Bloom filter on subqueries on the right-hand side of the IN operator, in \ cases where that seems likely to improve performance. Ensure that queries like "SELECT func(a) FROM tab GROUP BY 1" only \ invoke the func() function once per row. No attempt is made to create automatic indexes on a column that is known to be \ non-selective because of its use in other indexes that have been analyzed. Adjustments to the query planner so that it produces better plans for star \ queries with a large number of dimension tables. Add the "order-by-subquery" optimization, that seeks to disable sort \ operations in outer queries if the desired order is obtained naturally due to \ ORDER BY clauses in subqueries. The "indexed-subtype-expr" optimization strives to use expressions \ that are part of an index rather than recomputing the expression based on table \ values, as long as the query planner can prove that the subtype of the \ expression will never be used. Miscellaneous coding tweaks for faster runtimes. Enhancements to SQLite-related command-line programs: Add the experimental sqlite3_rsync program. Add extension functions median(), percentile(), percentile_cont(), and \ percentile_disc() to the CLI. Add the .www dot-command to the CLI. The sqlite3_analyzer utility now provides a break-out of statistics for WITHOUT \ ROWID tables. The sqldiff utility avoids creating an empty database if its second argument \ does not exist. Enhance the sqlite_dbpage table-valued function such that INSERT can be used to \ increase or decrease the size of the database file. SQLite no longer makes any use of the "long double" data type, as \ hardware support for long double is becoming less common and long double creates \ challenges for some compiler tool chains. Instead, SQLite uses Dekker's \ algorithm when extended precision is needed. The TCL Interface for SQLite supports TCL9. Everything probably still works for \ TCL 8.5 and later, though this is not guaranteed. Users are encouraged to \ upgrade to TCL9. JavaScript/WASM: Fix a corruption-causing bug in the JavaScript "opfs" VFS. Correct "mode=ro" handling for the "opfs" VFS. Work around a couple of browser-specific OPFS quirks. FTS5 Changes: Add the fts5_tokenizer_v2 API and the locale=1 option, for creating custom \ locale-aware tokenizers and fts5 tables that may take advantage of them. Add the contentless_unindexed=1 option, for creating contentless fts5 tables \ that store the values of any UNINDEXED columns persistently in the database. Allow an FTS5 table to be dropped even if it uses a custom tokenizer whose \ implementation is not available. |
2024-08-13 15:11:52 by Adam Ciarcinski | Files touched by this commit (8) | |
Log message: sqlite3: updated to 3.46.1 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. |
2024-05-24 06:48:54 by Adam Ciarcinski | Files touched by this commit (6) | |
Log message: sqlite3: updated to 3.46.0 SQLite Release 3.46.0 On 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. |
2024-04-15 18:43:57 by Adam Ciarcinski | Files touched by this commit (6) | |
Log message: sqlite3: updated to 3.45.3 3.45.3 (2024-04-15): Fix a long-standing bug (going back to version 3.24.0) that might (rarely) cause \ the "old.*" values of an UPDATE trigger to be incorrect if that \ trigger fires in response to an UPSERT. Forum post 284955a3cd454a15. Fix a bug in sum() that could cause it to return NULL when it should return \ Infinity. Forum post 23b8688ef4. Other trifling corrections and compiler warning fixes that have come up since \ the previous patch release. See the timeline for details. |
2024-03-14 09:07:11 by Adam Ciarcinski | Files touched by this commit (6) | |
Log message: sqlite3: updated to 3.45.2 version 3.45.2 (2024-03-12): Fix an error in UPSERT, introduced by enhancement 3a in version 3.35.0 \ (2021-03-12), that could cause an index to get out-of-sync with its table. Forum \ thread 919c6579c8. Reduce the scope of the NOT NULL strength reduction optimization that was added \ as item 8e in version 3.35.0 (2021-03-12). The optimization was being attempted \ in some contexts where it did not work, resulting in incorrect query results. \ Forum thread 440f2a2f17. Other trifling corrections and compiler warning fixes that have come up since \ the previous patch release. See the timeline for details. |
2024-01-30 21:13:21 by Adam Ciarcinski | Files touched by this commit (6) | |
Log message: sqlite3* lemon: updated to 3.45.1 version 3.45.1 (2024-01-30): Restore the JSON BLOB input bug, and promise to support the anomaly in \ subsequent releases, for backward compatibility. Fix the PRAGMA integrity_check command so that it works on read-only databases \ that contain FTS3 and FTS5 tables. This resolves an issue introduced in version \ 3.44.0 but was undiscovered until after the 3.45.0 release. Fix issues associated with processing corrupt JSONB inputs: Prevent exponential runtime when converting a corrupt JSONB into text. Fix a possible read of one byte past the end of the JSONB blob when converting a \ corrupt JSONB into text. Enhanced testing using jfuzz to prevent any future JSONB problems such as the above. Fix a long-standing bug in which a read of a few bytes past the end of a \ memory-mapped segment might occur when accessing a craftily corrupted database \ using memory-mapped database. Fix a long-standing bug in which a NULL pointer dereference might occur in the \ bytecode engine due to incorrect bytecode being generated for a class of SQL \ statements that are deliberately designed to stress the query planner but which \ are otherwise pointless. |
2024-01-17 09:24:19 by Adam Ciarcinski | Files touched by this commit (6) | |
Log message: sqlite3: updated to 3.45.0 SQLite Release 3.45.0 On 2024-01-15 Added the SQLITE_RESULT_SUBTYPE property for application-defined SQL functions. \ All application defined SQL functions that invokes sqlite3_result_subtype() must \ be registered with this new property. Failure to do so might cause the call to \ sqlite3_result_subtype() to behave as a no-op. Compile with \ -DSQLITE_STRICT_SUBTYPE=1 to cause an SQL error to be raised if a function that \ is not SQLITE_RESULT_SUBTYPE tries invokes sqlite3_result_subtype(). The use of \ -DSQLITE_STRICT_SUBTYPE=1 is a recommended compile-time option for every \ application that makes use of subtypes. Enhancements to the JSON SQL functions: All JSON functions are rewritten to use a new internal parse tree format called \ JSONB. The new parse-tree format is serializable and hence can be stored in the \ database to avoid unnecessary re-parsing whenever the JSON value is used. New versions of JSON-generating functions generate binary JSONB instead of JSON text. The json_valid() function adds an optional second argument that specifies what \ it means for the first argument to be "well-formed". Add the FTS5 tokendata option to the FTS5 virtual table. The SQLITE_DIRECT_OVERFLOW_READ optimization is now enabled by default. Disable \ it at compile-time using -DSQLITE_DIRECT_OVERFLOW_READ=0. Query planner improvements: Do not allow the transitive constraint optimization to trick the query planner \ into using a range constraint when a better equality constraint is available. \ (Forum post 2568d1f6e6.) The query planner now does a better job of disregarding indexes that ANALYZE \ identifies as low-quality. (Forum post 6f0958b03b.) Increase the default value for SQLITE_MAX_PAGE_COUNT from 1073741824 to 4294967294. Enhancements to the CLI: Improvements to the display of UTF-8 content on Windows Automatically detect playback of ".dump" scripts and make appropriate \ changes to settings such as ".dbconfig defensive off" and \ ".dbconfig dqs_dll on". |
2023-11-25 22:07:39 by Adam Ciarcinski | Files touched by this commit (8) | |
Log message: sqlite3: updated to 3.44.2 3.44.1 (2023-11-22): Change the CLI so that it uses UTF-16 for console I/O on Windows. This enables \ proper display of unicode text on old Windows7 machines. Other obscure bug fixes. 3.44.2 (2023-11-24): Fix a mistake in the CLI that was introduced by the fix (item 15 above) in 3.44.1. Fix a problem in FTS5 that was discovered during internal fuzz testing only \ minutes after the 3.44.1 release was tagged. Fix incomplete assert() statements that the fuzzer discovered the day after the \ previous release. Fix a couple of harmless compiler warnings that appeared in debug builds with GCC 16. |