diff --git a/dataset/table.py b/dataset/table.py index e21d251..b2fce84 100644 --- a/dataset/table.py +++ b/dataset/table.py @@ -375,6 +375,8 @@ class Table(object): key = list(value.keys())[0] if key in ('like',): clauses.append(self.table.c[column].like(value[key])) + elif key in ('ilike',): + clauses.append(self.table.c[column].ilike(value[key])) elif key in ('>', 'gt'): clauses.append(self.table.c[column] > value[key]) elif key in ('<', 'lt'): @@ -383,6 +385,8 @@ class Table(object): clauses.append(self.table.c[column] >= value[key]) elif key in ('<=', 'lte'): clauses.append(self.table.c[column] <= value[key]) + elif key in ('=', '==', 'is'): + clauses.append(self.table.c[column] == value[key]) elif key in ('!=', '<>', 'not'): clauses.append(self.table.c[column] != value[key]) elif key in ('between', '..'): diff --git a/test/test_dataset.py b/test/test_dataset.py index 9be52c5..588c550 100644 --- a/test/test_dataset.py +++ b/test/test_dataset.py @@ -339,6 +339,10 @@ class TableTestCase(unittest.TestCase): assert len(ds) == 5, ds ds = list(self.tbl.find(temperature={'between': [5, 8]})) assert len(ds) == 3, ds + ds = list(self.tbl.find(place={'=': 'G€lway'})) + assert len(ds) == 3, ds + ds = list(self.tbl.find(place={'ilike': '%LwAy'})) + assert len(ds) == 3, ds def test_offset(self): ds = list(self.tbl.find(place=TEST_CITY_1, _offset=1))