@_generative(_no_statement_condition, _no_limit_offset)
def filter(self, *criterion):
    "apply the given filtering criterion to a copy\n        of this :class:`.Query`, using SQL expressions.\n\n        e.g.::\n\n            session.query(MyClass).filter(MyClass.name == 'some name')\n\n        Multiple criteria are joined together by AND::\n\n            session.query(MyClass).\\\n                filter(MyClass.name == 'some name', MyClass.id > 5)\n\n        The criterion is any SQL expression object applicable to the\n        WHERE clause of a select.   String expressions are coerced\n        into SQL expression constructs via the :func:`.text` construct.\n\n        .. versionchanged:: 0.7.5\n            Multiple criteria joined by AND.\n\n        .. seealso::\n\n            :meth:`.Query.filter_by` - filter on keyword expressions.\n\n        "
    for criterion in list(criterion):
        criterion = expression._expression_literal_as_text(criterion)
        criterion = self._adapt_clause(criterion, True, True)
        if (self._criterion is not None):
            self._criterion = (self._criterion & criterion)
        else:
            self._criterion = criterion
apply the given filtering criterion to a copy
of this :class:`.Query`, using SQL expressions.

e.g.::

    session.query(MyClass).filter(MyClass.name == 'some name')

Multiple criteria are joined together by AND::

    session.query(MyClass).\
        filter(MyClass.name == 'some name', MyClass.id > 5)

The criterion is any SQL expression object applicable to the
WHERE clause of a select.   String expressions are coerced
into SQL expression constructs via the :func:`.text` construct.

.. versionchanged:: 0.7.5
    Multiple criteria joined by AND.

.. seealso::

    :meth:`.Query.filter_by` - filter on keyword expressions.
@_generative(_no_statement_condition, _no_limit_offset)
def filter(self, *criterion):
    "apply the given filtering criterion to a copy\n        of this :class:`.Query`, using SQL expressions.\n\n        e.g.::\n\n            session.query(MyClass).filter(MyClass.name == 'some name')\n\n        Multiple criteria are joined together by AND::\n\n            session.query(MyClass).\\\n                filter(MyClass.name == 'some name', MyClass.id > 5)\n\n        The criterion is any SQL expression object applicable to the\n        WHERE clause of a select.   String expressions are coerced\n        into SQL expression constructs via the :func:`.text` construct.\n\n        .. versionchanged:: 0.7.5\n            Multiple criteria joined by AND.\n\n        .. seealso::\n\n            :meth:`.Query.filter_by` - filter on keyword expressions.\n\n        "
    for criterion in list(criterion):
        criterion = expression._expression_literal_as_text(criterion)
        criterion = self._adapt_clause(criterion, True, True)
        if (self._criterion is not None):
            self._criterion = (self._criterion & criterion)
        else:
            self._criterion = criterion