Использование этого метода для типов неочевидно. Я прочитал документацию 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