SQLite 3.37 has been released, a lightweight DBMS available as a shared library. The SQLite code is released into the public domain, meaning it can be used freely and without restrictions for any purpose. The development of SQLite is financially supported by a consortium formed for this purpose, which includes companies such as Adobe, Oracle, Mozilla, Bentley, and Bloomberg.
Key Changes:
- Support has been added for creating tables with the "STRICT" attribute, which requires a type to be specified when declaring columns and implements strict type checking for data added to the columns. When this flag is set, SQLite will raise an error if it cannot convert the specified data to the column type. For example, if a column is created as "INTEGER", passing the string value '123' will result in the addition of the number 123, but attempting to specify 'xyz' will result in an error.
- In the operation "ALTER TABLE ADD COLUMN", a check for the existence of rows has been added when adding columns with checks based on the expression "CHECK" or with conditions "NOT NULL".
- The expression "PRAGMA table_list" has been implemented to display information about tables and views.
- In the command line interface, the command ".connection" has been implemented to allow multiple simultaneous connections to the database.
- A "--safe" parameter has been added, disabling CLI commands and SQL expressions that allow operations with database files other than the one specified in the command line.
- Performance optimizations for reading SQL expressions, which are broken into multiple lines, have been implemented in the CLI.
- Functions sqlite3_autovacuum_pages(), sqlite3_changes64(), and sqlite3_total_changes64() have been added.
- The query planner has been enhanced to ignore "ORDER BY" expressions in subqueries and views if removing such expressions does not change the semantics of the query.
- The generate_series(START,END,STEP) extension has been changed, making the first parameter ("START") mandatory. To return to the old behavior, a rebuild with the option "-DZERO_ARGUMENT_GENERATE_SERIES" is possible.
- Memory consumption for storing the database schema has been reduced.
Source: opennet.ru
