Adds Query.__rand__ and dal.Query.__ror__

Adds __rand__ == __and__ and __ror__ == __or__.

Also strips trailing spaces.
This commit is contained in:
Alexander Zayats
2013-04-18 16:15:06 +03:00
parent c909af4a86
commit 45bda63ed3
+6 -2
View File
@@ -1255,7 +1255,7 @@ class BaseAdapter(ConnectionPool):
return '(%s LIKE %s)' % (self.expand(first),
self.expand('%'+second, 'string'))
def CONTAINS(self,first,second,case_sensitive=False):
def CONTAINS(self,first,second,case_sensitive=False):
if first.type in ('string','text', 'json'):
second = Expression(None,self.CONCAT('%',Expression(
None,self.REPLACE(second,('%','%%'))),'%'))
@@ -1306,7 +1306,7 @@ class BaseAdapter(ConnectionPool):
ftype.startswith('decimal')
def REPLACE(self, first, (second, third)):
return 'REPLACE(%s,%s,%s)' % (self.expand(first,'string'),
return 'REPLACE(%s,%s,%s)' % (self.expand(first,'string'),
self.expand(second,'string'),
self.expand(third,'string'))
@@ -9578,9 +9578,13 @@ class Query(object):
def __and__(self, other):
return Query(self.db,self.db._adapter.AND,self,other)
__rand__ = __and__
def __or__(self, other):
return Query(self.db,self.db._adapter.OR,self,other)
__ror__ = __or__
def __invert__(self):
if self.op==self.db._adapter.NOT:
return self.first