Skip to content

Conversation

pyup-bot
Copy link
Collaborator

This PR updates SQLAlchemy from 1.2.12 to 1.2.18.

Changelog

1.2.18

:released: February 15, 2019

 .. change::
    :tags: bug, orm
    :tickets: 4468

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


 .. change::
    :tags: bug, orm
    :tickets: 4489

    Fixed fairly simple but critical issue where the
    :meth:`.SessionEvents.pending_to_persistent` event would be invoked for
    objects not just when they move from pending to persistent, but when they
    were also already persistent and just being updated, thus causing the event
    to be invoked for all objects on every update.

 .. change::
    :tags: bug, sql
    :tickets: 4485

    Fixed issue where the :class:`.JSON` type had a read-only
    :attr:`.JSON.should_evaluate_none` attribute, which would cause failures
    when making use of the :meth:`.TypeEngine.evaluates_none` method in
    conjunction with this type.  Pull request courtesy Sanjana S.

 .. change::
    :tags: bug, mssql
    :tickets: 4499

    Fixed bug where the SQL Server "IDENTITY_INSERT" logic that allows an INSERT
    to proceed with an explicit value on an IDENTITY column was not detecting
    the case where :meth:`.Insert.values` were used with a dictionary that
    contained a :class:`.Column` as key and a SQL expression as a value.

 .. change::
    :tags: bug, sqlite
    :tickets: 4474

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

 .. change::
    :tags: bug, mysql
    :tickets: 4492

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

.. changelog::

1.2.17

:released: January 25, 2019

 .. change::
    :tags: feature, orm
    :tickets: 4461

    Added new event hooks :meth:`.QueryEvents.before_compile_update` and
    :meth:`.QueryEvents.before_compile_delete` which complement
    :meth:`.QueryEvents.before_compile` in the case of the :meth:`.Query.update`
    and :meth:`.Query.delete` methods.


 .. change::
    :tags: bug, postgresql
    :tickets: 4463

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


 .. change::
    :tags: bug, orm
    :tickets: 4454

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


 .. change::
    :tags: bug, oracle
    :tickets: 4457

    Fixed regression in integer precision logic due to the refactor of the
    cx_Oracle dialect in 1.2.  We now no longer apply the cx_Oracle.NATIVE_INT
    type to result columns sending integer values (detected as positive
    precision with scale ==0) which encounters integer overflow issues with
    values that go beyond the 32 bit boundary.  Instead, the output variable
    is left untyped so that cx_Oracle can choose the best option.

.. changelog::

1.2.16

:released: January 11, 2019

 .. change::
    :tag: bug, sql
    :tickets: 4394

    Fixed issue in "expanding IN" feature where using the same bound parameter
    name more than once in a query would lead to a KeyError within the process
    of rewriting the parameters in the query.

 .. change::
    :tags: bug, postgresql
    :tickets: 4416

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

 .. change::
    :tags: bug, postgresql

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

 .. change::
    :tags: bug, engine
    :tickets: 4429

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

 .. change::
    :tags: bug, sql, oracle, mysql
    :tickets: 4436

    Fixed issue where the DDL emitted for :class:`.DropTableComment`, which
    will be used by an upcoming version of Alembic, was incorrect for the MySQL
    and Oracle databases.

 .. change::
    :tags: bug, sqlite
    :tickets: 4431

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

.. changelog::

1.2.15

