Next | Query returned 82 messages, browsing 21 to 30 | Previous

History of commit frequency

CVS Commit History:


   2019-08-28 08:32:52 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
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.
   2019-08-26 12:26:49 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-sqlalchemy: updated to 1.3.7

1.3.7

Released: August 14, 2019
orm

[orm] [bug]
Fixed regression caused by new selectinload for many-to-one logic where a \ 
primaryjoin condition not based on real foreign keys would cause KeyError if a \ 
related object did not exist for a given key value on the parent object.

[orm] [bug]
Fixed bug where using Query.first() or a slice expression in conjunction with a \ 
query that has an expression based “offset” applied would raise TypeError, \ 
due to an “or” conditional against “offset” that did not expect it to be \ 
a SQL expression as opposed to an integer or None.

sql

[sql] [bug]
Fixed issue where Index object which contained a mixture of functional \ 
expressions which were not resolvable to a particular column, in combination \ 
with string-based column names, would fail to initialize its internal state \ 
correctly leading to failures during DDL compilation.

[sql] [bug]
Fixed bug where TypeEngine.column_expression() method would not be applied to \ 
subsequent SELECT statements inside of a UNION or other CompoundSelect, even \ 
though the SELECT statements are rendered at the topmost level of the statement. \ 
New logic now differentiates between rendering the column expression, which is \ 
needed for all SELECTs in the list, vs. gathering the returned data type for the \ 
result row, which is needed only for the first SELECT.

[sql] [bug]
Fixed issue where internal cloning of SELECT constructs could lead to a key \ 
error if the copy of the SELECT changed its state such that its list of columns \ 
changed. This was observed to be occurring in some ORM scenarios which may be \ 
unique to 1.3 and above, so is partially a regression fix.

postgresql

[postgresql] [usecase]
Added new dialect flag for the psycopg2 dialect, executemany_mode which \ 
supersedes the previous experimental use_batch_mode flag. executemany_mode \ 
supports both the “execute batch” and “execute values” functions \ 
provided by psycopg2, the latter which is used for compiled insert() constructs. \ 
Pull request courtesy Yuval Dinari.
See also
Psycopg2 Fast Execution Helpers

mysql

[mysql] [bug]
The MySQL dialects will emit “SET NAMES” at the start of a connection when \ 
charset is given to the MySQL driver, to appease an apparent behavior observed \ 
in MySQL 8.0 that raises a collation error when a UNION includes string columns \ 
unioned against columns of the form CAST(NULL AS CHAR(..)), which is what \ 
SQLAlchemy’s polymorphic_union function does. The issue seems to have affected \ 
PyMySQL for at least a year, however has recently appeared as of mysqlclient \ 
1.4.4 based on changes in how this DBAPI creates a connection. As the presence \ 
of this directive impacts three separate MySQL charset settings which each have \ 
intricate effects based on their presense, SQLAlchemy will now emit the \ 
directive on new connections to ensure correct behavior.

[mysql] [bug]
Added another fix for an upstream MySQL 8 issue where a case sensitive table \ 
name is reported incorrectly in foreign key constraint reflection, this is an \ 
extension of the fix first added for 4344 which affects a case sensitive column \ 
name. The new issue occurs through MySQL 8.0.17, so the general logic of the \ 
88718 fix remains in place.
See also
https://bugs.mysql.com/bug.php?id=96365 - upstream bug

[mysql] [usecase]
Added reserved words ARRAY and MEMBER to the MySQL reserved words list, as MySQL \ 
8.0 has now made these reserved.

sqlite

[sqlite] [bug]
The dialects that support json are supposed to take arguments json_serializer \ 
and json_deserializer at the create_engine() level, however the SQLite dialect \ 
calls them _json_serilizer and _json_deserilalizer. The names have been \ 
corrected, the old names are accepted with a change warning, and these \ 
parameters are now documented as create_engine.json_serializer and \ 
create_engine.json_deserializer.

