@@ -42,7 +42,13 @@ constexpr int32_t transient_id_ceil{-2};
42
42
43
43
StringDictionaryProxy::StringDictionaryProxy (std::shared_ptr<StringDictionary> sd,
44
44
const int64_t generation)
45
- : string_dict_(sd), generation_(generation) {}
45
+ : string_dict_(sd), generation_(generation) {
46
+ if (generation_ < 0 ) {
47
+ generation_ = static_cast <int64_t >(sd->storageEntryCount ());
48
+ } else {
49
+ CHECK_LE (generation_, static_cast <int64_t >(sd->storageEntryCount ()));
50
+ }
51
+ }
46
52
47
53
int32_t truncate_to_generation (const int32_t id, const size_t generation) {
48
54
if (id == StringDictionary::INVALID_STR_ID) {
@@ -453,8 +459,8 @@ std::pair<const char*, size_t> StringDictionaryProxy::getStringBytes(
453
459
}
454
460
455
461
size_t StringDictionaryProxy::storageEntryCount () const {
456
- const size_t num_storage_entries{ generation_ == - 1 ? string_dict_-> storageEntryCount ()
457
- : generation_} ;
462
+ CHECK_GE ( generation_, 0 );
463
+ const size_t num_storage_entries = generation_;
458
464
CHECK_LE (num_storage_entries, static_cast <size_t >(std::numeric_limits<int32_t >::max ()));
459
465
return num_storage_entries;
460
466
}
@@ -527,11 +533,7 @@ void StringDictionaryProxy::updateGeneration(const int64_t generation) noexcept
527
533
if (generation == -1 ) {
528
534
return ;
529
535
}
530
- if (generation_ != -1 ) {
531
- CHECK_EQ (generation_, generation);
532
- return ;
533
- }
534
- generation_ = generation;
536
+ CHECK_EQ (generation_, generation);
535
537
}
536
538
537
539
size_t StringDictionaryProxy::getTransientBulkImpl (
0 commit comments