1.3.0
Released: March 4, 2019
-
[feature] [schema] Added new parameters
Table.resolve_fks
and
MetaData.reflect.resolve_fks
which when set to False will
disable the automatic reflection of related tables encountered in
ForeignKey
objects, which can both reduce SQL overhead for omitted
tables as well as avoid tables that can't be reflected for database-specific
reasons. TwoTable
objects present in the sameMetaData
collection can still refer to each other even if the reflection of the two
tables occurred separately.References: #4517
-
[feature] [orm] The
Query.get()
method can now accept a dictionary of attribute keys
and values as a means of indicating the primary key value to load; is
particularly useful for composite primary keys. Pull request courtesy
Sanjana S.References: #4316
-
[feature] [orm] A SQL expression can now be assigned to a primary key attribute for an ORM
flush in the same manner as ordinary attributes as described in
flush_embedded_sql_expressions
where the expression will be evaulated
and then returned to the ORM using RETURNING, or in the case of pysqlite,
works using the cursor.lastrowid attribute.Requires either a database that
supports RETURNING (e.g. Postgresql, Oracle, SQL Server) or pysqlite.References: #3133
-
[bug] [sql] The
Alias
class and related subclassesCTE
,
Lateral
andTableSample
have been reworked so that it is
not possible for a user to construct the objects directly. These constructs
require that the standalone construction function or selectable-bound method
be used to instantiate new objects.References: #4509
-
[engine] [feature] Revised the formatting for
StatementError
when stringified. Each
error detail is broken up over multiple newlines instead of spaced out on a
single line. Additionally, the SQL representation now stringifies the SQL
statement rather than usingrepr()
, so that newlines are rendered as is.
Pull request courtesy Nate Clark.References: #4500