From: Mike Bayer Date: Tue, 27 Aug 2019 23:18:35 +0000 (-0400) Subject: - 1.3.8 X-Git-Tag: rel_1_3_8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0f89cdc49b654561f50a6b6a27db7a120edb00eb;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - 1.3.8 --- diff --git a/doc/build/changelog/changelog_13.rst b/doc/build/changelog/changelog_13.rst index 6e3fbed041..3fb1b3cd2c 100644 --- a/doc/build/changelog/changelog_13.rst +++ b/doc/build/changelog/changelog_13.rst @@ -12,7 +12,108 @@ .. changelog:: :version: 1.3.8 - :include_notes_from: unreleased_13 + :released: August 27, 2019 + + .. change:: + :tags: bug, orm + :tickets: 4823 + + Fixed bug where :class:`.Load` objects were not pickleable due to + mapper/relationship state in the internal context dictionary. These + objects are now converted to picklable using similar techniques as that of + other elements within the loader option system that have long been + serializable. + + .. change:: + :tags: bug, postgresql + :tickets: 4623 + + Revised the approach for the just added support for the psycopg2 + "execute_values()" feature added in 1.3.7 for :ticket:`4623`. The approach + relied upon a regular expression that would fail to match for a more + complex INSERT statement such as one which had subqueries involved. The + new approach matches exactly the string that was rendered as the VALUES + clause. + + .. change:: + :tags: usecase, orm + :tickets: 4285 + + Added support for the use of an :class:`.Enum` datatype using Python + pep-435 enumeration objects as values for use as a primary key column + mapped by the ORM. As these values are not inherently sortable, as + required by the ORM for primary keys, a new + :attr:`.TypeEngine.sort_key_function` attribute is added to the typing + system which allows any SQL type to implement a sorting for Python objects + of its type which is consulted by the unit of work. The :class:`.Enum` + type then defines this using the database value of a given enumeration. + The sorting scheme can be also be redefined by passing a callable to the + :paramref:`.Enum.sort_key_function` parameter. Pull request courtesy + Nicolas Caniart. + + .. change:: + :tags: bug, engine + :tickets: 4807 + + Fixed an issue whereby if the dialect "initialize" process which occurs on + first connect would encounter an unexpected exception, the initialize + process would fail to complete and then no longer attempt on subsequent + connection attempts, leaving the dialect in an un-initialized, or partially + initialized state, within the scope of parameters that need to be + established based on inspection of a live connection. The "invoke once" + logic in the event system has been reworked to accommodate for this + occurrence using new, private API features that establish an "exec once" + hook that will continue to allow the initializer to fire off on subsequent + connections, until it completes without raising an exception. This does not + impact the behavior of the existing ``once=True`` flag within the event + system. + + .. change:: + :tags: bug, sqlite, reflection + :tickets: 4810 + + Fixed bug where a FOREIGN KEY that was set up to refer to the parent table + by table name only without the column names would not correctly be + reflected as far as setting up the "referred columns", since SQLite's + PRAGMA does not report on these columns if they weren't given explicitly. + For some reason this was harcoded to assume the name of the local column, + which might work for some cases but is not correct. The new approach + reflects the primary key of the referred table and uses the constraint + columns list as the referred columns list, if the remote column(s) aren't + present in the reflected pragma directly. + + + .. change:: + :tags: bug, postgresql + :tickets: 4822 + + Fixed bug where Postgresql operators such as + :meth:`.postgresql.ARRAY.Comparator.contains` and + :meth:`.postgresql.ARRAY.Comparator.contained_by` would fail to function + correctly for non-integer values when used against a + :class:`.postgresql.array` object, due to an erroneous assert statement. + + .. change:: + :tags: feature, engine + :tickets: 4815 + + Added new parameter :paramref:`.create_engine.hide_parameters` which when + set to True will cause SQL parameters to no longer be logged, nor rendered + in the string representation of a :class:`.StatementError` object. + + + .. change:: + :tags: usecase, postgresql + :tickets: 4824 + + Added support for reflection of CHECK constraints that include the special + PostgreSQL qualifier "NOT VALID", which can be present for CHECK + constraints that were added to an exsiting table with the directive that + they not be applied to existing data in the table. The PostgreSQL + dictionary for CHECK constraints as returned by + :meth:`.Inspector.get_check_constraints` may include an additional entry + ``dialect_options`` which within will contain an entry ``"not_valid": + True`` if this symbol is detected. Pull request courtesy Bill Finn. .. changelog:: :version: 1.3.7 diff --git a/doc/build/changelog/unreleased_13/4285.rst b/doc/build/changelog/unreleased_13/4285.rst deleted file mode 100644 index 1049a5882b..0000000000 --- a/doc/build/changelog/unreleased_13/4285.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. change:: - :tags: usecase, orm - :tickets: 4285 - - Added support for the use of an :class:`.Enum` datatype using Python - pep-435 enumeration objects as values for use as a primary key column - mapped by the ORM. As these values are not inherently sortable, as - required by the ORM for primary keys, a new - :attr:`.TypeEngine.sort_key_function` attribute is added to the typing - system which allows any SQL type to implement a sorting for Python objects - of its type which is consulted by the unit of work. The :class:`.Enum` - type then defines this using the database value of a given enumeration. - The sorting scheme can be also be redefined by passing a callable to the - :paramref:`.Enum.sort_key_function` parameter. Pull request courtesy - Nicolas Caniart. diff --git a/doc/build/changelog/unreleased_13/4623.rst b/doc/build/changelog/unreleased_13/4623.rst deleted file mode 100644 index 462e77f92d..0000000000 --- a/doc/build/changelog/unreleased_13/4623.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 4623 - - Revised the approach for the just added support for the psycopg2 - "execute_values()" feature added in 1.3.7 for :ticket:`4623`. The approach - relied upon a regular expression that would fail to match for a more - complex INSERT statement such as one which had subqueries involved. The - new approach matches exactly the string that was rendered as the VALUES - clause. diff --git a/doc/build/changelog/unreleased_13/4807.rst b/doc/build/changelog/unreleased_13/4807.rst deleted file mode 100644 index a688abb194..0000000000 --- a/doc/build/changelog/unreleased_13/4807.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. change:: - :tags: bug, engine - :tickets: 4807 - - Fixed an issue whereby if the dialect "initialize" process which occurs on - first connect would encounter an unexpected exception, the initialize - process would fail to complete and then no longer attempt on subsequent - connection attempts, leaving the dialect in an un-initialized, or partially - initialized state, within the scope of parameters that need to be - established based on inspection of a live connection. The "invoke once" - logic in the event system has been reworked to accommodate for this - occurrence using new, private API features that establish an "exec once" - hook that will continue to allow the initializer to fire off on subsequent - connections, until it completes without raising an exception. This does not - impact the behavior of the existing ``once=True`` flag within the event - system. diff --git a/doc/build/changelog/unreleased_13/4810.rst b/doc/build/changelog/unreleased_13/4810.rst deleted file mode 100644 index b7a0dce25f..0000000000 --- a/doc/build/changelog/unreleased_13/4810.rst +++ /dev/null @@ -1,14 +0,0 @@ -.. change:: - :tags: bug, sqlite, reflection - :tickets: 4810 - - Fixed bug where a FOREIGN KEY that was set up to refer to the parent table - by table name only without the column names would not correctly be - reflected as far as setting up the "referred columns", since SQLite's - PRAGMA does not report on these columns if they weren't given explicitly. - For some reason this was harcoded to assume the name of the local column, - which might work for some cases but is not correct. The new approach - reflects the primary key of the referred table and uses the constraint - columns list as the referred columns list, if the remote column(s) aren't - present in the reflected pragma directly. - diff --git a/doc/build/changelog/unreleased_13/4815.rst b/doc/build/changelog/unreleased_13/4815.rst deleted file mode 100644 index 5157f99e7f..0000000000 --- a/doc/build/changelog/unreleased_13/4815.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: feature, engine - :tickets: 4815 - - Added new parameter :paramref:`.create_engine.hide_parameters` which when - set to True will cause SQL parameters to no longer be logged, nor rendered - in the string representation of a :class:`.StatementError` object. - diff --git a/doc/build/changelog/unreleased_13/4822.rst b/doc/build/changelog/unreleased_13/4822.rst deleted file mode 100644 index 94bb77739a..0000000000 --- a/doc/build/changelog/unreleased_13/4822.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 4822 - - Fixed bug where Postgresql operators such as - :meth:`.postgresql.ARRAY.Comparator.contains` and - :meth:`.postgresql.ARRAY.Comparator.contained_by` would fail to function - correctly for non-integer values when used against a - :class:`.postgresql.array` object, due to an erroneous assert statement. diff --git a/doc/build/changelog/unreleased_13/4823.rst b/doc/build/changelog/unreleased_13/4823.rst deleted file mode 100644 index 7541330e67..0000000000 --- a/doc/build/changelog/unreleased_13/4823.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 4823 - - Fixed bug where :class:`.Load` objects were not pickleable due to - mapper/relationship state in the internal context dictionary. These - objects are now converted to picklable using similar techniques as that of - other elements within the loader option system that have long been - serializable. diff --git a/doc/build/changelog/unreleased_13/4824.rst b/doc/build/changelog/unreleased_13/4824.rst deleted file mode 100644 index 0a624b3f1c..0000000000 --- a/doc/build/changelog/unreleased_13/4824.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. change:: - :tags: usecase, postgresql - :tickets: 4824 - - Added support for reflection of CHECK constraints that include the special - PostgreSQL qualifier "NOT VALID", which can be present for CHECK - constraints that were added to an exsiting table with the directive that - they not be applied to existing data in the table. The PostgreSQL - dictionary for CHECK constraints as returned by - :meth:`.Inspector.get_check_constraints` may include an additional entry - ``dialect_options`` which within will contain an entry ``"not_valid": - True`` if this symbol is detected. Pull request courtesy Bill Finn. diff --git a/doc/build/conf.py b/doc/build/conf.py index fc4201360c..466d285012 100644 --- a/doc/build/conf.py +++ b/doc/build/conf.py @@ -109,9 +109,9 @@ copyright = u'2007-2019, the SQLAlchemy authors and contributors' # The short X.Y version. version = "1.3" # The full version, including alpha/beta/rc tags. -release = "1.3.7" +release = "1.3.8" -release_date = "August 14, 2019" +release_date = "August 27, 2019" site_base = os.environ.get("RTD_SITE_BASE", "http://www.sqlalchemy.org") site_adapter_template = "docs_adapter.mako"