Subject: CVS commit: pkgsrc/databases/py-sqlalchemy
From: Adam Ciarcinski
Date: 2019-07-03 22:19:11
Message id: 20190703201911.8BDACFBF4@cvs.NetBSD.org

Log Message:
py-sqlalchemy: updated to 1.3.5

1.3.5

orm

[orm] [bug]
Fixed a series of related bugs regarding joined table inheritance more than two \ 
levels deep, in conjunction with modification to primary key values, where those \ 
primary key columns are also linked together in a foreign key relationship as is \ 
typical for joined table inheritance. The intermediary table in a three-level \ 
inheritance hierachy will now get its UPDATE if only the primary key value has \ 
changed and passive_updates=False (e.g. foreign key constraints not being \ 
enforced), whereas before it would be skipped; similarly, with \ 
passive_updates=True (e.g. ON UPDATE CASCADE in effect), the third-level table \ 
will not receive an UPDATE statement as was the case earlier which would fail \ 
since CASCADE already modified it. In a related issue, a relationship linked to \ 
a three-level inheritance hierarchy on the primary key of an intermediary table \ 
of a joined-inheritance hierarchy will also correctly have its foreign key \ 
column updated when the parent object’s primary key is modif
ied, even if that parent object is a subclass of the linked parent class, \ 
whereas before these classes would not be counted.

[orm] [bug]
Fixed bug where the Mapper.all_orm_descriptors accessor would return an entry \ 
for the Mapper itself under the declarative __mapper___ key, when this is not a \ 
descriptor. The .is_attribute flag that’s present on all InspectionAttr \ 
objects is now consulted, which has also been modified to be True for an \ 
association proxy, as it was erroneously set to False for this object.

[orm] [bug]
Fixed regression in Query.join() where the aliased=True flag would not properly \ 
apply clause adaptation to filter criteria, if a previous join were made to the \ 
same entity. This is because the adapters were placed in the wrong order. The \ 
order has been reversed so that the adapter for the most recent aliased=True \ 
call takes precedence as was the case in 1.2 and earlier. This broke the \ 
“elementtree” examples among other things.

[orm] [bug] [py3k]
Replaced the Python compatbility routines for getfullargspec() with a fully \ 
vendored version from Python 3.3. Originally, Python was emitting deprecation \ 
warnings for this function in Python 3.8 alphas. While this change was reverted, \ 
it was observed that Python 3 implementations for getfullargspec() are an order \ 
of magnitude slower as of the 3.4 series where it was rewritten against \ 
Signature. While Python plans to improve upon this situation, SQLAlchemy \ 
projects for now are using a simple replacement to avoid any future issues.

[orm] [bug]
Reworked the attribute mechanics used by AliasedClass to no longer rely upon \ 
calling __getattribute__ on the MRO of the wrapped class, and to instead resolve \ 
the attribute normally on the wrapped class using getattr(), and then \ 
unwrap/adapt that. This allows a greater range of attribute styles on the mapped \ 
class including special __getattr__() schemes; but it also makes the code \ 
simpler and more resilient in general.

sql

[sql] [bug]
Fixed a series of quoting issues which all stemmed from the concept of the \ 
literal_column() construct, which when being “proxied” through a subquery to \ 
be referred towards by a label that matches its text, the label would not have \ 
quoting rules applied to it, even if the string in the Label were set up as a \ 
quoted_name construct. Not applying quoting to the text of the Label is a bug \ 
because this text is strictly a SQL identifier name and not a SQL expression, \ 
and the string should not have quotes embedded into it already unlike the \ 
literal_column() which it may be applied towards. The existing behavior of a \ 
non-labeled literal_column() being propagated as is on the outside of a subquery \ 
is maintained in order to help with manual quoting schemes, although it’s not \ 
clear if valid SQL can be generated for such a construct in any case.

postgresql

[postgresql] [bug]
Fixed bug where PostgreSQL dialect could not correctly reflect an ENUM datatype \ 
that has no members, returning a list with None for the get_enums() call and \ 
raising a TypeError when reflecting a column which has such a datatype. The \ 
inspection now returns an empty list.

[postgresql] [usecase]
Added support for column sorting flags when reflecting indexes for PostgreSQL, \ 
including ASC, DESC, NULLSFIRST, NULLSLAST. Also adds this facility to the \ 
reflection system in general which can be applied to other dialects in future \ 
releases. Pull request courtesy Eli Collins.

mysql

[mysql] [bug]
Fixed bug where MySQL ON DUPLICATE KEY UPDATE would not accommodate setting a \ 
column to the value NULL.

Files:
RevisionActionfile
1.54modifypkgsrc/databases/py-sqlalchemy/Makefile
1.49modifypkgsrc/databases/py-sqlalchemy/distinfo