v2.3.0

Thu, 01 May 2025 00:00:00 GMT

**NB**: We identified an issue in this release that can corrupt the database when an `UPDATE` statement is stored within a function. We released `v2.3.1` to address this. If you defined functions with `UPDATE` statements in `v2.3.0` please kindly remove those function definitions, upgrade to `v2.3.1` and then add them back. Features: * [Added support for filtering down graph selections with a range selection](https://github.com/surrealdb/surrealdb/pull/5831) * [Improved the parsing behaviour to accept any type of expression or start of idiom path](https://github.com/surrealdb/surrealdb/pull/5821) * [Added Finnish to the snowball filter](https://github.com/surrealdb/surrealdb/pull/5601) * [Implemented reverse scan for table and range iterator](https://github.com/surrealdb/surrealdb/pull/5595) * [Ensured documents are not over-fetched when `LIMIT` and `START` are used together](https://github.com/surrealdb/surrealdb/pull/5590) * [Added array functions for natural and/or lexical sorting](https://github.com/surrealdb/surrealdb/pull/5585) * [Added `/data` and `/logs` directories to the Docker container, and set up Docker volumes for those directories by default](https://github.com/surrealdb/surrealdb/pull/5575) * [Enabled the query planner on `DELETE`, `UPDATE` and `UPSERT` statements](https://github.com/surrealdb/surrealdb/pull/5544) * [Implemented `TryFrom` for basic types](https://github.com/surrealdb/surrealdb/pull/5537) * [Added booleans as literal types](https://github.com/surrealdb/surrealdb/pull/5532) * [Added support for `ORDER BY DESC` on indexes (RocksDB + TiKV)](https://github.com/surrealdb/surrealdb/pull/5438) * [Implemented kind regex](https://github.com/surrealdb/surrealdb/pull/5654) * [Improved `ALL/ANYINSIDE` behaviour with strings and arrays of strings](https://github.com/surrealdb/surrealdb/pull/5584) Bug fixes: * [Fixed `rand::time` and other time-related issues](https://github.com/surrealdb/surrealdb/pull/5772) * [Fix the JSON response format](https://github.com/surrealdb/surrealdb/pull/5684) * [Made GraphQL avoid duplicate ID fields](https://github.com/surrealdb/surrealdb/pull/5680) * [Fixed sub-allocation in `TrackAlloc`](https://github.com/surrealdb/surrealdb/pull/5610) * [Fixed the default endpoint for exports and imports](https://github.com/surrealdb/surrealdb/pull/5599) * [Made several flow/timeout improvements](https://github.com/surrealdb/surrealdb/pull/5597) * [Fixed tokeniser failure with successive punctuations characters](https://github.com/surrealdb/surrealdb/pull/5596) * [Fixed overflow and panics in math functions](https://github.com/surrealdb/surrealdb/pull/5572) * [Fixed possible index out of bounds on compound indexes](https://github.com/surrealdb/surrealdb/pull/5570) * [Fixed arithmetic wrap panic in duration functions](https://github.com/surrealdb/surrealdb/pull/5569) * [Fixed indexing on filtered count results](https://github.com/surrealdb/surrealdb/pull/5837) * [Fixed concurrent indexing on quoted table names](https://github.com/surrealdb/surrealdb/pull/5833) * [Fixed select with start and limit for arrays](https://github.com/surrealdb/surrealdb/pull/5623) * [Enforced a limit to `string::replace` with regular expressions](https://github.com/surrealdb/surrealdb/pull/5619) * [Ensured slicing an array does not iterate over its items](https://github.com/surrealdb/surrealdb/pull/5550) Deprecations: [The following Rust SDK APIs are now deprecated](https://github.com/surrealdb/surrealdb/pull/5859). In addition, some `Capabilities` methods were renamed and the previous names marked as deprecated. * `IntoQuery::into_query` * `IntoEndpoint::into_endpoint` * `IntoFn::into_fn` * `IntoExportDestination::into_export_destination` * `QueryResult::query_result` * `QueryResult::stats` * `QueryStream::query_stream` * `IntoResource::into_resource` * `CreateResource::into_resource` * `proto::ResponseAction` * `remote::WsNotification` Workflow improvements: * [Made the default Rust version explicit](https://github.com/surrealdb/surrealdb/pull/5659) * [Allowed publishing multiple nightly crates per day](https://github.com/surrealdb/surrealdb/pull/5591) * [Added Trivy scanner runs on new Docker images](https://github.com/surrealdb/surrealdb/pull/5582) * [Added more language tests](https://github.com/surrealdb/surrealdb/pull/5525) * [Refactored dependencies to use workspace dependencies](https://github.com/surrealdb/surrealdb/pull/5464)