smarted BELONGS, thanks Jonathan
This commit is contained in:
1 parent
9c1702f5c3
commit
aeb15317e0
2 files changed
+7
-2
No files matched your search
@@ -1 +1 @@
|
|||||||
Version 2.6.0-development+timestamp.2013.08.09.04.48.26
|
Version 2.6.0-development+timestamp.2013.08.09.11.04.59
|
||||||
+6
-1
@@ -1265,8 +1265,13 @@ class BaseAdapter(ConnectionPool):
|
|||||||
def BELONGS(self, first, second):
|
def BELONGS(self, first, second):
|
||||||
if isinstance(second, str):
|
if isinstance(second, str):
|
||||||
return '(%s IN (%s))' % (self.expand(first), second[:-1])
|
return '(%s IN (%s))' % (self.expand(first), second[:-1])
|
||||||
elif not second:
|
if not second:
|
||||||
return '(1=0)'
|
return '(1=0)'
|
||||||
|
if isinstance(second, (list,tuple,frozenset)):
|
||||||
|
second = set(second) # remove duplicates, make mutable
|
||||||
|
if isinstance(second, set) and None in second:
|
||||||
|
second = second.remove(None)
|
||||||
|
return self.OR(self.EQ(first, None), self.BELONGS(first, second))
|
||||||
items = ','.join(self.expand(item, first.type) for item in second)
|
items = ','.join(self.expand(item, first.type) for item in second)
|
||||||
return '(%s IN (%s))' % (self.expand(first), items)
|
return '(%s IN (%s))' % (self.expand(first), items)
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user