:released: December 11, 2018

 .. change::
     :tags: bug, orm
     :tickets: 4367

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

 .. change::
    :tags: bug, orm, declarative
    :tickets: 4374

    A warning is emitted in the case that a :func:`.column` object is applied to
    a declarative class, as it seems likely this intended to be a
    :class:`.Column` object.

 .. change::
     :tags: bug, orm
     :tickets: 4366

     In continuing with a similar theme as that of very recent :ticket:`4349`,
     repaired issue with :meth:`.RelationshipProperty.Comparator.any` and
     :meth:`.RelationshipProperty.Comparator.has` where the "secondary"
     selectable needs to be explicitly part of the FROM clause in the
     EXISTS subquery to suit the case where this "secondary" is a :class:`.Join`
     object.

 .. change::
     :tags: bug, orm
     :tickets: 4363

     Fixed regression caused by :ticket:`4349` where adding the "secondary"
     table to the FROM clause for a dynamic loader would affect the ability of
     the :class:`.Query` to make a subsequent join to another entity.   The fix
     adds the primary entity as the first element of the FROM list since
     :meth:`.Query.join` wants to jump from that.   Version 1.3 will have
     a more comprehensive solution to this problem as well (:ticket:`4365`).




 .. change::
    :tags: bug, orm
    :tickests: 4400

    Fixed bug where chaining of mapper options using
    :meth:`.RelationshipProperty.of_type` in conjunction with a chained option
    that refers to an attribute name by string only would fail to locate the
    attribute.

 .. change::
     :tag: feature, mysql
     :tickets: 4381

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

 .. change::
    :tag: bug, postgresql
    :tickets: 4377, 4380

    Fixed issue where reflection of a PostgreSQL domain that is expressed as an
    array would fail to be recognized.  Pull request courtesy Jakub Synowiec.


.. changelog::

1.2.14

:released: November 10, 2018

 .. change::
    :tags: bug, orm
    :tickets: 4357

    Fixed bug in :meth:`.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
    :ticket:`3849`, where testing was insufficient to catch this additional
    flaw.

 .. change::
     :tags: bug, mysql
     :tickets: 4361

     Fixed regression caused by :ticket:`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.

 .. change::
    :tags: bug, orm
    :tickets: 4347

    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.

.. changelog::

1.2.13

:released: October 31, 2018

 .. change::
    :tags: bug, postgresql
    :tickets: 4337

    Added support for the :class:`.aggregate_order_by` function to receive
    multiple ORDER BY elements, previously only a single element was accepted.


 .. change::
    :tags: bug, mysql
    :tickets: 4348

    Added word ``function`` to the list of reserved words for MySQL, which is
    now a keyword in MySQL 8.0

 .. change::
     :tags: feature, sql
     :versions: 1.3.0b1

     Refactored :class:`.SQLCompiler` to expose a
     :meth:`.SQLCompiler.group_by_clause` method similar to the
     :meth:`.SQLCompiler.order_by_clause` and :meth:`.SQLCompiler.limit_clause`
     methods, which can be overridden by dialects to customize how GROUP BY
     renders.  Pull request courtesy Samuel Chou.

 .. change::
    :tags: bug, misc

    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.

 .. change::
    :tags: bug, orm
    :tickets: 4349

    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.


 .. change::
    :tags: bug, orm, declarative
    :tickets: 4350

    Fixed regression caused by :ticket:`4326` in version 1.2.12 where using
    :class:`.declared_attr` with a mixin in conjunction with
    :func:`.orm.synonym` would fail to map the synonym properly to an inherited
    subclass.

 .. change::
    :tags: bug, misc, py3k
    :tickets: 4339

    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.

 .. change::
    :tags: bug, ext

    Added missing ``.index()`` method to list-based association collections
    in the association proxy extension.

 .. change::
    :tags: bug, mysql
    :tickets: 4344

    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.

 .. change::
    :tags: bug, sql
    :tickets: 4341

    Fixed bug where the :paramref:`.Enum.create_constraint` flag on  the
    :class:`.Enum` datatype would not be propagated to copies of the type, which
    affects use cases such as declarative mixins and abstract bases.

 .. change::
    :tags: bug, orm, declarative
    :tickets: 4352

    The column conflict resolution technique discussed at
    :ref:`declarative_column_conflicts` is now functional for a :class:`.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.


.. changelog::
Links

@ghost ghost assigned pyup-bot Feb 17, 2019
@ghost ghost added the in progress label Feb 17, 2019
@coveralls
Copy link

Coverage Status

Coverage decreased (-2.6%) to 36.533% when pulling c97c80b on pyup-update-sqlalchemy-1.2.12-to-1.2.18 into 97e3944 on master.

@pyup-bot
Copy link
Collaborator Author

pyup-bot commented Mar 4, 2019

Closing this in favor of #56

@pyup-bot pyup-bot closed this Mar 4, 2019
@j340m3 j340m3 deleted the pyup-update-sqlalchemy-1.2.12-to-1.2.18 branch March 4, 2019 23:13
@ghost ghost removed the in progress label Mar 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants