Published release SQLite 3.35 , a lightweight DBMS , designed as a plug-in library. SQLite code is distributed as a public domain, i.e. can be used without restrictions and free of charge for any purpose. SQLite developers are financially supported by a specially created consortium of companies such as Adobe, Oracle, Mozilla, Bentley, and Bloomberg.
- Added built-in math functions (log2 (), cos (), tg (), exp (), ln (), pow (), etc.) that can be used in SQL. To enable built-in functions, an assembly with the “-DSQLITE_ENABLE_MATH_FUNCTIONS” option is required.
- Support for the expression “ ALTER TABLE DROP COLUMN ” has been implemented to remove columns from a table and clear data previously stored in this column.
- The implementation of the UPSERT (add-or-modify) operation has been expanded, allowing through expressions like “INSERT … ON CONFLICT DO NOTHING / UPDATE “ignore the error or update instead of insert if it is impossible to add data through” INSERT “(for example, if the record already exists, you can perform UPDATE instead of INSERT). The new version allows specifying several “ON CONFLICT” blocks, which will be processed in order. In the last “ON CONFLICT” block, it is allowed not to specify the conflict definition parameter to use “DO UPDATE”.
- DELETE, INSERT, and UPDATE operations support the RETURNING expression, which can be used to display the contents of a deleted, inserted, or modified record. For example, “insert into … returning id” will return the added row identifier, and “update … set price = price * 1.10 returning price” will return the updated price.
- Reduced memory consumption when performing VACUUM operations for databases that include very large TEXT or BLOB values.
- For Common Table Expression (CTE) , allowing temporary named result sets specified with the WITH clause, allowed to select modes “ MATERIALIZED ” and “ NOT MATERIALIZED “. “MATERIALIZED” implies caching the query specified in the view in a separate physical table with the subsequent fetching of data from this table, and with “NOT MATERIALIZED”, repeated queries will be performed each time the view is accessed. Initially SQLite defaulted to “NOT MATERIALIZED”, but now changed to “MATERIALIZED” for CTEs used more than once.
- Work has been done to increase the performance of the optimizer and the query planner:
- Added optimizations when using min and max functions with “IN” expression.
/Media reports.