rel_2_0_51
📦 sqlalchemyView on GitHub →
🐛 6 fixes🔧 11 symbols
Summary
This maintenance release addresses several bugs across the ORM, Engine, SQL, and PostgreSQL components, focusing on transaction handling, result freezing, and complex query construction.
🐛 Bug Fixes
- Fixed issue where _orm.subqueryload() combined with PropComparator.of_type() and PropComparator.and_() would silently drop filter criteria due to LoaderCriteriaOption being constructed against the base entity instead of the effective entity.
- Fixed bug where a failure during tpc_prepare() within _orm.Session.commit() for a two-phase session raised IllegalStateChangeError instead of the original database exception.
- Fixed issue where Result.freeze() would lose track of ambiguous column names, causing key-based access on the thawed result to silently return a value instead of raising InvalidRequestError.
- Fixed issue where _sql.StatementLambdaElement would proxy attribute access through the cached "expected" expression instead of the resolved expression when extended with non-lambda criteria, leading to stale closure-bound parameter values.
- Repaired bug where a two-phase transaction recovery would not return the correct transaction identifier when generating identifiers using the xid() method of the psycopg connection.
- Fixed regular expression in the pure Python hstore result processor (when use_native_hstore=False) that could hang on malformed hstore text containing unterminated quoted segments with backslashes.