This is an automated email from the ASF dual-hosted git repository.
kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new 0e2edbc61cf [fix](fe)reduce memory usage in alter #32810 (#33873)
0e2edbc61cf is described below
commit 0e2edbc61cf1915edf17723711061dca5586e1ff
Author: Luwei <[email protected]>
AuthorDate: Fri Apr 19 14:05:42 2024 +0800
[fix](fe)reduce memory usage in alter #32810 (#33873)
Co-authored-by: kylinmac <[email protected]>
---
.../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 81d0a0af565..c1ecc202d79 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
@@ -423,6 +423,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);
@@ -435,34 +458,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: [email protected]
For additional commands, e-mail: [email protected]