## Release Notes: SeaORM 2.0.0-rc.29 *(since 2.0.0-rc.28)* ### New Features **Tracing spans for database operations** (#2885) Added `ObservabilityHook` and `with_db_span!` macro for distributed tracing support. Database operations and transactions emit tracing spans when the `tracing-spans` feature is enabled. **Wrapper type for storing UUIDs as TEXT** (#2914) Added a wrapper type for storing `Uuid` values as TEXT columns. **`Insert::try_insert` method** Added `try_insert` to the `Insert` trait for fallible insert operations. **Filter relations outside generation set** (#2913) Codegen now filters relations that fall outside the generation set. ### Bug Fixes **Allow LEFT JOIN to produce None for nested models** (#2845) Fixed handling of nested `Option` in `FromQueryResult` when using LEFT JOINs, so optional nested models correctly produce `None` when no related row exists. **Fix DeriveIntoActiveModel** (#2926) Fixed `DeriveIntoActiveModel` derive macro; added test coverage. **Fix tracing spans visibility** (#2925) Corrected tracing span visibility for database operations. **Fix derive enums without per-case rename** (#2922) Fixed codegen for enums that do not use per-variant `rename` attributes. Addresses [#2921](https://github.com/SeaQL/sea-orm/issues/2921). **Fix renaming enum variants starting with digits** (#2905) Enum variants that start with digits are now correctly renamed during codegen. **Revert multi-argument extra attribute support** (#2915) Reverted the multi-argument extra attribute codegen change (#2560) due to incorrect test input parsing that caused `syn` to panic. The attribute format should split arguments by `,`. **Add missing lifetime hint to `EntityName::table_name`** (#2907) Added the missing lifetime hint to fix compilation in certain contexts. ### Improvements **Optimize exists** (#2909) Improved performance of the `exists` query.