Package Release Info

python-SQLAlchemy-1.3.22-2.1

Update Info: Base Release
Available in Package Hub : 15 SP5 Subpackages

platforms

AArch64
ppc64le
s390x
x86-64

subpackages

python-SQLAlchemy-debuginfo
python-SQLAlchemy-debugsource
python2-SQLAlchemy
python2-SQLAlchemy-debuginfo

Change Logs

* Fri Mar 26 2021 ro@suse.de
- add sqlalchemy-7293b3dc0e9eb3dae84ffd831494b85355df8e73.patch
  fix from upstream for a test breakage at
  test_pyodbc_extra_connect_azure (bsc#1184038)
* Wed Jan 20 2021 jayvdb@gmail.com
- Skip one failing test on Python 3.6
* Sat Dec 19 2020 dmueller@suse.com
- update to 1.3.22:
  * Fixed regression which occured due to #5755 which implemented isolation
  level support for Oracle
  * bugfixes for various engines, see
  https://docs.sqlalchemy.org/en/14/changelog/changelog_13.html#change-1.3.21
* Mon Oct 19 2020 adrian@suse.de
- added gpg pub key for source validation
- Update to version 1.3.20
  pytest_depr_from_parent.patch is obsolete again
  orm
  * An ArgumentError with more detail is now raised if the target
    parameter for Query.join() is set to an unmapped object. Prior
    to this change a less detailed AttributeError was raised. Pull
    request courtesy Ramon Williams.  References: #4428
  * Fixed issue where using a loader option against a string attribute
    name that is not actually a mapped attribute, such as a plain
    Python descriptor, would raise an uninformative AttributeError;
    a descriptive error is now raised.  References: #4589
  engine
  * Fixed issue where a non-string object sent to SQLAlchemyError or a
    subclass, as occurs with some third party dialects, would fail to
    stringify correctly. Pull request courtesy Andrzej Bartosi?ski.
    References: #5599
  * Repaired a function-level import that was not using SQLAlchemy?s
    standard late-import system within the sqlalchemy.exc module.
    References: #5632
  sql
  * Fixed issue where the pickle.dumps() operation against Over construct
    would produce a recursion overflow.  References: #5644
  * Fixed bug where an error was not raised in the case where a column()
    were added to more than one table() at a time. This raised correctly
    for the Column and Table objects. An ArgumentError is now raised when
    this occurs.  References: #5618
  postgresql
  * The psycopg2 dialect now support PostgreSQL multiple host connections,
    by passing host/port combinations to the query string.
    References: #4392
  * Adjusted the Comparator.any() and Comparator.all() methods to implement
    a straight ?NOT? operation for negation, rather than negating the
    comparison operator.  References: #5518
  * Fixed issue where the ENUM type would not consult the schema translate
    map when emitting a CREATE TYPE or DROP TYPE during the test to see if
    the type exists or not. Additionally, repaired an issue where if the
    same enum were encountered multiple times in a single DDL sequence,
    the ?check? query would run repeatedly rather than relying upon a cached value.
    References: #5520
  mysql
  * Adjusted the MySQL dialect to correctly parenthesize functional index
    expressions as accepted by MySQL 8. Pull request courtesy Ramon Williams.
    References: #5462
  * The ?skip_locked? keyword used with with_for_update() will emit a warning
    when used on MariaDB backends, and will then be ignored. This is a
    deprecated behavior that will raise in SQLAlchemy 1.4, as an application
    that requests ?skip locked? is looking for a non-blocking operation which
    is not available on those backends.
    References: #5568
  * Fixed bug where an UPDATE statement against a JOIN using MySQL multi-table
    format would fail to include the table prefix for the target table if the
    statement had no WHERE clause, as only the WHERE clause were scanned to
    detect a ?multi table update? at that particular point. The target is now
    also scanned if it?s a JOIN to get the leftmost table as the primary table
    and the additional entries as additional FROM entries.
    References: #5617
  * Add new MySQL reserved words: cube, lateral added in MySQL 8.0.1 and 8.0.14,
    respectively; this indicates that these terms will be quoted if used as table
    or column identifier names.
    References: #5539
* Fri Oct 09 2020 mcepl@suse.com
- Replace pytest_depr_from_parent.patch with the upstream commit resolving
  same issue (gh#sqlalchemy/sqlalchemy#commit40cdb9c0bf4d).
* Thu Oct 08 2020 mcepl@suse.com
- Add pytest_depr_from_parent.patch to fix FTBGS with pytest 6.*
  (gh#sqlalchemy/sqlalchemy#5635)
* Thu Aug 20 2020 mimi.vx@gmail.com
- update to 1.3.19
  * Adjusted the workings of the Mapper.all_orm_descriptors()
  * The name of the virtual column used when using the AbstractConcreteBase
    and ConcreteBase classes can now be customized
  * Repaired an issue where the ?ORDER BY? clause rendering a label name rather
    than a complete expression
  * The LookupError message will now provide the user with up to four possible
    values that a column is constrained to via the Enum
  * Fixed issue where the Connection.execution_options.schema_translate_map
    feature would not take effect when the Sequence.next_value() function
    for a Sequence were used in the Column.server_default parameter
    and the create table DDL were emitted.
  * Added a **kw argument to the DeclarativeMeta.__init__() method
* Sun Jun 28 2020 arun@gmx.de
- update to version 1.3.18:
  * orm
    + Improve error message when using Query.filter_by() in a query
    where the first entity is not a mapped class.  References: #5326
    + Added a new parameter query_expression.default_expr to the
    query_expression() construct, which will be appled to queries
    automatically if the with_expression() option is not used. Pull
    request courtesy Haoyu Sun.  References: #5198
  * engine
    + Further refinements to the fixes to the ?reset? agent fixed in
    [#5326], which now emits a warning when it is not being correctly
    invoked and corrects for the behavior. Additional scenarios have
    been identified and fixed where this warning was being emitted.
    References: #5326
    + Fixed issue in URL object where stringifying the object would
    not URL encode special characters, preventing the URL from being
    re-consumable as a real URL. Pull request courtesy Miguel
    Grinberg.  References: #5341
  * sql
    + Added a ?.schema? parameter to the table() construct, allowing
    ad-hoc table expressions to also include a schema name. Pull
    request courtesy Dylan Modesitt.  References: #5309
    + Correctly apply self_group in type_coerce element.  The type
    coerce element did not correctly apply grouping rules when using
    in an expression References: #5344
    + Added Select.with_hint() output to the generic SQL string that
    is produced when calling str() on a statement. Previously, this
    clause would be omitted under the assumption that it was dialect
    specific. The hint text is presented within brackets to indicate
    the rendering of such hints varies among backends.  References:
    [#5353]
    + Introduce IdentityOptions to store common parameters for
    sequences and identity columns.  References: #5324
    + Added .offset support to sybase dialect. Pull request courtesy
    Alan D. Snow.  References: #5294
  * schema
    + Fixed issue where dialect_options were omitted when a database
    object (e.g., Table) was copied using tometadata().  References:
    [#5276]
  * mysql
    + Implemented row-level locking support for mysql. Pull request
    courtesy Quentin Somerville.  References: #4860
  * sqlite
    + SQLite 3.31 added support for computed column. This change
    enables their support in SQLAlchemy when targeting SQLite.
    References: #5297
    + Added ?exists? to the list of reserved words for SQLite so that
    this word will be quoted when used as a label or column
    name. Pull request courtesy Thodoris Sotiropoulos.  References:
    [#5395]
  * mssql
    + Refined the logic used by the SQL Server dialect to interpret
    multi-part schema names that contain many dots, to not actually
    lose any dots if the name does not have bracking or quoting
    used, and additionally to support a ?dbname? token that has many
    parts including that it may have multiple,
    independently-bracketed sections.  References: #5364, #5366
    + Fixed an issue in the pyodbc connector such that a warning about
    pyodbc ?drivername? would be emitted when using a totally empty
    URL. Empty URLs are normal when producing a non-connected
    dialect object or when using the ?creator? argument to
    create_engine(). The warning now only emits if the driver name
    is missing but other parameters are still present.  References:
    [#5346]
    + Fixed issue with assembling the ODBC connection string for the
    pyodbc DBAPI. Tokens containing semicolons and/or braces ?{}?
    were not being correctly escaped, causing the ODBC driver to
    misinterpret the connection string attributes.  References:
    [#5373]
    + Fixed issue where datetime.time parameters were being converted
    to datetime.datetime, making them incompatible with comparisons
    like >= against an actual TIME column.  References: #5339
    + Fixed an issue where the is_disconnect function in the SQL
    Server pyodbc dialect was incorrectly reporting the disconnect
    state when the exception messsage had a substring that matched a
    SQL Server ODBC error code.  References: #5359
    + Moved the supports_sane_rowcount_returning = False requirement
    from the PyODBCConnector level to the MSDialect_pyodbc since
    pyodbc does work properly in some circumstances.  References:
    [#5321]
  * oracle
    + Fixed bug in Oracle dialect where indexes that contain the full
    set of primary key columns would be mistaken as the primary key
    index itself, which is omitted, even if there were
    multiples. The check has been refined to compare the name of the
    primary key constraint against the index name itself, rather
    than trying to guess based on the columns present in the index.
    References: #5421
  * misc
    + Added new option --raw to the examples.performance suite which
    will dump the raw profile test for consumption by any number of
    profiling visualizer tools. Removed the ?runsnake? option as
    runsnake is very hard to build at this point;
* Sat May 23 2020 arun@gmx.de
- update to version 1.3.17:
  * orm
    + Added an accessor Comparator.expressions which provides access
    to the group of columns mapped under a multi-column
    ColumnProperty attribute.  References: #5262
    + Introduce relationship.sync_backref flag in a relationship to
    control if the synchronization events that mutate the in-Python
    attributes are added. This supersedes the previous change #5149,
    which warned that viewonly=True relationship target of a
    back_populates or backref configuration would be disallowed.
    References: #5237
    + Fixed bug where using with_polymorphic() as the target of a join
    via RelationshipComparator.of_type() on a mapper that already
    has a subquery-based with_polymorphic setting that?s equivalent
    to the one requested would not correctly alias the ON clause in
    the join.  References: #5288
    + Fixed issue in the area of where loader options such as
    selectinload() interact with the baked query system, such that
    the caching of a query is not supposed to occur if the loader
    options themselves have elements such as with_polymorphic()
    objects in them that currently are not cache-compatible. The
    baked loader could sometimes not fully invalidate itself in
    these some of these scenarios leading to missed eager loads.
    References: #5303
    + Modified the internal ?identity set? implementation, which is a
    set that hashes objects on their id() rather than their hash
    values, to not actually call the __hash__() method of the
    objects, which are typically user-mapped objects. Some methods
    were calling this method as a side effect of the implementation.
    References: #5304
    + An informative error message is raised when an ORM many-to-one
    comparison is attempted against an object that is not an actual
    mapped instance. Comparisons such as those to scalar subqueries
    aren?t supported; generalized comparison with subqueries is
    better achieved using Comparator.has().  References: #5269
  * engine
    + Fixed fairly critical issue where the DBAPI connection could be
    returned to the connection pool while still in an un-rolled-back
    state. The reset agent responsible for rolling back the
    connection could be corrupted in the case that the transaction
    was ?closed? without being rolled back or committed, which can
    occur in some scenarios when using ORM sessions and emitting
    .close() in a certain pattern involving savepoints. The fix
    ensures that the reset agent is always active.  References:
    [#5326]
  * schema
    + Fixed issue where an Index that is deferred in being associated
    with a table, such as as when it contains a Column that is not
    associated with any Table yet, would fail to attach correctly if
    it also contained a non table-oriented expession.  References:
    [#5298]
    + A warning is emitted when making use of the
    MetaData.sorted_tables attribute as well as the sort_tables()
    function, and the given tables cannot be correctly sorted due to
    a cyclic dependency between foreign key constraints. In this
    case, the functions will no longer sort the involved tables by
    foreign key, and a warning will be emitted. Other tables that
    are not part of the cycle will still be returned in dependency
    order. Previously, the sorted_table routines would return a
    collection that would unconditionally omit all foreign keys when
    a cycle was detected, and no warning was emitted.  References:
    [#5316]
    + Add comment attribute to Column __repr__ method.  References:
    [#4138]
  * postgresql
    + Added support for columns or type ARRAY of Enum, JSON or JSONB
    in PostgreSQL. Previously a workaround was required in these use
    cases.  References: #5265
    + Raise an explicit CompileError when adding a table with a column
    of type ARRAY of Enum configured with Enum.native_enum set to
    False when Enum.create_constraint is not set to False
    References: #5266
  * mssql
    + Fix a regression introduced by the reflection of computed column
    in MSSQL when using the legacy TDS version 4.2. The dialect will
    try to detect the protocol version of first connect and run in
    compatibility mode if it cannot detect it.  References: #5255
    + Fix a regression introduced by the reflection of computed column
    in MSSQL when using SQL server versions before 2012, which does
    not support the concat function.  References: #5271
  * oracle
    + Some modifications to how the cx_oracle dialect sets up
    per-column outputtype handlers for LOB and numeric datatypes to
    adjust for potential changes coming in cx_Oracle 8.  References:
    [#5246]
    + Changed the implementation of fetching CLOB and BLOB objects to
    use cx_Oracle?s native implementation which fetches CLOB/BLOB
    objects inline with other result columns, rather than performing
    a separate fetch. As always, this can be disabled by setting
    auto_convert_lobs to False.
    + As part of this change, the behavior of a CLOB that was given a
    blank string on INSERT now returns None on SELECT, which is now
    consistent with that of VARCHAR on Oracle.  References: #5314
  * firebird
    + Adjusted dialect loading for firebird:// URIs so the external
    sqlalchemy-firebird dialect will be used if it has been
    installed, otherwise fall back to the (now deprecated) internal
    Firebird dialect.  References: #5278
* Thu Apr 09 2020 arun@gmx.de
- update to version 1.3.16:
  * orm
    + Fixed bug in orm.selectinload() loading option where two or more
    loaders that represent different relationships with the same
    string key name as referenced from a single
    orm.with_polymorphic() construct with multiple subclass mappers
    would fail to invoke each subqueryload separately, instead
    making use of a single string-based slot that would prevent the
    other loaders from being invoked.  References: #5228
    + Fixed issue where a lazyload that uses session-local ?get?
    against a target many-to-one relationship where an object with
    the correct primary key is present, however it?s an instance of
    a sibling class, does not correctly return None as is the case
    when the lazy loader actually emits a load for that row.
    References: #5210
    + Modified the queries used by subqueryload and selectinload to no
    longer ORDER BY the primary key of the parent entity; this
    ordering was there to allow the rows as they come in to be
    copied into lists directly with a minimal level of Python-side
    collation. However, these ORDER BY clauses can negatively impact
    the performance of the query as in many scenarios these columns
    are derived from a subquery or are otherwise not actual primary
    key columns such that SQL planners cannot make use of
    indexes. The Python-side collation uses the native
    itertools.group_by() to collate the incoming rows, and has been
    modified to allow multiple row-groups-per-parent to be assembled
    together using list.extend(), which should still allow for
    relatively fast Python-side performance. There will still be an
    ORDER BY present for a relationship that includes an explicit
    order_by parameter, however this is the only ORDER BY that will
    be added to the query for both kinds of loading.  References:
    [#5162]
  * orm declarative
    + The string argument accepted as the first positional argument by
    the relationship() function when using the Declarative API is no
    longer interpreted using the Python eval() function; instead,
    the name is dot separated and the names are looked up directly
    in the name resolution dictionary without treating the value as
    a Python expression. However, passing a string argument to the
    other relationship() parameters that necessarily must accept
    Python expressions will still use eval(); the documentation has
    been clarified to ensure that there is no ambiguity that this is
    in use.  See also Evaluation of relationship arguments - details
    on string evaluation References: #5238
  * sql
    + Add ability to literal compile a DateTime, Date or :class:?Time?
    when using the string dialect for debugging purposes. This
    change does not impact real dialect implementation that retain
    their current behavior.  References: #5052
  * schema
    + Added support for reflection of ?computed? columns, which are
    now returned as part of the structure returned by
    Inspector.get_columns(). When reflecting full Table objects,
    computed columns will be represented using the Computed
    construct.  References: #5063
  * postgresql
    + Fixed issue where a ?covering? index, e.g. those which have an
    INCLUDE clause, would be reflected including all the columns in
    INCLUDE clause as regular columns. A warning is now emitted if
    these additional columns are detected indicating that they are
    currently ignored. Note that full support for ?covering? indexes
    is part of #4458. Pull request courtesy Marat Sharafutdinov.
    References: #5205
  * mysql
    + Fixed issue in MySQL dialect when connecting to a psuedo-MySQL
    database such as that provided by ProxySQL, the up front check
    for isolation level when it returns no row will not prevent the
    dialect from continuing to connect. A warning is emitted that
    the isolation level could not be detected.  References: #5239
  * sqlite
    + Implemented AUTOCOMMIT isolation level for SQLite when using
    pysqlite.  References: #5164
  * mssql
    + Added support for ColumnOperators.is_distinct_from() and
    ColumnOperators.isnot_distinct_from() to SQL Server, MySQL, and
    Oracle.  References: #5137
  * oracle
    + Implemented AUTOCOMMIT isolation level for Oracle when using
    cx_Oracle. Also added a fixed default isolation level of READ
    COMMITTED for Oracle.  References: #5200
    + Fixed regression / incorrect fix caused by fix for #5146 where
    the Oracle dialect reads from the ?all_tab_comments? view to get
    table comments but fails to accommodate for the current owner of
    the table being requested, causing it to read the wrong comment
    if multiple tables of the same name exist in multiple schemas.
    References: #5146
  * misc
    + Fixed an issue that prevented the test suite from running with
    the recently released py.test 5.4.0.  References: #5201
    + Enum type now supports the parameter Enum.length to specify the
    length of the VARCHAR column to create when using non native
    enums by setting Enum.native_enum to False References: #5183
    + Ensured that the ?pyproject.toml? file is not included in
    builds, as the presence of this file indicates to pip that a
    pep-517 installation process should be used. As this mode of
    operation appears to be not well supported by current tools /
    distros, these problems are avoided within the scope of
    SQLAlchemy installation by omitting the file.  References: #5207
Version: 1.2.14-4.23
* Mon Nov 12 2018 arun@gmx.de
- update to version 1.2.14:
  * orm
    + [orm] [bug] Fixed bug in Session.bulk_update_mappings() where
    alternate mapped attribute names would result in the primary key
    column of the UPDATE statement being included in the SET clause,
    as well as the WHERE clause; while usually harmless, for SQL
    Server this can raise an error due to the IDENTITY column. This
    is a continuation of the same bug that was fixed in #3849, where
    testing was insufficient to catch this additional flaw.
    References: #4357
    + [orm] [bug] Fixed a minor performance issue which could in some
    cases add unnecessary overhead to result fetching, involving the
    use of ORM columns and entities that include those same columns
    at the same time within a query. The issue has to do with hash /
    eq overhead when referring to the column in different ways.
    References: #4347
  * mysql
    + [mysql] [bug] Fixed regression caused by #4344 released in
    1.2.13, where the fix for MySQL 8.0?s case sensitivity problem
    with referenced column names when reflecting foreign key
    referents is worked around using the information_schema.columns
    view. The workaround was failing on OSX /
    lower_case_table_names=2 which produces non-matching casing for
    the information_schema.columns vs. that of SHOW CREATE TABLE, so
    in case-insensitive SQL modes case-insensitive matching is now
    used.  References: #4361
* Thu Nov 01 2018 arun@gmx.de
- update to version 1.2.13:
  * orm
    + [orm] [bug] Fixed bug where ?dynamic? loader needs to explicitly
    set the ?secondary? table in the FROM clause of the query, to
    suit the case where the secondary is a join object that is
    otherwise not pulled into the query from its columns alone.
    References: #4349
  * orm declarative
    + [bug] [declarative] [orm] Fixed regression caused by #4326 in
    version 1.2.12 where using declared_attr with a mixin in
    conjunction with orm.synonym() would fail to map the synonym
    properly to an inherited subclass.  References: #4350
    + [bug] [declarative] [orm] The column conflict resolution
    technique discussed at Resolving Column Conflicts is now
    functional for a Column that is also a primary key
    column. Previously, a check for primary key columns declared on
    a single-inheritance subclass would occur before the column copy
    were allowed to pass.  References: #4352
  * sql
    + [sql] [feature] Refactored SQLCompiler to expose a
    SQLCompiler.group_by_clause() method similar to the
    SQLCompiler.order_by_clause() and SQLCompiler.limit_clause()
    methods, which can be overridden by dialects to customize how
    GROUP BY renders. Pull request courtesy Samuel Chou.
    + [sql] [bug] Fixed bug where the Enum.create_constraint flag on
    the Enum datatype would not be propagated to copies of the type,
    which affects use cases such as declarative mixins and abstract
    bases.  References: #4341
  * postgresql
    + [postgresql] [bug] Added support for the aggregate_order_by
    function to receive multiple ORDER BY elements, previously only
    a single element was accepted.  References: #4337
  * mysql
    + [mysql] [bug] Added word function to the list of reserved words
    for MySQL, which is now a keyword in MySQL 8.0 References: #4348
    + [mysql] [bug] Added a workaround for a MySQL bug #88718
    introduced in the 8.0 series, where the reflection of a foreign
    key constraint is not reporting the correct case sensitivity for
    the referred column, leading to errors during use of the
    reflected constraint such as when using the automap
    extension. The workaround emits an additional query to the
    information_schema tables in order to retrieve the correct case
    sensitive name.  References: #4344
  * misc
    + [misc] [bug] Fixed issue where part of the utility language
    helper internals was passing the wrong kind of argument to the
    Python __import__ builtin as the list of modules to be
    imported. The issue produced no symptoms within the core library
    but could cause issues with external applications that redefine
    the __import__ builtin or otherwise instrument it. Pull request
    courtesy Joe Urciuoli.
    + [misc] [bug] [py3k] Fixed additional warnings generated by
    Python 3.7 due to changes in the organization of the Python
    collections and collections.abc packages. Previous collections
    warnings were fixed in version 1.2.11. Pull request courtesy
    xtreak.  References: #4339
    + [bug] [ext] Added missing .index() method to list-based
    association collections in the association proxy extension.
* Sat Sep 22 2018 arun@gmx.de
- update to version 1.2.12:
  * orm
    + [orm] [bug] Added a check within the weakref cleanup for the
    InstanceState object to check for the presence of the dict
    builtin, in an effort to reduce error messages generated when
    these cleanups occur during interpreter shutdown. Pull request
    courtesy Romuald Brunet.
    + [orm] [bug] Fixed bug where use of Lateral construct in
    conjunction with Query.join() as well as
    Query.select_entity_from() would not apply clause adaption to
    the right side of the join. ?lateral? introduces the use case of
    the right side of a join being correlatable. Previously,
    adaptation of this clause wasn?t considered. Note that in 1.2
    only, a selectable introduced by Query.subquery() is still not
    adapted due to #4304; the selectable needs to be produced by the
    select() function to be the right side of the ?lateral? join.
    References: #4334
    + [orm] [bug] Fixed 1.2 regression caused by #3472 where the
    handling of an ?updated_at? style column within the context of a
    post-update operation would also occur for a row that is to be
    deleted following the update, meaning both that a column with a
    Python-side value generator would show the now-deleted value
    that was emitted for the UPDATE before the DELETE (which was not
    the previous behavor), as well as that a SQL- emitted value
    generator would have the attribute expired, meaning the previous
    value would be unreachable due to the row having been deleted
    and the object detached from the session.The ?postfetch? logic
    that was added as part of #3472 is now skipped entirely for an
    object that ultimately is to be deleted.  References: #4327
  * orm declarative
    + [bug] [declarative] [orm] Fixed bug where the declarative scan
    for attributes would receive the expression proxy delivered by a
    hybrid attribute at the class level, and not the hybrid
    attribute itself, when receiving the descriptor via the
    @declared_attr callable on a subclass of an already-mapped
    class. This would lead to an attribute that did not report
    itself as a hybrid when viewed within
    Mapper.all_orm_descriptors.  References: #4326
  * postgresql
    + [postgresql] [bug] Fixed bug in PostgreSQL dialect where
    compiler keyword arguments such as literal_binds=True were not
    being propagated to a DISTINCT ON expression.  References: #4325
    + [postgresql] [bug] Fixed the postgresql.array_agg() function,
    which is a slightly altered version of the usual
    functions.array_agg() function, to also accept an incoming
    ?type? argument without forcing an ARRAY around it, essentially
    the same thing that was fixed for the generic function in 1.1 in
    [#4107].  References: #4324
    + [postgresql] [bug] Fixed bug in PostgreSQL ENUM reflection where
    a case-sensitive, quoted name would be reported by the query
    including quotes, which would not match a target column during
    table reflection as the quotes needed to be stripped off.
    References: #4323
  * oracle
    + [oracle] [bug] Fixed issue for cx_Oracle 7.0 where the behavior
    of Oracle param.getvalue() now returns a list, rather than a
    single scalar value, breaking autoincrement logic throughout the
    Core and ORM. The dml_ret_array_val compatibility flag is used
    for cx_Oracle 6.3 and 6.4 to establish compatible behavior with
    7.0 and forward, for cx_Oracle 6.2.1 and prior a version number
    check falls back to the old logic.  References: #4335
  * misc
    + [bug] [ext] Fixed issue where BakedQuery did not include the
    specific query class used by the Session as part of the cache
    key, leading to incompatibilities when using custom query
    classes, in particular the ShardedQuery which has some different
    argument signatures.  References: #4328
* Sat Aug 25 2018 arun@gmx.de
- update to version 1.2.11:
  * orm declarative
    + [bug] [declarative] [orm] Fixed issue in previously untested use
    case, allowing a declarative mapped class to inherit from a
    classically-mapped class outside of the declarative base,
    including that it accommodates for unmapped intermediate
    classes. An unmapped intermediate class may specify
    __abstract__, which is now interpreted correctly, or the
    intermediate class can remain unmarked, and the classically
    mapped base class will be detected within the hierarchy
    regardless. In order to anticipate existing scenarios which may
    be mixing in classical mappings into existing declarative
    hierarchies, an error is now raised if multiple mapped bases are
    detected for a given class.   References: #4321
  * sql
    + [sql] [bug] Fixed issue that is closely related to #3639 where
    an expression rendered in a boolean context on a non-native
    boolean backend would be compared to 1/0 even though it is
    already an implcitly boolean expression, when
    ColumnElement.self_group() were used. While this does not affect
    the user-friendly backends (MySQL, SQLite) it was not handled by
    Oracle (and possibly SQL Server). Whether or not the expression
    is implicitly boolean on any database is now determined up front
    as an additional check to not generate the integer comparison
    within the compliation of the statement.  References: #4320
    + [sql] [bug] Added missing window function parameters
    WithinGroup.over.range_ and WithinGroup.over.rows parameters to
    the WithinGroup.over() and FunctionFilter.over() methods, to
    correspond to the range/rows feature added to the ?over? method
    of SQL functions as part of #3049 in version 1.1.  References:
    [#4322]
    + [sql] [bug] Fixed bug where the multi-table support for UPDATE
    and DELETE statements did not consider the additional FROM
    elements as targets for correlation, when a correlated SELECT
    were also combined with the statement. This change now includes
    that a SELECT statement in the WHERE clause for such a statement
    will try to auto-correlate back to these additional tables in
    the parent UPDATE/DELETE or unconditionally correlate if
    Select.correlate() is used. Note that auto-correlation raises an
    error if the SELECT statement would have no FROM clauses as a
    result, which can now occur if the parent UPDATE/DELETE
    specifies the same tables in its additional set of tables;
    specify Select.correlate() explicitly to resolve.  References:
    [#4313]
  * oracle
    + [oracle] [bug] For cx_Oracle, Integer datatypes will now be
    bound to ?int?, per advice from the cx_Oracle
    developers. Previously, using cx_Oracle.NUMBER caused a loss in
    precision within the cx_Oracle 6.x series.  References: #4309
  * misc
    + [bug] [py3k] Started importing ?collections? from
    ?collections.abc? under Python 3.3 and greater for Python 3.8
    compatibility. Pull request courtesy Nathaniel Knight.
    + Fixed issue where the ?schema? name used for a SQLite database
    within table reflection would not quote the schema name
    correctly. Pull request courtesy Phillip Cloud.
* Sat Jul 14 2018 arun@gmx.de
- update to version 1.2.10:
  * orm
    + [orm] [bug] Fixed bug in Bundle construct where placing two
    columns of the same name would be de-duplicated, when the Bundle
    were used as part of the rendered SQL, such as in the ORDER BY
    or GROUP BY of the statement.  References: #4295
    + [orm] [bug] Fixed regression in 1.2.9 due to #4287 where using a
    Load option in conjunction with a string wildcard would result
    in a TypeError.  References: #4298
  * sql
    + [sql] [bug] Fixed bug where a Sequence would be dropped
    explicitly before any Table that refers to it, which breaks in
    the case when the sequence is also involved in a server-side
    default for that table, when using MetaData.drop_all(). The step
    which processes sequences to be dropped via non server-side
    column default functions is now invoked after the table itself
    is dropped.  References: #4300
* Sun Jul 01 2018 arun@gmx.de
- removed patch fix_test_reflection.patch (included upstream)
- update to version 1.2.9:
  * orm
    + [orm] [bug] Fixed issue where chaining multiple join elements
    inside of Query.join() might not correctly adapt to the previous
    left-hand side, when chaining joined inheritance classes that
    share the same base class.
    References: #3505
    + [orm] [bug] Fixed bug in cache key generation for baked queries
    which could cause a too-short cache key to be generated for the
    case of eager loads across subclasses. This could in turn cause
    the eagerload query to be cached in place of a non-eagerload
    query, or vice versa, for a polymorhic ?selectin? load, or
    possibly for lazy loads or selectin loads as well.
    References: #4287
    + [orm] [bug] Fixed bug in new polymorphic selectin loading where
    the BakedQuery used internally would be mutated by the given
    loader options, which would both inappropriately mutate the
    subclass query as well as carry over the effect to subsequent
    queries.
    References: #4286
    + [orm] [bug] Fixed regression caused by #4256 (itself a
    regression fix for #4228) which breaks an undocumented behavior
    which converted for a non-sequence of entities passed directly
    to the Query constructor into a single-element sequence. While
    this behavior was never supported or documented, it?s already in
    use so has been added as a behavioral contract to Query.
    References: #4269
    + [orm] [bug] Fixed an issue that was both a performance
    regression in 1.2 as well as an incorrect result regarding the
    ?baked? lazy loader, involving the generation of cache keys from
    the original Query object?s loader options. If the loader
    options were built up in a ?branched? style using common base
    elements for multiple options, the same options would be
    rendered into the cache key repeatedly, causing both a
    performance issue as well as generating the wrong cache
    key. This is fixed, along with a performance improvement when
    such ?branched? options are applied via Query.options() to
    prevent the same option objects from being applied repeatedly.
    References: #4270
  * sql
    + [sql] [bug] Fixed regression in 1.2 due to #4147 where a Table
    that has had some of its indexed columns redefined with new
    ones, as would occur when overriding columns during reflection
    or when using Table.extend_existing, such that the
    Table.tometadata() method would fail when attempting to copy
    those indexes as they still referred to the replaced column. The
    copy logic now accommodates for this condition.
    References: #4279
  * mysql
    + [mysql] [bug] Fixed percent-sign doubling in
    mysql-connector-python dialect, which does not require
    de-doubling of percent signs. Additionally, the mysql-
    connector-python driver is inconsistent in how it passes the
    column names in cursor.description, so a workaround decoder has
    been added to conditionally decode these
    randomly-sometimes-bytes values to unicode only if needed. Also
    improved test support for mysql-connector-python, however it
    should be noted that this driver still has issues with unicode
    that continue to be unresolved as of yet.
    + [mysql] [bug] Fixed bug in index reflection where on MySQL 8.0
    an index that includes ASC or DESC in an indexed column
    specfication would not be correctly reflected, as MySQL 8.0
    introduces support for returning this information in a table
    definition string.
    References: #4293
    + [mysql] [bug] Fixed bug in MySQLdb dialect and variants such as
    PyMySQL where an additional ?unicode returns? check upon
    connection makes explicit use of the ?utf8? character set, which
    in MySQL 8.0 emits a warning that utf8mb4 should be used. This
    is now replaced with a utf8mb4 equivalent. Documentation is also
    updated for the MySQL dialect to specify utf8mb4 in all
    examples. Additional changes have been made to the test suite to
    use utf8mb3 charsets and databases (there seem to be collation
    issues in some edge cases with utf8mb4), and to support
    configuration default changes made in MySQL 8.0 such as
    explicit_defaults_for_timestamp as well as new errors raised for
    invalid MyISAM indexes.
    References: #4283
    + [mysql] [bug] The Update construct now accommodates a Join
    object as supported by MySQL for UPDATE..FROM. As the construct
    already accepted an alias object for a similar purpose, the
    feature of UPDATE against a non-table was already implied so
    this has been added.
    References: #3645
  * sqlite
    + [sqlite] [bug] Fixed issue in test suite where SQLite 3.24 added
    a new reserved word that conflicted with a usage in
    TypeReflectionTest. Pull request courtesy Nils Philippsen.
  * mssql
    + [mssql] [bug] Fixed bug in MSSQL reflection where when two
    same-named tables in different schemas had same-named primary
    key constraints, foreign key constraints referring to one of the
    tables would have their columns doubled, causing errors. Pull
    request courtesy Sean Dunn.
    References: #4228
    + [mssql] [bug] [py3k] Fixed issue within the SQL Server dialect
    under Python 3 where when running against a non-standard SQL
    server database that does not contain either the
    ?sys.dm_exec_sessions? or ?sys.dm_pdw_nodes_exec_sessions?
    views, leading to a failure to fetch the isolation level, the
    error raise would fail due to an UnboundLocalError.
    References: #4273
  * oracle
    + [oracle] [feature] Added a new event currently used only by the
    cx_Oracle dialect, DialectEvents.setiputsizes(). The event
    passes a dictionary of BindParameter objects to DBAPI-specific
    type objects that will be passed, after conversion to parameter
    names, to the cx_Oracle cursor.setinputsizes() method. This
    allows both visibility into the setinputsizes process as well as
    the ability to alter the behavior of what datatypes are passed
    to this method.
    See als Fine grained control over cx_Oracle data binding and performance with setinputsizes
    References: #4290
    + [oracle] [bug] [mysql] Fixed INSERT FROM SELECT with CTEs for
    the Oracle and MySQL dialects, where the CTE was being placed
    above the entire statement as is typical with other databases,
    however Oracle and MariaDB 10.2 wants the CTE underneath the
    ?INSERT? segment. Note that the Oracle and MySQL dialects don?t
    yet work when a CTE is applied to a subquery inside of an UPDATE
    or DELETE statement, as the CTE is still applied to the top
    rather than inside the subquery.
    References: #4275
  * misc
    + [feature] [ext] Added new attribute Query.lazy_loaded_from which
    is populated with an InstanceState that is using this Query in
    order to lazy load a relationship. The rationale for this is
    that it serves as a hint for the horizontal sharding feature to
    use, such that the identity token of the state can be used as
    the default identity token to use for the query within
    id_chooser().
    References: #4243
    + [bug] [py3k] Replaced the usage of inspect.formatargspec() with
    a vendored version copied from the Python standard library, as
    inspect.formatargspec() is deprecated and as of Python 3.7.0 is
    emitting a warning.
    References: #4291
* Tue Jun 26 2018 mimi.vx@gmail.com
- add upstream fix_test_reflection.patch to fix tests with new sqlite
* Thu Jun 21 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
    <column>?. 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
Version: 1.2.7-bp150.2.3.1
* Tue Aug 20 2019 Ralf Haferkamp <rhafer@suse.com>
- Add 0001-Illustrate-fix-for-4481-in-terms-of-a-1.2-patch.patch
  (bsc#1124593,  CVE-2019-7164, CVE-2019-7548)
Version: 1.2.7-bp150.1.2
* Sat Apr 21 2018 arun@gmx.de
- update to version 1.2.7:
  * orm
    + [orm] [bug] Fixed regression in 1.2 within sharded query feature
    where the new ?identity_token? element was not being correctly
    considered within the scope of a lazy load operation, when
    searching the identity map for a related many-to-one
    element. The new behavior will allow for making use of the
    ?id_chooser? in order to determine the best identity key to
    retrieve from the identity map. In order to achieve this, some
    refactoring of 1.2?s ?identity_token? approach has made some
    slight changes to the implementation of ShardedQuery which
    should be noted for other derivations of this class.
    References: #4228
    + [orm] [bug] Fixed issue in single-inheritance loading where the
    use of an aliased entity against a single-inheritance subclass
    in conjunction with the Query.select_from() method would cause
    the SQL to be rendered with the unaliased table mixed in to the
    query, causing a cartesian product. In particular this was
    affecting the new ?selectin? loader when used against a
    single-inheritance subclass.  References: #4241
  * sql
    + [sql] [bug] Fixed issue where the compilation of an INSERT
    statement with the ?literal_binds? option that also uses an
    explicit sequence and ?inline? generation, as on Postgresql and
    Oracle, would fail to accommodate the extra keyword argument
    within the sequence processing routine.  References: #4231
  * postgresql
    + [postgresql] [feature] Added new PG type postgresql.REGCLASS
    which assists in casting table names to OID values. Pull request
    courtesy Sebastian Bank.  References: #4160
    + [postgresql] [bug] Fixed bug where the special ?not equals?
    operator for the Postgresql ?range? datatypes such as DATERANGE
    would fail to render ?IS NOT NULL? when compared to the Python
    None value.  References: #4229
  * mssql
    + [mssql] [bug] Fixed 1.2 regression caused by #4060 where the
    query used to reflect SQL Server cross-schema foreign keys was
    limiting the criteria incorrectly.  References: #4234
  * oracle
    + [oracle] [bug] The Oracle NUMBER datatype is reflected as
    INTEGER if the precision is NULL and the scale is zero, as this
    is how INTEGER values come back when reflected from Oracle?s
    tables. Pull request courtesy Kent Bower.
* Sun Apr 01 2018 arun@gmx.de
- specfile:
  * run spec-cleaner
- update to version 1.2.6:
  * orm
    + [orm] [bug] Fixed bug where using Mutable.associate_with() or
    Mutable.as_mutable() in conjunction with a class that has non-
    primary mappers set up with alternatively-named attributes would
    produce an attribute error. Since non-primary mappers are not
    used for persistence, the mutable extension now excludes
    non-primary mappers from its instrumentation steps.  References:
    [#4215]
  * engine
    + [engine] [bug] Fixed bug in connection pool where a connection
    could be present in the pool without all of its ?connect? event
    handlers called, if a previous ?connect? handler threw an
    exception; note that the dialects themselves have connect
    handlers that emit SQL, such as those which set transaction
    isolation, which can fail if the database is in a non-available
    state, but still allows a connection. The connection is now
    invalidated first if any of the connect handlers fail.
    References: #4225
  * sql
    + [sql] [bug] Fixed a regression that occurred from the previous
    fix to #4204 in version 1.2.5, where a CTE that refers to itself
    after the CTE.alias() method has been called would not refer to
    iself correctly.  References: #4204
  * postgresql
    + [postgresql] [feature] Added support for ?PARTITION BY? in
    Postgresql table definitions, using
    ?postgresql_partition_by?. Pull request courtesy Vsevolod
    Solovyov.
  * mssql
    + [mssql] [bug] Adjusted the SQL Server version detection for
    pyodbc to only allow for numeric tokens, filtering out
    non-integers, since the dialect does tuple- numeric comparisons
    with this value. This is normally true for all known SQL Server
    / pyodbc drivers in any case.  References: #4227
  * oracle
    + [oracle] [bug] The minimum cx_Oracle version supported is 5.2
    (June 2015). Previously, the dialect asserted against version
    5.0 but as of 1.2.2 we are using some symbols that did not
    appear until 5.2.  References: #4211
  * misc
    + [bug] [declarative] Removed a warning that would be emitted when
    calling upon __table_args__, __mapper_args__ as named with a
    @declared_attr method, when called from a non-mapped declarative
    mixin. Calling these directly is documented as the approach to
    use when one is overidding one of these methods on a mapped
    class. The warning still emits for regular attribute names.
    References: #4221
* Thu Mar 08 2018 arun@gmx.de
- update to version 1.2.5:
  * orm
    + [orm] [feature] Added new feature
    Query.only_return_tuples(). Causes the Query object to return
    keyed tuple objects unconditionally even if the query is against
    a single entity. Pull request courtesy Eric Atkin.
    + [orm] [bug] Fixed bug in new ?polymorphic selectin? loading when
    a selection of polymorphic objects were to be partially loaded
    from a relationship lazy loader, leading to an ?empty IN?
    condition within the load that raises an error for the ?inline?
    form of ?IN?. References: #4199
    + [orm] [bug] Fixed 1.2 regression where a mapper option that
    contains an AliasedClass object, as is typical when using the
    QueryableAttribute.of_type() method, could not be pickled. 1.1?s
    behavior was to omit the aliased class objects from the path, so
    this behavior is restored.  References: #4209
  * sql
    + [sql] [bug] Fixed bug in :class:.`CTE` construct along the same
    lines as that of #4204 where a CTE that was aliased would not
    copy itself correctly during a ?clone? operation as is frequent
    within the ORM as well as when using the ClauseElement.params()
    method.  References: #4210
    + [sql] [bug] Fixed bug in CTE rendering where a CTE that was also
    turned into an Alias would not render its ?ctename AS aliasname?
    clause appropriately if there were more than one reference to
    the CTE in a FROM clause.  References: #4204
    + [sql] [bug] Fixed bug in new ?expanding IN parameter? feature
    where the bind parameter processors for values wasn?t working at
    all, tests failed to cover this pretty basic case which includes
    that ENUM values weren?t working.  References: #4198
  * postgresql
    + [postgresql] [bug] [py3k] Fixed bug in Postgresql COLLATE /
    ARRAY adjustment first introduced in #4006 where new behaviors
    in Python 3.7 regular expressions caused the fix to fail.  This
    change is also backported to: 1.1.18 References: #4208
  * mysql
    + [mysql] [bug] MySQL dialects now query the server version using
    SELECT @@version explicitly to the server to ensure we are
    getting the correct version information back. Proxy servers like
    MaxScale interfere with the value that is passed to the DBAPI?s
    connection.server_version value so this is no longer reliable.
    This change is also backported to: 1.1.18 References: #4205
* Fri Feb 23 2018 arun@gmx.de
- update to version 1.2.4:
  * orm
    + [orm] [bug] Fixed 1.2 regression in ORM versioning feature where
    a mapping against a select() or alias() that also used a
    versioning column against the underlying table would fail due to
    the check added as part of #3673.  References: #4193
  * engine
    + [engine] [bug] Fixed regression caused in 1.2.3 due to fix from
    [#4181] where the changes to the event system involving Engine and
    OptionEngine did not accommodate for event removals, which would
    raise an AttributeError when invoked at the class level.
    References: #4190
  * sql
    + [sql] [bug] Fixed bug where CTE expressions would not have their
    name or alias name quoted when the given name is case sensitive
    or otherwise requires quoting. Pull request courtesy Eric Atkin.
    References: #4197
* Sun Feb 18 2018 arun@gmx.de
- update to version 1.2.3:
  * orm
    + [orm] [feature] Added new argument
    attributes.set_attribute.inititator to the
    attributes.set_attribute() function, allowing an event token
    received from a listener function to be propagated to subsequent
    set events.
    + [orm] [bug] Fixed issue in post_update feature where an UPDATE
    is emitted when the parent object has been deleted but the
    dependent object is not. This issue has existed for a long time
    however since 1.2 now asserts rows matched for post_update, this
    was raising an error.  This change is also backported to: 1.1.16
    References: #4187
    + [orm] [bug] Fixed regression caused by fix for issue #4116
    affecting versions 1.2.2 as well as 1.1.15, which had the effect
    of mis-calculation of the ?owning class? of an AssociationProxy
    as the NoneType class in some declarative mixin/inheritance
    situations as well as if the association proxy were accessed off
    of an un-mapped class. The ?figure out the owner? logic has been
    replaced by an in-depth routine that searches through the
    complete mapper hierarchy assigned to the class or subclass to
    determine the correct (we hope) match; will not assign the owner
    if no match is found. An exception is now raised if the proxy is
    used against an un-mapped instance.  This change is also
    backported to: 1.1.16 References: #4185
    + [orm] [bug] Fixed bug where the Bundle object did not correctly
    report upon the primary Mapper object represened by the bundle,
    if any. An immediate side effect of this issue was that the new
    selectinload loader strategy wouldn?t work with the horizontal
    sharding extension.  References: #4175
    + [orm] [bug] Fixed bug in concrete inheritance mapping where
    user-defined attributes such as hybrid properties that mirror
    the names of mapped attributes from sibling classes would be
    overwritten by the mapper as non-accessible at the instance
    level. Additionally ensured that user-bound descriptors are not
    implicitly invoked at the class level during the mapper
    configuration stage.  References: #4188
    + [orm] [bug] Fixed bug where the orm.reconstructor() event helper
    would not be recognized if it were applied to the __init__()
    method of the mapped class.  References: #4178
  * engine
    + [engine] [bug] Fixed bug where events associated with an Engine
    at the class level would be doubled when the
    Engine.execution_options() method were used. To achieve this,
    the semi-private class OptionEngine no longer accepts events
    directly at the class level and will raise an error; the class
    only propagates class-level events from its parent
    Engine. Instance-level events continue to work as before.
    References: #4181
    + [engine] [bug] The URL object now allows query keys to be
    specified multiple times where their values will be joined into
    a list. This is to support the plugins feature documented at
    CreateEnginePlugin which documents that ?plugin? can be passed
    multiple times. Additionally, the plugin names can be passed to
    create_engine() outside of the URL using the new
    create_engine.plugins parameter.  References: #4170
  * sql
    + [sql] [feature] Added support for Enum to persist the values of
    the enumeration, rather than the keys, when using a Python
    pep-435 style enumerated object. The user supplies a callable
    function that will return the string values to be
    persisted. This allows enumerations against non-string values to
    be value-persistable as well. Pull request courtesy Jon Snyder.
    References: #3906
    + [sql] [bug] Fixed bug where the Enum type wouldn?t handle enum
    ?aliases? correctly, when more than one key refers to the same
    value. Pull request courtesy Daniel Knell.  References: #4180
  * postgresql
    + [postgresql] [bug] Added ?SSL SYSCALL error: Operation timed
    out? to the list of messages that trigger a ?disconnect?
    scenario for the psycopg2 driver. Pull request courtesy André
    Cruz.  This change is also backported to: 1.1.16
    + [postgresql] [bug] Added ?TRUNCATE? to the list of keywords
    accepted by the Postgresql dialect as an ?autocommit?-triggering
    keyword. Pull request courtesy Jacob Hayes.  This change is also
    backported to: 1.1.16
  * sqlite
    + [sqlite] [bug] Fixed the import error raised when a platform has
    neither pysqlite2 nor sqlite3 installed, such that the
    sqlite3-related import error is raised, not the pysqlite2 one
    which is not the actual failure mode. Pull request courtesy
    Robin.
  * oracle
    + [oracle] [feature] The ON DELETE options for foreign keys are
    now part of Oracle reflection. Oracle does not support ON UPDATE
    cascades. Pull request courtesy Miroslav Shubernetskiy.
    + [oracle] [bug] Fixed bug in cx_Oracle disconnect detection, used
    by pre_ping and other features, where an error could be raised
    as DatabaseError which includes a numeric error code; previously
    we weren?t checking in this case for a disconnect code.
    References: #4182
  * misc
    + [bug] [pool] Fixed a fairly serious connection pool bug where a
    connection that is acquired after being refreshed as a result of
    a user-defined DisconnectionError or due to the 1.2-released
    ?pre_ping? feature would not be correctly reset if the
    connection were returned to the pool by weakref cleanup
    (e.g. the front-facing object is garbage collected); the weakref
    would still refer to the previously invalidated DBAPI connection
    which would have the reset operation erroneously called upon it
    instead. This would lead to stack traces in the logs and a
    connection being checked into the pool without being reset,
    which can cause locking issues.  This change is also backported
    to: 1.1.16 References: #4184
    + [bug] [tests] A test added in 1.2 thought to confirm a Python
    2.7 behavior turns out to be confirming the behavior only as of
    Python 2.7.8. Python bug #8743 still impacts set comparison in
    Python 2.7.7 and earlier, so the test in question involving
    AssociationSet no longer runs for these older Python 2.7
    versions.  References: #3265
* Sun Jan 28 2018 arun@gmx.de
- update to version 1.2.2:
  * orm
    + [orm] [bug] Fixed 1.2 regression regarding new bulk_replace
    event where a backref would fail to remove an object from the
    previous owner when a bulk-assignment assigned the object to a
    new owner.  References: #4171
  * mysql
    + [mysql] [bug] Added more MySQL 8.0 reserved words to the MySQL
    dialect for quoting purposes. Pull request courtesy Riccardo
    Magliocchetti.
  * mssql
    + [mssql] [bug] Added ODBC error code 10054 to the list of error
    codes that count as a disconnect for ODBC / MSSQL server.
    References: #4164
  * oracle
    + [oracle] [bug] The cx_Oracle dialect now calls setinputsizes()
    with cx_Oracle.NCHAR unconditionally when the NVARCHAR2
    datatype, in SQLAlchemy corresponding to sqltypes.Unicode(), is
    in use. Per cx_Oracle?s author this allows the correct
    conversions to occur within the Oracle client regardless of the
    setting for NLS_NCHAR_CHARACTERSET.  References: #4163
* Wed Jan 17 2018 arun@gmx.de
- update to version 1.2.1:
  * orm
    + [orm] [bug] Fixed bug where an object that is expunged during a
    rollback of a nested or subtransaction which also had its
    primary key mutated would not be correctly removed from the
    session, causing subsequent issues in using the session.
    + [orm] [bug] Fixed regression where pickle format of a Load /
    _UnboundLoad object (e.g. loader options) changed and
    __setstate__() was raising an UnboundLocalError for an object
    received from the legacy format, even though an attempt was made
    to do so. tests are now added to ensure this works.
    + [orm] [bug] Fixed regression caused by new lazyload caching
    scheme in #3954 where a query that makes use of loader options
    with of_type would cause lazy loads of unrelated paths to fail
    with a TypeError.
    + [orm] [bug] Fixed bug in new ?selectin? relationship loader
    where the loader could try to load a non-existent relationship
    when loading a collection of polymorphic objects, where only
    some of the mappers include that relationship, typically when
    PropComparator.of_type() is being used.
  * sql
    + [sql] [bug] Fixed bug in Insert.values() where using the
    ?multi-values? format in combination with Column objects as keys
    rather than strings would fail. Pull request courtesy Aubrey
    Stark-Toller.
  * mssql
    + [mssql] [bug] Fixed regression in 1.2 where newly repaired
    quoting of collation names in #3785 breaks SQL Server, which
    explicitly does not understand a quoted collation name. Whether
    or not mixed-case collation names are quoted or not is now
    deferred down to a dialect-level decision so that each dialect
    can prepare these identifiers directly.
  * oracle
    + [oracle] [bug] Fixed regression where the removal of most
    setinputsizes rules from cx_Oracle dialect impacted the
    TIMESTAMP datatype?s ability to retrieve fractional seconds.
    + [oracle] [bug] Fixed regression in Oracle imports where a
    missing comma caused an undefined symbol to be present. Pull
    request courtesy Miroslav Shubernetskiy.
  * misc
    + [bug] [ext] Fixed regression in association proxy due to #3769
    (allow for chained any() / has()) where contains() against an
    association proxy chained in the form (o2m relationship,
    associationproxy(m2o relationship, m2o relationship)) would
    raise an error regarding the re-application of contains() on the
    final link of the chain.
    + [bug] [tests] Removed an oracle-specific requirements rule from
    the public test suite that was interfering with third party
    dialect suites.
    + [bug] [tests] Added a new exclusion rule
    group_by_complex_expression which disables tests that use ?GROUP
    BY <expr>?, which seems to be not viable for at least two third
    party dialects.
* Wed Jan 03 2018 arun@gmx.de
- specfile:
  * updated test requirements
* Sun Dec 31 2017 arun@gmx.de
- update to version 1.2.0:
  * See https://docs.sqlalchemy.org/en/latest/changelog/changelog_12.html
* Mon Sep 25 2017 arun@gmx.de
- update to version 1.1.14:
  * orm
    + [orm] [bug] Fixed bug in Session.merge() following along similar
    lines as that of #4030, where an internal check for a target
    object in the identity map could lead to an error if it were to
    be garbage collected immediately before the merge routine
    actually retrieves the object. References: #4069
    + [orm] [bug] Fixed bug where an undefer_group() option would not
    be recognized if it extended from a relationship that was
    loading using joined eager loading. Additionally, as the bug led
    to excess work being performed, Python function call counts are
    also improved by 20% within the initial calculation of result
    set columns, complementing the joined eager load improvements of
    [#3915].    References: #4048
    + [orm] [bug] Fixed race condition in ORM identity map which would
    cause objects to be inappropriately removed during a load
    operation, causing duplicate object identities to occur,
    particularly under joined eager loading which involves
    deduplication of objects. The issue is specific to garbage
    collection of weak references and is observed only under the
    Pypy interpreter.    References: #4068
    + [orm] [bug] Fixed bug in Session.merge() where objects in a
    collection that had the primary key attribute set to None for a
    key that is typically autoincrementing would be considered to be
    a database-persisted key for part of the internal deduplication
    process, causing only one object to actually be inserted in the
    database.    References: #4056
    + [orm] [bug] An InvalidRequestError is raised when a synonym() is
    used against an attribute that is not against a MapperProperty,
    such as an association proxy. Previously, a recursion overflow
    would occur trying to locate non-existent attributes.  References: #4067
  * sql
    + [sql] [bug] Altered the range specification for window functions
    to allow for two of the same PRECEDING or FOLLOWING keywords in
    a range by allowing for the left side of the range to be
    positive and for the right to be negative, e.g. (1, 3) is ?1
    FOLLOWING AND 3 FOLLOWING?.    References: #4053
- changes from version 1.1.13:
  * oracle
    + [oracle] [bug] [py2k] [performance] Fixed performance regression
    caused by the fix for #3937 where cx_Oracle as of version 5.3
    dropped the .UNICODE symbol from its namespace, which was
    interpreted as cx_Oracle?s ?WITH_UNICODE? mode being turned on
    unconditionally, which invokes functions on the SQLAlchemy side
    which convert all strings to unicode unconditionally and causing
    a performance impact. In fact, per cx_Oracle?s author the
    ?WITH_UNICODE? mode has been removed entirely as of 5.1, so the
    expensive unicode conversion functions are no longer necessary
    and are disabled if cx_Oracle 5.1 or greater is detected under
    Python 2. The warning against ?WITH_UNICODE? mode that was
    removed under #3937 is also restored.
    This change is also backported to: 1.0.19
    References: #4035
* Tue Aug 08 2017 tbechtold@suse.com
- update to 1.1.12:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_11.html#change-1.1.12
* Fri Jul 07 2017 tbechtold@suse.com
- Update to 1.1.11:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_11.html#change-1.1.11
- Update to 1.1.10:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_11.html#change-1.1.10
* Sat May 06 2017 toddrme2178@gmail.com
- Don't provide python2-sqlalchemy, singlespec packages should use
  correct name.
* Mon May 01 2017 toddrme2178@gmail.com
- Add literal python-sqlalchemy provides.
* Tue Apr 18 2017 toddrme2178@gmail.com
- Update to 1.1.9:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_11.html#change-1.1.9
- Update to 1.1.8:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_11.html#change-1.1.8
- Update to 1.1.7:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_11.html#change-1.1.7
- Update to 1.1.6:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_11.html#change-1.1.6
- Update to 1.1.5:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_11.html#change-1.1.5
- Update to 1.1.4:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_11.html#change-1.1.4
- Update to 1.1.3:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_11.html#change-1.1.3
- Update to 1.1.2:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_11.html#change-1.1.2
- Update to 1.1.1:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_11.html#change-1.1.1
- Update to 1.1.0:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_11.html#change-1.1.0
- Update to 1.0.18:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_10.html#change-1.0.18
- Update to 1.0.17:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_10.html#change-1.0.17
- Update to 1.0.16:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_10.html#change-1.0.16
- Implement single-spec version.
* Thu Sep 15 2016 toddrme2178@gmail.com
- Update to 1.0.15:
  * See http://docs.sqlalchemy.org/en/latest/changelog/changelog_10.html#change-1.0.15
  http://docs.sqlalchemy.org/en/latest/changelog/changelog_10.html#change-1.0.14
* Mon Jun 06 2016 dmueller@suse.com
- fix source url
* Fri Jun 03 2016 tbechtold@suse.com
- update to 1.0.13:
  * see http://docs.sqlalchemy.org/en/latest/changelog/changelog_10.html#change-1.0.12
    and http://docs.sqlalchemy.org/en/latest/changelog/changelog_10.html#change-1.0.13
  Remove 0001-fix-sqlite3.10.0-test.patch. Applied upstream.
* Thu Feb 11 2016 aplanas@suse.com
- Add 0001-fix-sqlite3.10.0-test.patch
  Backport fix after SQLite3.10 upgrade
* Mon Jan 11 2016 bwiedemann@suse.com
- update to 1.0.11:
  * see http://docs.sqlalchemy.org/en/latest/changelog/changelog_10.html#change-1.0.11
Version: 1.2.14-bp152.2.16
* Mon Nov 12 2018 Arun Persaud <arun@gmx.de>
- update to version 1.2.14:
  * orm
    + [orm] [bug] Fixed bug in Session.bulk_update_mappings() where
    alternate mapped attribute names would result in the primary key
    column of the UPDATE statement being included in the SET clause,
    as well as the WHERE clause; while usually harmless, for SQL
    Server this can raise an error due to the IDENTITY column. This
    is a continuation of the same bug that was fixed in #3849, where
    testing was insufficient to catch this additional flaw.
    References: #4357
    + [orm] [bug] Fixed a minor performance issue which could in some
    cases add unnecessary overhead to result fetching, involving the
    use of ORM columns and entities that include those same columns
    at the same time within a query. The issue has to do with hash /
    eq overhead when referring to the column in different ways.
    References: #4347
  * mysql
    + [mysql] [bug] Fixed regression caused by #4344 released in
    1.2.13, where the fix for MySQL 8.0?s case sensitivity problem
    with referenced column names when reflecting foreign key
    referents is worked around using the information_schema.columns
    view. The workaround was failing on OSX /
    lower_case_table_names=2 which produces non-matching casing for
    the information_schema.columns vs. that of SHOW CREATE TABLE, so
    in case-insensitive SQL modes case-insensitive matching is now
    used.  References: #4361
* Thu Nov 01 2018 Arun Persaud <arun@gmx.de>
- update to version 1.2.13:
  * orm
    + [orm] [bug] Fixed bug where ?dynamic? loader needs to explicitly
    set the ?secondary? table in the FROM clause of the query, to
    suit the case where the secondary is a join object that is
    otherwise not pulled into the query from its columns alone.
    References: #4349
  * orm declarative
    + [bug] [declarative] [orm] Fixed regression caused by #4326 in
    version 1.2.12 where using declared_attr with a mixin in
    conjunction with orm.synonym() would fail to map the synonym
    properly to an inherited subclass.  References: #4350
    + [bug] [declarative] [orm] The column conflict resolution
    technique discussed at Resolving Column Conflicts is now
    functional for a Column that is also a primary key
    column. Previously, a check for primary key columns declared on
    a single-inheritance subclass would occur before the column copy
    were allowed to pass.  References: #4352
  * sql
    + [sql] [feature] Refactored SQLCompiler to expose a
    SQLCompiler.group_by_clause() method similar to the
    SQLCompiler.order_by_clause() and SQLCompiler.limit_clause()
    methods, which can be overridden by dialects to customize how
    GROUP BY renders. Pull request courtesy Samuel Chou.
    + [sql] [bug] Fixed bug where the Enum.create_constraint flag on
    the Enum datatype would not be propagated to copies of the type,
    which affects use cases such as declarative mixins and abstract
    bases.  References: #4341
  * postgresql
    + [postgresql] [bug] Added support for the aggregate_order_by
    function to receive multiple ORDER BY elements, previously only
    a single element was accepted.  References: #4337
  * mysql
    + [mysql] [bug] Added word function to the list of reserved words
    for MySQL, which is now a keyword in MySQL 8.0 References: #4348
    + [mysql] [bug] Added a workaround for a MySQL bug #88718
    introduced in the 8.0 series, where the reflection of a foreign
    key constraint is not reporting the correct case sensitivity for
    the referred column, leading to errors during use of the
    reflected constraint such as when using the automap
    extension. The workaround emits an additional query to the
    information_schema tables in order to retrieve the correct case
    sensitive name.  References: #4344
  * misc
    + [misc] [bug] Fixed issue where part of the utility language
    helper internals was passing the wrong kind of argument to the
    Python __import__ builtin as the list of modules to be
    imported. The issue produced no symptoms within the core library
    but could cause issues with external applications that redefine
    the __import__ builtin or otherwise instrument it. Pull request
    courtesy Joe Urciuoli.
    + [misc] [bug] [py3k] Fixed additional warnings generated by
    Python 3.7 due to changes in the organization of the Python
    collections and collections.abc packages. Previous collections
    warnings were fixed in version 1.2.11. Pull request courtesy
    xtreak.  References: #4339
    + [bug] [ext] Added missing .index() method to list-based
    association collections in the association proxy extension.
* Sat Sep 22 2018 Arun Persaud <arun@gmx.de>
- update to version 1.2.12:
  * orm
    + [orm] [bug] Added a check within the weakref cleanup for the
    InstanceState object to check for the presence of the dict
    builtin, in an effort to reduce error messages generated when
    these cleanups occur during interpreter shutdown. Pull request
    courtesy Romuald Brunet.
    + [orm] [bug] Fixed bug where use of Lateral construct in
    conjunction with Query.join() as well as
    Query.select_entity_from() would not apply clause adaption to
    the right side of the join. ?lateral? introduces the use case of
    the right side of a join being correlatable. Previously,
    adaptation of this clause wasn?t considered. Note that in 1.2
    only, a selectable introduced by Query.subquery() is still not
    adapted due to #4304; the selectable needs to be produced by the
    select() function to be the right side of the ?lateral? join.
    References: #4334
    + [orm] [bug] Fixed 1.2 regression caused by #3472 where the
    handling of an ?updated_at? style column within the context of a
    post-update operation would also occur for a row that is to be
    deleted following the update, meaning both that a column with a
    Python-side value generator would show the now-deleted value
    that was emitted for the UPDATE before the DELETE (which was not
    the previous behavor), as well as that a SQL- emitted value
    generator would have the attribute expired, meaning the previous
    value would be unreachable due to the row having been deleted
    and the object detached from the session.The ?postfetch? logic
    that was added as part of #3472 is now skipped entirely for an
    object that ultimately is to be deleted.  References: #4327
  * orm declarative
    + [bug] [declarative] [orm] Fixed bug where the declarative scan
    for attributes would receive the expression proxy delivered by a
    hybrid attribute at the class level, and not the hybrid
    attribute itself, when receiving the descriptor via the
    @declared_attr callable on a subclass of an already-mapped
    class. This would lead to an attribute that did not report
    itself as a hybrid when viewed within
    Mapper.all_orm_descriptors.  References: #4326
  * postgresql
    + [postgresql] [bug] Fixed bug in PostgreSQL dialect where
    compiler keyword arguments such as literal_binds=True were not
    being propagated to a DISTINCT ON expression.  References: #4325
    + [postgresql] [bug] Fixed the postgresql.array_agg() function,
    which is a slightly altered version of the usual
    functions.array_agg() function, to also accept an incoming
    ?type? argument without forcing an ARRAY around it, essentially
    the same thing that was fixed for the generic function in 1.1 in
    [#4107].  References: #4324
    + [postgresql] [bug] Fixed bug in PostgreSQL ENUM reflection where
    a case-sensitive, quoted name would be reported by the query
    including quotes, which would not match a target column during
    table reflection as the quotes needed to be stripped off.
    References: #4323
  * oracle
    + [oracle] [bug] Fixed issue for cx_Oracle 7.0 where the behavior
    of Oracle param.getvalue() now returns a list, rather than a
    single scalar value, breaking autoincrement logic throughout the
    Core and ORM. The dml_ret_array_val compatibility flag is used
    for cx_Oracle 6.3 and 6.4 to establish compatible behavior with
    7.0 and forward, for cx_Oracle 6.2.1 and prior a version number
    check falls back to the old logic.  References: #4335
  * misc
    + [bug] [ext] Fixed issue where BakedQuery did not include the
    specific query class used by the Session as part of the cache
    key, leading to incompatibilities when using custom query
    classes, in particular the ShardedQuery which has some different
    argument signatures.  References: #4328
Version: 1.2.14-6.6.1
* Thu Oct 15 2020 johannes.grassler@suse.com
- Add 0002-maintain-compiled_params-replacement_expressions.patch
  (bsc#1176953)
  * Maintain compiled_params / replacement_expressions within
    expanding IN
Version: 1.2.14-6.3.1
* Tue Aug 20 2019 rhafer@suse.com
- Add 0001-Illustrate-fix-for-4481-in-terms-of-a-1.2-patch.patch
  (bsc#1124593,  CVE-2019-7164, CVE-2019-7548)