| valeur | nom | description |
|---|
| 0 | Hello | Début de la négociation client |
| 1 | requête | Requête |
| 2 | Data | Bloc de données |
| 3 | Cancel | Annuler la requête |
| 4 | Ping | Requête Ping |
| 5 | TableStatus | Requête d’état de la table |
Le paquet Data peut être compressé.
Par exemple, supposons que nous utilisions Go Client v1.10, qui prend en charge la version de protocole 54451, et
que nous voulions nous connecter à la base de données default avec l’utilisateur default et le mot de passe secret.
| champ | type | valeur | description |
|---|
| client_name | String | "Go Client" | Nom de l’implémentation cliente |
| version_major | UVarInt | 1 | Version majeure du client |
| version_minor | UVarInt | 10 | Version mineure du client |
| protocol_version | UVarInt | 54451 | Version du protocole TCP |
| database | String | "default" | Nom de la base de données |
| username | String | "default" | Nom d’utilisateur |
| password | String | "secret" | Mot de passe |
La version du protocole correspond à la version du protocole TCP du client.
En général, elle est égale à la dernière révision compatible du serveur, mais
il ne faut pas la confondre avec celle-ci.
Toutes les valeurs doivent être définies explicitement ; il n’existe aucune valeur par défaut côté serveur.
Côté client, utilisez comme valeurs par défaut la base de données "default", le nom d’utilisateur "default" et le mot de passe "" (chaîne vide).
| champ | type | valeur | description |
|---|
| query_id | String | 1ff-a123 | ID de requête, peut être UUIDv4 |
| client_info | ClientInfo | Voir le type | Informations sur le client |
| settings | Paramètres | Voir le type | Liste des paramètres |
| secret | String | secret | Secret inter-serveur |
| stage | UVarInt | 2 | Exécuter jusqu’à l’étape de la requête |
| compression | UVarInt | 0 | désactivée=0, activée=1 |
| body | String | SELECT 1 | Texte de la requête |
| champ | type | description |
|---|
| query_kind | byte | None=0, Initial=1, Secondary=2 |
| initial_user | String | Utilisateur initial |
| initial_query_id | String | ID de la requête initiale |
| initial_address | String | Adresse initiale |
| initial_time | Int64 | Heure initiale |
| interface | byte | TCP=1, HTTP=2 |
| os_user | String | Utilisateur du système d’exploitation |
| client_hostname | String | Nom d’hôte du client |
| client_name | String | Nom du client |
| version_major | UVarInt | Version majeure du client |
| version_minor | UVarInt | Version mineure du client |
| protocol_version | UVarInt | Version du protocole client |
| quota_key | String | Clé de quota |
| distributed_depth | UVarInt | Profondeur de Distributed |
| version_patch | UVarInt | Version de correctif du client |
| otel | Bool | Les champs de trace sont présents |
| trace_id | FixedString(16) | ID de trace |
| span_id | FixedString(8) | ID de span |
| trace_state | String | État du traçage |
| trace_flags | Byte | Indicateurs de traçage |
| champ | type | valeur | description |
|---|
| key | String | send_logs_level | Clé du paramètre |
| value | String | trace | Valeur du paramètre |
| important | Bool | true | Peut être ignoré ou non |
Encodé sous forme de liste : une clé et une valeur vides indiquent la fin de la liste.
| valeur | nom | description |
|---|
| 0 | FetchColumns | Types de colonnes uniquement |
| 1 | WithMergeableState | Jusqu’à l’état fusionnable |
| 2 | Complete | Jusqu’à l’état complet (devrait être la valeur par défaut) |
| champ | type | description |
|---|
| info | BlockInfo | Informations du bloc encodées |
| columns | UVarInt | Nombre de colonnes |
| rows | UVarInt | Nombre de lignes |
| columns | []Column | Colonnes avec données |
| champ | type | valeur | description |
|---|
| name | String | foo | Nom de la colonne |
| type | String | DateTime64(9) | Type de la colonne |
| data | bytes | ~ | Données de la colonne |
Aucun corps de paquet. Le serveur doit annuler la requête.
Pas de corps de paquet. Le serveur doit répondre par pong.Dernière modification le 25 juin 2026