From: Mike Bayer Date: Fri, 13 Oct 2017 17:16:59 +0000 (-0400) Subject: - 1.2.0b3 X-Git-Tag: rel_1_2_0~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9cf6ac32d605f6c0bfb485ddcfe503a8c1a7769d;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - 1.2.0b3 --- diff --git a/doc/build/changelog/changelog_12.rst b/doc/build/changelog/changelog_12.rst index 4de1ae9bb2..0a6bfdb2d4 100644 --- a/doc/build/changelog/changelog_12.rst +++ b/doc/build/changelog/changelog_12.rst @@ -12,7 +12,400 @@ .. changelog:: :version: 1.2.0b3 - :include_notes_from: unreleased_12 + :released: October 13, 2017 + + .. change:: + :tags: bug, mssql + :tickets: 4061 + + SQL Server supports what SQLAlchemy calls "native boolean" + with its BIT type, as this type only accepts 0 or 1 and the + DBAPIs return its value as True/False. So the SQL Server + dialects now enable "native boolean" support, in that a + CHECK constraint is not generated for a :class:`.Boolean` + datatype. The only difference vs. other native boolean + is that there are no "true" / "false" constants so "1" and + "0" are still rendered here. + + + .. change:: + :tags: bug, oracle + :tickets: 4064 + + Partial support for persisting and retrieving the Oracle value + "infinity" is implemented with cx_Oracle, using Python float values + only, e.g. ``float("inf")``. Decimal support is not yet fulfilled by + the cx_Oracle DBAPI driver. + + .. change:: + :tags: bug, oracle + + The cx_Oracle dialect has been reworked and modernized to take advantage of + new patterns that weren't present in the old 4.x series of cx_Oracle. This + includes that the minimum cx_Oracle version is the 5.x series and that + cx_Oracle 6.x is now fully tested. The most significant change involves + type conversions, primarily regarding the numeric / floating point and LOB + datatypes, making more effective use of cx_Oracle type handling hooks to + simplify how bind parameter and result data is processed. + + .. seealso:: + + :ref:`change_cxoracle_12` + + .. change:: + :tags: bug, oracle + :tickets: 3997 + + two phase support for cx_Oracle has been completely removed for all + versions of cx_Oracle, whereas in 1.2.0b1 this change only took effect for + the 6.x series of cx_Oracle. This feature never worked correctly + in any version of cx_Oracle and in cx_Oracle 6.x, the API which SQLAlchemy + relied upon was removed. + + .. seealso:: + + :ref:`change_cxoracle_12` + + .. change:: + :tags: bug, oracle + + The column keys present in a result set when using :meth:`.Insert.returning` + with the cx_Oracle backend now use the correct column / label names + like that of all other dialects. Previously, these came out as + ``ret_nnn``. + + .. seealso:: + + :ref:`change_cxoracle_12` + + .. change:: + :tags: bug, oracle + + Several parameters to the cx_Oracle dialect are now deprecated and will + have no effect: ``auto_setinputsizes``, ``exclude_setinputsizes``, + ``allow_twophase``. + + .. seealso:: + + :ref:`change_cxoracle_12` + + + .. change:: + :tags: bug, sql + :tickets: 4075 + + Added a new method :meth:`.DefaultExecutionContext.get_current_parameters` + which is used within a function-based default value generator in + order to retrieve the current parameters being passed to the statement. + The new function differs from the + :attr:`.DefaultExecutionContext.current_parameters` attribute in + that it also provides for optional grouping of parameters that + correspond to a multi-valued "insert" construct. Previously it was not + possible to identify the subset of parameters that were relevant to + the function call. + + .. seealso:: + + :ref:`change_4075` + + :ref:`context_default_functions` + + .. change:: + :tags: bug, orm + :tickets: 4050 + + Fixed regression introduced in 1.2.0b1 due to :ticket:`3934` where the + :class:`.Session` would fail to "deactivate" the transaction, if a + rollback failed (the target issue is when MySQL loses track of a SAVEPOINT). + This would cause a subsequent call to :meth:`.Session.rollback` to raise + an error a second time, rather than completing and bringing the + :class:`.Session` back to ACTIVE. + + .. change:: + :tags: bug, postgresql + :tickets: 4041 + + Fixed bug where the pg8000 driver would fail if using + :meth:`.MetaData.reflect` with a schema name, since the schema name would + be sent as a "quoted_name" object that's a string subclass, which pg8000 + doesn't recognize. The quoted_name type is added to pg8000's + py_types collection on connect. + + .. change:: + :tags: bug, postgresql + :tickets: 4016 + + Enabled UUID support for the pg8000 driver, which supports native Python + uuid round trips for this datatype. Arrays of UUID are still not supported, + however. + + .. change:: + :tags: mssql, bug + :tickets: 4057 + + Fixed the pymssql dialect so that percent signs in SQL text, such + as used in modulus expressions or literal textual values, are + **not** doubled up, as seems to be what pymssql expects. This is + despite the fact that the pymssql DBAPI uses the "pyformat" parameter + style which itself considers the percent sign to be significant. + + .. change:: + :tags: bug, orm, declarative + :tickets: 4091 + + A warning is emitted if a subclass attempts to override an attribute + that was declared on a superclass using ``@declared_attr.cascading`` + that the overridden attribute will be ignored. This use + case cannot be fully supported down to further subclasses without more + complex development efforts, so for consistency the "cascading" is + honored all the way down regardless of overriding attributes. + + .. change:: + :tags: bug, orm, declarative + :tickets: 4092 + + A warning is emitted if the ``@declared_attr.cascading`` attribute is + used with a special declarative name such as ``__tablename__``, as this + has no effect. + + .. change:: + :tags: feature, engine + :tickets: 4077 + + Added ``__next__()`` and ``next()`` methods to :class:`.ResultProxy`, + so that the ``next()`` builtin function works on the object directly. + :class:`.ResultProxy` has long had an ``__iter__()`` method which already + allows it to respond to the ``iter()`` builtin. The implementation + for ``__iter__()`` is unchanged, as performance testing has indicated + that iteration using a ``__next__()`` method with ``StopIteration`` + is about 20% slower in both Python 2.7 and 3.6. + + .. change:: + :tags: feature, mssql + :tickets: 4086 + + Added a new :class:`.mssql.TIMESTAMP` datatype, that + correctly acts like a binary datatype for SQL Server + rather than a datetime type, as SQL Server breaks the + SQL standard here. Also added :class:`.mssql.ROWVERSION`, + as the "TIMESTAMP" type in SQL Server is deprecated in + favor of ROWVERSION. + + .. change:: + :tags: bug, orm + :tickets: 4084 + + Fixed issue where the :func:`.make_transient_to_detached` function + would expire all attributes on the target object, including "deferred" + attributes, which has the effect of the attribute being undeferred + for the next refesh, causing an unexpected load of the attribute. + + .. change:: + :tags: bug, orm + :tickets: 4026 + + Fixed bug in :ref:`change_3948` which prevented "selectin" and + "inline" settings in a multi-level class hierarchy from interacting + together as expected. A new example is added to the documentation. + + .. seealso:: + + :ref:`polymorphic_selectin_and_withpoly` + + .. change:: + :tags: bug, oracle + :tickets: 4042 + + Fixed bug where an index reflected under Oracle with an expression like + "column DESC" would not be returned, if the table also had no primary + key, as a result of logic that attempts to filter out the + index implicitly added by Oracle onto the primary key columns. + + .. change:: + :tags: bug, orm + :tickets: 4071 + + Removed the warnings that are emitted when the LRU caches employed + by the mapper as well as loader srtategies reach their threshold; the + purpose of this warning was at first a guard against excess cache keys + being generated but became basically a check on the "creating many + engines" antipattern. While this is still an antipattern, the presense + of test suites which both create an engine per test as well as raise + on all warnings will be an inconvenience; it should not be critical + that such test suites change their architecture just for this warning + (though engine-per-test suite is always better). + + .. change:: + :tags: bug, orm + :tickets: 4049 + + Fixed regression where the use of a :func:`.undefer_group` option + in conjunction with a lazy loaded relationship option would cause + an attribute error, due to a bug in the SQL cache key generation + added in 1.2 as part of :ticket:`3954`. + + .. change:: + :tags: bug, oracle + :tickets: 4045 + + Fixed more regressions caused by cx_Oracle 6.0; at the moment, the only + behavioral change for users is disconnect detection now detects for + cx_Oracle.DatabaseError in addition to cx_Oracle.InterfaceError, as + this behavior seems to have changed. Other issues regarding numeric + precision and uncloseable connections are pending with the upstream + cx_Oracle issue tracker. + + .. change:: + :tags: bug, mssql + :tickets: 4060 + + Fixed bug where the SQL Server dialect could pull columns from multiple + schemas when reflecting a self-referential foreign key constraint, if + multiple schemas contained a constraint of the same name against a + table of the same name. + + + .. change:: + :tags: feature, mssql + :tickets: 4058 + + Added support for "AUTOCOMMIT" isolation level, as established + via :meth:`.Connection.execution_options`, to the + PyODBC and pymssql dialects. This isolation level sets the + appropriate DBAPI-specific flags on the underlying + connection object. + + .. change:: + :tags: bug, orm + :tickets: 4073 + + Modified the change made to the ORM update/delete evaluator in + :ticket:`3366` such that if an unmapped column expression is present + in the update or delete, if the evaluator can match its name to the + mapped columns of the target class, a warning is emitted, rather than + raising UnevaluatableError. This is essentially the pre-1.2 behavior, + and is to allow migration for applications that are currently relying + upon this pattern. However, if the given attribute name cannot be + matched to the columns of the mapper, the UnevaluatableError is + still raised, which is what was fixed in :ticket:`3366`. + + .. change:: + :tags: bug, sql + :tickets: 4087 + + Fixed bug in new SQL comments feature where table and column comment + would not be copied when using :meth:`.Table.tometadata`. + + .. change:: + :tags: bug, sql + :tickets: 4102 + + In release 1.1, the :class:`.Boolean` type was broken in that + boolean coercion via ``bool()`` would occur for backends that did not + feature "native boolean", but would not occur for native boolean backends, + meaning the string ``"0"`` now behaved inconsistently. After a poll, a + consensus was reached that non-boolean values should be raising an error, + especially in the ambiguous case of string ``"0"``; so the :class:`.Boolean` + datatype will now raise ``ValueError`` if an incoming value is not + within the range ``None, True, False, 1, 0``. + + .. seealso:: + + :ref:`change_4102` + + .. change:: + :tags: bug, sql + :tickets: 4063 + + Refined the behavior of :meth:`.Operators.op` such that in all cases, + if the :paramref:`.Operators.op.is_comparison` flag is set to True, + the return type of the resulting expression will be + :class:`.Boolean`, and if the flag is False, the return type of the + resulting expression will be the same type as that of the left-hand + expression, which is the typical default behavior of other operators. + Also added a new parameter :paramref:`.Operators.op.return_type` as well + as a helper method :meth:`.Operators.bool_op`. + + .. seealso:: + + :ref:`change_4063` + + .. change:: + :tags: bug, mysql + :tickets: 4072 + + Changed the name of the ``.values`` attribute of the new MySQL + INSERT..ON DUPLICATE KEY UPDATE construct to ``.inserted``, as + :class:`.Insert` already has a method called :meth:`.Insert.values`. + The ``.inserted`` attribute ultimately renders the MySQL ``VALUES()`` + function. + + .. change:: + :tags: bug, mssql, orm + :tickets: 4062 + + Added a new class of "rowcount support" for dialects that is specific to + when "RETURNING", which on SQL Server looks like "OUTPUT inserted", is in + use, as the PyODBC backend isn't able to give us rowcount on an UPDATE or + DELETE statement when OUTPUT is in effect. This primarily affects the ORM + when a flush is updating a row that contains server-calcluated values, + raising an error if the backend does not return the expected row count. + PyODBC now states that it supports rowcount except if OUTPUT.inserted is + present, which is taken into account by the ORM during a flush as to + whether it will look for a rowcount. + + .. change:: + :tags: bug, sql + :tickets: 4088 + + Internal refinements to the :class:`.Enum`, :class:`.Interval`, and + :class:`.Boolean` types, which now extend a common mixin + :class:`.Emulated` that indicates a type that provides Python-side + emulation of a DB native type, switching out to the DB native type when a + supporting backend is in use. The Postgresql :class:`.INTERVAL` type + when used directly will now include the correct type coercion rules for + SQL expressions that also take effect for :class:`.sqltypes.Interval` + (such as adding a date to an interval yields a datetime). + + + .. change:: + :tags: bug, mssql, orm + + Enabled the "sane_rowcount" flag for the pymssql dialect, indicating + that the DBAPI now reports the correct number of rows affected from + an UPDATE or DELETE statement. This impacts mostly the ORM versioning + feature in that it now can verify the number of rows affected on a + target version. + + .. change:: 4028 + :tags: bug, engine + :tickets: 4028 + + Made some adjustments to :class:`.Pool` and :class:`.Connection` such + that recovery logic is not run underneath exception catches for + ``pool.Empty``, ``AttributeError``, since when the recovery operation + itself fails, Python 3 creates a misleading stack trace referring to the + ``Empty`` / ``AttributeError`` as the cause, when in fact these exception + catches are part of control flow. + + + .. change:: + :tags: bug, oracle + :tickets: 4076 + + Fixed bug where Oracle 8 "non ansi" join mode would not add the + ``(+)`` operator to expressions that used an operator other than the + ``=`` operator. The ``(+)`` needs to be on all columns that are part + of the right-hand side. + + .. change:: + :tags: bug, mssql + :tickets: 4059 + + Added a rule to SQL Server index reflection to ignore the so-called + "heap" index that is implicitly present on a table that does not + specify a clustered index. + .. changelog:: :version: 1.2.0b2 diff --git a/doc/build/changelog/unreleased_12/4016.rst b/doc/build/changelog/unreleased_12/4016.rst deleted file mode 100644 index bb6ae8d6b6..0000000000 --- a/doc/build/changelog/unreleased_12/4016.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 4016 - - Enabled UUID support for the pg8000 driver, which supports native Python - uuid round trips for this datatype. Arrays of UUID are still not supported, - however. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_12/4026.rst b/doc/build/changelog/unreleased_12/4026.rst deleted file mode 100644 index 20cdc4df61..0000000000 --- a/doc/build/changelog/unreleased_12/4026.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 4026 - - Fixed bug in :ref:`change_3948` which prevented "selectin" and - "inline" settings in a multi-level class hierarchy from interacting - together as expected. A new example is added to the documentation. - - .. seealso:: - - :ref:`polymorphic_selectin_and_withpoly` \ No newline at end of file diff --git a/doc/build/changelog/unreleased_12/4028.rst b/doc/build/changelog/unreleased_12/4028.rst deleted file mode 100644 index c6b366569d..0000000000 --- a/doc/build/changelog/unreleased_12/4028.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: 4028 - :tags: bug, engine - :tickets: 4028 - - Made some adjustments to :class:`.Pool` and :class:`.Connection` such - that recovery logic is not run underneath exception catches for - ``pool.Empty``, ``AttributeError``, since when the recovery operation - itself fails, Python 3 creates a misleading stack trace referring to the - ``Empty`` / ``AttributeError`` as the cause, when in fact these exception - catches are part of control flow. - diff --git a/doc/build/changelog/unreleased_12/4041.rst b/doc/build/changelog/unreleased_12/4041.rst deleted file mode 100644 index ebcb7236c9..0000000000 --- a/doc/build/changelog/unreleased_12/4041.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 4041 - - Fixed bug where the pg8000 driver would fail if using - :meth:`.MetaData.reflect` with a schema name, since the schema name would - be sent as a "quoted_name" object that's a string subclass, which pg8000 - doesn't recognize. The quoted_name type is added to pg8000's - py_types collection on connect. diff --git a/doc/build/changelog/unreleased_12/4042.rst b/doc/build/changelog/unreleased_12/4042.rst deleted file mode 100644 index 8ce04a9a7e..0000000000 --- a/doc/build/changelog/unreleased_12/4042.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, oracle - :tickets: 4042 - - Fixed bug where an index reflected under Oracle with an expression like - "column DESC" would not be returned, if the table also had no primary - key, as a result of logic that attempts to filter out the - index implicitly added by Oracle onto the primary key columns. diff --git a/doc/build/changelog/unreleased_12/4045.rst b/doc/build/changelog/unreleased_12/4045.rst deleted file mode 100644 index 31527f0629..0000000000 --- a/doc/build/changelog/unreleased_12/4045.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, oracle - :tickets: 4045 - - Fixed more regressions caused by cx_Oracle 6.0; at the moment, the only - behavioral change for users is disconnect detection now detects for - cx_Oracle.DatabaseError in addition to cx_Oracle.InterfaceError, as - this behavior seems to have changed. Other issues regarding numeric - precision and uncloseable connections are pending with the upstream - cx_Oracle issue tracker. diff --git a/doc/build/changelog/unreleased_12/4049.rst b/doc/build/changelog/unreleased_12/4049.rst deleted file mode 100644 index 010d1a2c02..0000000000 --- a/doc/build/changelog/unreleased_12/4049.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 4049 - - Fixed regression where the use of a :func:`.undefer_group` option - in conjunction with a lazy loaded relationship option would cause - an attribute error, due to a bug in the SQL cache key generation - added in 1.2 as part of :ticket:`3954`. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_12/4050.rst b/doc/build/changelog/unreleased_12/4050.rst deleted file mode 100644 index 762e5f83d6..0000000000 --- a/doc/build/changelog/unreleased_12/4050.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 4050 - - Fixed regression introduced in 1.2.0b1 due to :ticket:`3934` where the - :class:`.Session` would fail to "deactivate" the transaction, if a - rollback failed (the target issue is when MySQL loses track of a SAVEPOINT). - This would cause a subsequent call to :meth:`.Session.rollback` to raise - an error a second time, rather than completing and bringing the - :class:`.Session` back to ACTIVE. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_12/4057.rst b/doc/build/changelog/unreleased_12/4057.rst deleted file mode 100644 index e64148518b..0000000000 --- a/doc/build/changelog/unreleased_12/4057.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: mssql, bug - :tickets: 4057 - - Fixed the pymssql dialect so that percent signs in SQL text, such - as used in modulus expressions or literal textual values, are - **not** doubled up, as seems to be what pymssql expects. This is - despite the fact that the pymssql DBAPI uses the "pyformat" parameter - style which itself considers the percent sign to be significant. diff --git a/doc/build/changelog/unreleased_12/4058.rst b/doc/build/changelog/unreleased_12/4058.rst deleted file mode 100644 index e459e41d95..0000000000 --- a/doc/build/changelog/unreleased_12/4058.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: feature, mssql - :tickets: 4058 - - Added support for "AUTOCOMMIT" isolation level, as established - via :meth:`.Connection.execution_options`, to the - PyODBC and pymssql dialects. This isolation level sets the - appropriate DBAPI-specific flags on the underlying - connection object. diff --git a/doc/build/changelog/unreleased_12/4059.rst b/doc/build/changelog/unreleased_12/4059.rst deleted file mode 100644 index bedbdd17de..0000000000 --- a/doc/build/changelog/unreleased_12/4059.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, mssql - :tickets: 4059 - - Added a rule to SQL Server index reflection to ignore the so-called - "heap" index that is implicitly present on a table that does not - specify a clustered index. - diff --git a/doc/build/changelog/unreleased_12/4060.rst b/doc/build/changelog/unreleased_12/4060.rst deleted file mode 100644 index f834430057..0000000000 --- a/doc/build/changelog/unreleased_12/4060.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, mssql - :tickets: 4060 - - Fixed bug where the SQL Server dialect could pull columns from multiple - schemas when reflecting a self-referential foreign key constraint, if - multiple schemas contained a constraint of the same name against a - table of the same name. - diff --git a/doc/build/changelog/unreleased_12/4061.rst b/doc/build/changelog/unreleased_12/4061.rst deleted file mode 100644 index 63d6b9eb72..0000000000 --- a/doc/build/changelog/unreleased_12/4061.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: bug, mssql - :tickets: 4061 - - SQL Server supports what SQLAlchemy calls "native boolean" - with its BIT type, as this type only accepts 0 or 1 and the - DBAPIs return its value as True/False. So the SQL Server - dialects now enable "native boolean" support, in that a - CHECK constraint is not generated for a :class:`.Boolean` - datatype. The only difference vs. other native boolean - is that there are no "true" / "false" constants so "1" and - "0" are still rendered here. - diff --git a/doc/build/changelog/unreleased_12/4062.rst b/doc/build/changelog/unreleased_12/4062.rst deleted file mode 100644 index 3a89a1ad67..0000000000 --- a/doc/build/changelog/unreleased_12/4062.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: bug, mssql, orm - :tickets: 4062 - - Added a new class of "rowcount support" for dialects that is specific to - when "RETURNING", which on SQL Server looks like "OUTPUT inserted", is in - use, as the PyODBC backend isn't able to give us rowcount on an UPDATE or - DELETE statement when OUTPUT is in effect. This primarily affects the ORM - when a flush is updating a row that contains server-calcluated values, - raising an error if the backend does not return the expected row count. - PyODBC now states that it supports rowcount except if OUTPUT.inserted is - present, which is taken into account by the ORM during a flush as to - whether it will look for a rowcount. diff --git a/doc/build/changelog/unreleased_12/4063.rst b/doc/build/changelog/unreleased_12/4063.rst deleted file mode 100644 index 2d79961eef..0000000000 --- a/doc/build/changelog/unreleased_12/4063.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 4063 - - Refined the behavior of :meth:`.Operators.op` such that in all cases, - if the :paramref:`.Operators.op.is_comparison` flag is set to True, - the return type of the resulting expression will be - :class:`.Boolean`, and if the flag is False, the return type of the - resulting expression will be the same type as that of the left-hand - expression, which is the typical default behavior of other operators. - Also added a new parameter :paramref:`.Operators.op.return_type` as well - as a helper method :meth:`.Operators.bool_op`. - - .. seealso:: - - :ref:`change_4063` \ No newline at end of file diff --git a/doc/build/changelog/unreleased_12/4071.rst b/doc/build/changelog/unreleased_12/4071.rst deleted file mode 100644 index ff6fc1bb08..0000000000 --- a/doc/build/changelog/unreleased_12/4071.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 4071 - - Removed the warnings that are emitted when the LRU caches employed - by the mapper as well as loader srtategies reach their threshold; the - purpose of this warning was at first a guard against excess cache keys - being generated but became basically a check on the "creating many - engines" antipattern. While this is still an antipattern, the presense - of test suites which both create an engine per test as well as raise - on all warnings will be an inconvenience; it should not be critical - that such test suites change their architecture just for this warning - (though engine-per-test suite is always better). \ No newline at end of file diff --git a/doc/build/changelog/unreleased_12/4072.rst b/doc/build/changelog/unreleased_12/4072.rst deleted file mode 100644 index 3e5e83f24a..0000000000 --- a/doc/build/changelog/unreleased_12/4072.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, mysql - :tickets: 4072 - - Changed the name of the ``.values`` attribute of the new MySQL - INSERT..ON DUPLICATE KEY UPDATE construct to ``.inserted``, as - :class:`.Insert` already has a method called :meth:`.Insert.values`. - The ``.inserted`` attribute ultimately renders the MySQL ``VALUES()`` - function. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_12/4073.rst b/doc/build/changelog/unreleased_12/4073.rst deleted file mode 100644 index 8a083df9cd..0000000000 --- a/doc/build/changelog/unreleased_12/4073.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 4073 - - Modified the change made to the ORM update/delete evaluator in - :ticket:`3366` such that if an unmapped column expression is present - in the update or delete, if the evaluator can match its name to the - mapped columns of the target class, a warning is emitted, rather than - raising UnevaluatableError. This is essentially the pre-1.2 behavior, - and is to allow migration for applications that are currently relying - upon this pattern. However, if the given attribute name cannot be - matched to the columns of the mapper, the UnevaluatableError is - still raised, which is what was fixed in :ticket:`3366`. diff --git a/doc/build/changelog/unreleased_12/4075.rst b/doc/build/changelog/unreleased_12/4075.rst deleted file mode 100644 index deacc077b6..0000000000 --- a/doc/build/changelog/unreleased_12/4075.rst +++ /dev/null @@ -1,19 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 4075 - - Added a new method :meth:`.DefaultExecutionContext.get_current_parameters` - which is used within a function-based default value generator in - order to retrieve the current parameters being passed to the statement. - The new function differs from the - :attr:`.DefaultExecutionContext.current_parameters` attribute in - that it also provides for optional grouping of parameters that - correspond to a multi-valued "insert" construct. Previously it was not - possible to identify the subset of parameters that were relevant to - the function call. - - .. seealso:: - - :ref:`change_4075` - - :ref:`context_default_functions` \ No newline at end of file diff --git a/doc/build/changelog/unreleased_12/4076.rst b/doc/build/changelog/unreleased_12/4076.rst deleted file mode 100644 index 78cd6bcee0..0000000000 --- a/doc/build/changelog/unreleased_12/4076.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, oracle - :tickets: 4076 - - Fixed bug where Oracle 8 "non ansi" join mode would not add the - ``(+)`` operator to expressions that used an operator other than the - ``=`` operator. The ``(+)`` needs to be on all columns that are part - of the right-hand side. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_12/4077.rst b/doc/build/changelog/unreleased_12/4077.rst deleted file mode 100644 index b051d47ba4..0000000000 --- a/doc/build/changelog/unreleased_12/4077.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: - :tags: feature, engine - :tickets: 4077 - - Added ``__next__()`` and ``next()`` methods to :class:`.ResultProxy`, - so that the ``next()`` builtin function works on the object directly. - :class:`.ResultProxy` has long had an ``__iter__()`` method which already - allows it to respond to the ``iter()`` builtin. The implementation - for ``__iter__()`` is unchanged, as performance testing has indicated - that iteration using a ``__next__()`` method with ``StopIteration`` - is about 20% slower in both Python 2.7 and 3.6. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_12/4084.rst b/doc/build/changelog/unreleased_12/4084.rst deleted file mode 100644 index b7b924e005..0000000000 --- a/doc/build/changelog/unreleased_12/4084.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 4084 - - Fixed issue where the :func:`.make_transient_to_detached` function - would expire all attributes on the target object, including "deferred" - attributes, which has the effect of the attribute being undeferred - for the next refesh, causing an unexpected load of the attribute. diff --git a/doc/build/changelog/unreleased_12/4086.rst b/doc/build/changelog/unreleased_12/4086.rst deleted file mode 100644 index ee1e66f63c..0000000000 --- a/doc/build/changelog/unreleased_12/4086.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: feature, mssql - :tickets: 4086 - - Added a new :class:`.mssql.TIMESTAMP` datatype, that - correctly acts like a binary datatype for SQL Server - rather than a datetime type, as SQL Server breaks the - SQL standard here. Also added :class:`.mssql.ROWVERSION`, - as the "TIMESTAMP" type in SQL Server is deprecated in - favor of ROWVERSION. diff --git a/doc/build/changelog/unreleased_12/4087.rst b/doc/build/changelog/unreleased_12/4087.rst deleted file mode 100644 index 2ebc0576eb..0000000000 --- a/doc/build/changelog/unreleased_12/4087.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 4087 - - Fixed bug in new SQL comments feature where table and column comment - would not be copied when using :meth:`.Table.tometadata`. diff --git a/doc/build/changelog/unreleased_12/4088.rst b/doc/build/changelog/unreleased_12/4088.rst deleted file mode 100644 index 6159db1718..0000000000 --- a/doc/build/changelog/unreleased_12/4088.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 4088 - - Internal refinements to the :class:`.Enum`, :class:`.Interval`, and - :class:`.Boolean` types, which now extend a common mixin - :class:`.Emulated` that indicates a type that provides Python-side - emulation of a DB native type, switching out to the DB native type when a - supporting backend is in use. The Postgresql :class:`.INTERVAL` type - when used directly will now include the correct type coercion rules for - SQL expressions that also take effect for :class:`.sqltypes.Interval` - (such as adding a date to an interval yields a datetime). - diff --git a/doc/build/changelog/unreleased_12/4091.rst b/doc/build/changelog/unreleased_12/4091.rst deleted file mode 100644 index 056843cfbb..0000000000 --- a/doc/build/changelog/unreleased_12/4091.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. change:: - :tags: bug, orm, declarative - :tickets: 4091 - - A warning is emitted if a subclass attempts to override an attribute - that was declared on a superclass using ``@declared_attr.cascading`` - that the overridden attribute will be ignored. This use - case cannot be fully supported down to further subclasses without more - complex development efforts, so for consistency the "cascading" is - honored all the way down regardless of overriding attributes. - -.. change:: - :tags: bug, orm, declarative - :tickets: 4092 - - A warning is emitted if the ``@declared_attr.cascading`` attribute is - used with a special declarative name such as ``__tablename__``, as this - has no effect. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_12/4102.rst b/doc/build/changelog/unreleased_12/4102.rst deleted file mode 100644 index 1220a23cf0..0000000000 --- a/doc/build/changelog/unreleased_12/4102.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 4102 - - In release 1.1, the :class:`.Boolean` type was broken in that - boolean coercion via ``bool()`` would occur for backends that did not - feature "native boolean", but would not occur for native boolean backends, - meaning the string ``"0"`` now behaved inconsistently. After a poll, a - consensus was reached that non-boolean values should be raising an error, - especially in the ambiguous case of string ``"0"``; so the :class:`.Boolean` - datatype will now raise ``ValueError`` if an incoming value is not - within the range ``None, True, False, 1, 0``. - - .. seealso:: - - :ref:`change_4102` \ No newline at end of file diff --git a/doc/build/changelog/unreleased_12/oracle_refactor.rst b/doc/build/changelog/unreleased_12/oracle_refactor.rst deleted file mode 100644 index 2a30645fe3..0000000000 --- a/doc/build/changelog/unreleased_12/oracle_refactor.rst +++ /dev/null @@ -1,61 +0,0 @@ -.. change:: - :tags: bug, oracle - :tickets: 4064 - - Partial support for persisting and retrieving the Oracle value - "infinity" is implemented with cx_Oracle, using Python float values - only, e.g. ``float("inf")``. Decimal support is not yet fulfilled by - the cx_Oracle DBAPI driver. - -.. change:: - :tags: bug, oracle - - The cx_Oracle dialect has been reworked and modernized to take advantage of - new patterns that weren't present in the old 4.x series of cx_Oracle. This - includes that the minimum cx_Oracle version is the 5.x series and that - cx_Oracle 6.x is now fully tested. The most significant change involves - type conversions, primarily regarding the numeric / floating point and LOB - datatypes, making more effective use of cx_Oracle type handling hooks to - simplify how bind parameter and result data is processed. - - .. seealso:: - - :ref:`change_cxoracle_12` - -.. change:: - :tags: bug, oracle - :tickets: 3997 - - two phase support for cx_Oracle has been completely removed for all - versions of cx_Oracle, whereas in 1.2.0b1 this change only took effect for - the 6.x series of cx_Oracle. This feature never worked correctly - in any version of cx_Oracle and in cx_Oracle 6.x, the API which SQLAlchemy - relied upon was removed. - - .. seealso:: - - :ref:`change_cxoracle_12` - -.. change:: - :tags: bug, oracle - - The column keys present in a result set when using :meth:`.Insert.returning` - with the cx_Oracle backend now use the correct column / label names - like that of all other dialects. Previously, these came out as - ``ret_nnn``. - - .. seealso:: - - :ref:`change_cxoracle_12` - -.. change:: - :tags: bug, oracle - - Several parameters to the cx_Oracle dialect are now deprecated and will - have no effect: ``auto_setinputsizes``, ``exclude_setinputsizes``, - ``allow_twophase``. - - .. seealso:: - - :ref:`change_cxoracle_12` - diff --git a/doc/build/changelog/unreleased_12/pymssql_sane_rowcount.rst b/doc/build/changelog/unreleased_12/pymssql_sane_rowcount.rst deleted file mode 100644 index 9b4df2d85f..0000000000 --- a/doc/build/changelog/unreleased_12/pymssql_sane_rowcount.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, mssql, orm - - Enabled the "sane_rowcount" flag for the pymssql dialect, indicating - that the DBAPI now reports the correct number of rows affected from - an UPDATE or DELETE statement. This impacts mostly the ORM versioning - feature in that it now can verify the number of rows affected on a - target version. \ No newline at end of file diff --git a/doc/build/conf.py b/doc/build/conf.py index 5a1d66aef8..782d8f6b73 100644 --- a/doc/build/conf.py +++ b/doc/build/conf.py @@ -110,9 +110,9 @@ copyright = u'2007-2017, the SQLAlchemy authors and contributors' # The short X.Y version. version = "1.2" # The full version, including alpha/beta/rc tags. -release = "1.2.0b2" +release = "1.2.0b3" -release_date = "July 24, 2017" +release_date = "October 13, 2017" site_base = os.environ.get("RTD_SITE_BASE", "http://www.sqlalchemy.org") site_adapter_template = "docs_adapter.mako"