v2.1.0

Thu, 21 Nov 2024 00:00:00 GMT

Features: * [Recursive idiom/graph traversal](https://github.com/surrealdb/surrealdb/pull/5086) * [Add cross-transaction caching to the document processing layer](https://github.com/surrealdb/surrealdb/pull/5045) * [Added dictionary-based lemmatization to DEFINE ANALYZER statement](https://github.com/surrealdb/surrealdb/pull/4995) * [More static values now possible after DEFAULT clause](https://github.com/surrealdb/surrealdb/pull/4967) * [type::field() and type::fields() no longer restricted to just SELECT statements](https://github.com/surrealdb/surrealdb/pull/5022) * [Now possible to configure what to export](https://github.com/surrealdb/surrealdb/pull/5108) * [Allow data to be imported when server starts](https://github.com/surrealdb/surrealdb/pull/5120) * [Added custom storage engine shutdown behaviour](https://github.com/surrealdb/surrealdb/pull/5003) * [Versioned records now available in exports](https://github.com/surrealdb/surrealdb/pull/4985) * [Enabled configuration of data in exports](https://github.com/surrealdb/surrealdb/pull/4890) * [array::fold() and array::reduce() methods](https://github.com/surrealdb/surrealdb/pull/4886) * [New string::distance and string::similarity functions for various algorithms](https://github.com/surrealdb/surrealdb/pull/4982) * [Improvements to experimental bearer access](https://github.com/surrealdb/surrealdb/pull/4916) * [New capabilities to limit HTTP and WebSocket APIs](https://github.com/surrealdb/surrealdb/pull/4512) * [(Rust SDK) Allow constructing Datetime, better UUID support](https://github.com/surrealdb/surrealdb/pull/4968) * [(SurrealKV) Versioning enabled on edges and relations](https://github.com/surrealdb/surrealdb/pull/4994) * [Object Improvements](https://github.com/surrealdb/surrealdb/pull/5135) * [Accept computation in VERSION clause](https://github.com/surrealdb/surrealdb/pull/5129) * [SDK export config](https://github.com/surrealdb/surrealdb/pull/5125) * [Add AND EXPUNGE clause to certain REMOVE statements](https://github.com/surrealdb/surrealdb/pull/5152) Performance improvements: * [Split collecting/processing + multithreading](https://github.com/surrealdb/surrealdb/pull/5082) * [Remove execution-time parsing from RPC protocol](https://github.com/surrealdb/surrealdb/pull/5110) * [SurrealKV now used for in-memory storage engine](https://github.com/surrealdb/surrealdb/pull/5007) * [In-memory parallel sorting](https://github.com/surrealdb/surrealdb/pull/5012) * [Efficient incremental ordering](https://github.com/surrealdb/surrealdb/pull/5016) * [Added cross-transaction caching to document processing layer](https://github.com/surrealdb/surrealdb/pull/5044) * [Query streaming for imports](https://github.com/surrealdb/surrealdb/pull/4918) * [Improved performance when reduced document scopes not needed](https://github.com/surrealdb/surrealdb/pull/4873) Bug fixes: * [Fixed incorrect error message](https://github.com/surrealdb/surrealdb/pull/4975) * [Fixed field not being removed when set to NONE](https://github.com/surrealdb/surrealdb/pull/5075) * [Fixed panic caused by invalid UTF-8](https://github.com/surrealdb/surrealdb/pull/5084) * [Fixed panic during parallel query calls in scripting functions](https://github.com/surrealdb/surrealdb/pull/5121) * [Fixed bug in random ordering when using files as storage](https://github.com/surrealdb/surrealdb/pull/5028) * [Fixed bytes serialization](https://github.com/surrealdb/surrealdb/pull/5038) * [Fixed issue with lacking unicode escape sequences](https://github.com/surrealdb/surrealdb/pull/5046) * [Fixed incorrect future CBOR decoding](https://github.com/surrealdb/surrealdb/pull/5050) * [Fixed overly nested graph query output](https://github.com/surrealdb/surrealdb/pull/5059) * [Fixed unexpected behaviour for optional operator](https://github.com/surrealdb/surrealdb/pull/5060) * [Fixed OTEL endpoint](https://github.com/surrealdb/surrealdb/pull/5069) * [Fixed ignoring of INDEX IGNORE](https://github.com/surrealdb/surrealdb/pull/4993) * [Fixed panic when ordering by rand](https://github.com/surrealdb/surrealdb/pull/4989) * [Fixed --auth-level flag not requiring necessary --username and --password](https://github.com/surrealdb/surrealdb/pull/4987) * [Fixed like operator parsing error](https://github.com/surrealdb/surrealdb/pull/4965) * [Fixed invalid exports containing array](https://github.com/surrealdb/surrealdb/pull/4964) * [Fixed string-like record ID parsing](https://github.com/surrealdb/surrealdb/pull/4953) * [Gracefully handle `Option` in `rand::time()`](https://github.com/surrealdb/surrealdb/pull/5126) * [Allow customising record exporting](https://github.com/surrealdb/surrealdb/pull/5131) * [Better handling of unexpected authentication errors](https://github.com/surrealdb/surrealdb/pull/5130) * [Improve error messages for negative arithmetic + try\_reserve](https://github.com/surrealdb/surrealdb/pull/5136) * [Ensure `LIMIT` and `PARALLEL` can be used together](https://github.com/surrealdb/surrealdb/pull/5143) Workflow Improvements: * [Benchmark to compare indexed with non-indexed queries](https://github.com/surrealdb/surrealdb/pull/4823) * [Improved error message when permissions insufficient](https://github.com/surrealdb/surrealdb/pull/5077) * [RocksDB storage engine config options now shown on startup](https://github.com/surrealdb/surrealdb/pull/5112) * [Tests to prevent regressions after permission fixes](https://github.com/surrealdb/surrealdb/pull/4945) * [Use new runner types in benchmark jobs](https://github.com/surrealdb/surrealdb/pull/4946) * [Update dependencies with known security vulnerabilities](https://github.com/surrealdb/surrealdb/pull/4960) * [Update rquickjs to newest version](https://github.com/surrealdb/surrealdb/pull/5127) Features with breaking changes: * [Improved UPSERT behaviour](https://github.com/surrealdb/surrealdb/pull/5004)