such as ``.. versionaddedd::``, ``.. versionchanged::`` and ``.. deprecated::``.
For ORM event documentation, see :ref:`interfaces_orm_toplevel`.
-A new version of this API with a significantly more flexible and consistent
-interface will be available in version 0.7.
+.. versionadded:: 0.7
+ A new version of this API with a significantly more flexible and consistent
+ interface will be available in version 0.7.
Execution, Connection and Cursor Events
---------------------------------------
----------------------------------
SQLAlchemy includes C extensions which provide an extra speed boost for
-dealing with result sets. In version 0.6, these extensions must be explicitly
-enabled (in 0.7 they will build by default).
+dealing with result sets.
+
+.. versionchanged:: 0.7
+ In version 0.6, these extensions must be explicitly
+ enabled (in 0.7 they will build by default).
To install including building the C extensions, use the ``--with-cextensions`` flag.
This flag must be on the command line before the actual install or build command::
For non-ORM event documentation, see :ref:`interfaces_core_toplevel`.
-A new version of this API with a significantly more flexible and consistent
-interface will be available in version 0.7.
+.. versionadded:: 0.7
+ A new version of this API with a significantly more flexible and consistent
+ interface will be available in version 0.7.
Mapper Events
-----------------
mapping to a join of two or more tables that share some column name. To
exclude or include individual columns, :class:`.Column` objects
may also be placed within the "include_properties" and "exclude_properties"
-collections (new feature as of 0.6.4)::
+collections::
mapper(UserAddress, users_table.join(addresses_table),
exclude_properties=[addresses_table.c.id],
primary_key=[users_table.c.id]
)
+.. versionadded:: 0.6.4
+ :class:`.Column` objects may also be placed within
+ the "include_properties" and "exclude_properties" collections.
+
It should be noted that insert and update defaults configured on individal
:class:`.Column` objects, such as those configured by the "default",
"on_update", "server_default" and "server_onupdate" arguments, will continue
``a1.user`` to an object already persistent in the target
session.
-Note that a new :func:`.relationship` option introduced in 0.6.5,
-``cascade_backrefs=False``, will also prevent the ``Address`` from
-being added to the session via the ``a1.user = u1`` assignment.
+.. versionadded:: 0.6.5
+ Note that new :func:`.relationship` option,
+ ``cascade_backrefs=False``, will also prevent the ``Address`` from
+ being added to the session via the ``a1.user = u1`` assignment.
Further detail on cascade operation is at :ref:`unitofwork_cascades`.
relationship()-based attribute, meaning that objects which were removed from a
scalar or collection attribute whose changes have not yet been flushed are
also placed into the new session - this so that foreign key clear operations
-and deletions will take place (new in 0.6).
+and deletions will take place.
+
+.. versionadded:: 0.6
+ ``save-update`` cascading the pending history of
+ a relationship()-based attribute.
Note that the ``delete-orphan`` cascade only functions for relationships where
the target object can have a single parent at a time, meaning it is only
>>> i1 in session
True
-This behavior can be disabled as of 0.6.5 using the ``cascade_backrefs`` flag::
+This behavior can be disabled using the ``cascade_backrefs`` flag::
mapper(Order, order_table, properties={
'items' : relationship(Item, backref='order',
cascade_backrefs=False)
})
+.. versionadded:: 0.6.5
+ Disabling the ``save-update`` cascade by the ``cascade_backrefs`` flag.
+
So above, the assignment of ``i1.order = o1`` will append ``i1`` to the ``items``
collection of ``o1``, but will not add ``i1`` to the session. You can, of
course, :func:`~.Session.add` ``i1`` to the session at a later point. This option
session until it's construction is completed, but still needs to be given
associations to objects which are already persistent in the target session.
-
.. _unitofwork_transaction:
Managing Transactions
``Address`` it is **one to many**. SQLAlchemy is automatically aware of
many-to-one/one-to-many based on foreign keys.
-.. note::
-
+.. versionchanged:: 0.6beta2
The :func:`~sqlalchemy.orm.relationship()` function has historically
been known as :func:`~sqlalchemy.orm.relation()`, which is the name that's
available in all versions of SQLAlchemy prior to 0.6beta2, including the 0.5