API запросов SQLAlchemy некорректно работает с подсказками - PullRequest
1 голос
/ 08 мая 2019

Я пытаюсь использовать API запросов для создания MySQL-запроса с подсказкой MAX_EXECUTION_TIME (30000).

Мой код примерно:

from flask_sqlalchemy import SQLAlchemy

class MyTable(SQLAlchemy().Model):
  ...

base_query = Sqlalchemy.session.query(MyTable) # This works when I execute it.
base_query_with_hint = base_query.with_hint(MyTable, "MAX_EXECUTION_TIME(30000)")
base_query_with_hint.execute() # THIS DOES NOT WORK.

str(base_query_with_hint) 
# Output
# Select a, b, c from MyTable MAX_EXECUTION_TIME(30000)

Подсказка только что отображается в конце запроса, очевидно!

Он должен отображаться как

Select /*+ MAX_EXECUTION_TIME(30000) */ a, b, c from MyTable

Я хочу, чтобы он вел себя точно так же, как https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.with_hint, но вместо API выбора я использую API запросов.

...