[sqlite] [bug]
Fixed bug where usage of “PRAGMA table_info” in SQLite dialect meant that \ 
reflection features to detect for table existence, list of table columns, and \ 
list of foreign keys, would default to any table in any attached database, when \ 
no schema name was given and the table did not exist in the base schema. The fix \ 
explicitly runs PRAGMA for the ‘main’ schema and then the ‘temp’ schema \ 
if the ‘main’ returned no rows, to maintain the behavior of tables + temp \ 
tables in the “no schema” namespace, attached tables only in the \ 
“schema” namespace.

mssql

[mssql] [usecase]
Added new mssql.try_cast() construct for SQL Server which emits “TRY_CAST” \ 
syntax. Pull request courtesy Leonel Atencio.

misc

[bug] [events]
Fixed issue in event system where using the once=True flag with dynamically \ 
generated listener functions would cause event registration of future events to \ 
fail if those listener functions were garbage collected after they were used, \ 
due to an assumption that a listened function is strongly referenced. The \ 
“once” wrapped is now modified to strongly reference the inner function \ 
persistently, and documentation is updated that using “once” does not imply \ 
automatic de-registration of listener functions.

1.3.6

orm

[orm] [feature]
Added new loader option method Load.options() which allows loader options to be \ 
constructed hierarchically, so that many sub-options can be applied to a \ 
particular path without needing to call defaultload() many times. Thanks to \ 
Alessio Bogon for the idea.

[orm] [bug]
Fixed regression caused by 4365 where a join from an entity to itself without \ 
using aliases no longer raises an informative error message, instead failing on \ 
an assertion. The informative error condition has been restored.

[orm] [bug]
Fixed an issue where the orm._ORMJoin.join() method, which is a \ 
not-internally-used ORM-level method that exposes what is normally an internal \ 
process of Query.join(), did not propagate the full and outerjoin keyword \ 
arguments correctly. Pull request courtesy Denis Kataev.

[orm] [bug]
Fixed bug where a many-to-one relationship that specified uselist=True would \ 
fail to update correctly during a primary key change where a related column \ 
needs to change.

[orm] [bug]
Fixed bug where the detection for many-to-one or one-to-one use with a \ 
“dynamic” relationship, which is an invalid configuration, would fail to \ 
raise if the relationship were configured with uselist=True. The current fix is \ 
that it warns, instead of raises, as this would otherwise be backwards \ 
incompatible, however in a future release it will be a raise.

[orm] [bug]
Fixed bug where a synonym created against a mapped attribute that does not exist \ 
yet, as is the case when it refers to backref before mappers are configured, \ 
would raise recursion errors when trying to test for attributes on it which \ 
ultimately don’t exist (as occurs when the classes are run through Sphinx \ 
autodoc), as the unconfigured state of the synonym would put it into an \ 
attribute not found loop.

[orm] [performance]
The optimization applied to selectin loading in 4340 where a JOIN is not needed \ 
to eagerly load related items is now applied to many-to-one relationships as \ 
well, so that only the related table is queried for a simple join condition. In \ 
this case, the related items are queried based on the value of a foreign key \ 
column on the parent; if these columns are deferred or otherwise not loaded on \ 
any of the parent objects in the collection, the loader falls back to the JOIN \ 
method.

engine

[engine] [bug]
Fixed bug where using reflection function such as MetaData.reflect() with an \ 
Engine object that had execution options applied to it would fail, as the \ 
resulting OptionEngine proxy object failed to include a .engine attribute used \ 
within the reflection routines.

sql

[sql] [bug]
Adjusted the initialization for Enum to minimize how often it invokes the \ 
.__members__ attribute of a given PEP-435 enumeration object, to suit the case \ 
where this attribute is expensive to invoke, as is the case for some popular \ 
third party enumeration libraries.

[sql] [bug] [postgresql]
oduce the correct operator precedence in combination with the array index operator.

[sql] [bug]
Fixed an unlikely issue where the “corresponding column” routine for unions \ 
and other CompoundSelect objects could return the wrong column in some \ 
overlapping column situtations, thus potentially impacting some ORM operations \ 
when set operations are in use, if the underlying select() constructs were used \ 
previously in other similar kinds of routines, due to a cached value not being \ 
cleared.

postgresql

[postgresql] [usecase]
Added support for reflection of indexes on PostgreSQL partitioned tables, which \ 
was added to PostgreSQL as of version 11.

[postgresql] [usecase]
Added support for multidimensional Postgresql array literals via nesting the \ 
postgresql.array object within another one. The multidimensional array type is \ 
detected automatically.
See also
postgresql.array

mysql

[mysql] [bug]
Fixed bug where the special logic to render “NULL” for the TIMESTAMP \ 
datatype when nullable=True would not work if the column’s datatype were a \ 
TypeDecorator or a Variant. The logic now ensures that it unwraps down to the \ 
original TIMESTAMP so that this special case NULL keyword is correctly rendered \ 
when requested.

[mysql] [bug]
Enhanced MySQL/MariaDB version string parsing to accommodate for exotic MariaDB \ 
version strings where the “MariaDB” word is embedded among other \ 
alphanumeric characters such as “MariaDBV1”. This detection is critical in \ 
order to correctly accommodate for API features that have split between MySQL \ 
and MariaDB such as the “transaction_isolation” system variable.

sqlite

[sqlite] [usecase]
Added support for composite (tuple) IN operators with SQLite, by rendering the \ 
VALUES keyword for this backend. As other backends such as DB2 are known to use \ 
the same syntax, the syntax is enabled in the base compiler using a \ 
dialect-level flag tuple_in_values. The change also includes support for \ 
“empty IN tuple” expressions for SQLite when using “in_()” between a \ 
tuple value and an empty set.

mssql

[mssql] [bug]
Ensured that the queries used to reflect indexes and view definitions will \ 
explicitly CAST string parameters into NVARCHAR, as many SQL Server drivers \ 
frequently treat string values, particularly those with non-ascii characters or \ 
larger string values, as TEXT which often don’t compare correctly against \ 
VARCHAR characters in SQL Server’s information schema tables for some reason. \ 
These CAST operations already take place for reflection queries against SQL \ 
Server information_schema. tables but were missing from three additional queries \ 
that are against sys. tables.
   2019-07-03 22:19:11 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
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.
   2019-05-29 23:11:51 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-sqlalchemy: updated to 1.3.4

1.3.4

orm
[orm] [bug]
Fixed issue where the AttributeEvents.active_history flag would not be set for \ 
an event listener that propgated to a subclass via the AttributeEvents.propagate \ 
flag. This bug has been present for the full span of the AttributeEvents system.

[orm] [bug]
Fixed regression where new association proxy system was still not proxying \ 
hybrid attributes when they made use of the @hybrid_property.expression \ 
decorator to return an alternate SQL expression, or when the hybrid returned an \ 
arbitrary PropComparator, at the expression level. This involved futher \ 
generalization of the heuristics used to detect the type of object being proxied \ 
at the level of QueryableAttribute, to better detect if the descriptor \ 
ultimately serves mapped classes or column expressions.

[orm] [bug]
Applied the mapper “configure mutex” against the declarative class mapping \ 
process, to guard against the race which can occur if mappers are used while \ 
dynamic module import schemes are still in the process of configuring mappers \ 
for related classes. This does not guard against all possible race conditions, \ 
such as if the concurrent import has not yet encountered the dependent classes \ 
as of yet, however it guards against as much as possible within the SQLAlchemy \ 
declarative process.

[orm] [bug]
A warning is now emitted for the case where a transient object is being merged \ 
into the session with Session.merge() when that object is already transient in \ 
the Session. This warns for the case where the object would normally be \ 
double-inserted.

[orm] [bug]
Fixed regression in new relationship m2o comparison logic first introduced at \ 
Improvement to the behavior of many-to-one query expressions when comparing to \ 
an attribute that is persisted as NULL and is in an un-fetched state in the \ 
mapped instance. Since the attribute has no explicit default, it needs to \ 
default to NULL when accessed in a persistent setting.

engine
[engine] [bug] [postgresql]
Moved the “rollback” which occurs during dialect initialization so that it \ 
occurs after additional dialect-specific initialize steps, in particular those \ 
of the psycopg2 dialect which would inadvertently leave transactional state on \ 
the first new connection, which could interfere with some psycopg2-specific APIs \ 
which require that no transaction is started. Pull request courtesy Matthew \ 
Wilkes.

sql
[sql] [bug]
Fixed that the GenericFunction class was inadvertently registering itself as one \ 
of the named functions. Pull request courtesy Adrien Berchet.

[sql] [bug]
Fixed issue where double negation of a boolean column wouldn’t reset the \ 
“NOT” operator.

[sql] [bug]
The GenericFunction namespace is being migrated so that function names are \ 
looked up in a case-insensitive manner, as SQL functions do not collide on case \ 
sensitive differences nor is this something which would occur with user-defined \ 
functions or stored procedures. Lookups for functions declared with \ 
GenericFunction now use a case insensitive scheme, however a deprecation case is \ 
supported which allows two or more GenericFunction objects with the same name of \ 
different cases to exist, which will cause case sensitive lookups to occur for \ 
that particular name, while emitting a warning at function registration time. \ 
Thanks to Adrien Berchet for a lot of work on this complicated feature.

postgresql
[postgresql] [bug] [orm]
Fixed an issue where the “number of rows matched” warning would emit even if \ 
the dialect reported “supports_sane_multi_rowcount=False”, as is the case \ 
for psycogp2 with use_batch_mode=True and others.

mysql
[mysql] [bug]
Added support for DROP CHECK constraint which is required by MySQL 8.0.16 to \ 
drop a CHECK constraint; MariaDB supports plain DROP CONSTRAINT. The logic \ 
distinguishes between the two syntaxes by checking the server version string for \ 
MariaDB presence. Alembic migrations has already worked around this issue by \ 
implementing its own DROP for MySQL / MariaDB CHECK constraints, however this \ 
change implements it straight in Core so that its available for general use. \ 
Pull request courtesy Hannes Hansen.

mssql
[mssql] [feature]
Added support for SQL Server filtered indexes, via the mssql_where parameter \ 
which works similarly to that of the postgresql_where index function in the \ 
PostgreSQL dialect.

[mssql] [bug]
Added error code 20047 to “is_disconnect” for pymssql. Pull request courtesy \ 
Jon Schuff.

misc
[misc] [bug]
Removed errant “sqla_nose.py” symbol from MANIFEST.in which created an \ 
undesirable warning message.
   2019-04-29 12:26:27 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-sqlalchemy: updated to 1.3.3

1.3.3

orm

[orm] [bug]

Fixed 1.3 regression in new “ambiguous FROMs” query logic introduced in \ 
Query.join() handles ambiguity in deciding the “left” side more explicitly \ 
where a Query that explicitly places an entity in the FROM clause with \ 
Query.select_from() and also joins to it using Query.join() would later cause an \ 
“ambiguous FROM” error if that entity were used in additional joins, as the \ 
entity appears twice in the “from” list of the Query. The fix resolves this \ 
ambiguity by folding the standalone entity into the join that it’s already a \ 
part of in the same way that ultimately happens when the SELECT statement is \ 
rendered.

[orm] [bug]

Adjusted the Query.filter_by() method to not call and() internally against \ 
multiple criteria, instead passing it off to Query.filter() as a series of \ 
criteria, instead of a single criteria. This allows Query.filter_by() to defer \ 
to Query.filter()’s treatment of variable numbers of clauses, including the \ 
case where the list is empty. In this case, the Query object will not have a \ 
.whereclause, which allows subsequent “no whereclause” methods like \ 
Query.select_from() to behave consistently.

postgresql

[postgresql] [bug]

Fixed regression from release 1.3.2 caused by 4562 where a URL that contained \ 
only a query string and no hostname, such as for the purposes of specifying a \ 
service file with connection information, would no longer be propagated to \ 
psycopg2 properly. The change in 4562 has been adjusted to further suit \ 
psycopg2’s exact requirements, which is that if there are any connection \ 
parameters whatsoever, the “dsn” parameter is no longer required, so in this \ 
case the query string parameters are passed alone.

mssql

[mssql] [bug]

Fixed issue in SQL Server dialect where if a bound parameter were present in an \ 
ORDER BY expression that would ultimately not be rendered in the SQL Server \ 
version of the statement, the parameters would still be part of the execution \ 
parameters, leading to DBAPI-level errors. Pull request courtesy Matt Lewellyn.

misc

[bug] [pool]

Fixed behavioral regression as a result of deprecating the “use_threadlocal” \ 
flag for Pool, where the SingletonThreadPool no longer makes use of this option \ 
which causes the “rollback on return” logic to take place when the same \ 
Engine is used multiple times in the context of a transaction to connect or \ 
implicitly execute, thereby cancelling the transaction. While this is not the \ 
recommended way to work with engines and connections, it is nonetheless a \ 
confusing behavioral change as when using SingletonThreadPool, the transaction \ 
should stay open regardless of what else is done with the same engine in the \ 
same thread. The use_threadlocal flag remains deprecated however the \ 
SingletonThreadPool now implements its own version of the same logic.

[bug] [ext]

Fixed bug where using copy.copy() or copy.deepcopy() on MutableList would cause \ 
the items within the list to be duplicated, due to an inconsistency in how \ 
Python pickle and copy both make use of __getstate__() and __setstate__() \ 
regarding lists. In order to resolve, a __reduce_ex__ method had to be added to \ 
MutableList. In order to maintain backwards compatibility with existing pickles \ 
based on __getstate__(), the __setstate__() method remains as well; the test \ 
suite asserts that pickles made against the old version of the class can still \ 
be deserialized by the pickle module.

1.3.2

orm

[orm] [bug] [ext]

Restored instance-level support for plain Python descriptors, e.g. @property \ 
objects, in conjunction with association proxies, in that if the proxied object \ 
is not within ORM scope at all, it gets classified as “ambiguous” but is \ 
proxed directly. For class level access, a basic class level``__get__()`` now \ 
returns the AmbiguousAssociationProxyInstance directly, rather than raising its \ 
exception, which is the closest approximation to the previous behavior that \ 
returned the AssociationProxy itself that’s possible. Also improved the \ 
stringification of these objects to be more descriptive of current state.

[orm] [bug]

Fixed bug where use of with_polymorphic() or other aliased construct would not \ 
properly adapt when the aliased target were used as the \ 
Select.correlate_except() target of a subquery used inside of a \ 
column_property(). This required a fix to the clause adaption mechanics to \ 
properly handle a selectable that shows up in the “correlate except” list, \ 
in a similar manner as which occurs for selectables that show up in the \ 
“correlate” list. This is ultimately a fairly fundamental bug that has \ 
lasted for a long time but it is hard to come across it.

[orm] [bug]

Fixed regression where a new error message that was supposed to raise when \ 
attempting to link a relationship option to an AliasedClass without using \ 
PropComparator.of_type() would instead raise an AttributeError. Note that in \ 
1.3, it is no longer valid to create an option path from a plain mapper \ 
relationship to an AliasedClass without using PropComparator.of_type().

sql

[sql] [bug] [documentation]

Thanks to TypeEngine methods bind_expression, column_expression work with \ 
Variant, type-specific types, we no longer need to rely on recipes that subclass \ 
dialect-specific types directly, TypeDecorator can now handle all cases. \ 
Additionally, the above change made it slightly less likely that a direct \ 
subclass of a base SQLAlchemy type would work as expected, which could be \ 
misleading. Documentation has been updated to use TypeDecorator for these \ 
examples including the PostgreSQL “ArrayOfEnum” example datatype and direct \ 
support for the “subclass a type directly” has been removed.

postgresql

[postgresql] [feature]

Added support for parameter-less connection URLs for the psycopg2 dialect, \ 
meaning, the URL can be passed to create_engine() as \ 
"postgresql+psycopg2://" with no additional arguments to indicate an \ 
empty DSN passed to libpq, which indicates to connect to “localhost” with no \ 
username, password, or database given. Pull request courtesy Julian Mehnle.

[postgresql] [bug]

Modified the Select.with_for_update.of parameter so that if a join or other \ 
composed selectable is passed, the individual Table objects will be filtered \ 
from it, allowing one to pass a join() object to the parameter, as occurs \ 
normally when using joined table inheritance with the ORM.
   2019-04-02 10:59:13 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-sqlalchemy: updated to 1.3.1

1.3.1
orm
[orm] [bug] [ext] Fixed regression where an association proxy linked to a \ 
synonym would no longer work, both at instance level and at class level.

mssql

[mssql] [bug] 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.

This change is also backported to: 1.2.19

[mssql] [bug] Fixed regression in SQL Server reflection due to 4393 where the \ 
removal of open-ended **kw from the Float datatype caused reflection of this \ 
type to fail due to a “scale” argument being passed.

1.3.0
orm

[orm] [feature] 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.

[orm] [feature] 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 \ 
Embedding SQL Insert/Update Expressions into a Flush 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.

engine

[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 using repr(), so that newlines are rendered as is. Pull \ 
request courtesy Nate Clark.

See also
Changed StatementError formatting (newlines and %s)

sql
[sql] [bug] The Alias class and related subclasses CTE, Lateral and TableSample \ 
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.

schema
[schema] [feature] 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. Two Table objects present in the same \ 
MetaData collection can still refer to each other even if the reflection of the \ 
two tables occurred separately
   2019-02-20 16:56:15 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-sqlalchemy: updated to 1.2.18

1.2.18:
orm

[orm] [bug] Fixed a regression in 1.2 where a wildcard/load_only loader option \ 
would not work correctly against a loader path where of_type() were used to \ 
limit to a particular subclass. The fix only works for of_type() of a simple \ 
subclass so far, not a with_polymorphic entity which will be addressed in a \ 
separate issue; it is unlikely this latter case was working previously.

[orm] [bug] Fixed fairly simple but critical issue where the \ 
SessionEvents.pending_to_persistent() event would be invoked for objects not \ 
just when they move from pending to persistent, but when they were also already \ 
persistent and just being updated, thus causing the event to be invoked for all \ 
objects on every update.

sql
[sql] [bug] Fixed issue where the JSON type had a read-only \ 
JSON.should_evaluate_none attribute, which would cause failures when making use \ 
of the TypeEngine.evaluates_none() method in conjunction with this type. Pull \ 
request courtesy Sanjana S.

mysql
[mysql] [bug] Fixed a second regression caused by 4344 (the first was 4361), \ 
which works around MySQL issue 88718, where the lower casing function used was \ 
not correct for Python 2 with OSX/Windows casing conventions, which would then \ 
raise TypeError. Full coverage has been added to this logic so that every \ 
codepath is exercised in a mock style for all three casing conventions on all \ 
versions of Python. MySQL 8.0 has meanwhile fixed issue 88718 so the workaround \ 
is only applies to a particular span of MySQL 8.0 versions.

sqlite
[sqlite] [bug] Fixed bug in SQLite DDL where using an expression as a server \ 
side default required that it be contained within parenthesis to be accepted by \ 
the sqlite parser. Pull request courtesy Bartlomiej Biernacki.

mssql
[mssql] [bug] Fixed bug where the SQL Server “IDENTITY_INSERT” logic that \ 
allows an INSERT to proceed with an explicit value on an IDENTITY column was not \ 
detecting the case where Insert.values() were used with a dictionary that \ 
contained a Column as key and a SQL expression as a value
   2019-01-28 11:49:50 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-sqlalchemy: updated to 1.2.17

1.2.17

[orm] [feature] Added new event hooks QueryEvents.before_compile_update() and \ 
QueryEvents.before_compile_delete() which complement \ 
QueryEvents.before_compile() in the case of the Query.update() and \ 
Query.delete() methods.

[orm] [bug] Fixed issue where when using single-table inheritance in conjunction \ 
with a joined inheritance hierarchy that uses “with polymorphic” loading, \ 
the “single table criteria” for that single-table entity could get confused \ 
for that of other entities from the same hierarchy used in the same query.The \ 
adaption of the “single table criteria” is made more specific to the target \ 
entity to avoid it accidentally getting adapted to other tables in the query.

[postgresql] [bug] Revised the query used when reflecting CHECK constraints to \ 
make use of the pg_get_constraintdef function, as the consrc column is being \ 
deprecated in PG 12. Thanks to John A Stevenson for the tip.

[oracle] [bug] Fixed regression in integer precision logic due to the refactor \ 
of the cx_Oracle dialect in 1.2. We now no longer apply the cx_Oracle.NATIVE_INT \ 
type to result columns sending integer values (detected as positive precision \ 
with scale ==0) which encounters integer overflow issues with values that go \ 
beyond the 32 bit boundary. Instead, the output variable is left untyped so that \ 
cx_Oracle can choose the best option
   2019-01-15 12:51:27 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-sqlalchemy: updated to 1.2.16

1.2.16:
engine

[engine] [bug] Fixed a regression introduced in version 1.2 where a refactor of \ 
the SQLAlchemyError base exception class introduced an inappropriate coercion of \ 
a plain string message into Unicode under python 2k, which is not handled by the \ 
Python interpreter for characters outside of the platform’s encoding \ 
(typically ascii). The SQLAlchemyError class now passes a bytestring through \ 
under Py2K for __str__() as is the behavior of exception objects in general \ 
under Py2K, does a safe coercion to unicode utf-8 with backslash fallback for \ 
__unicode__(). For Py3K the message is typically unicode already, but if not is \ 
again safe-coerced with utf-8 with backslash fallback for the __str__() method.

sql

[sql] [bug] [mysql] [oracle] Fixed issue where the DDL emitted for \ 
DropTableComment, which will be used by an upcoming version of Alembic, was \ 
incorrect for the MySQL and Oracle databases.

postgresql

[postgresql] [bug] Fixed issue where a postgresql.ENUM or a custom domain \ 
present in a remote schema would not be recognized within column reflection if \ 
the name of the enum/domain or the name of the schema required quoting. A new \ 
parsing scheme now fully parses out quoted or non-quoted tokens including \ 
support for SQL-escaped quotes.

[postgresql] [bug] Fixed issue where multiple postgresql.ENUM objects referred \ 
to by the same MetaData object would fail to be created if multiple objects had \ 
the same name under different schema names. The internal memoization the \ 
PostgreSQL dialect uses to track if it has created a particular postgresql.ENUM \ 
in the database during a DDL creation sequence now takes schema name into \ 
account.

sqlite

[sqlite] [bug] Reflection of an index based on SQL expressions are now skipped \ 
with a warning, in the same way as that of the Postgresql dialect, where we \ 
currently do not support reflecting indexes that have SQL expressions within \ 
them. Previously, an index with columns of None were produced which would break \ 
tools like Alembic.

misc

Fixed issue in “expanding IN” feature where using the same bound parameter \ 
name more than once in a query would lead to a KeyError within the process of \ 
rewriting the parameters in the query
   2018-12-13 12:46:16 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-sqlalchemy: updated to 1.2.15

1.2.15

orm

[orm] [bug] Fixed bug where the ORM annotations could be incorrect for the \ 
primaryjoin/secondaryjoin a relationship if one used the pattern \ 
ForeignKey(SomeClass.id) in the declarative mappings. This pattern would leak \ 
undesired annotations into the join conditions which can break aliasing \ 
operations done within Query that are not supposed to impact elements in that \ 
join condition. These annotations are now removed up front if present.

[orm] [bug] In continuing with a similar theme as that of very recent 4349, \ 
repaired issue with RelationshipProperty.Comparator.any() and \ 
RelationshipProperty.Comparator.has() where the “secondary” selectable needs \ 
to be explicitly part of the FROM clause in the EXISTS subquery to suit the case \ 
where this “secondary” is a Join object.

[orm] [bug] Fixed regression caused by 4349 where adding the “secondary” \ 
table to the FROM clause for a dynamic loader would affect the ability of the \ 
Query to make a subsequent join to another entity. The fix adds the primary \ 
entity as the first element of the FROM list since Query.join() wants to jump \ 
from that. Version 1.3 will have a more comprehensive solution to this problem \ 
as well.

[orm] [bug] Fixed bug where chaining of mapper options using \ 
RelationshipProperty.of_type() in conjunction with a chained option that refers \ 
to an attribute name by string only would fail to locate the attribute.

orm declarative

[bug] [declarative] [orm] A warning is emitted in the case that a column() \ 
object is applied to a declarative class, as it seems likely this intended to be \ 
a Column object.

misc

Added support for the write_timeout flag accepted by mysqlclient and pymysql to \ 
be passed in the URL string.

Fixed issue where reflection of a PostgreSQL domain that is expressed as an \ 
array would fail to be recognized.

Next | Query returned 82 messages, browsing 21 to 30 | Previous