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 sqlalchemy@googlegroups.com
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