class documentation

class Comparator(Indexable.Comparator, Concatenable.Comparator):

Known subclasses: sqlalchemy.dialects.postgresql.ARRAY.Comparator

View In Hierarchy

Define comparison operations for _types.ARRAY.

More operators are available on the dialect-specific form of this type. See .postgresql.ARRAY.Comparator.

Method all Return other operator ALL (array) clause.
Method any Return other operator ANY (array) clause.
Method contains Implement the 'contains' operator.
Method ​_setup​_getitem Undocumented

Inherited from Comparator:

Method __getitem__ Implement the [] operator.

Inherited from Comparator (via Comparator):

Method operate Operate on an argument.
Method reverse​_operate Reverse operate on an argument.
Method __clause​_element__ Undocumented
Method __init__ Undocumented
Method __reduce__ Undocumented
Method ​_adapt​_expression evaluate the return type of <self> <op> <othertype>, and apply any adaptations to the given operator.
Class Variable __slots__ Undocumented
Class Variable default​_comparator Undocumented
Instance Variable expr Undocumented
Instance Variable type Undocumented

Inherited from ColumnOperators (via Comparator, Comparator):

Method __add__ Implement the + operator.
Method __contains__ Undocumented
Method __div__ Implement the / operator.
Method __eq__ Implement the == operator.
Method __ge__ Implement the >= operator.
Method __gt__ Implement the > operator.
Method __le__ Implement the <= operator.
Method __lshift__ implement the << operator.
Method __lt__ Implement the < operator.
Method __mod__ Implement the % operator.
Method __mul__ Implement the * operator.
Method __ne__ Implement the != operator.
Method __neg__ Implement the - operator.
Method __radd__ Implement the + operator in reverse.
Method __rdiv__ Implement the / operator in reverse.
Method __rmod__ Implement the % operator in reverse.
Method __rmul__ Implement the * operator in reverse.
Method __rshift__ implement the >> operator.
Method __rsub__ Implement the - operator in reverse.
Method __rtruediv__ Implement the // operator in reverse.
Method __sub__ Implement the - operator.
Method __truediv__ Implement the // operator.
Method all​_ Produce an _expression.all_ clause against the parent object.
Method any​_ Produce an _expression.any_ clause against the parent object.
Method asc Produce a _expression.asc clause against the parent object.
Method between Produce a _expression.between clause against the parent object, given the lower and upper range.
Method collate Produce a _expression.collate clause against the parent object, given the collation string.
Method concat Implement the 'concat' operator.
Method desc Produce a _expression.desc clause against the parent object.
Method distinct Produce a _expression.distinct clause against the parent object.
Method endswith Implement the 'endswith' operator.
Method ilike Implement the ilike operator, e.g. case insensitive LIKE.
Method in​_ Implement the in operator.
Method is​_ Implement the IS operator.
Method is​_distinct​_from Implement the IS DISTINCT FROM operator.
Method is​_not Implement the IS NOT operator.
Method is​_not​_distinct​_from Implement the IS NOT DISTINCT FROM operator.
Method like Implement the like operator.
Method match Implements a database-specific 'match' operator.
Method not​_ilike implement the NOT ILIKE operator.
Method not​_in implement the NOT IN operator.
Method not​_like implement the NOT LIKE operator.
Method nulls​_first Produce a _expression.nulls_first clause against the parent object.
Method nulls​_last Produce a _expression.nulls_last clause against the parent object.
Method regexp​_match Implements a database-specific 'regexp match' operator.
Method regexp​_replace Implements a database-specific 'regexp replace' operator.
Method startswith Implement the startswith operator.
Class Variable timetuple Hack, allows datetime objects to be compared on the LHS.

Inherited from Operators (via Comparator, Comparator, ColumnOperators):

Method __and__ Implement the & operator.
Method __invert__ Implement the ~ operator.
Method __or__ Implement the | operator.
Method bool​_op Return a custom boolean operator.
Method op Produce a generic operator function.

Inherited from Comparator:

Method ​_adapt​_expression evaluate the return type of <self> <op> <othertype>, and apply any adaptations to the given operator.

Inherited from Comparator (via Comparator):

Method operate Operate on an argument.
Method reverse​_operate Reverse operate on an argument.
Method __clause​_element__ Undocumented
Method __init__ Undocumented
Method __reduce__ Undocumented
Class Variable __slots__ Undocumented
Class Variable default​_comparator Undocumented
Instance Variable expr Undocumented
Instance Variable type Undocumented

Inherited from ColumnOperators (via Comparator, Comparator):

Method __add__ Implement the + operator.
Method __contains__ Undocumented
Method __div__ Implement the / operator.
Method __eq__ Implement the == operator.
Method __ge__ Implement the >= operator.
Method __getitem__ Implement the [] operator.
Method __gt__ Implement the > operator.
Method __le__ Implement the <= operator.
Method __lshift__ implement the << operator.
Method __lt__ Implement the < operator.
Method __mod__ Implement the % operator.
Method __mul__ Implement the * operator.
Method __ne__ Implement the != operator.
Method __neg__ Implement the - operator.
Method __radd__ Implement the + operator in reverse.
Method __rdiv__ Implement the / operator in reverse.
Method __rmod__ Implement the % operator in reverse.
Method __rmul__ Implement the * operator in reverse.
Method __rshift__ implement the >> operator.
Method __rsub__ Implement the - operator in reverse.
Method __rtruediv__ Implement the // operator in reverse.
Method __sub__ Implement the - operator.
Method __truediv__ Implement the // operator.
Method all​_ Produce an _expression.all_ clause against the parent object.
Method any​_ Produce an _expression.any_ clause against the parent object.
Method asc Produce a _expression.asc clause against the parent object.
Method between Produce a _expression.between clause against the parent object, given the lower and upper range.
Method collate Produce a _expression.collate clause against the parent object, given the collation string.
Method concat Implement the 'concat' operator.
Method desc Produce a _expression.desc clause against the parent object.
Method distinct Produce a _expression.distinct clause against the parent object.
Method endswith Implement the 'endswith' operator.
Method ilike Implement the ilike operator, e.g. case insensitive LIKE.
Method in​_ Implement the in operator.
Method is​_ Implement the IS operator.
Method is​_distinct​_from Implement the IS DISTINCT FROM operator.
Method is​_not Implement the IS NOT operator.
Method is​_not​_distinct​_from Implement the IS NOT DISTINCT FROM operator.
Method like Implement the like operator.
Method match Implements a database-specific 'match' operator.
Method not​_ilike implement the NOT ILIKE operator.
Method not​_in implement the NOT IN operator.
Method not​_like implement the NOT LIKE operator.
Method nulls​_first Produce a _expression.nulls_first clause against the parent object.
Method nulls​_last Produce a _expression.nulls_last clause against the parent object.
Method regexp​_match Implements a database-specific 'regexp match' operator.
Method regexp​_replace Implements a database-specific 'regexp replace' operator.
Method startswith Implement the startswith operator.
Class Variable timetuple Hack, allows datetime objects to be compared on the LHS.

Inherited from Operators (via Comparator, Comparator, ColumnOperators):

Method __and__ Implement the & operator.
Method __invert__ Implement the ~ operator.
Method __or__ Implement the | operator.
Method bool​_op Return a custom boolean operator.
Method op Produce a generic operator function.
@util.preload_module('sqlalchemy.sql.elements')
def all(self, other, operator=None):

Return other operator ALL (array) clause.

Note

This method is an _types.ARRAY - specific construct that is now superseded by the _sql.any_ function, which features a different calling style. The _sql.any_ function is also mirrored at the method level via the _sql.ColumnOperators.any_ method.

Usage of array-specific _types.ARRAY.Comparator.all is as follows:

from sqlalchemy.sql import operators

conn.execute(
    select(table.c.data).where(
            table.c.data.all(7, operator=operators.lt)
        )
)

See Also

_expression.all_

.types.ARRAY.Comparator.any

Parameters
otherexpression to be compared
operatoran operator object from the sqlalchemy.sql.operators package, defaults to .operators.eq.
@util.preload_module('sqlalchemy.sql.elements')
def any(self, other, operator=None):

Return other operator ANY (array) clause.

Note

This method is an _types.ARRAY - specific construct that is now superseded by the _sql.any_ function, which features a different calling style. The _sql.any_ function is also mirrored at the method level via the _sql.ColumnOperators.any_ method.

Usage of array-specific _types.ARRAY.Comparator.any is as follows:

from sqlalchemy.sql import operators

conn.execute(
    select(table.c.data).where(
            table.c.data.any(7, operator=operators.lt)
        )
)

See Also

_expression.any_

.types.ARRAY.Comparator.all

Parameters
otherexpression to be compared
operatoran operator object from the sqlalchemy.sql.operators package, defaults to .operators.eq.
def contains(self, *arg, **kw):

Implement the 'contains' operator.

Produces a LIKE expression that tests against a match for the middle of a string value:

column LIKE '%' || <other> || '%'

E.g.:

stmt = select(sometable).\
    where(sometable.c.column.contains("foobar"))

Since the operator uses LIKE, wildcard characters "%" and "_" that are present inside the <other> expression will behave like wildcards as well. For literal string values, the :paramref:`.ColumnOperators.contains.autoescape` flag may be set to True to apply escaping to occurrences of these characters within the string value so that they match as themselves and not as wildcard characters. Alternatively, the :paramref:`.ColumnOperators.contains.escape` parameter will establish a given character as an escape character which can be of use when the target expression is not a literal string.

See Also

.ColumnOperators.startswith

.ColumnOperators.endswith

.ColumnOperators.like

Parameters
*argUndocumented
**kwUndocumented
otherexpression to be compared. This is usually a plain string value, but can also be an arbitrary SQL expression. LIKE wildcard characters % and _ are not escaped by default unless the :paramref:`.ColumnOperators.contains.autoescape` flag is set to True.
autoescape

boolean; when True, establishes an escape character within the LIKE expression, then applies it to all occurrences of "%", "_" and the escape character itself within the comparison value, which is assumed to be a literal string and not a SQL expression.

An expression such as:

somecolumn.contains("foo%bar", autoescape=True)

Will render as:

somecolumn LIKE '%' || :param || '%' ESCAPE '/'

With the value of :param as "foo/%bar".

escape

a character which when given will render with the ESCAPE keyword to establish that character as the escape character. This character can then be placed preceding occurrences of % and _ to allow them to act as themselves and not wildcard characters.

An expression such as:

somecolumn.contains("foo/%bar", escape="^")

Will render as:

somecolumn LIKE '%' || :param || '%' ESCAPE '^'

The parameter may also be combined with :paramref:`.ColumnOperators.contains.autoescape`:

somecolumn.contains("foo%bar^bat", escape="^", autoescape=True)

Where above, the given literal parameter will be converted to "foo^%bar^^bat" before being passed to the database.

def _setup_getitem(self, index):