MCPcopy Index your code
hub / github.com/apache/iotdb-client-go / ReadColumn

Method ReadColumn

client/column_decoder.go:147–195  ·  view source on GitHub ↗
(reader *bytes.Reader, dataType TSDataType, positionCount int32)

Source from the content-addressed store, hash-verified

145}
146
147func (decoder *Int64ArrayColumnDecoder) ReadColumn(reader *bytes.Reader, dataType TSDataType, positionCount int32) (Column, error) {
148 // Serialized data layout:
149 // +---------------+-----------------+-------------+
150 // | may have null | null indicators | values |
151 // +---------------+-----------------+-------------+
152 // | byte | list[byte] | list[int64] |
153 // +---------------+-----------------+-------------+
154
155 if positionCount == 0 {
156 switch dataType {
157 case INT64, TIMESTAMP:
158 return NewLongColumn(0, 0, nil, []int64{})
159 case DOUBLE:
160 return NewDoubleColumn(0, 0, nil, []float64{})
161 default:
162 return nil, fmt.Errorf("invalid data type: %v", dataType)
163 }
164 }
165
166 nullIndicators, err := deserializeNullIndicators(reader, positionCount)
167 if err != nil {
168 return nil, err
169 }
170 switch dataType {
171 case INT64, TIMESTAMP:
172 values := make([]int64, positionCount)
173 for i := int32(0); i < positionCount; i++ {
174 if nullIndicators != nil && nullIndicators[i] {
175 continue
176 }
177 if err = binary.Read(reader, binary.BigEndian, &values[i]); err != nil {
178 return nil, err
179 }
180 }
181 return NewLongColumn(0, positionCount, nullIndicators, values)
182 case DOUBLE:
183 values := make([]float64, positionCount)
184 for i := int32(0); i < positionCount; i++ {
185 if nullIndicators != nil && nullIndicators[i] {
186 continue
187 }
188 if err = binary.Read(reader, binary.BigEndian, &values[i]); err != nil {
189 return nil, err
190 }
191 }
192 return NewDoubleColumn(0, positionCount, nullIndicators, values)
193 }
194 return nil, fmt.Errorf("invalid data type: %v", dataType)
195}
196
197type ByteArrayColumnDecoder struct {
198 baseColumnDecoder

Callers

nothing calls this directly

Calls 4

NewLongColumnFunction · 0.85
NewDoubleColumnFunction · 0.85
ReadMethod · 0.45

Tested by

no test coverage detected