]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
added thingy to allow adding properties after mapper is contstructed
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 14 Nov 2005 02:08:53 +0000 (02:08 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 14 Nov 2005 02:08:53 +0000 (02:08 +0000)
lib/sqlalchemy/mapper.py
lib/sqlalchemy/objectstore.py

index e5b384ba5c4ebcd3f26c16f543fabded468a85cb..12c9289792a36010d2cac2f56ea0c237ff86bc92 100644 (file)
@@ -260,6 +260,17 @@ class Mapper(object):
         
     engines = property(lambda s: [t.engine for t in s.tables])
 
+    def add_property(self, key, prop):
+        if isinstance(prop, schema.Column):
+            self.columns[key] = prop
+            prop = ColumnProperty(prop)
+        self.props[key] = prop
+        if isinstance(prop, ColumnProperty):
+            for col in prop.columns:
+                proplist = self.columntoproperty.setdefault(col.original, [])
+                proplist.append(prop)
+        prop.init(key, self)
+        
     def _init_properties(self):
         [prop.init(key, self) for key, prop in self.props.iteritems()]
         
@@ -819,6 +830,7 @@ class PropertyLoader(MapperProperty):
 
         if self.uselist:
             childlist = uow.attributes.get_history(obj, self.key, passive = False)
+            print "W00P RD on", repr(obj), "list=", repr([repr(k.__dict__) for k in childlist])
         else: 
             childlist = uow.attributes.get_history(obj, self.key)
         for child in childlist.deleted_items() + childlist.unchanged_items():
index 914aaecb2d525e4ad9f291b9b74b082313854f96..6c7d9af4c3fc33acda003d4e186897f954cf3e6e 100644 (file)
@@ -336,7 +336,7 @@ class UOWTransaction(object):
             task.mapper.register_dependencies(self)
 
         head = self._sort_dependencies()
-        print "Task dump:\n" + head.dump()
+        #print "Task dump:\n" + head.dump()
         if head is not None:
             head.execute(self)