dataroaring commented on code in PR #13359:
URL: https://github.com/apache/doris/pull/13359#discussion_r1007816289


##########
be/src/olap/merger.cpp:
##########
@@ -188,4 +190,137 @@ Status Merger::vmerge_rowsets(TabletSharedPtr tablet, 
ReaderType reader_type,
     return Status::OK();
 }
 
+// split columns into several groups, make sure all keys in one group
+// unique_key should consider sequence&delete column
+void Merger::vertical_split_columns(TabletSchemaSPtr tablet_schema,
+                                    std::vector<std::vector<uint32_t>>* 
column_groups) {
+    uint32_t num_columns_per_group = 
config::vertical_compaction_num_columns_per_group;
+    uint32_t num_key_cols = tablet_schema->num_key_columns();
+    uint32_t total_cols = tablet_schema->num_columns();
+    std::vector<uint32_t> key_columns;
+    for (auto i = 0; i < num_key_cols; ++i) {
+        key_columns.emplace_back(i);
+    }
+    // in unique key, sequence & delete sign column should merge with key 
columns
+    int32_t sequence_col_idx = -1;
+    int32_t delete_sign_idx = -1;
+    // in key column compaction, seq_col real index is _block->columns() -2
+    // and delete_sign column is _block->columns() - 1
+    if (tablet_schema->keys_type() == KeysType::UNIQUE_KEYS) {
+        if (tablet_schema->has_sequence_col()) {
+            sequence_col_idx = tablet_schema->sequence_col_idx();
+            key_columns.emplace_back(sequence_col_idx);
+        }
+        delete_sign_idx = tablet_schema->field_index(DELETE_SIGN);
+        key_columns.emplace_back(delete_sign_idx);

Review Comment:
   There is not delete sign idx in some table, e.g. created in an older doris.



-- 
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

Reply via email to