Dynamic カラムのバイナリシリアライゼーションで使用され、対応する設定により、入出力フォーマット RowBinaryWithNamesAndTypes および Native でも使用できます。
以下の表では、各データ型がバイナリフォーマットでどのように表現されるかを示します。各データ型のエンコーディングは、型を示す1バイトと、任意の追加情報で構成されます。
バイナリエンコーディングにおける var_uint は、サイズが Variable-Length Quantity 圧縮を使ってエンコードされることを意味します。
型
JSON では、uint8_serialization_version というバイト値がシリアライゼーションのバージョンを示します。現時点ではこのバージョンは常に 0 ですが、将来的に JSON 型に新しい引数が導入された場合は変更される可能性があります。
型 QBit では、0x37 エンコーディングは stride が次元 N と異なる場合にのみ使用されます。stride == N の場合 (QBit(Float32, 4, 4) のように第 3 引数が明示的に記述されている場合も含む) 、この型は 2 引数形式の QBit(T, N) に正規化され、上記の 0x36 としてエンコードされるため、そのバイナリエンコーディングはストライドなしの QBit とバイト単位で完全に同一のままです。
Interval kind のバイナリエンコーディング
Interval データ型の各 interval kind がどのようにエンコードされるかを示しています。
集約関数パラメータのバイナリエンコーディング
AggregateFunction および SimpleAggregateFunction のパラメータがどのようにエンコードされるかを示しています。
パラメータのエンコーディングは、パラメータの型を示す 1 バイトと、その値自体で構成されます。