protocol.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #pragma once
  2. namespace NClickHouse {
  3. /// То, что передаёт сервер.
  4. namespace ServerCodes {
  5. enum {
  6. Hello = 0, /// Имя, версия, ревизия.
  7. Data = 1, /// Блок данных со сжатием или без.
  8. Exception = 2, /// Исключение во время обработки запроса.
  9. Progress = 3, /// Прогресс выполнения запроса: строк считано, байт считано.
  10. Pong = 4, /// Ответ на Ping.
  11. EndOfStream = 5, /// Все пакеты были переданы.
  12. ProfileInfo = 6, /// Пакет с профайлинговой информацией.
  13. Totals = 7, /// Блок данных с тотальными значениями, со сжатием или без.
  14. Extremes = 8, /// Блок данных с минимумами и максимумами, аналогично.
  15. Log = 10, /// Системный лог исполнения запроса.
  16. };
  17. }
  18. /// То, что передаёт клиент.
  19. namespace ClientCodes {
  20. enum {
  21. Hello = 0, /// Имя, версия, ревизия, БД по-умолчанию.
  22. Query = 1, /** Идентификатор запроса, настройки на отдельный запрос,
  23. * информация, до какой стадии исполнять запрос,
  24. * использовать ли сжатие, текст запроса (без данных для INSERT-а).
  25. */
  26. Data = 2, /// Блок данных со сжатием или без.
  27. Cancel = 3, /// Отменить выполнение запроса.
  28. Ping = 4, /// Проверка живости соединения с сервером.
  29. };
  30. }
  31. /// Использовать ли сжатие.
  32. namespace CompressionState {
  33. enum {
  34. Disable = 0,
  35. Enable = 1,
  36. };
  37. }
  38. namespace Stages {
  39. enum {
  40. Complete = 2,
  41. };
  42. }
  43. enum class ECompressionMethodByte : ui8 {
  44. LZ4 = 0x82,
  45. ZSTD = 0x90,
  46. };
  47. }