Пример #1
0
 def contains(self, value):
     if isinstance(value, dict):
         rhs = Value(value, unpack=False)
         return Expression(self, HCONTAINS_DICT, rhs)
     elif isinstance(value, (list, tuple)):
         rhs = Value(value, unpack=False)
         return Expression(self, HCONTAINS_KEYS, rhs)
     return Expression(self, HCONTAINS_KEY, value)
Пример #2
0
    def apply_default(self, table, column_name, field):
        default = field.default
        if callable_(default):
            default = default()

        return (self.make_context().literal('UPDATE ').sql(
            Entity(table)).literal(' SET ').sql(
                Expression(Entity(column_name),
                           OP.EQ,
                           field.db_value(default),
                           flat=True)))
Пример #3
0
 def concat(self, rhs):
     return Expression(self.as_json(True), OP.CONCAT, Json(rhs))
Пример #4
0
def Match(field, query, language=None):
    params = (language, query) if language is not None else (query, )
    field_params = (language, field) if language is not None else (field, )
    return Expression(fn.to_tsvector(*field_params), TS_MATCH,
                      fn.to_tsquery(*params))
Пример #5
0
 def match(self, query, language=None, plain=False):
     params = (language, query) if language is not None else (query, )
     func = fn.plainto_tsquery if plain else fn.to_tsquery
     return Expression(self, TS_MATCH, func(*params))
Пример #6
0
 def remove(self, *items):
     return Expression(cast_jsonb(self), JSONB_REMOVE,
                       Value(list(items), unpack=False))
Пример #7
0
 def contains(self, *items):
     return Expression(self, ACONTAINS, ArrayValue(self, items))
Пример #8
0
def match(lhs, rhs):
    return Expression(lhs, OP.MATCH, rhs)
Пример #9
0
 def has_key(self, key):
     return Expression(self.as_json(True), JSONB_CONTAINS_KEY, key)
Пример #10
0
 def contains(self, other):
     if isinstance(other, (list, dict)):
         return Expression(self, JSONB_CONTAINS, Json(other))
     return Expression(cast_jsonb(self), JSONB_EXISTS, other)
Пример #11
0
 def contains_any(self, *keys):
     return Expression(self, HCONTAINS_ANY_KEY,
                       Value(list(keys), unpack=False))
Пример #12
0
 def update(self, **data):
     return Expression(self, HUPDATE, data)
Пример #13
0
 def __getitem__(self, key):
     return Expression(self, HKEY, Value(key))
Пример #14
0
 def contains_any(self, *items):
     return Expression(self, ACONTAINS_ANY, ArrayValue(self, items))
Пример #15
0
 def contains(self, other):
     clone = self.as_json(True)
     if isinstance(other, (list, dict)):
         return Expression(clone, JSONB_CONTAINS, Json(other))
     return Expression(clone, JSONB_EXISTS, other)
Пример #16
0
 def contains_all(self, *keys):
     return Expression(self.as_json(True), JSONB_CONTAINS_ALL_KEYS,
                       Value(list(keys), unpack=False))
Пример #17
0
 def contained_by(self, other):
     return Expression(cast_jsonb(self), JSONB_CONTAINED_BY, Json(other))
Пример #18
0
 def contains_all(self, *items):
     return Expression(cast_jsonb(self), JSONB_CONTAINS_ALL_KEYS,
                       Value(list(items), unpack=False))
Пример #19
0
 def has_key(self, key):
     return Expression(cast_jsonb(self), JSONB_CONTAINS_KEY, key)
Пример #20
0
 def inner(self, rhs):
     if isinstance(rhs, (list, dict)):
         rhs = Value(rhs, converter=self.db_value, unpack=False)
     return Expression(self, op, rhs)
Пример #21
0
 def inner(self, rhs):
     return Expression(self, op, ArrayValue(self, rhs))