db(db.a)._update(name=db(db.b.a==db.a.id).nested_select(db.b.id))
This commit is contained in:
2
VERSION
2
VERSION
@@ -1 +1 @@
|
||||
Version 2.00.0 (2012-05-20 10:09:09) dev
|
||||
Version 2.00.0 (2012-05-21 09:55:00) dev
|
||||
|
||||
11
gluon/dal.py
11
gluon/dal.py
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user