SQLAlchemy и Postgresql: to_tsquery () - PullRequest
       4

SQLAlchemy и Postgresql: to_tsquery ()

7 голосов
/ 02 марта 2012

Кто-нибудь знает, как использовать функцию to_tsquery () postgresql в sqlalchemy? Я много искал в Google, я не нашел ничего, что мог понять. Пожалуйста, помогите.

Я надеюсь, что это доступно в функции фильтра, как это:

session.query(TableName).filter(Table.column_name.to_tsquery(search_string)).all()

Ожидаемый SQL для вышеуказанного запроса выглядит примерно так:

Select column_name
    from table_name t
    where t.column_name @@ to_tsquery(:search_string)

Ответы [ 2 ]

8 голосов
/ 02 марта 2012

Для этих типов произвольных запросов вы можете встроить sql непосредственно в ваш запрос:

session.query(TableName).\
    filter("t.column_name @@ to_tsquery(:search_string)").\
    params(search_string=search_string).all()

Вы также должны иметь возможность параметризовать t.column_name, но пока не можете видеть документы для этого.

6 голосов
/ 04 марта 2012

Метод .op () позволяет генерировать SQL для произвольных операторов.

session.query(TableName).filter(
    Table.c.column_name.op('@@')(to_tsquery(search_string))
).all()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...