Mike Bayer [Fri, 16 Jun 2006 03:19:53 +0000 (03:19 +0000)]
fixed bug where if a many-to-many table mapped as "secondary" had other cols in it, delete operations would try to match up on those columns. also fixed bug in new attributes if you set a list based attribute to a blank list, properly fires the 'delete' event for the elements of the previous list
Mike Bayer [Thu, 15 Jun 2006 15:27:39 +0000 (15:27 +0000)]
if an item attached to a parent is found to be already in the session, then the "save-update" cascade operation doesnt take place. currently this prevents unncessessary cascading due to backref events, which was a massive speed hit.
Mike Bayer [Thu, 8 Jun 2006 16:58:14 +0000 (16:58 +0000)]
late compilation of mappers. now you can create mappers in any order, and they will compile their internal state when first used in a query or flush operation (or their props or 'c'/'columns' attributes are used). includes various cleanups and fixes in support of the change, including some unit test changes, additional unit tests.
Jonathan LaCour [Tue, 6 Jun 2006 17:58:41 +0000 (17:58 +0000)]
Further improved the process_relationships function to handle the ordering of
class definitions better. The function was only looking at relationships, not
foreign keys, and was making some improper assumptions. The unit tests all
still pass, and now some of my own code actually works, regardless of the order
that I define the classes in.' 'lib/sqlalchemy/ext/activemapper.py
Mike Bayer [Mon, 5 Jun 2006 22:45:10 +0000 (22:45 +0000)]
"foreignkey" property of PropertyLoader is a sets.Set. removed "foreigntable".
simplified/fixed foreign key location in _find_dependent(), fixes [ticket:151]
Mike Bayer [Wed, 31 May 2006 06:22:06 +0000 (06:22 +0000)]
simplification/improvement to circular dependency sort (properly batches now)
mapper accepts add_property calls with columns that are not in its selectable (allows deferreds in, generally more lenient)
Mike Bayer [Tue, 30 May 2006 17:11:14 +0000 (17:11 +0000)]
further refinement of the polymorphic UOWTask idea. circular dependency sort has to be pretty much focused on the base mappers
of any inheritance chain, as it now takes part in pretty much any two dependent classes who share the same inherited parent.
Mike Bayer [Sat, 27 May 2006 16:39:05 +0000 (16:39 +0000)]
circular dependency sort will not create new UOWTasks/UOWDependencyProcessors mid-stream
further construction on migrating UOWTask to be fully polymorphic
Mike Bayer [Sat, 27 May 2006 05:45:21 +0000 (05:45 +0000)]
unitofwork more Set oriented now
MapperProperty now has "localparent" and "parent" attributes, which in the case of
inheritance represent the mapper the property is attached to, and the original mapper it was created on.
the unitofwork now keeps the dependency processors derived from those properties unique so inheritance
structures dont register redundant dependency processors.
Mike Bayer [Sat, 27 May 2006 01:19:56 +0000 (01:19 +0000)]
converted sqlsoup, got its doctests working (werent working in 0.1 either....), added doctest hook to testsuite
fix to selectone_by/selectone when zero rows returned
Mike Bayer [Sat, 27 May 2006 00:13:12 +0000 (00:13 +0000)]
added has_key to RowProxy, + caching of key lookups
fix for mapper translate_row for deferred columns
continuing with the "polymorph-tizing" of the unit of work, dependency processing accesses objects on each target task polymorphically
Mike Bayer [Thu, 25 May 2006 17:53:06 +0000 (17:53 +0000)]
pretty major change to inheritance topological sorting - mapper dependencies are calculated
based on their ultimate "base inherited" mapper, UOWTasks organized into recursive inheritance structures based on the inheritance of the mappers. this allows tasks across a class/mapper inheritance hierarchy to properly interact with other dependency processors and sub-tasks.