Найти - Пользователи
Полная версия: writer need
Начало » Базы данных » writer need
1
PooH
Господа, кто хорошо по аглицки пищет, помогите багрепорт в SQLAlchemy написать, а то у меня английский read-only :(
AlexKiriukha
PooH, так может сюда написать проблему? Возможности коллективного разума могут помочь в этом нелёгком деле.
PooH
AlexKiriukha
PooH, так может сюда написать проблему? Возможности коллективного разума могут помочь в этом нелёгком деле.
Ну вот как-то так:
В SQLAlchemy-0.5.0rc1, файл sql/expression.py строка 2877 скалярность запроса при создании _ScalarSelect определялась так:
    def __init__(self, element):
self.element = element
cols = list(element.inner_columns)
if len(cols) != 1:
raise exc.InvalidRequestError("Scalar select can only be created from a Select object that has exactly one column expression.")
self.type = cols[0].type
в более поздних версиях код был изменен
SQLAlchemy-0.5.0.rc4 , файл sql/expression.py строка 2992
   def __init__(self, element):
self.element = element
cols = list(element.c)
if len(cols) != 1:
raise exc.InvalidRequestError("Scalar select can only be created "
"from a Select object that has exactly one column expression.")
self.type = cols[0].type
При этом если колонки запроса создавались с помощью функции text() он имеет len(element.c) равное нулю и данный код бросает исключение InvalidRequestError на совершенно правильный запрос.

Пример:
q = select([text('CASE WHEN complex_id IS NOT NULL THEN complex_id '
'WHEN construction_id IS NOT NULL THEN construction_id ELSE realty.id END')],
from_obj=model.offer_table, distinct=True)
result = session.query(model.Realty).filter(model.Realty.id.in_(q))
Этот код работает в в SQLAlchemy-0.5.0rc1, но выдает исключение в SQLAlchemy-0.5.0.rc4
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB