]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
(no commit message)
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 17 Oct 2005 00:12:30 +0000 (00:12 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 17 Oct 2005 00:12:30 +0000 (00:12 +0000)
doc/build/content/metadata.myt
examples/adjacencytree/basic_tree.py
examples/adjacencytree/byroot_tree.py
lib/sqlalchemy/mapper.py
lib/sqlalchemy/objectstore.py

index 159f4187ee675501fb9c220367c901dd16098e70..d191332accde91e2a287559228604e29d04a3b22 100644 (file)
@@ -8,17 +8,17 @@
         engine = sqllite.engine(':memory:', {})
         
         users = Table('users', engine, 
-            Column('user_id', INTEGER, primary_key = True),
-            Column('user_name', VARCHAR(16), nullable = False),
-            Column('email_address', VARCHAR(60), key='email'),
-            Column('password', VARCHAR(20), nullable = False)
+            Column('user_id', Integer, primary_key = True),
+            Column('user_name', String(16), nullable = False),
+            Column('email_address', String(60), key='email'),
+            Column('password', String(20), nullable = False)
         )
         
         user_prefs = Table('user_prefs', engine, 
-            Column('pref_id', INTEGER, primary_key = True),
-            Column('user_id', INTEGER, nullable = False, foreign_key = ForeignKey(users.c.user_id))
-            Column('pref_name', VARCHAR(40), nullable = False),
-            Column('pref_value', VARCHAR(100))
+            Column('pref_id', Integer, primary_key = True),
+            Column('user_id', Integer, nullable = False, foreign_key = ForeignKey(users.c.user_id))
+            Column('pref_name', String(40), nullable = False),
+            Column('pref_value', String(100))
         )
         </&>
 
@@ -46,8 +46,8 @@
         <p>This works because when the Table constructor is called for a particular name and database engine, if the table has already been created then the instance returned will be the same as the original.  This is a <b>singleton</b> constructor:</p>
         <&|formatting.myt:code&>
         >>> news_articles = Table('news', engine, 
-        ... Column('article_id', INTEGER, primary_key = True),
-        ... Column('url', VARCHAR(250), nullable = False)
+        ... Column('article_id', Integer, primary_key = True),
+        ... Column('url', String(250), nullable = False)
         ... )
         >>> othertable = Table('news', engine)
         >>> othertable is news_articles
index 3fcf5e8fe09e102f98bf9e526643f6a0ca73b8c5..58132430cd30d70a620b9ce52e61d5b534fa41e9 100644 (file)
@@ -53,7 +53,7 @@ TreeNode.mapper=assignmapper(tables.trees, class_=TreeNode, properties=dict(
     name=tables.trees.c.node_name,
     parent_id=tables.trees.c.parent_node_id,
     root_id=tables.trees.c.root_node_id,
-    children=relation(TreeNode, primaryjoin=tables.trees.c.parent_node_id==tables.trees.c.node_id, foreignkey=tables.trees.c.parent_node_id, thiscol=tables.trees.c.node_id, lazy=True, uselist=True, private=True),
+    children=relation(TreeNode, primaryjoin=tables.trees.c.parent_node_id==tables.trees.c.node_id, lazy=True, uselist=True, private=True),
 ))
 
 node2 = TreeNode('node2')
index 4d767af59db93dc688a9f93221141a2955606c02..cf8b7cbbba544cd7065a186618fd78fc07803561 100644 (file)
@@ -41,6 +41,7 @@ class TreeNode(object):
         self.root = self
         self.parent = None
         self.id = None
+        self.data =None
         self.parent_id = None
         self.root_id=None
     def _set_root(self, root):
@@ -57,7 +58,7 @@ class TreeNode(object):
     def __str__(self):
         return self._getstring(0, False)
     def _getstring(self, level, expand = False):
-        s = ('  ' * level) + "%s (%s,%s,%s, %d)" % (self.name, self.id,self.parent_id,self.root_id, id(self)) + '\n'
+        s = ('  ' * level) + "%s (%s,%s,%s, %d): %s" % (self.name, self.id,self.parent_id,self.root_id, id(self), repr(self.data)) + '\n'
         if expand:
             s += string.join([n._getstring(level+1, True) for n in self.children.values()], '')
         return s
@@ -97,16 +98,14 @@ class TreeData(object):
         self.value = value
     def __repr__(self):
         return "TreeData(%s, %s)" % (repr(self.id), repr(self.value))
-# define the mapper.  we will make "convenient" property
-# names vs. the more verbose names in the table definition
 
 TreeNode.mapper=assignmapper(tables.trees, properties=dict(
     id=tables.trees.c.node_id,
     name=tables.trees.c.node_name,
     parent_id=tables.trees.c.parent_node_id,
     root_id=tables.trees.c.root_node_id,
-    root=relation(TreeNode, primaryjoin=tables.trees.c.root_node_id==tables.trees.c.node_id, foreignkey=tables.trees.c.node_id, thiscol=tables.trees.c.root_node_id, lazy=None, uselist=False),
-    children=relation(TreeNode, primaryjoin=tables.trees.c.parent_node_id==tables.trees.c.node_id, foreignkey=tables.trees.c.parent_node_id, thiscol=tables.trees.c.node_id, lazy=None, uselist=True, private=True),
+    root=relation(TreeNode, primaryjoin=tables.trees.c.root_node_id==tables.trees.c.node_id, foreignkey=tables.trees.c.node_id, lazy=None, uselist=False),
+    children=relation(TreeNode, primaryjoin=tables.trees.c.parent_node_id==tables.trees.c.node_id, lazy=None, uselist=True, private=True),
     data=relation(TreeData, tables.treedata, properties=dict(id=tables.treedata.c.data_id), private=True, lazy=False)
     
 ), extension = TreeLoader())
index cb5ba8b62b621270883f376a5d60ccdbccf85f1f..eee91f3b03ecc2552873a85d02c572f168afb264 100644 (file)
@@ -630,8 +630,8 @@ class PropertyLoader(MapperProperty):
         self.key = key
         self.parent = parent
 
-        if self.parent.table is self.target and self.foreignkey is None:
-            raise "Circular relationship requires explicit 'foreignkey' parameter"
+#        if self.parent.table is self.target and self.foreignkey is None:
#           raise "Circular relationship requires explicit 'foreignkey' parameter"
             
         # if join conditions were not specified, figure them out based on foreign keys
         if self.secondary is not None:
@@ -666,11 +666,6 @@ class PropertyLoader(MapperProperty):
             objectstore.uow().register_attribute(parent.class_, key, uselist = self.uselist, deleteremoved = self.private)
 
     def _get_direction(self):
-#        if self.thiscol is not None:
- #           if self.thiscol.primary_key:
- #               return PropertyLoader.LEFT
- #           else:
- #               return PropertyLoader.RIGHT
         if self.parent.primarytable is self.target:
             if self.foreignkey.primary_key:
                 return PropertyLoader.RIGHT
index db1631d3946663d889a2159e4b7cd0651accda98..c1883291b8c1bfa82eab9bb3aadfbd257472b4f3 100644 (file)
@@ -307,7 +307,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()
         head.execute(self)
             
     def post_exec(self):
@@ -498,9 +498,6 @@ class UOWTask(object):
                         else:
                             get_dependency_task(whosdep[0], processor, isdelete).append(whosdep[1], isdelete=isdelete)
 
-        for k, v in dependencies.iteritems():
-            print str(k), repr(v)
-
         head = util.DependencySorter(tuples, allobjects).sort()
         if head is None:
             return None