yiguolei commented on code in PR #19594: URL: https://github.com/apache/doris/pull/19594#discussion_r1197659388
########## be/src/olap/rowset/segment_v2/segment_writer.cpp: ########## @@ -113,37 +116,27 @@ void SegmentWriter::init_column_meta(ColumnMetaPB* meta, uint32_t column_id, } } -Status SegmentWriter::init(const vectorized::Block* block) { +Status SegmentWriter::init(const FlushContext* flush_ctx) { std::vector<uint32_t> column_ids; int column_cnt = _tablet_schema->num_columns(); - if (block && !_tablet_schema->is_partial_update()) { - // partial update only contain several columns - column_cnt = block->columns(); + if (flush_ctx && flush_ctx->flush_schema) { + column_cnt = flush_ctx->flush_schema->num_columns(); } for (uint32_t i = 0; i < column_cnt; ++i) { column_ids.emplace_back(i); } - return init(column_ids, true, block); -} - -// Dynamic table with extended columns and directly write from delta writer -// Compaction/SchemaChange path will use the latest schema version of rowset -// as it's shcema, so it's block is not from dynamic table load procedure. -// If it is a dynamic table load procedure we should handle auto generated columns. -bool SegmentWriter::_should_create_writers_with_dynamic_block(size_t num_columns_in_block) { - return _tablet_schema->is_dynamic_schema() && _opts.is_direct_write && - num_columns_in_block > _tablet_schema->columns().size(); + return init(column_ids, true, flush_ctx); } Status SegmentWriter::init(const std::vector<uint32_t>& col_ids, bool has_key, - const vectorized::Block* block) { + const FlushContext* flush_ctx) { Review Comment: Add ENABLE_FACTORY_CREATOR to FlushContext to make sure smart pointer is used. -- 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: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org