From: Mike Bayer Date: Mon, 17 Oct 2005 00:12:30 +0000 (+0000) Subject: (no commit message) X-Git-Tag: rel_0_1_0~511 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d9d39f0a8de4bc94f5c6b1a8cbc9f17d0ec511d8;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git --- diff --git a/doc/build/content/metadata.myt b/doc/build/content/metadata.myt index 159f4187ee..d191332acc 100644 --- a/doc/build/content/metadata.myt +++ b/doc/build/content/metadata.myt @@ -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 @@

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 singleton constructor:

<&|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 diff --git a/examples/adjacencytree/basic_tree.py b/examples/adjacencytree/basic_tree.py index 3fcf5e8fe0..58132430cd 100644 --- a/examples/adjacencytree/basic_tree.py +++ b/examples/adjacencytree/basic_tree.py @@ -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') diff --git a/examples/adjacencytree/byroot_tree.py b/examples/adjacencytree/byroot_tree.py index 4d767af59d..cf8b7cbbba 100644 --- a/examples/adjacencytree/byroot_tree.py +++ b/examples/adjacencytree/byroot_tree.py @@ -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()) diff --git a/lib/sqlalchemy/mapper.py b/lib/sqlalchemy/mapper.py index cb5ba8b62b..eee91f3b03 100644 --- a/lib/sqlalchemy/mapper.py +++ b/lib/sqlalchemy/mapper.py @@ -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 diff --git a/lib/sqlalchemy/objectstore.py b/lib/sqlalchemy/objectstore.py index db1631d394..c1883291b8 100644 --- a/lib/sqlalchemy/objectstore.py +++ b/lib/sqlalchemy/objectstore.py @@ -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