diff options
author | chertus <azuikov@ydb.tech> | 2023-02-27 20:51:57 +0300 |
---|---|---|
committer | chertus <azuikov@ydb.tech> | 2023-02-27 20:51:57 +0300 |
commit | 9b4ad7622e194abb175d789bf48db7081282300f (patch) | |
tree | 7380fc0d06f4714a09ac2280add29e02c6081d14 | |
parent | 003edcf8e52eb561172840d582ed31e43fad24f0 (diff) | |
download | ydb-9b4ad7622e194abb175d789bf48db7081282300f.tar.gz |
fix UpdateEvictBlob() - add case ERASING in enum
-rw-r--r-- | ydb/core/tx/columnshard/blob_manager_db.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/ydb/core/tx/columnshard/blob_manager_db.cpp b/ydb/core/tx/columnshard/blob_manager_db.cpp index b5a42098e03..049002c1a90 100644 --- a/ydb/core/tx/columnshard/blob_manager_db.cpp +++ b/ydb/core/tx/columnshard/blob_manager_db.cpp @@ -123,22 +123,24 @@ bool TBlobManagerDb::LoadEvicted(THashMap<TEvictedBlob, TString>& evicted, THash while (!rowset.EndOfSet()) { TString strBlobId = rowset.GetValue<Schema::OneToOneEvictedBlobs::BlobId>(); //ui64 size = rowset.GetValue<Schema::OneToOneEvictedBlobs::Size>(); - ui8 state = rowset.GetValue<Schema::OneToOneEvictedBlobs::State>(); + EEvictState state = (EEvictState)rowset.GetValue<Schema::OneToOneEvictedBlobs::State>(); bool isDropped = rowset.GetValue<Schema::OneToOneEvictedBlobs::Dropped>(); TString meta = rowset.GetValue<Schema::OneToOneEvictedBlobs::Metadata>(); TString strExternId = rowset.GetValue<Schema::OneToOneEvictedBlobs::ExternBlobId>(); // TODO: CachedBlob - Y_VERIFY(state != ui8(EEvictState::UNKNOWN)); + Y_VERIFY(state != EEvictState::UNKNOWN); TUnifiedBlobId blobId = TUnifiedBlobId::ParseFromString(strBlobId, &dsGroupSelector, error); Y_VERIFY(blobId.IsValid(), "%s", error.c_str()); TUnifiedBlobId externId = TUnifiedBlobId::ParseFromString(strExternId, nullptr, error); - Y_VERIFY((state == ui8(EEvictState::EVICTING) || externId.IsValid()), "%s", error.c_str()); + if (NOlap::IsExported(state)) { + Y_VERIFY(externId.IsValid(), "%s", error.c_str()); + } TEvictedBlob evict{ - .State = (EEvictState)state, + .State = state, .Blob = std::move(blobId), .ExternBlob = std::move(externId), }; @@ -182,7 +184,14 @@ void TBlobManagerDb::UpdateEvictBlob(const TEvictedBlob& evict, const TString& m ); break; } - default: + case EEvictState::ERASING: + Y_VERIFY(meta.empty()); + db.Table<Schema::OneToOneEvictedBlobs>().Key(serializedBlobId).Update( + NIceDb::TUpdate<Schema::OneToOneEvictedBlobs::State>((ui8)evict.State) + ); + break; + case EEvictState::UNKNOWN: + case EEvictState::CACHED: Y_VERIFY(false); break; } |