felipecrv commented on code in PR #34526:
URL: https://github.com/apache/arrow/pull/34526#discussion_r1138787135
##########
cpp/src/parquet/encoding.cc:
##########
@@ -466,6 +465,15 @@ struct DictEncoderTraits<FLBAType> {
// Initially 1024 elements
static constexpr int32_t kInitialHashTableSize = 1 << 10;
+int RlePreserveBufferSize(int num_values, int bit_width) {
+ // Note: because of the way RleEncoder::CheckBufferFull() is called, we have
to
+ // reserve
+ // an extra "RleEncoder::MinBufferSize" bytes. These extra bytes won't be
used
+ // but not reserving them would cause the encoder to fail.
+ return 1 + ::arrow::util::RleEncoder::MaxBufferSize(bit_width, num_values) +
+ ::arrow::util::RleEncoder::MinBufferSize(bit_width);
Review Comment:
You could avoid this extraction by creating a local variable called
`num_values`.
Note that the caller returns `int64_t`, so you can also return `int64_t` and
avoid a potential `int` overflow when summing `a + int + int`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]