Change8

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.

Affected Symbols