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
-~----------~----~----~----~------~----~------~--~---