.. change::
:tags: bug, oracle
:tickets: 2853
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug where Oracle table reflection using synonyms would fail
if the synonym and the table were in different remote schemas.
.. change::
:tags: bug, sql
:tickets: 2849
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug where :func:`.type_coerce` would not interpret ORM
elements with a ``__clause_element__()`` method properly.
.. change::
:tags: bug, sql
:tickets: 2842
- :versions: 0.9.0
+ :versions: 0.9.0b1
The :class:`.Enum` and :class:`.Boolean` types now bypass
any custom (e.g. TypeDecorator) type in use when producing the
.. change::
:tags: bug, postgresql
:tickets: 2844
- :versions: 0.9.0
+ :versions: 0.9.0b1
Removed a 128-character truncation from the reflection of the
server default for a column; this code was original from
.. change::
:tags: bug, mysql
:tickets: 2721, 2839
- :versions: 0.9.0
+ :versions: 0.9.0b1
The change in :ticket:`2721`, which is that the ``deferrable`` keyword
of :class:`.ForeignKeyConstraint` is silently ignored on the MySQL
errors on MySQL as it is not understood - the same behavior will also
apply to the ``initially`` keyword. In 0.8, the keywords will remain
ignored but a warning is emitted. Additionally, the ``match`` keyword
- now raises a :class:`.CompileError` on 0.9 and emits a warning on 0.8;
+ now raises a :exc:`.CompileError` on 0.9 and emits a warning on 0.8;
this keyword is not only silently ignored by MySQL but also breaks
the ON UPDATE/ON DELETE options.
.. change::
:tags: bug, sql
:tickets: 2825
- :versions: 0.9.0
+ :versions: 0.9.0b1
The ``.unique`` flag on :class:`.Index` could be produced as ``None``
if it was generated from a :class:`.Column` that didn't specify ``unique``
.. change::
:tags: feature, orm
:tickets: 2836
- :versions: 0.9.0
+ :versions: 0.9.0b1
Added new option to :func:`.relationship` ``distinct_target_key``.
This enables the subquery eager loader strategy to apply a DISTINCT
None in 0.9 (e.g. automatic by default). Thanks to Alexander Koval
for help with this.
+ .. seealso::
+
+ :ref:`change_2836`
+
.. change::
:tags: bug, mysql
:tickets: 2515
- :versions: 0.9.0
+ :versions: 0.9.0b1
MySQL-connector dialect now allows options in the create_engine
query string to override those defaults set up in the connect,
.. change::
:tags: bug, postgresql
:tickets: 2742
- :versions: 0.9.0
+ :versions: 0.9.0b1
Parenthesis will be applied to a compound SQL expression as
rendered in the column list of a CREATE INDEX statement.
.. change::
:tags: bug, sql
:tickets: 2742
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug in default compiler plus those of postgresql, mysql, and
mssql to ensure that any literal SQL expression values are
.. change::
:tags: bug, sql
:tickets: 2815
- :versions: 0.9.0
+ :versions: 0.9.0b1
A :func:`.select` that is made to refer to itself in its FROM clause,
typically via in-place mutation, will raise an informative error
.. change::
:tags: bug, orm
:tickets: 2813
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug where using an annotation such as :func:`.remote` or
:func:`.foreign` on a :class:`.Column` before association with a parent
.. change::
:tags: bug, postgresql
:tickets: 2819
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug where Postgresql version strings that had a prefix preceding
the words "Postgresql" or "EnterpriseDB" would not parse.
.. change::
:tags: feature, engine
:tickets: 2821
- :versions: 0.9.0
+ :versions: 0.9.0b1
``repr()`` for the :class:`.URL` of an :class:`.Engine`
will now conceal the password using asterisks.
.. change::
:tags: bug, orm
:tickets: 2818
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug where :meth:`.Query.exists` failed to work correctly
without any WHERE criterion. Courtesy Vladimir Magamedov.
.. change::
:tags: bug, sql
:tickets: 2811
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug where using the ``column_reflect`` event to change the ``.key``
of the incoming :class:`.Column` would prevent primary key constraints,
.. change::
:tags: feature
- :versions: 0.9.0
+ :versions: 0.9.0b1
Added a new flag ``system=True`` to :class:`.Column`, which marks
the column as a "system" column which is automatically made present
.. change::
:tags: bug, orm
:tickets: 2794
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed a potential issue in an ordered sequence implementation used
by the ORM to iterate mapper hierarchies; under the Jython interpreter
.. change::
:tags: bug, examples
- :versions: 0.9.0
+ :versions: 0.9.0b1
Added "autoincrement=False" to the history table created in the
versioning example, as this table shouldn't have autoinc on it
.. change::
:tags: bug, sql
- :versions: 0.9.0
+ :versions: 0.9.0b1
- The :meth:`.Operators.notin_` operator added in 0.8 now properly
+ The :meth:`.ColumnOperators.notin_` operator added in 0.8 now properly
produces the negation of the expression "IN" returns
when used against an empty collection.
.. change::
:tags: feature, examples
- :versions: 0.9.0
+ :versions: 0.9.0b1
Improved the examples in ``examples/generic_associations``, including
that ``discriminator_on_association.py`` makes use of single table
.. change::
:tags: feature, orm, declarative
- :versions: 0.9.0
+ :versions: 0.9.0b1
Added a convenience class decorator :func:`.as_declarative`, is
a wrapper for :func:`.declarative_base` which allows an existing base
.. change::
:tags: bug, orm
:tickets: 2786
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug in ORM-level event registration where the "raw" or
"propagate" flags could potentially be mis-configured in some
.. change::
:tags: bug, orm
:tickets: 2778
- :versions: 0.9.0
+ :versions: 0.9.0b1
A performance fix related to the usage of the :func:`.defer` option
when loading mapped entities. The function overhead of applying
.. change::
:tags: bug, sqlite
:tickets: 2781
- :versions: 0.9.0
+ :versions: 0.9.0b1
The newly added SQLite DATETIME arguments storage_format and
regexp apparently were not fully implemented correctly; while the
.. change::
:tags: bug, sql, postgresql
:tickets: 2780
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug where the expression system relied upon the ``str()``
form of a some expressions when referring to the ``.c`` collection
since the element relies on dialect-specific compilation constructs,
notably the ``__getitem__()`` operator as used with a Postgresql
``ARRAY`` element. The fix also adds a new exception class
- :class:`.UnsupportedCompilationError` which is raised in those cases
+ :exc:`.UnsupportedCompilationError` which is raised in those cases
where a compiler is asked to compile something it doesn't know
how to.
.. change::
:tags: bug, engine, oracle
:tickets: 2776
- :versions: 0.9.0
+ :versions: 0.9.0b1
Dialect.initialize() is not called a second time if an :class:`.Engine`
is recreated, due to a disconnect error. This fixes a particular
.. change::
:tags: feature, sql
- :versions: 0.9.0
+ :versions: 0.9.0b1
The :func:`.update`, :func:`.insert`, and :func:`.delete` constructs
- will now interpret ORM entities as target tables clauses to be operated upon,
+ will now interpret ORM entities as target tables to be operated upon,
e.g.::
from sqlalchemy import insert, update, delete
.. change::
:tags: bug, orm
:tickets: 2773
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug whereby attribute history functions would fail
when an object we moved from "persistent" to "pending"
.. change::
:tags: bug, engine, pool
:tickets: 2772
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug where :class:`.QueuePool` would lose the correct
checked out count if an existing pooled connection failed to reconnect
.. change::
:tags: bug, mysql
:tickets: 2768
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug when using multi-table UPDATE where a supplemental
table is a SELECT with its own bound parameters, where the positioning
.. change::
:tags: bug, sqlite
:tickets: 2764
- :versions: 0.9.0
+ :versions: 0.9.0b1
- Added :class:`.BIGINT` to the list of type names that can be
+ Added :class:`sqlalchemy.types.BIGINT` to the list of type names that can be
reflected by the SQLite dialect; courtesy Russell Stuart.
.. change::
:tags: feature, orm, declarative
:tickets: 2761
- :versions: 0.9.0
+ :versions: 0.9.0b1
ORM descriptors such as hybrid properties can now be referenced
by name in a string argument used with ``order_by``,
.. change::
:tags: feature, firebird
:tickets: 2763
- :versions: 0.9.0
+ :versions: 0.9.0b1
Added new flag ``retaining=True`` to the kinterbasdb and fdb dialects.
This controls the value of the ``retaining`` flag sent to the
``commit()`` and ``rollback()`` methods of the DBAPI connection.
Due to historical concerns, this flag defaults to ``True`` in 0.8.2,
- however in 0.9.0 this flag defaults to ``False``.
+ however in 0.9.0b1 this flag defaults to ``False``.
.. change::
:tags: requirements
- :versions: 0.9.0
+ :versions: 0.9.0b1
The Python `mock <https://pypi.python.org/pypi/mock>`_ library
is now required in order to run the unit test suite. While part
.. change::
:tags: bug, orm
:tickets: 2750
- :versions: 0.9.0
+ :versions: 0.9.0b1
A warning is emitted when trying to flush an object of an inherited
class where the polymorphic discriminator has been assigned
.. change::
:tags: bug, postgresql
:tickets: 2740
- :versions: 0.9.0
+ :versions: 0.9.0b1
The behavior of :func:`.extract` has been simplified on the
Postgresql dialect to no longer inject a hardcoded ``::timestamp``
.. change::
:tags: bug, firebird
:tickets: 2757
- :versions: 0.9.0
+ :versions: 0.9.0b1
Type lookup when reflecting the Firebird types LONG and
INT64 has been fixed so that LONG is treated as INTEGER,
.. change::
:tags: bug, postgresql
:tickets: 2766
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug in HSTORE type where keys/values that contained
backslashed quotes would not be escaped correctly when
.. change::
:tags: bug, postgresql
:tickets: 2767
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug where the order of columns in a multi-column
Postgresql index would be reflected in the wrong order.
.. change::
:tags: bug, sql
:tickets: 2746, 2668
- :versions: 0.9.0
+ :versions: 0.9.0b1
Multiple fixes to the correlation behavior of
:class:`.Select` constructs, first introduced in 0.8.0:
.. change::
:tags: bug, ext
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug whereby if a composite type were set up
with a function instead of a class, the mutable extension
.. change::
:tags: feature, postgresql
- :versions: 0.9.0
+ :versions: 0.9.0b1
Support for Postgresql 9.2 range types has been added.
Currently, no type translation is provided, so works
.. change::
:tags: bug, examples
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed an issue with the "versioning" recipe whereby a many-to-one
reference could produce a meaningless version for the target,
.. change::
:tags: feature, postgresql
:tickets: 2072
- :versions: 0.9.0
+ :versions: 0.9.0b1
Added support for "AUTOCOMMIT" isolation when using the psycopg2
DBAPI. The keyword is available via the ``isolation_level``
.. change::
:tags: bug, orm
:tickets: 2759
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug in polymorphic SQL generation where multiple joined-inheritance
entities against the same base class joined to each other as well
.. change::
:tags: bug, engine
- :pullreq: 6
- :versions: 0.9.0
+ :pullreq: github:6
+ :versions: 0.9.0b1
Fixed bug where the ``reset_on_return`` argument to various :class:`.Pool`
implementations would not be propagated when the pool was regenerated.
.. change::
:tags: bug, orm
:tickets: 2754
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug where sending a composite attribute into :meth:`.Query.order_by`
would produce a parenthesized expression not accepted by some databases.
.. change::
:tags: bug, orm
:tickets: 2755
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed the interaction between composite attributes and
the :func:`.aliased` function. Previously, composite attributes
.. change::
:tags: bug, mysql
:tickets: 2715
- :versions: 0.9.0
+ :versions: 0.9.0b1
Added another conditional to the ``mysql+gaerdbms`` dialect to
detect so-called "development" mode, where we should use the
.. change::
:tags: feature, mysql
:tickets: 2704
- :versions: 0.9.0
+ :versions: 0.9.0b1
The ``mysql_length`` parameter used with :class:`.Index` can now
be passed as a dictionary of column names/lengths, for use
.. change::
:tags: bug, mssql
:tickets: 2747
- :versions: 0.9.0
+ :versions: 0.9.0b1
When querying the information schema on SQL Server 2000, removed
a CAST call that was added in 0.8.1 to help with driver issues,
.. change::
:tags: bug, mysql
:tickets: 2721
- :versions: 0.9.0
+ :versions: 0.9.0b1
The ``deferrable`` keyword argument on :class:`.ForeignKey` and
:class:`.ForeignKeyConstraint` will not render the ``DEFERRABLE`` keyword
.. change::
:tags: bug, ext, orm
:tickets: 2730
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug where :class:`.MutableDict` didn't report a change event
when ``clear()`` was called.
.. change::
:tags: bug, sql
:tickets: 2738
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug whereby joining a select() of a table "A" with multiple
foreign key paths to a table "B", to that table "B", would fail
.. change::
:tags: bug, sql, reflection
:tickets: 2728
- :versions: 0.9.0
+ :versions: 0.9.0b1
Fixed bug whereby using :meth:`.MetaData.reflect` across a remote
schema as well as a local schema could produce wrong results
.. change::
:tags: bug, sql
:tickets: 2726
- :versions: 0.9.0
+ :versions: 0.9.0b1
Removed the "not implemented" ``__iter__()`` call from the base
:class:`.ColumnOperators` class, while this was introduced
.. change::
:tags: bug, postgresql
+ :pullreq: github:2
:tickets: 2735
Fixed the HSTORE type to correctly encode/decode for unicode.
.. change::
:tags: bug, mysql
- :pullreq: 55
Fixes to support the latest cymysql DBAPI, courtesy
Hajime Nakagami.
.. change::
:tags: bug, mysql
- :pullreq: 54
Updated a regexp to correctly extract error code on
google app engine v1.7.5 and newer. Courtesy
.. change::
:tags: bug, mssql
- :pullreq: 47
Added support for additional "disconnect" messages
to the pymssql dialect. Courtesy John Anderson.
.. change::
:tags: bug, mssql
:tickets: 2683
- :pullreq: 46
Fixed Py3K bug regarding "binary" types and
pymssql. Courtesy Marc Abramowitz.
.. change::
:tags: feature, mysql
- :pullreq: 42
New dialect for CyMySQL added, courtesy Hajime Nakagami.
.. change::
:tags: bug, tests
:tickets: 2669
- :pullreq: 41
Fixed an import of "logging" in test_execute which was not
working on some linux platforms. Also in 0.7.11.
.. change::
:tags: feature, postgresql
- :pullreq: 40
Added :meth:`.postgresql.ARRAY.Comparator.any` and
:meth:`.postgresql.ARRAY.Comparator.all`
.. change::
:tags: mssql, feature
- :pullreq: 35
Added ``mssql_include`` and ``mssql_clustered`` options to
:class:`.Index`, renders the ``INCLUDE`` and ``CLUSTERED`` keywords,
.. change::
:tags: mssql, feature
:tickets: 2644
- :pullreq: 32
DDL for IDENTITY columns is now supported on
non-primary key columns, by establishing a
.. change::
:tags: postgresql, bug
- Fixed bug in :func:`.postgresql.array` construct whereby using it
+ Fixed bug in :class:`~sqlalchemy.dialects.postgresql.array()` construct whereby using it
inside of an :func:`.expression.insert` construct would produce an
error regarding a parameter issue in the ``self_group()`` method.
.. change::
:tags: mysql, feature
- :pullreq: 33
GAE dialect now accepts username/password arguments in the URL,
courtesy Owen Nelson.
.. change::
:tags: mysql, bug
- :pullreq: 33
GAE dialect won't fail on None match if the error code can't be extracted
from the exception throw; courtesy Owen Nelson.
:tags: sql, bug
:tickets: 2618
- The :class:`.DECIMAL` type now honors the "precision" and
+ The :class:`~sqlalchemy.types.DECIMAL` type now honors the "precision" and
"scale" arguments when rendering DDL.
.. change::
.. change::
:tags: engine
- The "reflect=True" argument to :class:`MetaData` is deprecated.
+ The "reflect=True" argument to :class:`~sqlalchemy.schema.MetaData` is deprecated.
Please use the :meth:`.MetaData.reflect` method.
.. change::
:tickets: 2595
The auto-correlation feature of :func:`.select`, and
- by proxy that of :class:`.orm.Query`, will not
+ by proxy that of :class:`.Query`, will not
take effect for a SELECT statement that is being
rendered directly in the FROM list of the enclosing
SELECT. Correlation in SQL only applies to column
.. change::
:tags: sqlite
- :pullreq: 23
:changeset: c3addcc9ffad
Added :class:`.types.NCHAR`, :class:`.types.NVARCHAR`