Mike Bayer committed 9169d42

0.7 updates, links

Comments (0)

Files changed (3)


 loads/dumps operations, completed mapper construction
-The event system is introduced at `Events
+.. seealso::
+  :ref:`event_toplevel`
 Hybrid Attributes, implements/supersedes synonym(), comparable_property()
 approach of "derived" is easier to use, more extensible, is
 implemented in a few dozen lines of pure Python with almost
 no imports, and doesn't require the ORM core to even be
-aware of it.   The feature is now known as the `Hybrid
-Attributes <
-/hybrid.html>`_ extension.
+aware of it.   The feature is now known as the "Hybrid
+Attributes" extension.
 ``synonym()`` and ``comparable_property()`` are still part
 of the ORM, though their implementations have been moved
 mapper/query/property modules aren't really aware of them
-`Hybrid Attributes <
+.. seealso::
+  :ref:`hybrids_toplevel`
 Speed Enhancements
 utable.html>`_ extension to establish in-place change events
 to existing composite usage.
-`Composite Column Types
+.. seealso::
-`Mutation Tracking <
+  :ref:`mapper_composite`
-[ticket:2008] [ticket:2024]
+  :ref:`mutable_toplevel`
+:ticket:`2008` :ticket:`2024`
 More succinct form of query.join(target, onclause)
 Mutation event extension, supersedes "mutable=True"
 includes an approach for scalar database values, such as
 those managed by ``PickleType``, ``postgresql.ARRAY``, or
 other custom ``MutableType`` classes, as well as an approach
-for ORM "composites", those configured using `composite()
+for ORM "composites", those configured using :ref:`composite()
-`Mutation Tracking Extension <
+.. seealso::
+    :ref:`mutable_toplevel`
 ``desc()`` operators, called ``nullsfirst()`` and
-`nullsfirst() <
+.. seealso::
-`nullslast() <
+    :func:`.nullsfirst`
+    :func:`.nullslast`
 select.distinct(), query.distinct() accepts \*args for Postgresql DISTINCT ON
 `Query.distinct() <
 ``Index()`` can be placed inline inside of ``Table``, ``__table_args__``
 execution_options() on Connection accepts "isolation_level" argument
 ``TypeDecorator`` works with integer primary key columns
 processor applied to newly generated primary keys, including
 those received by the DBAPI ``cursor.lastrowid`` accessor.
-[ticket:2005] [ticket:2006]
+:ticket:`2005` :ticket:`2006`
 ``TypeDecorator`` is present in the "sqlalchemy" import space
 a subquery, with no more guessing as to how count should be
 To emit a non-subquery form of count()
 performance as the textual string for multiple statements
 with differing LIMIT/OFFSET are now identical.
 Logging enhancements
 need for additional identifying strings local to those
 Simplified polymorphic_on assignment
 internals of the mapper during flush are simplified and no
 longer need to make special checks for this column.
 contains_eager() chains across multiple paths (i.e. "all()")
     session.query(A).options(contains_eager(A.b, B.c))
 Flushing of orphans that have no parent is allowed
 particular parent, and is then disassociated with that
 parent, leading to a DELETE statement emitted for it.
 Warnings generated when collection members, scalar referents not part of the flush
 purposes of alerting to a situation that more often than not
 is the source of unexpected behavior.
 Setup no longer installs a Nose plugin
 environments.   The ```` script in 0.7 is now
 the only way to run the tests with nose.
 Non-``Table``-derived constructs can be mapped
     selectable = select(["x", "y", "z"]).select_from(func.some_db_function()).alias()
     mapper(Subset, selectable, primary_key=[selectable.c.x])
 aliased() accepts ``FromClause`` elements
 through to the ``.alias()`` method of that from construct
 rather than constructing an ORM level ``AliasedClass``.
 Session.connection(), Session.execute() accept 'bind'
 `Session.execute <
 Standalone bind parameters in columns clause auto-labeled.
 will continue to target the same location as subsequent
 SQLite connections are established.
 MS-SQL - ``String``/``Unicode``/``VARCHAR``/``NVARCHAR``/``VARBINARY`` emit "max" for no length
 the new mutation tracking system, as ``mutable=True`` is
 likely to be deprecated in the future.
 Mutability detection of ``composite()`` requires the Mutation Tracking Extension
 temporary-tables-with-sqlite if temporary tables beyond the
 scope of one pool connection are desired.
 ``Session.merge()`` checks version ids for versioned mappers
 both the ``merge()`` and the versioning features were
 originally adapted from Hibernate.
 Tuple label names in Query Improved
 things, which is inconsistent with the name ``spam`` in the
 case of a non-unioned query.
 Mapped column attributes reference the most specific column first
 corresponding to "child" set to NULL - this is now the value
 that gets populated, not the one in the parent table.
 Mapping to joins with two or more same-named columns requires explicit declaration
 This is somewhat related to the previous change in
-[ticket:1892].   When mapping to a join, same-named columns
+:ticket:`1892`.   When mapping to a join, same-named columns
 must be explicitly linked to mapped attributes, i.e. as
 described in `Mapping a Class Against Multiple Tables <http:
 Mapper requires that polymorphic_on column be present in the mapped selectable
 incompatible in the rare case that an application has been
 unknowingly relying upon this behavior.
 ``DDL()`` constructs now escape percent signs
 constructs which did this automatically.  The same escaping
 now occurs for ``DDL()`` as for ``text()``.
 ``Table.c`` / ``MetaData.tables`` refined a bit, don't allow direct mutation
 collections will ensure no application is attempting to rely
 upon usages that are currently not supported.
-[ticket:1893] [ticket:1917]
+:ticket:`1893` :ticket:`1917`
 server_default consistently returns None for all inserted_primary_key values
 False, except in the case of a PG SERIAL col where we
 detected a sequence default.
-[ticket:2020] [ticket:2021]
+:ticket:`2020` :ticket:`2021`
 The ``sqlalchemy.exceptions`` alias in sys.modules is removed
 this process occurs on an as-needed basis, as soon as the
 mappings are needed via attribute or query access.
 Core listener/proxy superseded by event listeners
 Callables passed to ``bindparam()`` don't get evaluated - affects the Beaker example
 Note this affects the Beaker caching example, where the
 workings of the ``_params_from_query()`` function needed a
 grey areas that should are best decided by individual
 applications, so we've underscored this attribute.
 Renamed the ``alias`` keyword arg of standalone ``alias()`` function to ``name``
 ``SingletonThreadPool.dispose_local()`` -> removed, use
 Previously Deprecated, Now Removed
 :ref:`Overview <overview>` |
 :ref:`Installation Guide <installation>` |
-:ref:`Migration from 0.7 <migration>` |
+:doc:`Migration from 0.7 <changelog/migration_08>` |
 :doc:`Changelog catalog <changelog/index>`
 SQLAlchemy ORM
 0.7 to 0.8 Migration
-Notes on what's changed from 0.7 to 0.8 is available on the SQLAlchemy wiki at
-`08Migration <>`_.
+Notes on what's changed from 0.7 to 0.8 is available here at :doc:`changelog/migration_08`.