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)), тип канонизируется к форме с двумя аргументами QBit(T, N) и кодируется как 0x36, описано выше, поэтому его двоичное кодирование остаётся побайтно идентичным QBit без stride.
Двоичное кодирование видов интервала
Interval.
Двоичное кодирование параметров агрегатной функции
AggregateFunction и SimpleAggregateFunction.
Кодирование параметра состоит из одного байта, указывающего тип параметра, и самого значения.