MCPcopy Create free account
hub / github.com/4paradigm/OpenMLDB / FlatArrayIterator

Method FlatArrayIterator

src/codec/flat_array.h:284–313  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

282class FlatArrayIterator {
283 public:
284 FlatArrayIterator(const char* buffer, uint32_t bsize, uint16_t column_size)
285 : buffer_(buffer),
286 col_cnt_(0),
287 bsize_(bsize),
288 type_(kUnknown),
289 fsize_(0),
290 offset_(0) {
291 // for the case of adding field
292 if (column_size < 128) {
293 if ((uint8_t)(buffer_[0] & 0x80) != 0) {
294 col_cnt_ = ((uint8_t)buffer_[0] & 0x7F) + column_size;
295 } else {
296 col_cnt_ = (uint8_t)buffer_[0];
297 }
298 buffer_ += 1;
299 offset_ += 1;
300 } else {
301 uint16_t col_cnt_tmp = 0;
302 memcpy(static_cast<void*>(&col_cnt_tmp), buffer_, 2);
303 memrev16ifbe(static_cast<void*>(&col_cnt_tmp));
304 if ((col_cnt_tmp & 0x0080) != 0) {
305 col_cnt_ = (col_cnt_tmp & 0x007F) + column_size;
306 } else {
307 col_cnt_ = col_cnt_tmp;
308 }
309 buffer_ += 2;
310 offset_ += 2;
311 }
312 Next();
313 }
314
315 ~FlatArrayIterator() {}
316

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected