From 99f17ae0aaf1071f1c0777d0893e6dee32bad951f6996f534b0844f7ea8be1d4 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Fri, 22 Jun 2018 06:00:40 +0000 Subject: [PATCH] Accepting request 618391 from home:frispete:python MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - update to version 1.2.8: * orm + [orm] [bug] Fixed regression in 1.2.7 caused by #4228, which itself was fixing a 1.2-level regression, where the query_cls callable passed to a Session was assumed to be a subclass of Query with class method availability, as opposed to an arbitrary callable. In particular, the dogpile caching example illustrates query_cls as a function and not a Query subclass. References: #4256 + [orm] [bug] Fixed a long-standing regression that occurred in version 1.0, which prevented the use of a custom MapperOption that alters the _params of a Query object for a lazy load, since the lazy loader itself would overwrite those parameters. This applies to the “temporal range” example on the wiki. Note however that the Query.populate_existing() method is now required in order to rewrite the mapper options associated with an object already loaded in the identity map. As part of this change, a custom defined MapperOption will now cause lazy loaders related to the target object to use a non- baked query by default unless the MapperOption._generate_cache_key() method is implemented. In particular, this repairs one regression which occured when using the dogpile.cache “advanced” example, which was not returning cached results and instead emitting SQL due to an incompatibility with the baked query loader; with the change, the RelationshipCache option included for many releases in the dogpile example will disable the “baked” query altogether. Note that the dogpile example is also modernized to avoid both of these issues as part of issue #4258. References: #4128 + [orm] [bug] Fixed bug where the new OBS-URL: https://build.opensuse.org/request/show/618391 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-SQLAlchemy?expand=0&rev=112 --- SQLAlchemy-1.2.7.tar.gz | 3 - SQLAlchemy-1.2.8.tar.gz | 3 + python-SQLAlchemy.changes | 120 ++++++++++++++++++++++++++++++++++++++ python-SQLAlchemy.spec | 2 +- 4 files changed, 124 insertions(+), 4 deletions(-) delete mode 100644 SQLAlchemy-1.2.7.tar.gz create mode 100644 SQLAlchemy-1.2.8.tar.gz diff --git a/SQLAlchemy-1.2.7.tar.gz b/SQLAlchemy-1.2.7.tar.gz deleted file mode 100644 index 86aebe0..0000000 --- a/SQLAlchemy-1.2.7.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d6cda03b0187d6ed796ff70e87c9a7dce2c2c9650a7bc3c022cd331416853c31 -size 5571719 diff --git a/SQLAlchemy-1.2.8.tar.gz b/SQLAlchemy-1.2.8.tar.gz new file mode 100644 index 0000000..58a9749 --- /dev/null +++ b/SQLAlchemy-1.2.8.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d5f08f714a886a1382c18be501e614bce50d362384dc089474019ce0768151c +size 5586724 diff --git a/python-SQLAlchemy.changes b/python-SQLAlchemy.changes index b29b7ce..90dbfd6 100644 --- a/python-SQLAlchemy.changes +++ b/python-SQLAlchemy.changes @@ -1,3 +1,123 @@ +------------------------------------------------------------------- +Thu Jun 21 23:01:18 UTC 2018 - hpj@urpla.net + +- update to version 1.2.8: + * orm + + [orm] [bug] Fixed regression in 1.2.7 caused by #4228, which + itself was fixing a 1.2-level regression, where the query_cls + callable passed to a Session was assumed to be a subclass of + Query with class method availability, as opposed to an + arbitrary callable. In particular, the dogpile caching example + illustrates query_cls as a function and not a Query subclass. + References: #4256 + + [orm] [bug] Fixed a long-standing regression that occurred in + version 1.0, which prevented the use of a custom MapperOption + that alters the _params of a Query object for a lazy load, + since the lazy loader itself would overwrite those parameters. + This applies to the “temporal range” example on the wiki. Note + however that the Query.populate_existing() method is now + required in order to rewrite the mapper options associated with + an object already loaded in the identity map. + As part of this change, a custom defined MapperOption will now + cause lazy loaders related to the target object to use a non- + baked query by default unless the + MapperOption._generate_cache_key() method is implemented. In + particular, this repairs one regression which occured when + using the dogpile.cache “advanced” example, which was not + returning cached results and instead emitting SQL due to an + incompatibility with the baked query loader; with the change, + the RelationshipCache option included for many releases in the + dogpile example will disable the “baked” query altogether. Note + that the dogpile example is also modernized to avoid both of + these issues as part of issue #4258. References: #4128 + + [orm] [bug] Fixed bug where the new + baked.Result.with_post_criteria() method would not interact + with a subquery-eager loader correctly, in that the “post + criteria” would not be applied to embedded subquery + eager loaders. This is related to #4128 in that the post + criteria feature is now used by the lazy loader. + + [orm] [bug] Updated the dogpile.caching example to include new + structures that accommodate for the “baked” query system, which + is used by default within lazy loaders and some eager + relationship loaders. The dogpile.caching “relationship_caching” + and “advanced” examples were also broken due to #4256. The + issue here is also worked-around by the fix in #4128. + References: #4258 + * engine + + [engine] [bug] Fixed connection pool issue whereby if a + disconnection error were raised during the connection pool’s + “reset on return” sequence in conjunction with an explicit + transaction opened against the enclosing Connection object + (such as from calling Session.close() without a rollback or + commit, or calling Connection.close() without first closing a + transaction declared with Connection.begin()), a double-checkin + would result, which could then lead towards concurrent + checkouts of the same connection. The double-checkin condition + is now prevented overall by an assertion, as well as the + specific double-checkin scenario has been fixed. + References: #4252 + + [engine] [bug] Fixed a reference leak issue where the values of + the parameter dictionary used in a statement execution would + remain referenced by the “compiled cache”, as a result of + storing the key view used by Python 3 dictionary keys(). Pull + request courtesy Olivier Grisel. + * sql + + [sql] [bug] Fixed issue where the “ambiguous literal” error + message used when interpreting literal values as SQL expression + values would encounter a tuple value, and fail to format the + message properly. Pull request courtesy Miguel Ventura. + * mssql + + [mssql] [bug] Fixed a 1.2 regression caused by #4061 where the + SQL Server “BIT” type would be considered to be “native + boolean”. The goal here was to avoid creating a CHECK + constraint on the column, however the bigger issue is that the + BIT value does not behave like a true/false constant and cannot + be interpreted as a standalone expression, e.g. “WHERE + ”. The SQL Server dialect now goes back to being non- + native boolean, but with an extra flag that still avoids + creating the CHECK constraint. References: #4250 + * oracle + + [oracle] [bug] The Oracle BINARY_FLOAT and BINARY_DOUBLE + datatypes now participate within cx_Oracle.setinputsizes(), + passing along NATIVE_FLOAT, so as to support the NaN value. + Additionally, oracle.BINARY_FLOAT, oracle.BINARY_DOUBLE and + oracle.DOUBLE_PRECISION now subclass Float, since these are + floating point datatypes, not decimal. These datatypes were + already defaulting the Float.asdecimal flag to False in line + with what Float already does. References: #4264 + + [oracle] [bug] Added reflection capabilities for the + oracle.BINARY_FLOAT, oracle.BINARY_DOUBLE datatypes. + + [oracle] [bug] Altered the Oracle dialect such that when an + Integer type is in use, the cx_Oracle.NUMERIC type is set up + for setinputsizes(). In SQLAlchemy 1.1 and earlier, + cx_Oracle.NUMERIC was passed for all numeric types + unconditionally, and in 1.2 this was removed to allow for + better numeric precision. However, for integers, some + database/client setups will fail to coerce boolean values + True/False into integers which introduces regressive behavior + when using SQLAlchemy 1.2. Overall, the setinputsizes logic + seems like it will need a lot more flexibility going forward so + this is a start for that. References: #4259 + * misc + + [bug] [ext] The horizontal sharding extension now makes use of + the identity token added to ORM identity keys as part of #4137, + when an object refresh or column-based deferred load or + unexpiration operation occurs. Since we know the “shard” that + the object originated from, we make use of this value when + refreshing, thereby avoiding queries against other shards that + don’t match this object’s identity in any case. + References: #4247 + + [bug] [ext] Fixed a race condition which could occur if automap + AutomapBase.prepare() were used within a multi-threaded context + against other threads which may call configure_mappers() as a + result of use of other mappers. The unfinished mapping work of + automap is particularly sensitive to being pulled in by a + configure_mappers() step leading to errors. References: #4266 + + [bug] [tests] Fixed a bug in the test suite where if an + external dialect returned None for server_version_info, the + exclusion logic would raise an AttributeError. + References: #4249 + ------------------------------------------------------------------- Sat Apr 21 16:35:48 UTC 2018 - arun@gmx.de diff --git a/python-SQLAlchemy.spec b/python-SQLAlchemy.spec index ca892d0..47c0c83 100644 --- a/python-SQLAlchemy.spec +++ b/python-SQLAlchemy.spec @@ -20,7 +20,7 @@ %define oldpython python %bcond_without tests Name: python-SQLAlchemy -Version: 1.2.7 +Version: 1.2.8 Release: 0 Summary: Database Abstraction Library License: MIT