|
@@ -188,9 +188,18 @@ class LeFilteredQuery(LeQuery):
|
188
|
188
|
other_ds_filters[cur_ds].append(
|
189
|
189
|
((rfield, ref_dict), op, value))
|
190
|
190
|
#deduplication of std filters
|
|
191
|
+ filters_cp = set()
|
191
|
192
|
if not isinstance(filters_orig, set):
|
192
|
|
- filters_orig = set(filters_orig)
|
193
|
|
- filters_orig = list(filters_orig)
|
|
193
|
+ for i, cfilt in enumerate(filters_orig):
|
|
194
|
+ a,b,c = cfilt
|
|
195
|
+ if isinstance(c, list): #list are not hashable
|
|
196
|
+ newc = tuple(c)
|
|
197
|
+ else:
|
|
198
|
+ newc = c
|
|
199
|
+ old_len = len(filters_cp)
|
|
200
|
+ filters_cp |= set((a,b,newc))
|
|
201
|
+ if len(filters_cp) == old_len:
|
|
202
|
+ del(filters_orig[i])
|
194
|
203
|
# Sets _query_filter attribute of self query
|
195
|
204
|
self._query_filter = (filters_orig, result_rel_filters)
|
196
|
205
|
|