This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch 2.1-tmp
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/2.1-tmp by this push:
     new 29777bc3a8f [fix](fe)reduce memory usage in alter (#32810) (#33474)
29777bc3a8f is described below

commit 29777bc3a8f5d5c9ecce0974c5411de59a865430
Author: Luwei <814383...@qq.com>
AuthorDate: Wed Apr 10 16:04:50 2024 +0800

    [fix](fe)reduce memory usage in alter (#32810) (#33474)
    
    Co-authored-by: kylinmac <kylin...@163.com>
---
 .../org/apache/doris/alter/SchemaChangeJobV2.java  | 51 ++++++++++------------
 1 file changed, 23 insertions(+), 28 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java 
b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java
index 011cc53979f..33e605c7af4 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java
@@ -418,6 +418,29 @@ public class SchemaChangeJobV2 extends AlterJobV2 {
 
             Preconditions.checkState(tbl.getState() == 
OlapTableState.SCHEMA_CHANGE);
 
+            Map<String, Expr> defineExprs = Maps.newHashMap();
+            List<Column> fullSchema = tbl.getBaseSchema(true);
+            DescriptorTable descTable = new DescriptorTable();
+            TupleDescriptor destTupleDesc = descTable.createTupleDescriptor();
+            for (Column column : fullSchema) {
+                SlotDescriptor destSlotDesc = 
descTable.addSlotDescriptor(destTupleDesc);
+                destSlotDesc.setIsMaterialized(true);
+                destSlotDesc.setColumn(column);
+                destSlotDesc.setIsNullable(column.isAllowNull());
+
+                if 
(indexColumnMap.containsKey(SchemaChangeHandler.SHADOW_NAME_PREFIX + 
column.getName())) {
+                    Column newColumn = 
indexColumnMap.get(SchemaChangeHandler.SHADOW_NAME_PREFIX + column.getName());
+                    if (newColumn.getType() != column.getType()) {
+                        try {
+                            SlotRef slot = new SlotRef(destSlotDesc);
+                            slot.setCol(column.getName());
+                            defineExprs.put(column.getName(), 
slot.castTo(newColumn.getType()));
+                        } catch (AnalysisException e) {
+                            throw new AlterCancelException(e.getMessage());
+                        }
+                    }
+                }
+            }
             for (long partitionId : partitionIndexMap.rowKeySet()) {
                 Partition partition = tbl.getPartition(partitionId);
                 Preconditions.checkNotNull(partition, partitionId);
@@ -430,34 +453,6 @@ public class SchemaChangeJobV2 extends AlterJobV2 {
                 for (Map.Entry<Long, MaterializedIndex> entry : 
shadowIndexMap.entrySet()) {
                     long shadowIdxId = entry.getKey();
                     MaterializedIndex shadowIdx = entry.getValue();
-
-                    Map<String, Expr> defineExprs = Maps.newHashMap();
-
-                    List<Column> fullSchema = tbl.getBaseSchema(true);
-                    DescriptorTable descTable = new DescriptorTable();
-                    TupleDescriptor destTupleDesc = 
descTable.createTupleDescriptor();
-                    for (Column column : fullSchema) {
-                        SlotDescriptor destSlotDesc = 
descTable.addSlotDescriptor(destTupleDesc);
-                        destSlotDesc.setIsMaterialized(true);
-                        destSlotDesc.setColumn(column);
-                        destSlotDesc.setIsNullable(column.isAllowNull());
-
-                        if 
(indexColumnMap.containsKey(SchemaChangeHandler.SHADOW_NAME_PREFIX + 
column.getName())) {
-                            Column newColumn = indexColumnMap
-                                    
.get(SchemaChangeHandler.SHADOW_NAME_PREFIX + column.getName());
-                            if (newColumn.getType() != column.getType()) {
-                                try {
-                                    SlotRef slot = new SlotRef(destSlotDesc);
-                                    slot.setCol(column.getName());
-                                    defineExprs.put(column.getName(), 
slot.castTo(newColumn.getType()));
-                                } catch (AnalysisException e) {
-                                    throw new 
AlterCancelException(e.getMessage());
-                                }
-                            }
-                        }
-
-                    }
-
                     long originIdxId = indexIdMap.get(shadowIdxId);
                     int shadowSchemaHash = 
indexSchemaVersionAndHashMap.get(shadowIdxId).schemaHash;
                     int originSchemaHash = 
tbl.getSchemaHashByIndexId(indexIdMap.get(shadowIdxId));


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to