Skip to content

Commit 98d0811

Browse files
committed
Use assign-or-raise for chain split parsing
1 parent ad8fa33 commit 98d0811

1 file changed

Lines changed: 6 additions & 12 deletions

File tree

src/paimon/core/table/source/split.cpp

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -327,22 +327,16 @@ Result<std::shared_ptr<Split>> Split::Deserialize(const char* buffer, size_t len
327327
if (pos == stream_length) {
328328
return data_split;
329329
} else if (data_split->BucketPath() == ChainDataSplitImpl::VIRTUAL_BUCKET_PATH) {
330-
auto chain_split = ReadChainDataSplitTail(data_split, pool, &in);
331-
if (!chain_split.ok()) {
332-
return Status::Invalid(fmt::format("invalid ChainDataSplit byte stream: {}",
333-
chain_split.status().ToString()));
334-
}
335-
return std::static_pointer_cast<Split>(chain_split.value());
330+
PAIMON_ASSIGN_OR_RAISE(std::shared_ptr<ChainDataSplitImpl> chain_split,
331+
ReadChainDataSplitTail(data_split, pool, &in));
332+
return std::static_pointer_cast<Split>(chain_split);
336333
} else if (pos == stream_length - 1) {
337334
PAIMON_ASSIGN_OR_RAISE(bool is_fallback, in.ReadValue<bool>());
338335
return std::make_shared<FallbackDataSplit>(data_split, is_fallback);
339336
} else {
340-
auto chain_split = ReadChainDataSplitTail(data_split, pool, &in);
341-
if (!chain_split.ok()) {
342-
return Status::Invalid(fmt::format("invalid ChainDataSplit byte stream: {}",
343-
chain_split.status().ToString()));
344-
}
345-
return std::static_pointer_cast<Split>(chain_split.value());
337+
PAIMON_ASSIGN_OR_RAISE(std::shared_ptr<ChainDataSplitImpl> chain_split,
338+
ReadChainDataSplitTail(data_split, pool, &in));
339+
return std::static_pointer_cast<Split>(chain_split);
346340
}
347341
}
348342
return Status::Invalid("invalid split, must be DataSplit or IndexedSplit");

0 commit comments

Comments
 (0)