| Entrée | Sortie | Alias |
|---|---|---|
| ✗ | ✔ |
Description
Le format ODBCDriver2 est un format binaire destiné uniquement à la sortie, utilisé pour transférer les résultats de requête via HTTP au
pilote ClickHouse pour ODBC. Le pilote le demande en définissant default_format sur
ODBCDriver2 ; les utilisateurs ne le sélectionnent généralement pas directement.
Tous les entiers du flux sont des valeurs signées sur 32 bits encodées selon l’ordre des octets little-endian. Une chaîne est encodée sous la forme de sa longueur en octets, suivie de ses octets. La sortie présente la structure suivante :
- La valeur
2, indiquant que deux lignes d’en-tête suivent. - Un en-tête de noms contenant la valeur
number_of_columns + 1, la chaînenameet le nom de chaque colonne. - Un en-tête de types contenant la valeur
number_of_columns + 1, la chaînetypeet le nom de chaque type de données ClickHouse. Les wrappersLowCardinalitysont supprimés de ces noms de types. - Les lignes de données. Chaque ligne contient, pour chaque colonne de résultat, une valeur sérialisée au format texte et précédée de sa longueur. Les lignes de données n’incluent pas
leur propre nombre de lignes ou de colonnes, et le flux se termine par
EOF.
Une valeur NULL est encodée avec une longueur de -1 ; une chaîne non nulle vide a une longueur de 0. Les totaux, lorsqu’ils sont présents, utilisent le
même encodage de ligne et suivent les lignes ordinaires.
Exemple d’utilisation
La requête suivante est représentative des valeurs couvertes par les tests du format :
SELECT
1 AS x,
[2, 3] AS y,
'Hello' AS z,
NULL AS a
FORMAT ODBCDriver2Le résultat étant binaire, redirigez-le vers un fichier plutôt que vers un terminal :
clickhouse-client --query \
"SELECT 1 AS x, [2, 3] AS y, 'Hello' AS z, NULL AS a FORMAT ODBCDriver2" \
> result.binEn utilisation normale, le pilote ajoute default_format=ODBCDriver2 à ses requêtes HTTP et décode la réponse.
Paramètres de format
ODBCDriver2 utilise les paramètres standard de sérialisation textuelle pour les valeurs individuelles. Il ne possède aucun paramètre spécifique au format lui-même.