This release contains some of the things we were sprinting on at
Pycon. Another sprint-initiated development branch which introduces a
fully customizable attribute instrumentation layer and major new
transactional features for Sessions is still under development.
But this release has some very major new things in it. Including:
- declarative improvements - the most major here is that the "name" on
Column is now optional, allowing you to say "name = Column(String)".
synonym() and deferred() work with Declarative now, and theres also
some cool decorators @synonym_for() and @comparable_using(). Other
fixes to compilation as well.
- "with_polymorphic" is now available as a mapper option, in addition
to the previously released with_polymorphic() method on Query, to
control the default polymorphic joining behavior for a mapper. It
takes a single or tuple argument in the same format as
with_polymorphic(), and deprecates the "select_table" argument, which
is equivalent to with_polymorphic=('*', select_table). All the
internals associated with "select_table" have been removed so this is
a major chunk of 0.3 removed from the codebase. There is now
rudimentary eager loading available from polymorphic mappers including
the ability to launch eager loads from specific subclasses.
- in addition to synonym(), we now have a new MapperProperty called
comparable_property() which lets you build up a property not
associated with any particular column or relation. You can define
whatever comparative semantics desired so that its fully usable with
Query.
- two big new Query features, which are temporarily underscored until
we get some feedback on them: _values(), which limits the Query to
returning just tuples of specfic columns as in
query.filter(...)._values(A.id, A.name), and _from_self(), which gives
you a new Query that selects from the previous one as a subquery,
allowing things like query.filter(...)[5:10]._from_self().filter(...).
- merge() will now do "the right thing" with regards to primary key
attributes. So yes, now you can just build up a structure with
existing PK values and merge() it - the INSERTs/UPDATEs will occur as
they should. Manipulating _instance_key is going away as this
attribute will eventually be removed.
- a lot of other crap I can't believe we did in just three weeks.
download SA 0.4.5 at: http://www.sqlalchemy.org/download.html
full changelog at: http://www.sqlalchemy.org/CHANGES
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---