+ .. include:: changelog_07.rst
Fixed bug where :meth:`.Query.exists` failed to work correctly
without any WHERE criterion. Courtesy Vladimir Magamedov.
Fixed bug where using the ``column_reflect`` event to change the ``.key``
of the incoming :class:`.Column` would prevent primary key constraints,
Added a new flag ``system=True`` to :class:`.Column`, which marks
the column as a "system" column which is automatically made present
- Fixed bug where list instrumentation would fail to represent a
- setslice of ``[0:0]`` correctly, which in particular could occur
- when using ``insert(0, item)`` with the association proxy. Due
- to some quirk in Python collections, the issue was much more likely
- with Python 3 rather than 2. Also in 0.7.11.
Backported a change from 0.9 whereby the iteration of a hierarchy
Fixed a potential issue in an ordered sequence implementation used
by the ORM to iterate mapper hierarchies; under the Jython interpreter
- Fixed regression dating back to 0.7.9 whereby the name of a CTE might
- not be properly quoted if it was referred to in multiple FROM clauses.
Added "autoincrement=False" to the history table created in the
versioning example, as this table shouldn't have autoinc on it
The :meth:`.Operators.notin_` operator added in 0.8 now properly
produces the negation of the expression "IN" returns
when used against an empty collection.
- Updates to MySQL reserved words for versions 5.5, 5.6, courtesy
- Hanno Schlichting. Also in 0.7.11.
- Fixed bug in common table expression system where if the CTE were
- used only as an ``alias()`` construct, it would not render using the
- WITH keyword. Also in 0.7.11.
Improved the examples in ``examples/generic_associations``, including
that ``discriminator_on_association.py`` makes use of single table
:tags: feature, orm, declarative
Added a convenience class decorator :func:`.as_declarative`, is
a wrapper for :func:`.declarative_base` which allows an existing base
Fixed bug in ORM-level event registration where the "raw" or
"propagate" flags could potentially be mis-configured in some
"unmapped base class" configurations.
- Fixed bug in :class:`.CheckConstraint` DDL where the "quote" flag from a
- :class:`.Column` object would not be propagated. Also in 0.7.11.
A performance fix related to the usage of the :func:`.defer` option
when loading mapped entities. The function overhead of applying
The newly added SQLite DATETIME arguments storage_format and
regexp apparently were not fully implemented correctly; while the
:tags: bug, sql, postgresql
Fixed bug where the expression system relied upon the ``str()``
form of a some expressions when referring to the ``.c`` collection
:tags: bug, engine, oracle
Dialect.initialize() is not called a second time if an :class:`.Engine`
is recreated, due to a disconnect error. This fixes a particular
The :func:`.update`, :func:`.insert`, and :func:`.delete` constructs
will now interpret ORM entities as target tables clauses to be operated upon,
Fixed bug whereby attribute history functions would fail
when an object we moved from "persistent" to "pending"
Fixed bug where :class:`.QueuePool` would lose the correct
checked out count if an existing pooled connection failed to reconnect
Fixed bug when using multi-table UPDATE where a supplemental
table is a SELECT with its own bound parameters, where the positioning
Added :class:`.BIGINT` to the list of type names that can be
reflected by the SQLite dialect; courtesy Russell Stuart.
:tags: feature, orm, declarative
ORM descriptors such as hybrid properties can now be referenced
by name in a string argument used with ``order_by``,
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``, however
- in 0.9 this flag will be defaulted to ``False``.
+ Due to historical concerns, this flag defaults to ``True`` in 0.8.2,
+ however in 0.9.0 this flag defaults to ``False``.
The Python `mock <https://pypi.python.org/pypi/mock>`_ library
is now required in order to run the unit test suite. While part
A warning is emitted when trying to flush an object of an inherited
class where the polymorphic discriminator has been assigned
The behavior of :func:`.extract` has been simplified on the
Postgresql dialect to no longer inject a hardcoded ``::timestamp``
Type lookup when reflecting the Firebird types LONG and
INT64 has been fixed so that LONG is treated as INTEGER,
Fixed bug in HSTORE type where keys/values that contained
backslashed quotes would not be escaped correctly when
Fixed bug where the order of columns in a multi-column
Postgresql index would be reflected in the wrong order.
Multiple fixes to the correlation behavior of
:class:`.Select` constructs, first introduced in 0.8.0:
Fixed bug whereby if a composite type were set up
with a function instead of a class, the mutable extension
:tags: feature, postgresql
Support for Postgresql 9.2 range types has been added.
Currently, no type translation is provided, so works
Fixed an issue with the "versioning" recipe whereby a many-to-one
reference could produce a meaningless version for the target,
:tags: feature, postgresql
Added support for "AUTOCOMMIT" isolation when using the psycopg2
DBAPI. The keyword is available via the ``isolation_level``
Fixed bug in polymorphic SQL generation where multiple joined-inheritance
entities against the same base class joined to each other as well
Fixed bug where the ``reset_on_return`` argument to various :class:`.Pool`
implementations would not be propagated when the pool was regenerated.
Fixed bug where sending a composite attribute into :meth:`.Query.order_by`
would produce a parenthesized expression not accepted by some databases.
Fixed the interaction between composite attributes and
the :func:`.aliased` function. Previously, composite attributes
Added another conditional to the ``mysql+gaerdbms`` dialect to
detect so-called "development" mode, where we should use the
The ``mysql_length`` parameter used with :class:`.Index` can now
be passed as a dictionary of column names/lengths, for use
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,
The ``deferrable`` keyword argument on :class:`.ForeignKey` and
:class:`.ForeignKeyConstraint` will not render the ``DEFERRABLE`` keyword
Fixed bug where :class:`.MutableDict` didn't report a change event
when ``clear()`` was called.
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
:tags: bug, sql, reflection
Fixed bug whereby using :meth:`.MetaData.reflect` across a remote
schema as well as a local schema could produce wrong results
Removed the "not implemented" ``__iter__()`` call from the base
:class:`.ColumnOperators` class, while this was introduced
(obviously assuming the state of the superclass).
- Fixed bug when a query of the form:
- where ``SubClass`` is a joined inh of ``BaseClass``,
- would fail to apply the ``JOIN`` inside the subquery
- on the attribute load, producing a cartesian product.
- The populated results still tended to be correct as additional
- rows are just ignored, so this issue may be present as a
- performance degradation in applications that are
- otherwise working correctly. Also in 0.7.11.
- Fixed bug in unit of work whereby a joined-inheritance
- subclass could insert the row for the "sub" table
- before the parent table, if the two tables had no
- ForeignKey constraints set up between them.
- :tags: feature, postgresql
- Added support for Postgresql's traditional SUBSTRING
- function syntax, renders as "SUBSTRING(x FROM y FOR z)"
- when regular ``func.substring()`` is used.
- Also in 0.7.11. Courtesy Gunnlaugur Þór Briem.
:released: December 14, 2012
- More adjustment to this SQLite related issue which was released in
- 0.7.9, to intercept legacy SQLite quoting characters when reflecting
- foreign keys. In addition to intercepting double quotes, other
- quoting characters such as brackets, backticks, and single quotes
- are now also intercepted. Also in 0.7.10.
- Fixed bug where using server_onupdate=<FetchedValue|DefaultClause>
- without passing the "for_update=True" flag would apply the default
- object to the server_default, blowing away whatever was there.
- The explicit for_update=True argument shouldn't be needed with this usage
- (especially since the documentation shows an example without it being
- used) so it is now arranged internally using a copy of the given default
- object, if the flag isn't set to what corresponds to that argument.
Fixed bug whereby using a label_length on dialect that was smaller