summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/build/content/metadata.myt20
-rw-r--r--examples/adjacencytree/basic_tree.py2
-rw-r--r--examples/adjacencytree/byroot_tree.py9
-rw-r--r--lib/sqlalchemy/mapper.py9
-rw-r--r--lib/sqlalchemy/objectstore.py5
5 files changed, 18 insertions, 27 deletions
diff --git a/doc/build/content/metadata.myt b/doc/build/content/metadata.myt
index 159f4187e..d191332ac 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 @@
<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
diff --git a/examples/adjacencytree/basic_tree.py b/examples/adjacencytree/basic_tree.py
index 3fcf5e8fe..58132430c 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 4d767af59..cf8b7cbbb 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 cb5ba8b62..eee91f3b0 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 db1631d39..c1883291b 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