Dynamic em serialização binária e pode ser usado nos formatos de entrada/saída RowBinaryWithNamesAndTypes e Native com as configurações correspondentes.
A tabela abaixo descreve como cada tipo de dado é representado em formato binário. Cada codificação de tipo de dado consiste em 1 byte que indica o tipo e em algumas informações adicionais opcionais.
var_uint na codificação binária significa que o tamanho é codificado usando compressão do tipo Variable-Length Quantity.
Para o tipo
JSON, o byte uint8_serialization_version indica a versão da serialização. No momento, essa versão é sempre 0, mas pode mudar no futuro se novos argumentos forem introduzidos para o tipo JSON.
Para o tipo QBit, a codificação 0x37 é usada somente quando stride difere da dimensão N. Quando stride == N (inclusive quando o terceiro argumento é especificado explicitamente, como em QBit(Float32, 4, 4)), o tipo é canonizado para a forma de dois argumentos QBit(T, N) e codificado como 0x36 acima, de modo que sua codificação binária permaneça idêntica, byte a byte, à de um QBit sem stride.
Codificação binária do tipo de intervalo
Interval são codificados.
Codificação binária dos parâmetros de funções de agregação
AggregateFunction e SimpleAggregateFunction são codificados.
A codificação de um parâmetro consiste em 1 byte que indica o tipo do parâmetro e no próprio valor.