@@ -39,7 +39,7 @@ struct EncodingSizeEstimation {
3939 const Statistics<physicalType>& statistics) {
4040 switch (encodingType) {
4141 case EncodingType::Constant: {
42- return statistics.uniqueCounts ().size () == 1
42+ return statistics.uniqueCounts ().value (). size () == 1
4343 ? std::optional<uint64_t >{getEncodingOverhead<
4444 EncodingType::Constant,
4545 physicalType>()}
@@ -59,8 +59,8 @@ struct EncodingSizeEstimation {
5959
6060 // Find most common item count
6161 const auto maxUniqueCount = std::max_element (
62- statistics.uniqueCounts ().cbegin (),
63- statistics.uniqueCounts ().cend (),
62+ statistics.uniqueCounts ().value (). cbegin (),
63+ statistics.uniqueCounts ().value (). cend (),
6464 [](const auto & a, const auto & b) { return a.second < b.second ; });
6565 // Deduce uncommon values count
6666 const auto uncommonCount = entryCount - maxUniqueCount->second ;
@@ -96,10 +96,10 @@ struct EncodingSizeEstimation {
9696 // Alphabet stored trivially.
9797 // Indices are stored bit-packed, with bit width needed to store max
9898 // dictionary size (which is the unique value count).
99- const uint64_t indicesSize =
100- bitPackedBytes ( 0 , statistics.uniqueCounts ().size (), entryCount);
99+ const uint64_t indicesSize = bitPackedBytes (
100+ 0 , statistics.uniqueCounts (). value ().size (), entryCount);
101101 const uint64_t alphabetSize =
102- statistics.uniqueCounts ().size () * sizeof (physicalType);
102+ statistics.uniqueCounts ().value (). size () * sizeof (physicalType);
103103 uint32_t overhead =
104104 getEncodingOverhead<EncodingType::Dictionary, physicalType>() +
105105 // Alphabet overhead
@@ -163,7 +163,7 @@ struct EncodingSizeEstimation {
163163 const Statistics<physicalType>& statistics) {
164164 switch (encodingType) {
165165 case EncodingType::Constant: {
166- return statistics.uniqueCounts ().size () == 1
166+ return statistics.uniqueCounts ().value (). size () == 1
167167 ? std::optional<uint64_t >{getEncodingOverhead<
168168 EncodingType::Constant,
169169 physicalType>()}
@@ -175,8 +175,8 @@ struct EncodingSizeEstimation {
175175 // representing max entry count).
176176
177177 const auto exceptionCount = std::min (
178- statistics.uniqueCounts ().at (true ),
179- statistics.uniqueCounts ().at (false ));
178+ statistics.uniqueCounts ().value (). at (true ),
179+ statistics.uniqueCounts ().value (). at (false ));
180180 uint32_t overhead =
181181 getEncodingOverhead<EncodingType::SparseBool, physicalType>() +
182182 // Overhead for storing exception indices
@@ -216,7 +216,7 @@ struct EncodingSizeEstimation {
216216 const uint32_t maxStringSize = statistics.max ().size ();
217217 switch (encodingType) {
218218 case EncodingType::Constant: {
219- return statistics.uniqueCounts ().size () == 1
219+ return statistics.uniqueCounts ().value (). size () == 1
220220 ? std::optional<uint64_t >{getEncodingOverhead<
221221 EncodingType::Constant,
222222 physicalType>(maxStringSize)}
@@ -238,13 +238,13 @@ struct EncodingSizeEstimation {
238238
239239 // Find the most common item count
240240 const auto maxUniqueCount = std::max_element (
241- statistics.uniqueCounts ().cbegin (),
242- statistics.uniqueCounts ().cend (),
241+ statistics.uniqueCounts ().value (). cbegin (),
242+ statistics.uniqueCounts ().value (). cend (),
243243 [](const auto & a, const auto & b) { return a.second < b.second ; });
244244 // Get the total blob size for all (unique) strings
245245 const uint64_t alphabetByteSize = std::accumulate (
246- statistics.uniqueCounts ().cbegin (),
247- statistics.uniqueCounts ().cend (),
246+ statistics.uniqueCounts ().value (). cbegin (),
247+ statistics.uniqueCounts ().value (). cend (),
248248 0 ,
249249 [](const uint32_t sum, const auto & unique) {
250250 return sum + unique.first .size ();
@@ -259,7 +259,7 @@ struct EncodingSizeEstimation {
259259 maxUniqueCount->first .size () +
260260 bitPackedBytes (statistics.min ().size (),
261261 statistics.max ().size (),
262- statistics.uniqueCounts ().size ());
262+ statistics.uniqueCounts ().value (). size ());
263263 // Uncommon values (sparse bool) bitmap will have index per value,
264264 // stored bit packed.
265265 const auto uncommonIndicesSize =
@@ -290,12 +290,12 @@ struct EncodingSizeEstimation {
290290 // Alphabet stored trivially.
291291 // Indices are stored bit-packed, with bit width needed to store max
292292 // dictionary size (which is the unique value count).
293- const uint64_t indicesSize =
294- bitPackedBytes ( 0 , statistics.uniqueCounts ().size (), entryCount);
293+ const uint64_t indicesSize = bitPackedBytes (
294+ 0 , statistics.uniqueCounts (). value ().size (), entryCount);
295295 // Get the total blob size for all (unique) strings
296296 const uint64_t alphabetByteSize = std::accumulate (
297- statistics.uniqueCounts ().cbegin (),
298- statistics.uniqueCounts ().cend (),
297+ statistics.uniqueCounts ().value (). cbegin (),
298+ statistics.uniqueCounts ().value (). cend (),
299299 0 ,
300300 [](const uint32_t sum, const auto & unique) {
301301 return sum + unique.first .size ();
@@ -304,7 +304,7 @@ struct EncodingSizeEstimation {
304304 const uint64_t alphabetSize = alphabetByteSize +
305305 bitPackedBytes (statistics.min ().size (),
306306 statistics.max ().size (),
307- statistics.uniqueCounts ().size ());
307+ statistics.uniqueCounts ().value (). size ());
308308 uint32_t overhead =
309309 getEncodingOverhead<EncodingType::Dictionary, physicalType>(
310310 maxStringSize) +
@@ -324,8 +324,8 @@ struct EncodingSizeEstimation {
324324 uint64_t runValuesSize =
325325 // (unique) strings blob size
326326 std::accumulate (
327- statistics.uniqueCounts ().cbegin (),
328- statistics.uniqueCounts ().cend (),
327+ statistics.uniqueCounts ().value (). cbegin (),
328+ statistics.uniqueCounts ().value (). cend (),
329329 0 ,
330330 [](const uint32_t sum, const auto & unique) {
331331 return sum + unique.first .size ();
@@ -338,7 +338,7 @@ struct EncodingSizeEstimation {
338338 // dictionary indices
339339 bitPackedBytes (
340340 0 ,
341- statistics.uniqueCounts ().size (),
341+ statistics.uniqueCounts ().value (). size (),
342342 statistics.consecutiveRepeatCount ());
343343 const auto runLengthsSize = bitPackedBytes (
344344 statistics.minRepeat (),
0 commit comments