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. |
2023-11-01 21:46:04 by Adam Ciarcinski | Files touched by this commit (6) | |
Log message: sqlite3: updated to 3.44.0 SQLite Release 3.44.0 On 2023-11-01 Aggregate functions can now include an ORDER BY clause after their last \ parameter. The arguments to the function are processed in the order specified. \ This can be important for functions like string_agg() and json_group_array(). Add support for the concat() and concat_ws() scalar SQL functions, compatible \ with PostgreSQL, SQLServer, and MySQL. Add support for the string_agg() aggregate SQL function, compatible with \ PostgreSQL and SQLServer. New conversion letters on the strftime() SQL function: %e %F %I %k %l %p %P %R %T %u Add new C-language APIs: sqlite3_get_clientdata() and sqlite3_set_clientdata(). Many errors associated with CREATE TABLE are now raised when the CREATE TABLE \ statement itself is run, rather than being deferred until the first time the \ table is actually used. The PRAGMA integrity_check command now verifies the consistency of the content \ in various built-in virtual tables using the new xIntegrity method. This works \ for the FTS3, FTS4, FTS5, RTREE, and GEOPOLY extensions. The SQLITE_DBCONFIG_DEFENSIVE setting now prevents PRAGMA writable_schema from \ being turned on. Previously writable_schema could be turned on, but would not \ actually allow the schema to be writable. Now it simply cannot be turned on. Tag the built-in FTS3, FTS4, FTS5, RTREE, and GEOPOLY virtual tables as \ SQLITE_VTAB_INNOCUOUS so that they can be used inside of triggers in \ high-security deployments. The PRAGMA case_sensitive_like statement is deprecated, as its use when the \ schema contains LIKE operators can lead to reports of database corruption by \ PRAGMA integrity_check. SQLITE_USE_SEH (Structured Exception Handling) is now enabled by default \ whenever SQLite is built using the Microsoft C compiler. It can be disabled \ using -DSQLITE_USE_SEH=0 Query planner optimizations: In partial index scans, if the WHERE clause implies a constant value for a table \ column, replace occurrences of that table column with the constant. This \ increases the likelihood of the partial index being a covering index. Disable the view-scan optimization (added in version 3.42.0 - item 1c) as it was \ causing multiple performance regressions. In its place, reduce the estimated row \ count for DISTINCT subqueries by a factor of 8. SQLite now performs run-time detection of whether or not the underlying hardware \ supports "long double" with precision greater than "double" \ and uses appropriate floating-point routines depending on what it discovered. The CLI for Windows now defaults to using UTF-8 for both input and output on \ platforms that support it. The --no-utf8 option is available to disable UTF8 \ support. |
2023-10-10 18:16:49 by Adam Ciarcinski | Files touched by this commit (6) | |
Log message: sqlite3: updated to 3.43.2 Changes in this specific patch release, version 3.43.2 (2023-10-10): Fix a couple of obscure UAF errors and an obscure memory leak. Omit the use of the sprintf() function from the standard library in the CLI, as \ this now generates warnings on some platforms. Avoid conversion of a double into unsigned long long integer, as some platforms \ do not do such conversions correctly. |
2023-09-12 21:28:13 by Adam Ciarcinski | Files touched by this commit (7) | |
Log message: sqlite3: updated to 3.43.1 3.43.1 Fix a regression in the way that the sum(), avg(), and total() aggregate \ functions handle infinities. Fix a bug in the json_array_length() function that occurs when the argument \ comes directly from json_remove(). Fix the omit-unused-subquery-columns optimization (introduced in in version \ 3.42.0) so that it works correctly if the subquery is a compound where one arm \ is DISTINCT and the other is not. Other minor fixes. |
2023-08-25 08:48:00 by Adam Ciarcinski | Files touched by this commit (6) | |
Log message: databases/sqlite3* devel/lemon: updated to 2.43.0 SQLite Release 3.43.0 On 2023-08-24 Add support for Contentless-Delete FTS5 Indexes. This is a variety of FTS5 \ full-text search index that omits storing the content that is being indexed \ while also allowing records to be deleted. Enhancements to the date and time functions: Added new time shift modifiers of the form ±YYYY-MM-DD HH:MM:SS.SSS. Added the timediff() SQL function. Added the octet_length(X) SQL function. Added the sqlite3_stmt_explain() API. Query planner enhancements: Generalize the LEFT JOIN strength reduction optimization so that it works for \ RIGHT and FULL JOINs as well. Rename it to OUTER JOIN strength reduction. Enhance the theorem prover in the OUTER JOIN strength reduction optimization so \ that it returns fewer false-negatives. Enhancements to the decimal extension: New function decimal_pow2(N) returns the N-th power of 2 for integer N between \ -20000 and +20000. New function decimal_exp(X) works like decimal(X) except that it returns the \ result in exponential notation - with a "e+NN" at the end. If X is a floating-point value, then the decimal(X) function now does a full \ expansion of that value into its exact decimal equivalent. Performance enhancements to JSON processing results in a 2x performance \ improvement for some kinds of processing on large JSON strings. New makefile target "verify-source" checks to ensure that there are no \ unintentional changes in the source tree. (Works for canonical source code only \ - not for precompiled amalgamation tarballs.) Added the SQLITE_USE_SEH compile-time option that enables Structured Exception \ Handling on Windows while working with the memory-mapped shm file that is part \ of WAL mode processing. This option is enabled by default when building on \ Windows using Makefile.msc. The VFS for unix now assumes that the nanosleep() system call is available \ unless compiled with -DHAVE_NANOSLEEP=0. |
2023-05-17 14:29:58 by Adam Ciarcinski | Files touched by this commit (8) | |
Log message: sqlite3: updated to 3.42.0 SQLite Release 3.42.0 On 2023-05-16 Add the FTS5 secure-delete command. This option causes all forensic traces to be \ removed from the FTS5 inverted index when content is deleted. Enhance the JSON SQL functions to support JSON5 extensions. The SQLITE_CONFIG_LOG and SQLITE_CONFIG_PCACHE_HDRSZ calls to sqlite3_config() \ are now allowed to occur after sqlite3_initialize(). New sqlite3_db_config() options: SQLITE_DBCONFIG_STMT_SCANSTATUS and \ SQLITE_DBCONFIG_REVERSE_SCANORDER. Query planner improvements: Enable the "count-of-view" optimization by default. Avoid computing unused columns in subqueries. Improvements to the push-down optimization. Enhancements to the CLI: Add the --unsafe-testing command-line option. Without this option, some \ dot-commands (ex: ".testctrl") are now disabled because those commands \ that are intended for testing only and can cause malfunctions misused. Allow commands ".log on" and ".log off", even in --safe mode. "--" as a command-line argument means all subsequent arguments that \ start with "-" are interpreted as normal non-option argument. Magic parameters ":inf" and ":nan" bind to floating point \ literals Infinity and NaN, respectively. The --utf8 command-line option omits all translation to or from MBCS on the \ Windows console for interactive sessions, and sets the console code page for \ UTF-8 I/O during such sessions. The --utf8 option is a no-op on all other \ platforms. Add the ability for application-defined SQL functions to have the same name as \ join keywords: CROSS, FULL, INNER, LEFT, NATURAL, OUTER, or RIGHT. Enhancements to PRAGMA integrity_check: Detect and raise an error when a NaN value is stored in a NOT NULL column. Improved error message output identifies the root page of a b-tree when an error \ is found within a b-tree. Allow the session extension to be configured to capture changes from tables that \ lack an explicit ROWID. Added the subsecond modifier to the date and time functions. Negative values passed into sqlite3_sleep() are henceforth interpreted as 0. The maximum recursion depth for JSON arrays and objects is lowered from 2000 to 1000. Extended the built-in printf() function so the comma option now works with \ floating-point conversions in addition to integer conversions. Miscellaneous bug fixes and performance optimizations |