| Входные данные | Выходные данные | Псевдоним |
|---|---|---|
| ✗ | ✔ |
Описание
Формат ODBCDriver2 — двоичный формат только для вывода, используемый для передачи результатов запроса по HTTP в
драйвер ClickHouse для ODBC. Драйвер запрашивает его, устанавливая default_format в
ODBCDriver2; пользователи обычно не выбирают этот формат напрямую.
Все целые числа в потоке — знаковые 32-битные значения, закодированные в порядке байтов little-endian. Строка кодируется как её байтовая длина, за которой следуют сами байты. Вывод имеет следующую структуру:
- Значение
2, указывающее, что далее следуют две строки заголовка. - Заголовок имён, содержащий значение
number_of_columns + 1, строкуnameи имена всех столбцов. - Заголовок типов, содержащий значение
number_of_columns + 1, строкуtypeи имена всех типов данных ClickHouse. ОбёрткиLowCardinalityудаляются из этих имён типов. - Строки данных. Каждая строка содержит по одному текстово сериализованному значению с префиксом длины для каждого столбца результата. Строки данных не
содержат собственных счётчиков строк или столбцов, а поток завершается на
EOF.
Значение NULL кодируется длиной -1; пустая строка, отличная от NULL, имеет длину 0. Итоговые значения при наличии используют то же
кодирование строк и следуют за обычными строками.
Пример использования
В следующем запросе используются значения, проверяемые тестами формата:
SELECT
1 AS x,
[2, 3] AS y,
'Hello' AS z,
NULL AS a
FORMAT ODBCDriver2Поскольку результат имеет двоичный формат, перенаправьте его в файл, а не в терминал:
clickhouse-client --query \
"SELECT 1 AS x, [2, 3] AS y, 'Hello' AS z, NULL AS a FORMAT ODBCDriver2" \
> result.binПри обычном использовании драйвер добавляет default_format=ODBCDriver2 к своим HTTP-запросам и декодирует ответ.
Настройки формата
ODBCDriver2 использует стандартные настройки текстовой сериализации отдельных значений. Настройки, специфичные для самого формата, отсутствуют.