diff --git a/fe/fe-core/src/main/java/com/starrocks/catalog/ListPartitionInfo.java b/fe/fe-core/src/main/java/com/starrocks/catalog/ListPartitionInfo.java index 93051fbf21be4..0c83d181e3875 100644 --- a/fe/fe-core/src/main/java/com/starrocks/catalog/ListPartitionInfo.java +++ b/fe/fe-core/src/main/java/com/starrocks/catalog/ListPartitionInfo.java @@ -489,9 +489,6 @@ public Object clone() { info.automaticPartition = this.automaticPartition; return info; } -<<<<<<< HEAD -} -======= @Override public void setPartitionIdsForRestore(Map partitionOldIdToNewId) { @@ -535,13 +532,4 @@ public void setPartitionIdsForRestore(Map partitionOldIdToNewId) { } } } - - @Override - public void gsonPostProcess() throws IOException { - super.gsonPostProcess(); - if (partitionColumnIds.size() <= 0) { - partitionColumnIds = deprecatedColumns.stream().map(Column::getColumnId).collect(Collectors.toList()); - } - } } ->>>>>>> 9db79768de ([Refactor] Refactor reset ids for restore (#52075)) diff --git a/fe/fe-core/src/main/java/com/starrocks/catalog/OlapTable.java b/fe/fe-core/src/main/java/com/starrocks/catalog/OlapTable.java index 45b95715aeb69..acafc88aa80cf 100644 --- a/fe/fe-core/src/main/java/com/starrocks/catalog/OlapTable.java +++ b/fe/fe-core/src/main/java/com/starrocks/catalog/OlapTable.java @@ -636,87 +636,8 @@ public Status resetIdsForRestore(GlobalStateMgr globalStateMgr, Database db, int // base index baseIndexId = newIdxId; } -<<<<<<< HEAD - indexIdToMeta.put(newIdxId, origIndexIdToMeta.get(entry.getKey())); - indexIdToMeta.get(newIdxId).setIndexIdForRestore(newIdxId); - indexNameToId.put(entry.getValue(), newIdxId); - } - - // generate a partition name to id map - Map origPartNameToId = Maps.newHashMap(); - for (Partition partition : idToPartition.values()) { - origPartNameToId.put(partition.getName(), partition.getId()); - } - - // reset partition info and idToPartition map - if (partitionInfo.isRangePartition()) { - RangePartitionInfo rangePartitionInfo = (RangePartitionInfo) partitionInfo; - RangePartitionInfo origRangePartitionInfo = (RangePartitionInfo) rangePartitionInfo.clone(); - for (Long partitionId : origPartNameToId.values()) { - rangePartitionInfo.dropPartition(partitionId); - } - Map origIdToPartition = Maps.newHashMap(idToPartition); - idToPartition.clear(); - for (Map.Entry entry : origPartNameToId.entrySet()) { - long newPartId = globalStateMgr.getNextId(); - // preserve existing info - DataProperty dataProperty = origRangePartitionInfo.getDataProperty(entry.getValue()); - boolean inMemory = origRangePartitionInfo.getIsInMemory(entry.getValue()); - DataCacheInfo dataCacheInfo = origRangePartitionInfo.getDataCacheInfo(entry.getValue()); - Range range = origRangePartitionInfo.getIdToRange(false).get(entry.getValue()); - // replace with new info - rangePartitionInfo.addPartition(newPartId, false, range, dataProperty, (short) restoreReplicationNum, - inMemory, dataCacheInfo); - idToPartition.put(newPartId, origIdToPartition.get(entry.getValue())); - } - } else if (partitionInfo.isListPartition()) { - ListPartitionInfo listPartitionInfo = (ListPartitionInfo) partitionInfo; - ListPartitionInfo origListPartitionInfo = (ListPartitionInfo) listPartitionInfo.clone(); - for (Long partitionId : origPartNameToId.values()) { - listPartitionInfo.dropPartition(partitionId); - } - Map origIdToPartition = Maps.newHashMap(idToPartition); - idToPartition.clear(); - for (Map.Entry entry : origPartNameToId.entrySet()) { - long newPartId = globalStateMgr.getNextId(); - // preserve existing info - DataProperty dataProperty = origListPartitionInfo.getDataProperty(entry.getValue()); - boolean inMemory = origListPartitionInfo.getIsInMemory(entry.getValue()); - DataCacheInfo dataCacheInfo = origListPartitionInfo.getDataCacheInfo(entry.getValue()); - List values = origListPartitionInfo.getIdToValues().get(entry.getValue()); - List> multiValues = origListPartitionInfo.getIdToMultiValues().get(entry.getValue()); - // replace with new info - try { - listPartitionInfo.addPartition(newPartId, dataProperty, (short) restoreReplicationNum, - inMemory, dataCacheInfo, values, multiValues); - } catch (AnalysisException e) { - return new Status(ErrCode.COMMON_ERROR, "Failed to add partition " + e.getMessage()); - } - idToPartition.put(newPartId, origIdToPartition.get(entry.getValue())); - } - } else if (partitionInfo.isUnPartitioned()) { - // Single partitioned - PartitionInfo origPartitionInfo = (PartitionInfo) partitionInfo.clone(); - for (Long partitionId : origPartNameToId.values()) { - partitionInfo.dropPartition(partitionId); - } - Map origIdToPartition = Maps.newHashMap(idToPartition); - idToPartition.clear(); - for (Map.Entry entry : origPartNameToId.entrySet()) { - long newPartId = globalStateMgr.getNextId(); - DataProperty dataProperty = origPartitionInfo.getDataProperty(entry.getValue()); - boolean inMemory = origPartitionInfo.getIsInMemory(entry.getValue()); - DataCacheInfo dataCacheInfo = origPartitionInfo.getDataCacheInfo(entry.getValue()); - partitionInfo.addPartition(newPartId, dataProperty, (short) restoreReplicationNum, inMemory, - dataCacheInfo); - idToPartition.put(newPartId, origIdToPartition.get(entry.getValue())); - } - } else { - return new Status(ErrCode.UNSUPPORTED, "Unsupported partition type: " + partitionInfo.getType()); -======= MaterializedIndexMeta indexMeta = origIndexIdToMeta.get(entry.getKey()); indexMeta.setIndexIdForRestore(newIdxId); - indexMeta.setSchemaId(newIdxId); indexIdToMeta.put(newIdxId, indexMeta); indexNameToId.put(entry.getValue(), newIdxId); } @@ -733,28 +654,10 @@ public Status resetIdsForRestore(GlobalStateMgr globalStateMgr, Database db, int // reset partitions List partitions = Lists.newArrayList(idToPartition.values()); idToPartition.clear(); - physicalPartitionIdToPartitionId.clear(); - physicalPartitionNameToPartitionId.clear(); for (Partition partition : partitions) { long newPartitionId = partitionOldIdToNewId.get(partition.getId()); partition.setIdForRestore(newPartitionId); idToPartition.put(newPartitionId, partition); - List origPhysicalPartitions = Lists.newArrayList(partition.getSubPartitions()); - origPhysicalPartitions.forEach(physicalPartition -> { - if (physicalPartition.getId() != newPartitionId) { - partition.removeSubPartition(physicalPartition.getId()); - } - }); - origPhysicalPartitions.forEach(physicalPartition -> { - if (physicalPartition.getId() != newPartitionId) { - physicalPartition.setIdForRestore(globalStateMgr.getNextId()); - physicalPartition.setParentId(newPartitionId); - partition.addSubPartition(physicalPartition); - } - physicalPartitionIdToPartitionId.put(physicalPartition.getId(), newPartitionId); - physicalPartitionNameToPartitionId.put(physicalPartition.getName(), newPartitionId); - }); ->>>>>>> 9db79768de ([Refactor] Refactor reset ids for restore (#52075)) } // for each partition, reset rollup index map