MCPcopy Create free account
hub / github.com/apache/arrow / FlushRepeatedRun

Method FlushRepeatedRun

cpp/src/arrow/util/rle_encoding_internal.h:1428–1440  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1426}
1427
1428inline void RleBitPackedEncoder::FlushRepeatedRun() {
1429 ARROW_DCHECK_GT(repeat_count_, 0);
1430 bool result = true;
1431 // The lsb of 0 indicates this is a repeated run
1432 int32_t indicator_value = repeat_count_ << 1 | 0;
1433 result &= bit_writer_.PutVlqInt(static_cast<uint32_t>(indicator_value));
1434 result &= bit_writer_.PutAligned(
1435 current_value_, static_cast<int>(::arrow::bit_util::CeilDiv(bit_width_, 8)));
1436 ARROW_DCHECK(result);
1437 num_buffered_values_ = 0;
1438 repeat_count_ = 0;
1439 CheckBufferFull();
1440}
1441
1442/// Flush the values that have been buffered. At this point we decide whether
1443/// we need to switch between the run types or continue the current one.

Callers

nothing calls this directly

Calls 3

CeilDivFunction · 0.85
PutVlqIntMethod · 0.80
PutAlignedMethod · 0.80

Tested by

no test coverage detected