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 |
2023-03-28 15:01:41 by Adam Ciarcinski | Files touched by this commit (7) | |
Log message: sqlite3: updated to 3.41.2 version 3.41.2 (2023-03-22): Multiple fixes for reads past the end of memory buffers (NB: reads not writes) \ in the following circumstances: When processing a corrupt database file using the non-standard \ SQLITE_ENABLE_STAT4 compile-time option. In the CLI when the sqlite3_error_offset() routine returns an out-of-range value \ (see also the fix to sqlite3_error_offset() below). In the recovery extension. In FTS3 when processing a corrupt database file. Fix the sqlite3_error_offset() so that it does not return out-of-range values \ when reporting errors associated with generated columns. Multiple fixes in the query optimizer for problems that cause incorrect results \ for bizarre, fuzzer-generated queries. Increase the size of the reference counter in the page cache object to 64 bits \ to ensure that the counter never overflows. Fix a performance regression caused by a bug fix in patch release 3.41.1. Fix a few incorrect assert() statements. |
2023-03-12 11:34:33 by Adam Ciarcinski | Files touched by this commit (7) | |
Log message: sqlite3: updated to 3.41.1 version 3.41.1 (2023-03-10): Provide compile-time options -DHAVE_LOG2=0 and -DHAVE_LOG10=0 to enable SQLite \ to be compiled on systems that omit the standard library functions log2() and \ log10(), repectively. Ensure that the datatype for column t1.x in "CREATE TABLE t1 AS SELECT \ CAST(7 AS INT) AS x;" continues to be INT and is not NUM, for historical \ compatibility. Enhance PRAGMA integrity_check to detect when extra bytes appear at the end of \ an index record. Fix various obscure bugs reported by the user community. See the timeline of \ changes for details. |
2023-02-24 09:34:38 by Adam Ciarcinski | Files touched by this commit (7) | |
Log message: sqlite3: updated to 3.41.0 SQLite Release 3.41.0 On 2023-02-21 Query planner improvements: Make use of indexed expressions within an aggregate query that includes a GROUP \ BY clause. The query planner has improved awareness of when an index is a covering index \ and adjusts predicted runtimes accordingly. The query planner is more aggressive about using co-routines rather than \ materializing subqueries and views. Queries against the built-in table-valued functions json_tree() and json_each() \ will now usually treat "ORDER BY rowid" as a no-op. Enhance the ability of the query planner to use indexed expressions even if the \ expression has been modified by the constant-propagation optimization. (See \ forum thread 0a539c7.) Add the built-in unhex() SQL function. Add the base64 and base85 application-defined functions as an extension and \ include that extension in the CLI. Add the sqlite3_stmt_scanstatus_v2() interface. (This interface is only \ available if SQLite is compiled using SQLITE_ENABLE_STMT_SCANSTATUS.) In-memory databases created using sqlite3_deserialize() now report their \ filename as an empty string, not as 'x'. Changes to the CLI: Add the new base64() and base85() SQL functions Enhanced EXPLAIN QUERY PLAN output using the new sqlite3_stmt_scanstatus_v2() \ interface when compiled using SQLITE_ENABLE_STMT_SCANSTATUS. The ".scanstats est" command provides query planner estimates in profiles. The continuation prompt indicates if the input is currently inside of a string \ literal, identifier literal, comment, trigger definition, etc. Enhance the --safe command-line option to disallow dangerous SQL functions. The double-quoted string misfeature is now disabled by default for CLI builds. \ Legacy use cases can reenable the misfeature at run-time using the \ ".dbconfig dqs_dml on" and ".dbconfig dqs_ddl on" commands. Enhance the PRAGMA integrity_check command so that it detects when text strings \ in a table are equivalent to but not byte-for-byte identical to the same strings \ in the index. Enhance the carray table-valued function so that it is able to bind an array of \ BLOB objects. Added the sqlite3_is_interrupted() interface. Long-running calls to sqlite3_prepare() and similar now invoke the progress \ handler callback and react to sqlite3_interrupt(). The sqlite3_vtab_in_first() and sqlite3_vtab_in_next() functions are enhanced so \ that they reliably detect if they are invoked on a parameter that was not \ selected for multi-value IN processing using sqlite3_vtab_in(). They return \ SQLITE_ERROR instead of SQLITE_MISUSE in this case. The parser now ignores excess parentheses around a subquery on the right-hand \ side of an IN operator, so that SQLite now works the same as PostgreSQL in this \ regard. Formerly, SQLite treated the subquery as an expression with an implied \ "LIMIT 1". Added the SQLITE_FCNTL_RESET_CACHE option to the sqlite3_file_control() API. Makefile improvements: The new makefile target "sqlite3r.c" builds an amalgamation that \ includes the recovery extension. New makefile targets "devtest" and "releasetest" for running \ a quick developmental test prior to doing a check-in and for doing a full \ release test, respectively. Miscellaneous performance enhancements. |
2022-12-28 23:26:07 by Adam Ciarcinski | Files touched by this commit (9) | |
Log message: sqlite3: updated to 3.40.1 3.40.1 (2022-12-28): Fix the --safe command-line option to the CLI such that it correctly disallows \ the use of SQL functions like writefile() that can cause harmful side-effects. Fix a potential infinite loop in the memsys5 alternative memory allocator. This \ bug was introduced by a performance optimization in version 3.39.0. Various other obscure fixes. |
2022-11-17 07:20:45 by Adam Ciarcinski | Files touched by this commit (7) | |
Log message: sqlite3: updated to 3.40.0 SQLite Release 3.40.0 Add support for compiling SQLite to WASM and running it in web browsers. NB: The \ WASM build and its interfaces are considered "beta" and are subject to \ minor changes if the need arises. We anticipate finalizing the interface for the \ next release. Add the recovery extension that might be able to recover some content from a \ corrupt database file. Query planner enhancements: Recognize covering indexes on tables with more than 63 columns where columns \ beyond the 63rd column are used in the query and/or are referenced by the index. Extract the values of expressions contained within expression indexes where \ practical, rather than recomputing the expression. The NOT NULL and IS NULL operators (and their equivalents) avoid loading the \ content of large strings and BLOB values from disk. Avoid materializing a view on which a full scan is performed exactly once. Use \ and discard the rows of the view as they are computed. Allow flattening of a subquery that is the right-hand operand of a LEFT JOIN in \ an aggregate query. A new typedef named sqlite3_filename is added and used to represent the name of \ a database file. Various interfaces are modified to use the new typedef instead \ of "char*". This interface change should be fully backwards \ compatible, though it might cause (harmless) compiler warnings when rebuilding \ some legacy applications. Add the sqlite3_value_encoding() interface. Security enhancement: SQLITE_DBCONFIG_DEFENSIVE is augmented to prohibit \ changing the schema_version. The schema_version becomes read-only in defensive \ mode. Enhancements to the PRAGMA integrity_check statement: Columns in non-STRICT tables with TEXT affinity should not contain numeric values. Columns in non-STRICT tables with NUMERIC affinity should not contain TEXT \ values that could be converted into numbers. Verify that the rows of a WITHOUT ROWID table are in the correct order. Enhance the VACUUM INTO statement so that it honors they PRAGMA synchronous setting. Enhance the sqlite3_strglob() and sqlite3_strlike() APIs so that they are able \ to accept NULL pointers for their string parameters and still generate a \ sensible result. Provide the new SQLITE_MAX_ALLOCATION_SIZE compile-time option for limiting the \ size of memory allocations. Change the algorithm used by SQLite's built-in pseudo-random number generator \ (PRNG) from RC4 to Chacha20. Allow two or more indexes to have the same name as long as they are all in \ separate schemas. Miscellaneous performance optimizations result in about 1% fewer CPU cycles used \ on typical workloads. |