]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- 1.3.0b1 rel_1_3_0b1
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 17 Nov 2018 04:04:42 +0000 (23:04 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 17 Nov 2018 04:04:42 +0000 (23:04 -0500)
39 files changed:
doc/build/changelog/changelog_13.rst
doc/build/changelog/unreleased_13/3423.rst [deleted file]
doc/build/changelog/unreleased_13/3604.rst [deleted file]
doc/build/changelog/unreleased_13/3831.rst [deleted file]
doc/build/changelog/unreleased_13/3844.rst [deleted file]
doc/build/changelog/unreleased_13/3850.rst [deleted file]
doc/build/changelog/unreleased_13/3981.rst [deleted file]
doc/build/changelog/unreleased_13/3989.rst [deleted file]
doc/build/changelog/unreleased_13/4133.rst [deleted file]
doc/build/changelog/unreleased_13/4144.rst [deleted file]
doc/build/changelog/unreleased_13/4158.rst [deleted file]
doc/build/changelog/unreleased_13/4196.rst [deleted file]
doc/build/changelog/unreleased_13/4219.rst [deleted file]
doc/build/changelog/unreleased_13/4232.rst [deleted file]
doc/build/changelog/unreleased_13/4237.rst [deleted file]
doc/build/changelog/unreleased_13/4242.rst [deleted file]
doc/build/changelog/unreleased_13/4246.rst [deleted file]
doc/build/changelog/unreleased_13/4257.rst [deleted file]
doc/build/changelog/unreleased_13/4268.rst [deleted file]
doc/build/changelog/unreleased_13/4271.rst [deleted file]
doc/build/changelog/unreleased_13/4302.rst [deleted file]
doc/build/changelog/unreleased_13/4304.rst [deleted file]
doc/build/changelog/unreleased_13/4308.rst [deleted file]
doc/build/changelog/unreleased_13/4318.rst [deleted file]
doc/build/changelog/unreleased_13/4340.rst [deleted file]
doc/build/changelog/unreleased_13/4351.rst [deleted file]
doc/build/changelog/unreleased_13/4353.rst [deleted file]
doc/build/changelog/unreleased_13/4354.rst [deleted file]
doc/build/changelog/unreleased_13/4359.rst [deleted file]
doc/build/changelog/unreleased_13/4360.rst [deleted file]
doc/build/changelog/unreleased_13/4362.rst [deleted file]
doc/build/changelog/unreleased_13/4365.rst [deleted file]
doc/build/changelog/unreleased_13/4369.rst [deleted file]
doc/build/changelog/unreleased_13/dir_keys.rst [deleted file]
doc/build/changelog/unreleased_13/mysql_ping.rst [deleted file]
doc/build/changelog/unreleased_13/pr462.rst [deleted file]
doc/build/changelog/unreleased_13/pr467.rst [deleted file]
doc/build/changelog/unreleased_13/preserve_order.rst [deleted file]
doc/build/conf.py

index d8ef726b8300a70f8c8c0bb65845580ebc5611df..486c6fb5947a322712cdd397cb0a8998d62868e9 100644 (file)
 
 .. changelog::
     :version: 1.3.0b1
-    :include_notes_from: unreleased_13
+    :released: November 16, 2018
+
+    .. change::
+       :tags: bug, ext
+       :tickets: 3423
+
+       Reworked :class:`.AssociationProxy` to store state that's specific to a
+       parent class in a separate object, so that a single
+       :class:`.AssocationProxy` can serve for multiple parent classes, as is
+       intrinsic to inheritance, without any ambiguity in the state returned by it.
+       A new method :meth:`.AssociationProxy.for_class` is added to allow
+       inspection of class-specific state.
+
+       .. seealso::
+
+            :ref:`change_3423`
+
+
+    .. change::
+       :tags: bug, oracle
+       :tickets: 4369
+
+       Updated the parameters that can be sent to the cx_Oracle DBAPI to both allow
+       for all current parameters as well as for future parameters not added yet.
+       In addition, removed unused parameters that were deprecated in version 1.2,
+       and additionally we are now defaulting "threaded" to False.
+
+       .. seealso::
+
+          :ref:`change_4369`
+
+    .. change::
+        :tags: bug, oracle
+        :tickets: 4242
+
+        The Oracle dialect will no longer use the NCHAR/NCLOB datatypes
+        represent generic unicode strings or clob fields in conjunction with
+        :class:`.Unicode` and :class:`.UnicodeText` unless the flag
+        ``use_nchar_for_unicode=True`` is passed to :func:`.create_engine` -
+        this includes CREATE TABLE behavior as well as ``setinputsizes()`` for
+        bound parameters.   On the read side, automatic Unicode conversion under
+        Python 2 has been added to CHAR/VARCHAR/CLOB result rows, to match the
+        behavior of cx_Oracle under Python 3.  In order to mitigate the performance
+        hit under Python 2, SQLAlchemy's very performant (when C extensions
+        are built) native Unicode handlers are used under Python 2.
+
+        .. seealso::
+
+            :ref:`change_4242`
+
+    .. change::
+        :tags: bug, orm
+        :tickets: 3844
+
+        Fixed issue regarding passive_deletes="all", where the foreign key
+        attribute of an object is maintained with its value even after the object
+        is removed from its parent collection.  Previously, the unit of work would
+        set this to NULL even though passive_deletes indicated it should not be
+        modified.
+
+        .. seealso::
+
+            :ref:`change_3844`
+
+    .. change::
+        :tags: bug, ext
+        :tickets: 4268
+
+        The long-standing behavior of the association proxy collection maintaining
+        only a weak reference to the parent object is reverted; the proxy will now
+        maintain a strong reference to the parent for as long as the proxy
+        collection itself is also in memory, eliminating the "stale association
+        proxy" error. This change is being made on an experimental basis to see if
+        any use cases arise where it causes side effects.
+
+        .. seealso::
+
+            :ref:`change_4268`
+
+
+    .. change::
+        :tags: bug, sql
+        :tickets: 4302
+
+        Added "like" based operators as "comparison" operators, including
+        :meth:`.ColumnOperators.startswith` :meth:`.ColumnOperators.endswith`
+        :meth:`.ColumnOperators.ilike` :meth:`.ColumnOperators.notilike` among many
+        others, so that all of these operators can be the basis for an ORM
+        "primaryjoin" condition.
+
+
+    .. change::
+        :tags: feature, sqlite
+        :tickets: 3850
+
+        Added support for SQLite's json functionality via the new
+        SQLite implementation for :class:`.types.JSON`, :class:`.sqlite.JSON`.
+        The name used for the type is ``JSON``, following an example found at
+        SQLite's own documentation. Pull request courtesy Ilja Everilä.
+
+        .. seealso::
+
+            :ref:`change_3850`
+
+    .. change::
+       :tags: feature, engine
+
+       Added new "lifo" mode to :class:`.QueuePool`, typically enabled by setting
+       the flag :paramref:`.create_engine.pool_use_lifo` to True.   "lifo" mode
+       means the same connection just checked in will be the first to be checked
+       out again, allowing excess connections to be cleaned up from the server
+       side during periods of the pool being only partially utilized.  Pull request
+       courtesy Taem Park.
+
+       .. seealso::
+
+          :ref:`change_pr467`
+
+    .. change::
+       :tags: bug, orm
+       :tickets: 4359
+
+       Improved the behavior of a relationship-bound many-to-one object expression
+       such that the retrieval of column values on the related object are now
+       resilient against the object being detached from its parent
+       :class:`.Session`, even if the attribute has been expired.  New features
+       within the :class:`.InstanceState` are used to memoize the last known value
+       of a particular column attribute before its expired, so that the expression
+       can still evaluate when the object is detached and expired at the same
+       time.  Error conditions are also improved using modern attribute state
+       features to produce more specific messages as needed.
+
+       .. seealso::
+
+            :ref:`change_4359`
+
+    .. change::
+        :tags: feature, mysql
+        :tickets: 4219
+
+        Support added for the "WITH PARSER" syntax of CREATE FULLTEXT INDEX
+        in MySQL, using the ``mysql_with_parser`` keyword argument.  Reflection
+        is also supported, which accommodates MySQL's special comment format
+        for reporting on this option as well.  Additionally, the "FULLTEXT" and
+        "SPATIAL" index prefixes are now reflected back into the ``mysql_prefix``
+        index option.
+
+
+
+    .. change::
+        :tags: bug, orm, mysql, postgresql
+        :tickets: 4246
+
+        The ORM now doubles the "FOR UPDATE" clause within the subquery that
+        renders in conjunction with joined eager loading in some cases, as it has
+        been observed that MySQL does not lock the rows from a subquery.   This
+        means the query renders with two FOR UPDATE clauses; note that on some
+        backends such as Oracle, FOR UPDATE clauses on subqueries are silently
+        ignored since they are unnecessary.  Additionally, in the case of the "OF"
+        clause used primarily with Postgresql, the FOR UPDATE is rendered only on
+        the inner subquery when this is used so that the selectable can be targeted
+        to the table within the SELECT statement.
+
+        .. seealso::
+
+            :ref:`change_4246`
+
+    .. change::
+        :tags: feature, mssql
+        :tickets: 4158
+
+        Added ``fast_executemany=True`` parameter to the SQL Server pyodbc dialect,
+        which enables use of pyodbc's new performance feature of the same name
+        when using Microsoft ODBC drivers.
+
+        .. seealso::
+
+            :ref:`change_4158`
+
+    .. change::
+        :tags: bug, ext
+        :tickets: 4308
+
+        Fixed multiple issues regarding de-association of scalar objects with the
+        association proxy.  ``del`` now works, and additionally a new flag
+        :paramref:`.AssociationProxy.cascade_scalar_deletes` is added, which when
+        set to True indicates that setting a scalar attribute to ``None`` or
+        deleting via ``del`` will also set the source association to ``None``.
+
+        .. seealso::
+
+            :ref:`change_4308`
+
+
+    .. change::
+        :tags: feature, ext
+        :tickets: 4318
+
+        Added new feature :meth:`.BakedQuery.to_query`, which allows for a
+        clean way of using one :class:`.BakedQuery` as a subquery inside of another
+        :class:`.BakedQuery` without needing to refer explicitly to a
+        :class:`.Session`.
+
+
+    .. change::
+       :tags: feature, sqlite
+       :tickets: 4360
+
+       Implemented the SQLite ``ON CONFLICT`` clause as understood at the DDL
+       level, e.g. for primary key, unique, and CHECK constraints as well as
+       specified on a :class:`.Column` to satisfy inline primary key and NOT NULL.
+       Pull request courtesy Denis Kataev.
+
+       .. seealso::
+
+          :ref:`change_4360`
+
+    .. change::
+       :tags: feature, postgresql
+       :tickets: 4237
+
+       Added rudimental support for reflection of Postgresql
+       partitioned tables, e.g. that relkind='p' is added to reflection
+       queries that return table information.
+
+       .. seealso::
+
+            :ref:`change_4237`
+
+    .. change::
+       :tags: feature, ext
+       :tickets: 4351
+
+       The :class:`.AssociationProxy` now has standard column comparison operations
+       such as :meth:`.ColumnOperators.like` and
+       :meth:`.ColumnOperators.startswith` available when the target attribute is a
+       plain column - the EXISTS expression that joins to the target table is
+       rendered as usual, but the column expression is then use within the WHERE
+       criteria of the EXISTS.  Note that this alters the behavior of the
+       ``.contains()`` method on the association proxy to make use of
+       :meth:`.ColumnOperators.contains` when used on a column-based attribute.
+
+       .. seealso::
+
+          :ref:`change_4351`
+
+
+    .. change::
+        :tags: feature, orm
+
+        Added new flag :paramref:`.Session.bulk_save_objects.preserve_order` to the
+        :meth:`.Session.bulk_save_objects` method, which defaults to True. When set
+        to False, the given mappings will be grouped into inserts and updates per
+        each object type, to allow for greater opportunities to batch common
+        operations together.  Pull request courtesy Alessandro Cucci.
+
+    .. change::
+        :tags: bug, orm
+        :tickets: 4365
+
+        Refactored :meth:`.Query.join` to further clarify the individual components
+        of structuring the join. This refactor adds the ability for
+        :meth:`.Query.join` to determine the most appropriate "left" side of the
+        join when there is more than one element in the FROM list or the query is
+        against multiple entities.  If more than one FROM/entity matches, an error
+        is raised that asks for an ON clause to be specified to resolve the
+        ambiguity.  In particular this targets the regression we saw in
+        :ticket:`4363` but is also of general use.   The codepaths within
+        :meth:`.Query.join` are now easier to follow and the error cases are
+        decided more specifically at an earlier point in the operation.
+
+        .. seealso::
+
+            :ref:`change_4365`
+
+    .. change::
+        :tags: bug, sql
+        :tickets: 3981
+
+        Fixed issue with :meth:`.TypeEngine.bind_expression` and
+        :meth:`.TypeEngine.column_expression` methods where these methods would not
+        work if the target type were part of a :class:`.Variant`, or other target
+        type of a :class:`.TypeDecorator`.  Additionally, the SQL compiler now
+        calls upon the dialect-level implementation when it renders these methods
+        so that dialects can now provide for SQL-level processing for built-in
+        types.
+
+        .. seealso::
+
+            :ref:`change_3981`
+
+
+    .. change::
+        :tags: bug, orm
+        :tickets: 4304
+
+        Fixed long-standing issue in :class:`.Query` where a scalar subquery such
+        as produced by :meth:`.Query.exists`, :meth:`.Query.as_scalar` and other
+        derivations from :attr:`.Query.statement` would not correctly be adapted
+        when used in a new :class:`.Query` that required entity adaptation, such as
+        when the query were turned into a union, or a from_self(), etc. The change
+        removes the "no adaptation" annotation from the :func:`.select` object
+        produced by the :attr:`.Query.statement` accessor.
+
+    .. change::
+        :tags: bug, orm, declarative
+        :tickets: 4133
+
+        Fixed bug where declarative would not update the state of the
+        :class:`.Mapper` as far as what attributes were present, when additional
+        attributes were added or removed after the mapper attribute collections had
+        already been called and memoized.  Addtionally, a ``NotImplementedError``
+        is now raised if a fully mapped attribute (e.g. column, relationship, etc.)
+        is deleted from a class that is currently mapped, since the mapper will not
+        function correctly if the attribute has been removed.
+
+    .. change::
+       :tags: bug, mssql
+       :tickets: 4362
+
+       Deprecated the use of :class:`.Sequence` with SQL Server in order to affect
+       the "start" and "increment" of the IDENTITY value, in favor of new
+       parameters ``mssql_identity_start`` and ``mssql_identity_increment`` which
+       set these parameters directly.  :class:`.Sequence` will be used to generate
+       real ``CREATE SEQUENCE`` DDL with SQL Server in a future release.
+
+       .. seealso::
+
+            :ref:`change_4362`
+
+
+    .. change::
+        :tags: feature, mysql
+
+        Added support for the parameters in an ON DUPLICATE KEY UPDATE statement on
+        MySQL to be ordered, since parameter order in a MySQL UPDATE clause is
+        significant, in a similar manner as that described at
+        :ref:`updates_order_parameters`.  Pull request courtesy Maxim Bublis.
+
+        .. seealso::
+
+            :ref:`change_mysql_ondupordering`
+
+    .. change::
+       :tags: feature, sql
+       :tickets: 4144
+
+       Added :class:`.Sequence` to the "string SQL" system that will render a
+       meaningful string expression (``"<next sequence value: my_sequence>"``)
+       when stringifying without a dialect a statement that includes a "sequence
+       nextvalue" expression, rather than raising a compilation error.
+
+
+
+    .. change::
+        :tags: bug, orm
+        :tickets: 4232
+
+        An informative exception is re-raised when a primary key value is not
+        sortable in Python during an ORM flush under Python 3, such as an ``Enum``
+        that has no ``__lt__()`` method; normally Python 3 raises a ``TypeError``
+        in this case.   The flush process sorts persistent objects by primary key
+        in Python so the values must be sortable.
+
+
+    .. change::
+       :tags: orm, bug
+       :tickets: 3604
+
+       Removed the collection converter used by the :class:`.MappedCollection`
+       class. This converter was used only to assert that the incoming dictionary
+       keys matched that of their corresponding objects, and only during a bulk set
+       operation.  The converter can interfere with a custom validator or
+       :meth:`.AttributeEvents.bulk_replace` listener that wants to convert
+       incoming values further.  The ``TypeError`` which would be raised by this
+       converter when an incoming key didn't match the value is removed; incoming
+       values during a bulk assignment will be keyed to their value-generated key,
+       and not the key that's explicitly present in the dictionary.
+
+       Overall, @converter is superseded by the
+       :meth:`.AttributeEvents.bulk_replace` event handler added as part of
+       :ticket:`3896`.
+
+    .. change::
+       :tags: feature, sql
+       :tickets: 3989
+
+       Added new naming convention tokens ``column_0N_name``, ``column_0_N_name``,
+       etc., which will render the names / keys / labels for all columns referenced
+       by a particular constraint in a sequence.  In order to accommodate for the
+       length of such a naming convention, the SQL compiler's auto-truncation
+       feature now applies itself to constraint names as well, which creates a
+       shortened, deterministically generated name for the constraint that will
+       apply to a target backend without going over the character limit of that
+       backend.
+
+       The change also repairs two other issues.  One is that the  ``column_0_key``
+       token wasn't available even though this token was documented, the other was
+       that the ``referred_column_0_name`` token would  inadvertently render the
+       ``.key`` and not the ``.name`` of the column if these two values were
+       different.
+
+       .. seealso::
+
+          :ref:`change_3989`
+
+
+    .. change::
+        :tags: feature, ext
+        :tickets: 4196
+
+        Added support for bulk :meth:`.Query.update` and :meth:`.Query.delete`
+        to the :class:`.ShardedQuery` class within the horiziontal sharding
+        extension.  This also adds an additional expansion hook to the
+        bulk update/delete methods :meth:`.Query._execute_crud`.
+
+        .. seealso::
+
+            :ref:`change_4196`
+
+    .. change::
+        :tags: feature, sql
+        :tickets: 4271
+
+        Added new logic to the "expanding IN" bound parameter feature whereby if
+        the given list is empty, a special "empty set" expression that is specific
+        to different backends is generated, thus allowing IN expressions to be
+        fully dynamic including empty IN expressions.
+
+        .. seealso::
+
+            :ref:`change_4271`
+
+
+
+    .. change::
+        :tags: feature, mysql
+
+        The "pre-ping" feature of the connection pool now uses
+        the ``ping()`` method of the DBAPI connection in the case of
+        mysqlclient, PyMySQL and mysql-connector-python.  Pull request
+        courtesy Maxim Bublis.
+
+        .. seealso::
+
+            :ref:`change_mysql_ping`
+
+    .. change::
+        :tags: feature, orm
+        :tickets: 4340
+
+        The "selectin" loader strategy now omits the JOIN in the case of a simple
+        one-to-many load, where it instead relies loads only from the related
+        table, relying upon the foreign key columns of the related table in order
+        to match up to primary keys in the parent table.   This optimization can be
+        disabled by setting the :paramref:`.relationship.omit_join` flag to False.
+        Many thanks to Jayson Reis for the efforts on this.
+
+        .. seealso::
+
+            :ref:`change_4340`
+
+    .. change::
+       :tags: bug, orm
+       :tickets: 4353
+
+       Added new behavior to the lazy load that takes place when the "old" value of
+       a many-to-one is retrieved, such that exceptions which would be raised due
+       to either ``lazy="raise"`` or a detached session error are skipped.
+
+       .. seealso::
+
+        :ref:`change_4353`
+
+    .. change::
+        :tags: feature, sql
+
+        The Python builtin ``dir()`` is now supported for a SQLAlchemy "properties"
+        object, such as that of a Core columns collection (e.g. ``.c``),
+        ``mapper.attrs``, etc.  Allows iPython autocompletion to work as well.
+        Pull request courtesy Uwe Korn.
+
+    .. change::
+       :tags: feature, orm
+       :tickets: 4257
+
+       Added ``.info`` dictionary to the :class:`.InstanceState` class, the object
+       that comes from calling :func:`.inspect` on a mapped object.
+
+       .. seealso::
+
+            :ref:`change_4257`
+
+    .. change::
+        :tags: feature, sql
+        :tickets: 3831
+
+        Added new feature :meth:`.FunctionElement.as_comparison` which allows a SQL
+        function to act as a binary comparison operation that can work within the
+        ORM.
+
+        .. seealso::
+
+            :ref:`change_3831`
+
+    .. change::
+       :tags: bug, orm
+       :tickets: 4354
+
+       A long-standing oversight in the ORM, the ``__delete__`` method for a many-
+       to-one relationship was non-functional, e.g. for an operation such as ``del
+       a.b``.  This is now implemented and is equivalent to setting the attribute
+       to ``None``.
+
+       .. seealso::
+
+            :ref:`change_4354`
diff --git a/doc/build/changelog/unreleased_13/3423.rst b/doc/build/changelog/unreleased_13/3423.rst
deleted file mode 100644 (file)
index 63317ae..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-.. change::
-   :tags: bug, ext
-   :tickets: 3423
-
-   Reworked :class:`.AssociationProxy` to store state that's specific to a
-   parent class in a separate object, so that a single
-   :class:`.AssocationProxy` can serve for multiple parent classes, as is
-   intrinsic to inheritance, without any ambiguity in the state returned by it.
-   A new method :meth:`.AssociationProxy.for_class` is added to allow
-   inspection of class-specific state.
-
-   .. seealso::
-
-        :ref:`change_3423`
-
diff --git a/doc/build/changelog/unreleased_13/3604.rst b/doc/build/changelog/unreleased_13/3604.rst
deleted file mode 100644 (file)
index 41b09f5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-.. change::
-   :tags: orm, bug
-   :tickets: 3604
-
-   Removed the collection converter used by the :class:`.MappedCollection`
-   class. This converter was used only to assert that the incoming dictionary
-   keys matched that of their corresponding objects, and only during a bulk set
-   operation.  The converter can interfere with a custom validator or
-   :meth:`.AttributeEvents.bulk_replace` listener that wants to convert
-   incoming values further.  The ``TypeError`` which would be raised by this
-   converter when an incoming key didn't match the value is removed; incoming
-   values during a bulk assignment will be keyed to their value-generated key,
-   and not the key that's explicitly present in the dictionary.
-
-   Overall, @converter is superseded by the
-   :meth:`.AttributeEvents.bulk_replace` event handler added as part of
-   :ticket:`3896`.
diff --git a/doc/build/changelog/unreleased_13/3831.rst b/doc/build/changelog/unreleased_13/3831.rst
deleted file mode 100644 (file)
index 8df8f5c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-    :tags: feature, sql
-    :tickets: 3831
-
-    Added new feature :meth:`.FunctionElement.as_comparison` which allows a SQL
-    function to act as a binary comparison operation that can work within the
-    ORM.
-
-    .. seealso::
-
-        :ref:`change_3831`
diff --git a/doc/build/changelog/unreleased_13/3844.rst b/doc/build/changelog/unreleased_13/3844.rst
deleted file mode 100644 (file)
index 8c65c47..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-.. change::
-    :tags: bug, orm
-    :tickets: 3844
-
-    Fixed issue regarding passive_deletes="all", where the foreign key
-    attribute of an object is maintained with its value even after the object
-    is removed from its parent collection.  Previously, the unit of work would
-    set this to NULL even though passive_deletes indicated it should not be
-    modified.
-
-    .. seealso::
-
-        :ref:`change_3844`
diff --git a/doc/build/changelog/unreleased_13/3850.rst b/doc/build/changelog/unreleased_13/3850.rst
deleted file mode 100644 (file)
index 138414d..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-.. change::
-    :tags: feature, sqlite
-    :tickets: 3850
-
-    Added support for SQLite's json functionality via the new
-    SQLite implementation for :class:`.types.JSON`, :class:`.sqlite.JSON`.
-    The name used for the type is ``JSON``, following an example found at
-    SQLite's own documentation. Pull request courtesy Ilja Everilä.
-
-    .. seealso::
-
-        :ref:`change_3850`
diff --git a/doc/build/changelog/unreleased_13/3981.rst b/doc/build/changelog/unreleased_13/3981.rst
deleted file mode 100644 (file)
index d46f5be..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-.. change::
-    :tags: bug, sql
-    :tickets: 3981
-
-    Fixed issue with :meth:`.TypeEngine.bind_expression` and
-    :meth:`.TypeEngine.column_expression` methods where these methods would not
-    work if the target type were part of a :class:`.Variant`, or other target
-    type of a :class:`.TypeDecorator`.  Additionally, the SQL compiler now
-    calls upon the dialect-level implementation when it renders these methods
-    so that dialects can now provide for SQL-level processing for built-in
-    types.
-
-    .. seealso::
-
-        :ref:`change_3981`
-
diff --git a/doc/build/changelog/unreleased_13/3989.rst b/doc/build/changelog/unreleased_13/3989.rst
deleted file mode 100644 (file)
index 02e02c9..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-.. change::
-   :tags: feature, sql
-   :tickets: 3989
-
-   Added new naming convention tokens ``column_0N_name``, ``column_0_N_name``,
-   etc., which will render the names / keys / labels for all columns referenced
-   by a particular constraint in a sequence.  In order to accommodate for the
-   length of such a naming convention, the SQL compiler's auto-truncation
-   feature now applies itself to constraint names as well, which creates a
-   shortened, deterministically generated name for the constraint that will
-   apply to a target backend without going over the character limit of that
-   backend.
-
-   The change also repairs two other issues.  One is that the  ``column_0_key``
-   token wasn't available even though this token was documented, the other was
-   that the ``referred_column_0_name`` token would  inadvertently render the
-   ``.key`` and not the ``.name`` of the column if these two values were
-   different.
-
-   .. seealso::
-
-      :ref:`change_3989`
-
diff --git a/doc/build/changelog/unreleased_13/4133.rst b/doc/build/changelog/unreleased_13/4133.rst
deleted file mode 100644 (file)
index 74c7e70..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-    :tags: bug, orm, declarative
-    :tickets: 4133
-
-    Fixed bug where declarative would not update the state of the
-    :class:`.Mapper` as far as what attributes were present, when additional
-    attributes were added or removed after the mapper attribute collections had
-    already been called and memoized.  Addtionally, a ``NotImplementedError``
-    is now raised if a fully mapped attribute (e.g. column, relationship, etc.)
-    is deleted from a class that is currently mapped, since the mapper will not
-    function correctly if the attribute has been removed.
diff --git a/doc/build/changelog/unreleased_13/4144.rst b/doc/build/changelog/unreleased_13/4144.rst
deleted file mode 100644 (file)
index 08fcb61..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
-   :tags: feature, sql
-   :tickets: 4144
-
-   Added :class:`.Sequence` to the "string SQL" system that will render a
-   meaningful string expression (``"<next sequence value: my_sequence>"``)
-   when stringifying without a dialect a statement that includes a "sequence
-   nextvalue" expression, rather than raising a compilation error.
-
-
diff --git a/doc/build/changelog/unreleased_13/4158.rst b/doc/build/changelog/unreleased_13/4158.rst
deleted file mode 100644 (file)
index ed1c159..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-    :tags: feature, mssql
-    :tickets: 4158
-
-    Added ``fast_executemany=True`` parameter to the SQL Server pyodbc dialect,
-    which enables use of pyodbc's new performance feature of the same name
-    when using Microsoft ODBC drivers.
-
-    .. seealso::
-
-        :ref:`change_4158`
diff --git a/doc/build/changelog/unreleased_13/4196.rst b/doc/build/changelog/unreleased_13/4196.rst
deleted file mode 100644 (file)
index c23002b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-.. change::
-    :tags: feature, ext
-    :tickets: 4196
-
-    Added support for bulk :meth:`.Query.update` and :meth:`.Query.delete`
-    to the :class:`.ShardedQuery` class within the horiziontal sharding
-    extension.  This also adds an additional expansion hook to the
-    bulk update/delete methods :meth:`.Query._execute_crud`.
-
-    .. seealso::
-
-        :ref:`change_4196`
diff --git a/doc/build/changelog/unreleased_13/4219.rst b/doc/build/changelog/unreleased_13/4219.rst
deleted file mode 100644 (file)
index ad83898..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-.. change::
-    :tags: feature, mysql
-    :tickets: 4219
-
-    Support added for the "WITH PARSER" syntax of CREATE FULLTEXT INDEX
-    in MySQL, using the ``mysql_with_parser`` keyword argument.  Reflection
-    is also supported, which accommodates MySQL's special comment format
-    for reporting on this option as well.  Additionally, the "FULLTEXT" and
-    "SPATIAL" index prefixes are now reflected back into the ``mysql_prefix``
-    index option.
-
-
diff --git a/doc/build/changelog/unreleased_13/4232.rst b/doc/build/changelog/unreleased_13/4232.rst
deleted file mode 100644 (file)
index 176650a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
-    :tags: bug, orm
-    :tickets: 4232
-
-    An informative exception is re-raised when a primary key value is not
-    sortable in Python during an ORM flush under Python 3, such as an ``Enum``
-    that has no ``__lt__()`` method; normally Python 3 raises a ``TypeError``
-    in this case.   The flush process sorts persistent objects by primary key
-    in Python so the values must be sortable.
-
diff --git a/doc/build/changelog/unreleased_13/4237.rst b/doc/build/changelog/unreleased_13/4237.rst
deleted file mode 100644 (file)
index a023e59..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-   :tags: feature, postgresql
-   :tickets: 4237
-
-   Added rudimental support for reflection of Postgresql
-   partitioned tables, e.g. that relkind='p' is added to reflection
-   queries that return table information.
-
-   .. seealso::
-
-        :ref:`change_4237`
diff --git a/doc/build/changelog/unreleased_13/4242.rst b/doc/build/changelog/unreleased_13/4242.rst
deleted file mode 100644 (file)
index b138513..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-.. change::
-    :tags: bug, oracle
-    :tickets: 4242
-
-    The Oracle dialect will no longer use the NCHAR/NCLOB datatypes
-    represent generic unicode strings or clob fields in conjunction with
-    :class:`.Unicode` and :class:`.UnicodeText` unless the flag
-    ``use_nchar_for_unicode=True`` is passed to :func:`.create_engine` -
-    this includes CREATE TABLE behavior as well as ``setinputsizes()`` for
-    bound parameters.   On the read side, automatic Unicode conversion under
-    Python 2 has been added to CHAR/VARCHAR/CLOB result rows, to match the
-    behavior of cx_Oracle under Python 3.  In order to mitigate the performance
-    hit under Python 2, SQLAlchemy's very performant (when C extensions
-    are built) native Unicode handlers are used under Python 2.
-
-    .. seealso::
-
-        :ref:`change_4242`
diff --git a/doc/build/changelog/unreleased_13/4246.rst b/doc/build/changelog/unreleased_13/4246.rst
deleted file mode 100644 (file)
index 0b47c9e..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-.. change::
-    :tags: bug, orm, mysql, postgresql
-    :tickets: 4246
-
-    The ORM now doubles the "FOR UPDATE" clause within the subquery that
-    renders in conjunction with joined eager loading in some cases, as it has
-    been observed that MySQL does not lock the rows from a subquery.   This
-    means the query renders with two FOR UPDATE clauses; note that on some
-    backends such as Oracle, FOR UPDATE clauses on subqueries are silently
-    ignored since they are unnecessary.  Additionally, in the case of the "OF"
-    clause used primarily with Postgresql, the FOR UPDATE is rendered only on
-    the inner subquery when this is used so that the selectable can be targeted
-    to the table within the SELECT statement.
-
-    .. seealso::
-
-        :ref:`change_4246`
\ No newline at end of file
diff --git a/doc/build/changelog/unreleased_13/4257.rst b/doc/build/changelog/unreleased_13/4257.rst
deleted file mode 100644 (file)
index 72cac1e..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
-   :tags: feature, orm
-   :tickets: 4257
-
-   Added ``.info`` dictionary to the :class:`.InstanceState` class, the object
-   that comes from calling :func:`.inspect` on a mapped object.
-
-   .. seealso::
-
-        :ref:`change_4257`
diff --git a/doc/build/changelog/unreleased_13/4268.rst b/doc/build/changelog/unreleased_13/4268.rst
deleted file mode 100644 (file)
index 3857313..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-.. change::
-    :tags: bug, ext
-    :tickets: 4268
-
-    The long-standing behavior of the association proxy collection maintaining
-    only a weak reference to the parent object is reverted; the proxy will now
-    maintain a strong reference to the parent for as long as the proxy
-    collection itself is also in memory, eliminating the "stale association
-    proxy" error. This change is being made on an experimental basis to see if
-    any use cases arise where it causes side effects.
-
-    .. seealso::
-
-        :ref:`change_4268`
-
diff --git a/doc/build/changelog/unreleased_13/4271.rst b/doc/build/changelog/unreleased_13/4271.rst
deleted file mode 100644 (file)
index 62ed857..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-.. change::
-    :tags: feature, sql
-    :tickets: 4271
-
-    Added new logic to the "expanding IN" bound parameter feature whereby if
-    the given list is empty, a special "empty set" expression that is specific
-    to different backends is generated, thus allowing IN expressions to be
-    fully dynamic including empty IN expressions.
-
-    .. seealso::
-
-        :ref:`change_4271`
-
-
diff --git a/doc/build/changelog/unreleased_13/4302.rst b/doc/build/changelog/unreleased_13/4302.rst
deleted file mode 100644 (file)
index 0eeda69..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
-    :tags: bug, sql
-    :tickets: 4302
-
-    Added "like" based operators as "comparison" operators, including
-    :meth:`.ColumnOperators.startswith` :meth:`.ColumnOperators.endswith`
-    :meth:`.ColumnOperators.ilike` :meth:`.ColumnOperators.notilike` among many
-    others, so that all of these operators can be the basis for an ORM
-    "primaryjoin" condition.
-
diff --git a/doc/build/changelog/unreleased_13/4304.rst b/doc/build/changelog/unreleased_13/4304.rst
deleted file mode 100644 (file)
index 128d9be..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-    :tags: bug, orm
-    :tickets: 4304
-
-    Fixed long-standing issue in :class:`.Query` where a scalar subquery such
-    as produced by :meth:`.Query.exists`, :meth:`.Query.as_scalar` and other
-    derivations from :attr:`.Query.statement` would not correctly be adapted
-    when used in a new :class:`.Query` that required entity adaptation, such as
-    when the query were turned into a union, or a from_self(), etc. The change
-    removes the "no adaptation" annotation from the :func:`.select` object
-    produced by the :attr:`.Query.statement` accessor.
diff --git a/doc/build/changelog/unreleased_13/4308.rst b/doc/build/changelog/unreleased_13/4308.rst
deleted file mode 100644 (file)
index 68b7653..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-.. change::
-    :tags: bug, ext
-    :tickets: 4308
-
-    Fixed multiple issues regarding de-association of scalar objects with the
-    association proxy.  ``del`` now works, and additionally a new flag
-    :paramref:`.AssociationProxy.cascade_scalar_deletes` is added, which when
-    set to True indicates that setting a scalar attribute to ``None`` or
-    deleting via ``del`` will also set the source association to ``None``.
-
-    .. seealso::
-
-        :ref:`change_4308`
-
diff --git a/doc/build/changelog/unreleased_13/4318.rst b/doc/build/changelog/unreleased_13/4318.rst
deleted file mode 100644 (file)
index 34e3099..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-.. change::
-    :tags: feature, ext
-    :tickets: 4318
-
-    Added new feature :meth:`.BakedQuery.to_query`, which allows for a
-    clean way of using one :class:`.BakedQuery` as a subquery inside of another
-    :class:`.BakedQuery` without needing to refer explicitly to a
-    :class:`.Session`.
-
diff --git a/doc/build/changelog/unreleased_13/4340.rst b/doc/build/changelog/unreleased_13/4340.rst
deleted file mode 100644 (file)
index 3e14d63..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-.. change::
-    :tags: feature, orm
-    :tickets: 4340
-
-    The "selectin" loader strategy now omits the JOIN in the case of a simple
-    one-to-many load, where it instead relies loads only from the related
-    table, relying upon the foreign key columns of the related table in order
-    to match up to primary keys in the parent table.   This optimization can be
-    disabled by setting the :paramref:`.relationship.omit_join` flag to False.
-    Many thanks to Jayson Reis for the efforts on this.
-
-    .. seealso::
-
-        :ref:`change_4340`
diff --git a/doc/build/changelog/unreleased_13/4351.rst b/doc/build/changelog/unreleased_13/4351.rst
deleted file mode 100644 (file)
index 51f9f60..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-.. change::
-   :tags: feature, ext
-   :tickets: 4351
-
-   The :class:`.AssociationProxy` now has standard column comparison operations
-   such as :meth:`.ColumnOperators.like` and
-   :meth:`.ColumnOperators.startswith` available when the target attribute is a
-   plain column - the EXISTS expression that joins to the target table is
-   rendered as usual, but the column expression is then use within the WHERE
-   criteria of the EXISTS.  Note that this alters the behavior of the
-   ``.contains()`` method on the association proxy to make use of
-   :meth:`.ColumnOperators.contains` when used on a column-based attribute.
-
-   .. seealso::
-
-      :ref:`change_4351`
-
diff --git a/doc/build/changelog/unreleased_13/4353.rst b/doc/build/changelog/unreleased_13/4353.rst
deleted file mode 100644 (file)
index d94acf8..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-   :tags: bug, orm
-   :tickets: 4353
-
-   Added new behavior to the lazy load that takes place when the "old" value of
-   a many-to-one is retrieved, such that exceptions which would be raised due
-   to either ``lazy="raise"`` or a detached session error are skipped.
-
-   .. seealso::
-
-    :ref:`change_4353`
diff --git a/doc/build/changelog/unreleased_13/4354.rst b/doc/build/changelog/unreleased_13/4354.rst
deleted file mode 100644 (file)
index ba25a22..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-.. change::
-   :tags: bug, orm
-   :tickets: 4354
-
-   A long-standing oversight in the ORM, the ``__delete__`` method for a many-
-   to-one relationship was non-functional, e.g. for an operation such as ``del
-   a.b``.  This is now implemented and is equivalent to setting the attribute
-   to ``None``.
-
-   .. seealso::
-
-        :ref:`change_4354`
\ No newline at end of file
diff --git a/doc/build/changelog/unreleased_13/4359.rst b/doc/build/changelog/unreleased_13/4359.rst
deleted file mode 100644 (file)
index 1131ed6..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-.. change::
-   :tags: bug, orm
-   :tickets: 4359
-
-   Improved the behavior of a relationship-bound many-to-one object expression
-   such that the retrieval of column values on the related object are now
-   resilient against the object being detached from its parent
-   :class:`.Session`, even if the attribute has been expired.  New features
-   within the :class:`.InstanceState` are used to memoize the last known value
-   of a particular column attribute before its expired, so that the expression
-   can still evaluate when the object is detached and expired at the same
-   time.  Error conditions are also improved using modern attribute state
-   features to produce more specific messages as needed.
-
-   .. seealso::
-
-        :ref:`change_4359`
diff --git a/doc/build/changelog/unreleased_13/4360.rst b/doc/build/changelog/unreleased_13/4360.rst
deleted file mode 100644 (file)
index 433a33d..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-.. change::
-   :tags: feature, sqlite
-   :tickets: 4360
-
-   Implemented the SQLite ``ON CONFLICT`` clause as understood at the DDL
-   level, e.g. for primary key, unique, and CHECK constraints as well as
-   specified on a :class:`.Column` to satisfy inline primary key and NOT NULL.
-   Pull request courtesy Denis Kataev.
-
-   .. seealso::
-
-      :ref:`change_4360`
diff --git a/doc/build/changelog/unreleased_13/4362.rst b/doc/build/changelog/unreleased_13/4362.rst
deleted file mode 100644 (file)
index 59b00fc..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-.. change::
-   :tags: bug, mssql
-   :tickets: 4362
-
-   Deprecated the use of :class:`.Sequence` with SQL Server in order to affect
-   the "start" and "increment" of the IDENTITY value, in favor of new
-   parameters ``mssql_identity_start`` and ``mssql_identity_increment`` which
-   set these parameters directly.  :class:`.Sequence` will be used to generate
-   real ``CREATE SEQUENCE`` DDL with SQL Server in a future release.
-
-   .. seealso::
-
-        :ref:`change_4362`
-
diff --git a/doc/build/changelog/unreleased_13/4365.rst b/doc/build/changelog/unreleased_13/4365.rst
deleted file mode 100644 (file)
index da34bbc..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-.. change::
-    :tags: bug, orm
-    :tickets: 4365
-
-    Refactored :meth:`.Query.join` to further clarify the individual components
-    of structuring the join. This refactor adds the ability for
-    :meth:`.Query.join` to determine the most appropriate "left" side of the
-    join when there is more than one element in the FROM list or the query is
-    against multiple entities.  If more than one FROM/entity matches, an error
-    is raised that asks for an ON clause to be specified to resolve the
-    ambiguity.  In particular this targets the regression we saw in
-    :ticket:`4363` but is also of general use.   The codepaths within
-    :meth:`.Query.join` are now easier to follow and the error cases are
-    decided more specifically at an earlier point in the operation.
-
-    .. seealso::
-
-        :ref:`change_4365`
diff --git a/doc/build/changelog/unreleased_13/4369.rst b/doc/build/changelog/unreleased_13/4369.rst
deleted file mode 100644 (file)
index 09e3776..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-.. change::
-   :tags: bug, oracle
-   :tickets: 4369
-
-   Updated the parameters that can be sent to the cx_Oracle DBAPI to both allow
-   for all current parameters as well as for future parameters not added yet.
-   In addition, removed unused parameters that were deprecated in version 1.2,
-   and additionally we are now defaulting "threaded" to False.
-
-   .. seealso::
-
-      :ref:`change_4369`
diff --git a/doc/build/changelog/unreleased_13/dir_keys.rst b/doc/build/changelog/unreleased_13/dir_keys.rst
deleted file mode 100644 (file)
index cb9a13b..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
-    :tags: feature, sql
-
-    The Python builtin ``dir()`` is now supported for a SQLAlchemy "properties"
-    object, such as that of a Core columns collection (e.g. ``.c``),
-    ``mapper.attrs``, etc.  Allows iPython autocompletion to work as well.
-    Pull request courtesy Uwe Korn.
diff --git a/doc/build/changelog/unreleased_13/mysql_ping.rst b/doc/build/changelog/unreleased_13/mysql_ping.rst
deleted file mode 100644 (file)
index daf1125..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-    :tags: feature, mysql
-
-    The "pre-ping" feature of the connection pool now uses
-    the ``ping()`` method of the DBAPI connection in the case of
-    mysqlclient, PyMySQL and mysql-connector-python.  Pull request
-    courtesy Maxim Bublis.
-
-    .. seealso::
-
-        :ref:`change_mysql_ping`
diff --git a/doc/build/changelog/unreleased_13/pr462.rst b/doc/build/changelog/unreleased_13/pr462.rst
deleted file mode 100644 (file)
index 7d714cf..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-    :tags: feature, mysql
-
-    Added support for the parameters in an ON DUPLICATE KEY UPDATE statement on
-    MySQL to be ordered, since parameter order in a MySQL UPDATE clause is
-    significant, in a similar manner as that described at
-    :ref:`updates_order_parameters`.  Pull request courtesy Maxim Bublis.
-
-    .. seealso::
-
-        :ref:`change_mysql_ondupordering`
diff --git a/doc/build/changelog/unreleased_13/pr467.rst b/doc/build/changelog/unreleased_13/pr467.rst
deleted file mode 100644 (file)
index 7e6e9fd..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-.. change::
-   :tags: feature, engine
-
-   Added new "lifo" mode to :class:`.QueuePool`, typically enabled by setting
-   the flag :paramref:`.create_engine.pool_use_lifo` to True.   "lifo" mode
-   means the same connection just checked in will be the first to be checked
-   out again, allowing excess connections to be cleaned up from the server
-   side during periods of the pool being only partially utilized.  Pull request
-   courtesy Taem Park.
-
-   .. seealso::
-
-      :ref:`change_pr467`
diff --git a/doc/build/changelog/unreleased_13/preserve_order.rst b/doc/build/changelog/unreleased_13/preserve_order.rst
deleted file mode 100644 (file)
index 3265da3..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-.. change::
-    :tags: feature, orm
-
-    Added new flag :paramref:`.Session.bulk_save_objects.preserve_order` to the
-    :meth:`.Session.bulk_save_objects` method, which defaults to True. When set
-    to False, the given mappings will be grouped into inserts and updates per
-    each object type, to allow for greater opportunities to batch common
-    operations together.  Pull request courtesy Alessandro Cucci.
index cd3db223de2edb74385a5ef23ba086e8c1bd060f..e3f36ec0565a5d386c876ce29603ff940ca2f158 100644 (file)
@@ -112,7 +112,7 @@ version = "1.3"
 # The full version, including alpha/beta/rc tags.
 release = "1.3.0b1"
 
-release_date = None
+release_date = "November 16, 2018"
 
 site_base = os.environ.get("RTD_SITE_BASE", "http://www.sqlalchemy.org")
 site_adapter_template = "docs_adapter.mako"