csun5285 commented on code in PR #67468:
URL: https://github.com/apache/doris/pull/67468#discussion_r3923842253
##########
be/src/storage/segment/vertical_segment_writer.cpp:
##########
@@ -272,43 +272,82 @@ Status
VerticalSegmentWriter::_create_column_writer(uint32_t cid, const TabletCo
opts.file_writer = _file_writer;
opts.compression_type = _opts.compression_type;
opts.footer = &_footer;
- opts.input_rs_readers = _opts.rowset_ctx->input_rs_readers;
+ if (_opts.rowset_ctx != nullptr) {
+ opts.input_rs_readers = _opts.rowset_ctx->input_rs_readers;
+ }
std::unique_ptr<ColumnWriter> writer;
RETURN_IF_ERROR(ColumnWriter::create(opts, &column, _file_writer,
&writer));
RETURN_IF_ERROR(writer->init());
- _column_writers[cid] = std::move(writer);
- _olap_data_convertor->add_column_data_convertor_at(column, cid);
+ _column_writers[pos] = std::move(writer);
+ _olap_data_convertor->add_column_data_convertor_at(column, pos);
return Status::OK();
-};
+}
+
+std::vector<uint32_t> VerticalSegmentWriter::_all_column_ids() const {
+ std::vector<uint32_t> column_ids(_tablet_schema->num_columns());
+ std::iota(column_ids.begin(), column_ids.end(), 0);
+ return column_ids;
+}
Status VerticalSegmentWriter::init() {
+ return init(_all_column_ids(), true);
+}
+
+Status VerticalSegmentWriter::init(const std::vector<uint32_t>& col_ids, bool
has_key) {
+ // Vertical compaction and segcompaction init() once per group; the footer
keeps
+ // every group's entries, so this group's slice starts at the current size.
+ const int variant_stats_footer_offset = _footer.columns_size();
+ RETURN_IF_ERROR(_open_group(col_ids, has_key));
+ RETURN_IF_ERROR(_create_writers(_tablet_schema, col_ids));
+
+ // Initialize variant statistics calculator
+ _variant_stats_calculator = std::make_unique<VariantStatsCaculator>(
+ &_footer, _tablet_schema, col_ids, variant_stats_footer_offset);
+ return Status::OK();
+}
+
+Status VerticalSegmentWriter::_open_group(const std::vector<uint32_t>&
col_ids, bool has_key) {
DCHECK(_column_writers.empty());
+ DCHECK(_column_ids.empty());
+ _has_key = has_key;
+ _column_ids.insert(_column_ids.end(), col_ids.begin(), col_ids.end());
Review Comment:
不检查累计量,这是master 的行为
--
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]