Expand description
Decodificação de mensagens de linha.
Formato da transmissão (payload do op_fetch_response): um bitmap de nulos
little-endian inicial de align4(ceil(ncols/8)) bytes (bit i ligado ⇒
coluna i é NULL), seguido do valor codificado em XDR de cada coluna
NÃO-NULL, em ordem. Colunas nulas não contribuem com bytes, então as
mensagens têm comprimento variável e devem ser decodificadas campo a campo
direto do stream.
Functions§
- decode_
row - Decodifica uma linha do stream a partir dos metadados das colunas de saída.
charseté o charset da conexão, usado para decodificar CHAR/VARCHAR. - encode_
row - Codifica uma linha (mensagem de parâmetros de entrada) no formato de
transmissão que o servidor espera: um bitmap de nulos little-endian inicial
seguido do valor XDR de cada coluna NÃO-NULL, em ordem. O inverso de
decode_row. - encode_
row_ into - Como
encode_row, mas anexa a mensagem ao fim deout, sem alocar um buffer temporário por linha — útil para acumular muitas linhas (vercrate::Batch::add). - message_
buffer_ len - Comprimento do buffer de mensagem do lado do cliente (não compactado) que o
servidor espera em
op_batch_create(p_batch_msglen). É o layout que o BLR descreve: cada campo é alinhado à sua fronteira natural, seguido de um indicador de nuloSQL_SHORT(2 bytes, alinhamento 2). Sem arredondamento final — confirmado por captura (INTEGER + VARCHAR(20) → 30 bytes). - null_
bitmap_ len - Número de bytes no bitmap de nulos inicial para
ncolscolunas.