Exemplo n.º 1
0
 def convert_domain(self, domain, tables, Model):
     name, operator, value = domain[:3]
     if operator not in {'in', 'not in'}:
         return super().convert_domain(domain, tables, Model)
     database = Transaction().database
     table, _ = tables[None]
     raw_column = self.sql_column(table)
     if isinstance(value, str):
         try:
             expression = database.json_key_exists(raw_column, value)
         except NotImplementedError:
             expression = operators.Like(raw_column,
                                         '%' + dumps(value) + '%')
     else:
         try:
             expression = database.json_any_keys_exist(
                 raw_column, list(value))
         except NotImplementedError:
             expression = Literal(False)
             for item in value:
                 expression |= operators.Like(raw_column,
                                              '%' + dumps(item) + '%')
     if operator == 'not in':
         expression = operators.Not(expression)
     return expression
Exemplo n.º 2
0
 def getLike(self, likeCol, colVal, wantCols=None):
     where = (sqlo.Like(self.keyToCol(likeCol), colVal + '%'))
     return self.getItems(wantCols=wantCols, where=where)
Exemplo n.º 3
0
 def getPhashLikeBasePath(self, basePath):
     where = (sqlo.Like(self.table.fspath,
                        basePath + '%')) & (self.table.phash != None)
     return self.getItems(wantCols=["dbId", "pHash"], where=where)