The release of SQLite 3.44 has been published, a lightweight DBMS presented as a dynamic library. SQLite code is released into the public domain, meaning it can be used freely and without restrictions for any purpose. Financial support for the SQLite developers is provided by a specially created consortium that includes companies like Bentley, Bloomberg, Expensify, and Navigation Data Standard.
Key Changes:
- In aggregate functions, it is now permissible to specify an 'ORDER BY' expression after the last parameter to process the function's arguments in a specified order, which may be useful for functions like string_agg() and json_group_array().
- Support has been added for the scalar SQL functions concat() and concat_ws(), compatible with PostgreSQL, MS SQL Server, and MySQL.
- Support for the aggregate function string_agg(), compatible with PostgreSQL and MS SQL Server, has been added.
- The SQL function strftime() now supports the specifiers '%e', '%F', '%I', '%k', '%l', '%p', '%P', '%R', '%T', and '%u'.
- Many errors related to the 'CREATE TABLE' statement are now reported after executing the 'CREATE TABLE' statement, rather than after the first use of the table.
- The 'PRAGMA integrity_check' command now checks the consistency of the contents of various built-in virtual tables used in the FTS3, FTS4, FTS5, RTREE, and GEOPOLY extensions.
- Built-in virtual tables used in the FTS3, FTS4, FTS5, RTREE, and GEOPOLY extensions are now allowed to be used within triggers.
- When specifying the SQLITE_DBCONFIG_DEFENSIVE setting, protection against enabling the 'PRAGMA writable_schema' mode is ensured.
- The SQLITE_USE_SEH (Structured Exception Handling) setting is enabled by default when compiled with Microsoft C.
- Optimizations in the query planner have been made regarding partial index scanning when a constant value is specified in the WHERE clause for a table column. Due to identified regressions, the view scanning optimization added in version 3.42.0 has been disabled.
- Runtime checks for the support of the 'long double' type with greater precision than the 'double' type have been implemented.
- In the command interface for Windows, UTF-8 encoding is used by default for input and output (the option '--no-utf8' is available to disable this).
Source: opennet.ru
