eldenmoon commented on code in PR #66858:
URL: https://github.com/apache/doris/pull/66858#discussion_r3930566167
##########
be/src/storage/segment/variant/variant_doc_snpashot_compact_iterator.h:
##########
@@ -53,12 +57,19 @@ class VariantDocValueCompactIterator : public
ColumnIterator {
private:
Status _set_doc_value_into_variant(MutableColumnPtr& dst,
MutableColumnPtr&& doc_value_column,
size_t count) const {
- auto& variant = assert_cast<ColumnVariant&>(*dst);
- auto container = ColumnVariant::create(variant.max_subcolumns_count(),
- variant.enable_doc_mode(),
count);
- container->set_doc_value_column(std::move(doc_value_column));
- variant.insert_range_from(*container, 0, count);
- return Status::OK();
+ auto* storage_map =
check_and_get_column<ColumnMap>(doc_value_column.get());
+ if (storage_map == nullptr) {
+ return Status::Corruption("Variant doc compact input is not
Map<String,String>");
+ }
+ variant_v2::VariantAssemblerOptions options;
+ options.storage_map_kind = variant_v2::StorageMapKind::DOC;
+ auto assembler =
DORIS_TRY(variant_v2::VariantAssembler::create(std::move(options)));
+ variant_v2::VariantAssemblerBatchView batch;
+ batch.num_rows = count;
+ batch.storage_map = storage_map;
+ ColumnNullable::MutablePtr assembled;
+ RETURN_IF_ERROR(assembler->assemble(batch, &assembled));
+ return variant_v2::append_assembled_variant(dst, std::move(assembled));
Review Comment:
看了下没什么问题
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]