Как использовать метод literal_processor типов диалекта sqlalchemy?Python

Программы на Python
Anonymous
Как использовать метод literal_processor типов диалекта sqlalchemy?

Сообщение Anonymous »

Использование этого метода для типов неочевидно. Я прочитал документацию sqlalchemy, где сказано, что этот метод используется для визуализации части запроса непосредственно из литеральных значений. Но я не понимаю, когда его можно вызывать для типов.
Для примера возьмем clickhouse_sqlalchemy.types.Array. Его метод выглядит следующим образом:

Код: Выделить всё

def literal_processor(self, dialect):
item_processor = self.item_type_impl.literal_processor(dialect)

def process(value):
processed_value = []
for x in value:
if item_processor:
x = item_processor(x)
processed_value.append(x)
return '[' + ', '.join(processed_value) + ']'
return process
Явно видно, что метод возвращает функцию, отображающую обычный массив ClickHouse типа [1, 2, 3]. Но как я могу добиться этого в запросе? Я использовал Array только как тип для приведения, например, sa.cast(sa.func.array(1, 2, 3), Array(String)), и не смог использовать его в любой другой способ создания собственных массивов ClickHouse при рендеринге запросов.


Подробнее здесь: https://stackoverflow.com/questions/781 ... lect-types

Вернуться в «Python»