Commits

Mike Bayer committed 7bb07b5

updates

Comments (0)

Files changed (3)

doc/build/mappers.rst

 
 Relation Configuration 
 =======================
+
 Basic Relational Patterns 
 --------------------------
 
 When a structure using the above mapping is flushed, the "widget" row will be INSERTed minus the "favorite_entry_id" value, then all the "entry" rows will be INSERTed referencing the parent "widget" row, and then an UPDATE statement will populate the "favorite_entry_id" column of the "widget" table (it's one row at a time for the time being).
 
 
+.. _advdatamapping_entitycollections:
+
 Alternate Collection Implementations 
 -------------------------------------
 
     parent.children.append(Child())
     print parent.children[0]
 
-Collections are not limited to lists.  Sets, mutable sequences and almost any other Python object that can act as a container can be used in place of the default list.
+Collections are not limited to lists.  Sets, mutable sequences and almost any other Python object that can act as a container can be used in place of the default list, by specifying the ``collection_class`` option on ``relation()``.
 
 .. sourcecode:: python+sql
 
     parent.children.add(child)
     assert child in parent.children
 
-.. _advdatamapping_entitycollections:
 
 Custom Collection Implementations 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Configuring Loader Strategies: Lazy Loading, Eager Loading 
 -----------------------------------------------------------
 
-
-In the `datamapping`, we introduced the concept of **Eager Loading**.  We used an ``option`` in conjunction with the ``Query`` object in order to indicate that a relation should be loaded at the same time as the parent, within a single SQL query:
+In the :ref:`ormtutorial_toplevel`, we introduced the concept of **Eager Loading**.  We used an ``option`` in conjunction with the ``Query`` object in order to indicate that a relation should be loaded at the same time as the parent, within a single SQL query:
 
 .. sourcecode:: python+sql
 
     WHERE users.name = ?
     ['jack']
 
-By default, all relations are **lazy loading**.  The scalar or collection attribute associated with a ``relation()`` contains a trigger which fires the first time the attribute is accessed, which issues a SQL call at that point:
+By default, all inter-object relationships are **lazy loading**.  The scalar or collection attribute associated with a ``relation()`` contains a trigger which fires the first time the attribute is accessed, which issues a SQL call at that point:
 
 .. sourcecode:: python+sql
 

doc/build/reference/sqlalchemy/pooling.rst

 ``cursor()`` method will return a proxied cursor object.  Both the
 connection proxy and the cursor proxy will also return the underlying
 connection to the pool after they have both been garbage collected,
-which is detected via the ``__del__()`` method.
+which is detected via weakref callbacks  (``__del__`` is not used).
 
 Additionally, when connections are returned to the pool, a
 ``rollback()`` is issued on the connection unconditionally.  This is

doc/build/sqlexpression.rst

     >>> print func.concat('x', 'y')
     concat(:param_1, :param_2)
     
-Certain functions are marked as "ANSI" functions, which mean they don't get the parenthesis added after them, such as CURRENT_TIMESTAMP:
+By "generates", we mean that **any** SQL function is created based on the word you choose::
+
+    >>> print func.xyz_my_goofy_function()
+    xyz_my_goofy_function()    
+    
+Certain function names are known by SQLAlchemy, allowing special behavioral rules to be applied.   Some for example are "ANSI" functions, which mean they don't get the parenthesis added after them, such as CURRENT_TIMESTAMP:
 
 .. sourcecode:: pycon+sql