I've just put beta4 out, which fixes some important issues and also  
has lots more performance enhancements.  In particular, the  
connection pool works a little differently now, so please let us know  
if any stability issues arise.

One caveat with this release is that I just noticed that the SQL  
statement logging is "double logging" if you configure it via regular  
Python logging.  Sorry !  I just fixed it in SVN revision 3410 if  
that's an issue.

otherwise heres the changelog:

0.4.0beta4
----------

- Tidied up what ends up in your namespace when you 'from sqlalchemy  
import *':

   - 'table' and 'column' are no longer imported.  They remain  
available by
     direct reference (as in 'sql.table' and 'sql.column') or a glob  
import
     from the sql package.  It was too easy to accidentally use a
     sql.expressions.table instead of schema.Table when just starting  
out
     with SQLAlchemy, likewise column.

   - internal-ish classes like ClauseElement, FromClause,  
NullTypeEngine, etc.,
     are also no longer imported into your namespace

   - the 'Smallinteger' compatiblity name (small i!) is no longer  
imported, but
     remains in schema.py for now.  SmallInteger (big I!) is still  
imported.

- the connection pool uses a "threadlocal" strategy internally to return
   the same connection already bound to a thread, for "contextual"  
connections;
   these are the connections used when you do a "connectionless"  
execution
   like insert().execute().  This is like a "partial" version of the
   "threadlocal" engine strategy but without the thread-local  
transaction part
   of it.  We're hoping it reduces connection pool overhead as well as
   database usage.  However, if it proves to impact stability in a  
negative way,
   we'll roll it right back.

- Fix to bind param processing such that "False" values (like blank  
strings)
   still get processed/encoded.

- Fix to select() "generative" behavior, such that calling column(),
   select_from(), correlate(), and with_prefix() does not modify the
   original select object [ticket:752]

- Added a "legacy" adapter to types, such that user-defined TypeEngine
   and TypeDecorator classes which define convert_bind_param() and/or
   convert_result_value() will continue to function.  Also supports
   calling the super() version of those methods.

- Added session.prune(), trims away instances cached in a session that
   are no longer referenced elsewhere. (A utility for strong-ref
   identity maps).

- Added close() method to Transaction.  Closes out a transaction using
   rollback if it's the outermost transaction, otherwise just ends
   without affecting the outer transaction.

- Transactional and non-transactional Session integrates better with
   bound connection; a close() will ensure that connection
   transactional state is the same as that which existed on it before
   being bound to the Session.

- Modified SQL operator functions to be module-level operators,
   allowing SQL expressions to be pickleable. [ticket:735]

- Small adjustment to mapper class.__init__ to allow for Py2.6
   object.__init__() behavior.

- Fixed 'prefix' argument for select()

- Connection.begin() no longer accepts nested=True, this logic is now
   all in begin_nested().

- fixes to new "dynamic" relation loader involving cascades


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to