- New `hash_id_columns=` parameter for creating a primary key that's a hash of the content of specific columns - see [Setting an ID based on the hash of the row contents](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-hash) for details. ([343](https://github.com/simonw/sqlite-utils/issues/343))
- New [db.sqlite_version](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-sqlite-version) property, returning a tuple of integers representing the version of SQLite, for example `(3, 38, 0)`.
- Fixed a bug where [register_function(deterministic=True)](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-register-function) caused errors on versions of SQLite prior to 3.8.3. ([408](https://github.com/simonw/sqlite-utils/issues/408))
- New documented [hash_record(record, keys=...)](https://sqlite-utils.datasette.io/en/stable/reference.html#reference-utils-hash-record) function.