Path to this page:
Subject: CVS commit: pkgsrc/databases/py-sqlalchemy
From: Adam Ciarcinski
Date: 2019-08-28 08:32:52
Message id: 20190828063252.B068AFBF4@cvs.NetBSD.org
Log Message:
py-sqlalchemy: updated to 1.3.8
1.3.8
orm
[orm] [bug]
Fixed bug where Load objects were not pickleable due to mapper/relationship \
state in the internal context dictionary. These objects are now converted to \
picklable using similar techniques as that of other elements within the loader \
option system that have long been serializable.
[orm] [usecase]
Added support for the use of an Enum datatype using Python pep-435 enumeration \
objects as values for use as a primary key column mapped by the ORM. As these \
values are not inherently sortable, as required by the ORM for primary keys, a \
new TypeEngine.sort_key_function attribute is added to the typing system which \
allows any SQL type to implement a sorting for Python objects of its type which \
is consulted by the unit of work. The Enum type then defines this using the \
database value of a given enumeration. The sorting scheme can be also be \
redefined by passing a callable to the Enum.sort_key_function parameter. Pull \
request courtesy Nicolas Caniart.
engine
[engine] [feature]
Added new parameter create_engine.hide_parameters which when set to True will \
cause SQL parameters to no longer be logged, nor rendered in the string \
representation of a StatementError object.
[engine] [bug]
Fixed an issue whereby if the dialect “initialize” process which occurs on \
first connect would encounter an unexpected exception, the initialize process \
would fail to complete and then no longer attempt on subsequent connection \
attempts, leaving the dialect in an un-initialized, or partially initialized \
state, within the scope of parameters that need to be established based on \
inspection of a live connection. The “invoke once” logic in the event system \
has been reworked to accommodate for this occurrence using new, private API \
features that establish an “exec once” hook that will continue to allow the \
initializer to fire off on subsequent connections, until it completes without \
raising an exception. This does not impact the behavior of the existing \
once=True flag within the event system.
postgresql
[postgresql] [bug]
Revised the approach for the just added support for the psycopg2 \
“execute_values()” feature added in 1.3.7. The approach relied upon a \
regular expression that would fail to match for a more complex INSERT statement \
such as one which had subqueries involved. The new approach matches exactly the \
string that was rendered as the VALUES clause.
[postgresql] [bug]
Fixed bug where Postgresql operators such as \
postgresql.ARRAY.Comparator.contains() and \
postgresql.ARRAY.Comparator.contained_by() would fail to function correctly for \
non-integer values when used against a postgresql.array object, due to an \
erroneous assert statement.
[postgresql] [usecase]
Added support for reflection of CHECK constraints that include the special \
PostgreSQL qualifier “NOT VALID”, which can be present for CHECK constraints \
that were added to an exsiting table with the directive that they not be applied \
to existing data in the table. The PostgreSQL dictionary for CHECK constraints \
as returned by Inspector.get_check_constraints() may include an additional entry \
dialect_options which within will contain an entry "not_valid": True \
if this symbol is detected. Pull request courtesy Bill Finn.
sqlite
[sqlite] [bug] [reflection]
Fixed bug where a FOREIGN KEY that was set up to refer to the parent table by \
table name only without the column names would not correctly be reflected as far \
as setting up the “referred columns”, since SQLite’s PRAGMA does not \
report on these columns if they weren’t given explicitly. For some reason this \
was harcoded to assume the name of the local column, which might work for some \
cases but is not correct. The new approach reflects the primary key of the \
referred table and uses the constraint columns list as the referred columns \
list, if the remote column(s) aren’t present in the reflected pragma directly.
Files: