| valor | nome | descrição |
|---|
| 0 | Hello | Resposta de handshake do servidor |
| 1 | Data | O mesmo que dados do cliente |
| 2 | Exception | Exceção no processamento da consulta |
| 3 | Progress | Progresso da consulta |
| 4 | Pong | Resposta ao Ping |
| 5 | EndOfStream | Todos os pacotes foram transferidos |
| 6 | ProfileInfo | Dados de perfil |
| 7 | Totals | Valores totais |
| 8 | Extremes | Valores extremos (mín., máx.) |
| 9 | TablesStatusResponse | Resposta à solicitação TableStatus |
| 10 | Log | Log do sistema de consultas |
| 11 | TableColumns | Descrição das colunas |
| 12 | UUIDs | Lista de IDs únicos de partes |
| 13 | ReadTaskRequest | String (UUID) descreve uma solicitação que precisa da próxima tarefa |
| 14 | ProfileEvents | Pacote com eventos de perfil do servidor |
Os Data, Totals e Extremes podem ser comprimidos.
Resposta ao Hello do cliente.
| campo | tipo | valor | descrição |
|---|
| name | String | Clickhouse | Nome do servidor |
| version_major | UVarInt | 21 | Versão principal do servidor |
| version_minor | UVarInt | 12 | Versão secundária do servidor |
| revision | UVarInt | 54452 | Revisão do servidor |
| tz | String | Europe/Moscow | Fuso horário do servidor |
| display_name | String | Clickhouse | Nome do servidor para a UI |
| version_patch | UVarInt | 3 | Versão de patch do servidor |
Exceção do servidor durante o processamento da consulta.
| campo | tipo | valor | descrição |
|---|
| code | Int32 | 60 | Consulte ErrorCodes.cpp. |
| name | String | DB::Exception | Versão principal do servidor |
| message | String | DB::Exception: Table X doesn't exist | Versão secundária do servidor |
| stack_trace | String | ~ | Rastreamento de pilha em C++ |
| nested | Bool | true | Há mais erros |
Pode haver uma lista contínua de exceções até que nested seja false.
Progresso da execução da consulta informado periodicamente pelo servidor.
O Progress é informado em deltas. Para obter os totais, acumule-os no cliente.
| campo | tipo | valor | descrição |
|---|
| rows | UVarInt | 65535 | Contagem de linhas |
| bytes | UVarInt | 871799 | Contagem de bytes |
| total_rows | UVarInt | 0 | Total de linhas |
| wrote_rows | UVarInt | 0 | Linhas gravadas do cliente |
| wrote_bytes | UVarInt | 0 | Bytes gravados do cliente |
Resposta ao Ping do cliente, sem corpo do pacote.
Não serão enviados mais pacotes Data; o resultado da consulta foi totalmente transmitido do servidor para o cliente.
Não há corpo de pacote.
| campo | tipo |
|---|
| linhas | UVarInt |
| blocos | UVarInt |
| bytes | UVarInt |
| applied_limit | Bool |
| rows_before_limit | UVarInt |
| calculated_rows_before_limit | Bool |
Bloco de dados com o log do servidor.
Codificado como um bloco de dados em colunas, mas nunca é compactado.
| coluna | tipo |
|---|
| time | DateTime |
| time_micro | UInt32 |
| host_name | String |
| query_id | String |
| thread_id | UInt64 |
| priority | Int8 |
| source | String |
| text | String |
Bloco de dados com eventos de perfil.
Codificado como bloco de dados em colunas, mas nunca é comprimido.O tipo de value é UInt64 ou Int64, dependendo da revisão do servidor.
| coluna | tipo |
|---|
| host_name | String |
| current_time | DateTime |
| thread_id | UInt64 |
| type | Int8 |
| name | String |
| value | UInt64 ou Int64 |