MCPcopy
hub / github.com/uber/aresdb / SerializeHeader

Method SerializeHeader

query/common/hll.go:871–941  ·  view source on GitHub ↗

SerializeHeader serialize HLL header -----------query result 0------------------- [uint8] num_enum_columns [uint8] bytes per dim ... [padding for 8 bytes] [uint32] result_size [uint32] raw_dim_values_vector_length [uint8] dim_index_0... [uint8] dim_index_n [padding for 8 bytes] [

()

Source from the content-addressed store, hash-verified

869//
870// <end of header>
871func (builder *HLLDataWriter) SerializeHeader() error {
872 writer := utils.NewBufferWriter(builder.Buffer)
873
874 // num_enum_columns
875 if err := writer.AppendUint8(uint8(len(builder.EnumDicts))); err != nil {
876 return err
877 }
878
879 // bytes per dim
880 if err := writer.Append([]byte(builder.NumDimsPerDimWidth[:])); err != nil {
881 return err
882 }
883 writer.AlignBytes(8)
884
885 // result_size
886 if err := writer.AppendUint32(builder.ResultSize); err != nil {
887 return err
888 }
889
890 // raw_dim_values_vector_length
891 if err := writer.AppendUint32(builder.PaddedRawDimValuesVectorLength); err != nil {
892 return err
893 }
894
895 // dim_indexes
896 for _, dimIndex := range builder.DimIndexes {
897 if err := writer.AppendUint8(uint8(dimIndex)); err != nil {
898 return err
899 }
900 }
901 writer.AlignBytes(8)
902
903 // data_types
904 for _, dataType := range builder.DataTypes {
905 if err := writer.AppendUint32(uint32(dataType)); err != nil {
906 return err
907 }
908 }
909 writer.AlignBytes(8)
910
911 // Write enum cases.
912 for dimIdx, enumCases := range builder.EnumDicts {
913 enumCasesBytes := CalculateEnumCasesBytes(enumCases)
914 if err := writer.AppendUint32(enumCasesBytes); err != nil {
915 return err
916 }
917
918 if err := writer.AppendUint16(uint16(dimIdx)); err != nil {
919 return err
920 }
921
922 // padding
923 writer.SkipBytes(2)
924
925 var enumCaseBytesWritten uint32
926 for _, enumCase := range enumCases {
927 if err := writer.Append([]byte(enumCase)); err != nil {
928 return err

Callers 2

SerializeHLLMethod · 0.95
postProcessHLLBinaryMethod · 0.95

Calls 8

AppendUint8Method · 0.95
AppendMethod · 0.95
AlignBytesMethod · 0.95
AppendUint32Method · 0.95
AppendUint16Method · 0.95
SkipBytesMethod · 0.95
NewBufferWriterFunction · 0.92
CalculateEnumCasesBytesFunction · 0.85

Tested by

no test coverage detected