##// END OF EJS Templates
fix null comparisons in sqlitedb backend...
MinRK -
Show More
@@ -293,7 +293,7 b' class SQLiteDB(BaseDB):'
293 op, join = op
293 op, join = op
294
294
295 if value is None and op in null_operators:
295 if value is None and op in null_operators:
296 expr = "%s %s"%null_operators[op]
296 expr = "%s %s" % (name, null_operators[op])
297 else:
297 else:
298 expr = "%s %s ?"%(name, op)
298 expr = "%s %s ?"%(name, op)
299 if isinstance(value, (tuple,list)):
299 if isinstance(value, (tuple,list)):
@@ -308,7 +308,7 b' class SQLiteDB(BaseDB):'
308 else:
308 else:
309 # it's an equality check
309 # it's an equality check
310 if sub_check is None:
310 if sub_check is None:
311 expressions.append("%s IS NULL")
311 expressions.append("%s IS NULL" % name)
312 else:
312 else:
313 expressions.append("%s = ?"%name)
313 expressions.append("%s = ?"%name)
314 args.append(sub_check)
314 args.append(sub_check)
@@ -170,6 +170,18 b' class TestDictBackend(TestCase):'
170 self.db.drop_matching_records(query)
170 self.db.drop_matching_records(query)
171 recs = self.db.find_records(query)
171 recs = self.db.find_records(query)
172 self.assertEquals(len(recs), 0)
172 self.assertEquals(len(recs), 0)
173
174 def test_null(self):
175 """test None comparison queries"""
176 msg_ids = self.load_records(10)
177
178 query = {'msg_id' : None}
179 recs = self.db.find_records(query)
180 self.assertEquals(len(recs), 0)
181
182 query = {'msg_id' : {'$ne' : None}}
183 recs = self.db.find_records(query)
184 self.assertTrue(len(recs) >= 10)
173
185
174
186
175 class TestSQLiteBackend(TestDictBackend):
187 class TestSQLiteBackend(TestDictBackend):
General Comments 0
You need to be logged in to leave comments. Login now