Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ODBCDriver2

Входные данные Выходные данные Псевдоним

Описание

Формат ODBCDriver2 — двоичный формат только для вывода, используемый для передачи результатов запроса по HTTP в драйвер ClickHouse для ODBC. Драйвер запрашивает его, устанавливая default_format в ODBCDriver2; пользователи обычно не выбирают этот формат напрямую.

Все целые числа в потоке — знаковые 32-битные значения, закодированные в порядке байтов little-endian. Строка кодируется как её байтовая длина, за которой следуют сами байты. Вывод имеет следующую структуру:

  1. Значение 2, указывающее, что далее следуют две строки заголовка.
  2. Заголовок имён, содержащий значение number_of_columns + 1, строку name и имена всех столбцов.
  3. Заголовок типов, содержащий значение number_of_columns + 1, строку type и имена всех типов данных ClickHouse. Обёртки LowCardinality удаляются из этих имён типов.
  4. Строки данных. Каждая строка содержит по одному текстово сериализованному значению с префиксом длины для каждого столбца результата. Строки данных не содержат собственных счётчиков строк или столбцов, а поток завершается на 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 использует стандартные настройки текстовой сериализации отдельных значений. Настройки, специфичные для самого формата, отсутствуют.

Navigation