Select your language

Select your language

The lightweight SQLite 3.50 DBMS has been released as an embeddable library. The new version includes numerous performance improvements, new SQL functions, and enhanced security features for database operations.

sqlite_3.50_01.jpg

The SQLite development team has released version 3.50 of the popular embedded database system. SQLite remains one of the most widely used DBMS in the world due to its simplicity, reliability, and absence of licensing restrictions.

About SQLite Project

SQLite is a lightweight DBMS implemented as an embeddable library. The project's source code is written in C and distributed as public domain, allowing unrestricted and free use for any purpose. Financial support for the development team is provided by a specially created consortium.

Key Innovations in SQLite 3.50

Lock Management Improvements

Added a new sqlite3_setlk_timeout() function that allows setting a separate timeout different from sqlite3_busy_timeout(). This provides more flexible lock management in multi-user applications.

Comment Handling

The SQLITE_DBCONFIG_ENABLE_COMMENTS restriction, added in the previous release, has been slightly relaxed. Comments are now always allowed when reading schema from an existing sqlite_schema table, but are blocked only in new SQL code.

New SQL Functions

SQLite 3.50 introduces built-in SQL functions:

  • unistr() — for working with Unicode strings
  • unistr_quote() — for escaping Unicode characters

In the %Q and %q conversions of the built-in printf() function, the alternative form flag (#) now converts control characters to backslash escapes suitable for the unistr() function.

Console Utility Improvements

The SQLite console utility received several important enhancements:

  • Direct output of most control characters is prohibited for security enhancement
  • The .dump command output uses the new unistr() SQL function for encoding special characters
  • Improved formatting of complex partial indexes in .schema --indent command output

JSON and Performance

Version 3.50 includes significant improvements in JSON handling:

  • JSON5 constraint compliance ensured, where \0 character must not be followed by a digit
  • Fixed bug in json_group_object(LABEL,VALUE) function
  • Optimized jsonb_set() and jsonb_replace() functions

Platform Compatibility

Improved SQLite build support in various environments:

  • Cygwin and MinGW
  • Termux (Android)
  • Other POSIX-compatible systems

JavaScript/WASM Version

The JavaScript/WASM version fixed a long-standing bug in filename checksum calculation in VFS OPFS SAHPool. It's important to note that databases created in this VFS in version 3.50.0+ cannot be read by older versions, but 3.50.0 is backward compatible with existing databases.

Additional Improvements

Besides the main features, the new version includes:

  • Improved sqlite3_rsync database synchronization utility
  • Fixed typos in documentation and source code comments
  • Various performance improvements

SQLite 3.50 is available for download from the official project website.

If you have any problems, contact us, we will help quickly and efficiently!