This is an automated email from the ASF dual-hosted git repository.
kxiao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new e277382776d [fix](fe)reduce memory usage in alter (#32810)
e277382776d is described below
commit e277382776d97007ef3c39bf3d60221ca9ba85cd
Author: kylinmac <[email protected]>
AuthorDate: Wed Apr 3 15:40:49 2024 +0800
[fix](fe)reduce memory usage in alter (#32810)
---
.../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 999ec93e437..d65d873c33c 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
@@ -433,6 +433,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);
@@ -445,34 +468,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().equals(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]