db(db.a)._update(name=db(db.b.a==db.a.id).nested_select(db.b.id))

This commit is contained in:
Massimo DiPierro
2012-05-21 09:55:05 -05:00
parent 7e2fbfacac
commit 0206fa024b
2 changed files with 8 additions and 5 deletions

View File

@@ -1 +1 @@
Version 2.00.0 (2012-05-20 10:09:09) dev
Version 2.00.0 (2012-05-21 09:55:00) dev

View File

@@ -1130,7 +1130,9 @@ class BaseAdapter(ConnectionPool):
elif not isinstance(expression.op, str):
return expression.op()
else:
return '(%s)' % expression.op
op = expression.op
if op.endswith(';'): op=op[:-1]
return '(%s)' % op
elif field_type:
return str(self.represent(expression,field_type))
elif isinstance(expression,(list,tuple)):
@@ -7981,8 +7983,6 @@ class Field(Expression):
return '<no table>.%s' % self.name
def raw(s): return Expression(None,s)
class Query(object):
"""
@@ -8071,7 +8071,7 @@ class Set(object):
if isinstance(query,Table):
query = query._id>0
elif isinstance(query,str):
query = raw(query)
query = Expression(self.db,query)
elif isinstance(query,Field):
query = query!=None
if self.query:
@@ -8109,6 +8109,9 @@ class Set(object):
fields = adapter.expand_all(fields, adapter.tables(self.query))
return adapter.select(self.query,fields,attributes)
def nested_select(self,*fields,**attributes):
return Expression(self.db,self._select(*fields,**attributes))
def delete(self):
tablename=self.db._adapter.get_table(self.query)
table = self.db[tablename]