

ORM Batch inserts with psycopg2 now batch statements with RETURNING in most cases.Enum and Boolean datatypes no longer default to “create constraint”.Connection-level transactions can now be inactive based on subtransaction.New “post compile” bound parameters used for LIMIT/OFFSET in Oracle, SQL Server.Improved column labeling for simple column expressions using CAST or similar.SELECT objects and derived FROM clauses allow for duplicate columns and column labels.Proxying behavior goes away, was also unnecessary in modern usage.Rationale: To behave more like a named tuple rather than a mapping.RowProxy is no longer a “proxy” is now called Row and behaves like an enhanced named tuple.Built-in FROM linting will warn for any potential cartesian products in a SELECT statement.All IN expressions render parameters for each value in the list on the fly (e.g.select(), case() now accept positional expressions.select().join() and outerjoin() add JOIN criteria to the current query, rather than creating a subquery.A SELECT statement is no longer implicitly considered to be a FROM clause.Support for SQL Regular Expression operators.Repaired internal importing conventions such that code linters may work correctly.

