aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/clickhouse/client/protocol.h
blob: 3cb5b2646f4f9f9e20ce49b2e247996d1d46b226 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#pragma once

namespace NClickHouse {
    /// То, что передаёт сервер.
    namespace ServerCodes {
        enum {
            Hello = 0,       /// Имя, версия, ревизия.
            Data = 1,        /// Блок данных со сжатием или без.
            Exception = 2,   /// Исключение во время обработки запроса.
            Progress = 3,    /// Прогресс выполнения запроса: строк считано, байт считано.
            Pong = 4,        /// Ответ на Ping.
            EndOfStream = 5, /// Все пакеты были переданы.
            ProfileInfo = 6, /// Пакет с профайлинговой информацией.
            Totals = 7,      /// Блок данных с тотальными значениями, со сжатием или без.
            Extremes = 8,    /// Блок данных с минимумами и максимумами, аналогично.
            Log = 10,        /// Системный лог исполнения запроса.
        };
    }

    /// То, что передаёт клиент.
    namespace ClientCodes {
        enum {
            Hello = 0,  /// Имя, версия, ревизия, БД по-умолчанию.
            Query = 1,  /** Идентификатор запроса, настройки на отдельный запрос,
                                  * информация, до какой стадии исполнять запрос,
                                  * использовать ли сжатие, текст запроса (без данных для INSERT-а).
                                  */
            Data = 2,   /// Блок данных со сжатием или без.
            Cancel = 3, /// Отменить выполнение запроса.
            Ping = 4,   /// Проверка живости соединения с сервером.
        };
    }

    /// Использовать ли сжатие.
    namespace CompressionState {
        enum {
            Disable = 0,
            Enable = 1,
        };
    }

    namespace Stages {
        enum {
            Complete = 2,
        };
    }

    enum class ECompressionMethodByte : ui8 {
        LZ4 = 0x82,
        ZSTD = 0x90,
    };
}