Я пытаюсь запустить запрос фильтра в SQLAlchemy (python), и у меня возникает проблема с чувствительностью к регистру в имени столбца.
Классы моделей автоматически генерируются из схемы следующим образом:
Base = declarative_base()
engine = create_engine('postgresql://user:pass@localhost:5432/database')
metadata = MetaData(bind=engine)
class MyTable(Base):
__table__ = Table('my_table', metadata, autoload=True, quote=True)
И вот как я запускаю запрос фильтра:
val = 1
result = session.query(MyTable).filter("myCaseSensitiveAttribute=:myCaseSensitiveAttribute").params(myCaseSensitiveAttribute=val).all()
Это приводит к ошибке:
sqlalchemy.exc.ProgrammingError: (ProgrammingError) столбец «mycasesensitiveattribute» не существует LINE 3: WHERE myCaseSensitiveAttribute=1
Все остальное работает нормально с учетом регистра. Проблема только в фильтре. Есть ли способ заставить его заключать в кавычки имя столбца без явного определения каждого атрибута в классе модели (в данном случае нецелесообразно) или какой-либо другой рабочий метод фильтрации набора результатов на основе значения переменной?
Спасибо за ваше время!