Released: April 15, 2019
[bug] [orm] Fixed a regression in 1.2 due to the introduction of baked queries for
relationship lazy loaders, where a race condition is created during the
generation of the "lazy clause" which occurs within a memoized attribute. If
two threads initialize the memoized attribute concurrently, the baked query
could be generated with bind parameter keys that are then replaced with new
keys by the next run, leading to a lazy load query that specifies the
related criteria as
None. The fix establishes that the parameter names
are fixed before the new clause and parameter objects are generated, so that
the names are the same every time.
[bug] [oracle] Added support for reflection of the
NCHARdatatype to the Oracle
dialect, and added
NCHARto the list of types exported by the
[bug] [examples] Fixed bug in large_resultsets example case where a re-named "id" variable
due to code reformatting caused the test to fail. Pull request courtesy
[bug] [mssql] A commit() is emitted after an isolation level change to SNAPSHOT, as both
pyodbc and pymssql open an implicit transaction which blocks subsequent SQL
from being emitted in the current transaction.
[bug] [engine] Comparing two objects of
__eq__()did not take port
number into consideration, two objects differing only by port number were
considered equal. Port comparison is now added in
URL, objects differing by port number are now not equal.
__ne__()was not implemented for
caused unexpected result when
!=was used in Python2, since there are no
implied relationships among the comparison operators in Python2.