Download SQLite 3.45.0

Spread the love

SQLite is a database system developed in C that can be used for websites and embedded applications, among other things. According to the developers, SQLite requires no installation and administration, supports databases up to two terabytes in size and stores an entire database in one file. Furthermore, it supports almost the full SQL92 specification and it is easy via, among others Tcl/Tk to guide. Version 3.45.0 has been released and the changelog for the past few versions can be found below:

Changes in SQLite version 3.45.0:

  • 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 sad 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 token data 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 scheduler 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 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”.

Changes in SQLite version 3.44.2

  • 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.

Changes in SQLite version 3.44.1

  • 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.

Changes in SQLite version 3.44.0

  • 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, RTREEand 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, RTREEand 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.

Changes in SQLite version 3.43.2

  • 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 CLIas 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.

Changes in SQLite version 3.43.1

  • Fix a regression in the way that the sum(), avg()and total() aggregate functions handle definitions.
  • 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.

Changes in SQLite version 3.43.0

  • Add support for Contentless-Delete FTS5 Indexes. This is a variety of FTS5 full-text search index that because storing the content that is being indexed while also allowing records to be deleted.
  • Enhancements to the date and time functions:
  • Added the octet_length(X) SQL function.
  • Added the sqlite3_stmt_explain() API.
  • Query scheduler enhancements:
  • 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's part of it WAL fashion 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.

Changes in SQLite version 3.42.0

  • 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 scheduler 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 if 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

Version number 3.45.0
Release status Final
Operating systems Android, Linux, macOS, Solaris, Windows 10, Windows Server 2016, Windows Server 2019, Windows 11
Website SQLite
Download https://www.sqlite.org/download.html
License type GPL
You might also like