shuwenwei commented on code in PR #17172:
URL: https://github.com/apache/iotdb/pull/17172#discussion_r2769564200


##########
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java:
##########
@@ -314,120 +317,67 @@ public static boolean isUsingSameColumn(TSDataType 
originalDataType, TSDataType
         dataTypeColumnClassMap.get(originalDataType), 
dataTypeColumnClassMap.get(dataType));
   }
 
-  public static boolean isUsingSameStatistics(TSDataType originalDataType, 
TSDataType dataType) {
-    if (originalDataType == dataType) {
-      return true;
-    }
-    if (!dataTypeColumnStatisticsClassMap.containsKey(originalDataType)
-        || !dataTypeColumnStatisticsClassMap.containsKey(dataType)) {
-      return false;
-    }
-    return Objects.equals(
-        dataTypeColumnStatisticsClassMap.get(originalDataType),
-        dataTypeColumnStatisticsClassMap.get(dataType));
-  }
-
-  public static boolean canUseStatisticsAfterAlter(TSDataType dataType) {
-    return !canNotUseStatisticAfterAlterClassSet.contains(dataType);
-  }
-
-  public static void changeMetadataModified(
-      TimeseriesMetadata timeseriesMetadata, TSDataType targetDataType) {
+  public static void changeTimeseriesMetadataModified(
+      @Nullable TimeseriesMetadata timeseriesMetadata, TSDataType 
targetDataType) {
     if (timeseriesMetadata == null) {
       return;
     }
-    if (!SchemaUtils.isUsingSameStatistics(timeseriesMetadata.getTsDataType(), 
targetDataType)
-        && !SchemaUtils.canUseStatisticsAfterAlter(targetDataType)) {
-      timeseriesMetadata.setModified(true);
-      List<IChunkMetadata> chunkMetadataList = 
timeseriesMetadata.getChunkMetadataList();
-      if (chunkMetadataList != null) {
-        for (IChunkMetadata chunkMetadata : chunkMetadataList) {
-          if (chunkMetadata != null) {
-            chunkMetadata.setModified(true);
-          }
-        }
-      }
+    if (!SchemaUtils.canUseStatisticsAfterAlter(
+        timeseriesMetadata.getTsDataType(), targetDataType)) {
+      markAllChunkMetadataModified(timeseriesMetadata);
     }
   }
 
-  public static void changeAlignedMetadataModified(
-      AbstractAlignedTimeSeriesMetadata alignedTimeSeriesMetadata,
+  public static void changeAlignedTimeseriesMetadataModified(
+      @Nullable AbstractAlignedTimeSeriesMetadata alignedTimeSeriesMetadata,
       List<TSDataType> targetDataTypeList) {
     if (alignedTimeSeriesMetadata == null) {
       return;
     }
-
-    int i = 0;
-    for (TimeseriesMetadata timeseriesMetadata :
-        alignedTimeSeriesMetadata.getValueTimeseriesMetadataList()) {
-      if ((timeseriesMetadata != null)
-          && !SchemaUtils.isUsingSameStatistics(
-              timeseriesMetadata.getTsDataType(), targetDataTypeList.get(i))
-          && 
!SchemaUtils.canUseStatisticsAfterAlter(targetDataTypeList.get(i))) {
-        timeseriesMetadata.setModified(true);
-        alignedTimeSeriesMetadata.setModified(true);
-        List<IChunkMetadata> chunkMetadataList = 
timeseriesMetadata.getChunkMetadataList();
-        if (chunkMetadataList != null) {
-          for (IChunkMetadata chunkMetadata : chunkMetadataList) {
-            if (chunkMetadata != null) {
-              chunkMetadata.setModified(true);
-            }
-          }
-        }
+    for (int i = 0; i < 
alignedTimeSeriesMetadata.getValueTimeseriesMetadataList().size(); i++) {
+      TimeseriesMetadata valueTimeseriesMetadata =
+          alignedTimeSeriesMetadata.getValueTimeseriesMetadataList().get(i);
+      if (valueTimeseriesMetadata != null
+          && !SchemaUtils.canUseStatisticsAfterAlter(
+              valueTimeseriesMetadata.getTsDataType(), 
targetDataTypeList.get(i))) {
+        
markAllChunkMetadataModified(alignedTimeSeriesMetadata.getTimeseriesMetadata());
+        return;
       }
-      i++;
     }
   }
 
-  public static void changeAlignedMetadataModified(
-      TimeseriesMetadata timeseriesMetadata, TSDataType targetDataType) {
-    if (timeseriesMetadata == null) {
-      return;
-    }
-
-    if (!SchemaUtils.isUsingSameStatistics(timeseriesMetadata.getTsDataType(), 
targetDataType)
-        && !SchemaUtils.canUseStatisticsAfterAlter(targetDataType)) {
-      timeseriesMetadata.setModified(true);
-      List<IChunkMetadata> chunkMetadataList = 
timeseriesMetadata.getChunkMetadataList();
-      if (chunkMetadataList != null) {
-        for (IChunkMetadata chunkMetadata : chunkMetadataList) {
-          if (chunkMetadata != null) {
-            chunkMetadata.setModified(true);
-          }
-        }
+  private static void markAllChunkMetadataModified(@NotNull TimeseriesMetadata 
timeseriesMetadata) {
+    timeseriesMetadata.setModified(true);
+    for (IChunkMetadata iChunkMetadata : 
timeseriesMetadata.getChunkMetadataList()) {
+      if (iChunkMetadata != null) {
+        iChunkMetadata.setModified(true);

Review Comment:
   <img width="1015" height="474" alt="Image" 
src="https://github.com/user-attachments/assets/db0866de-af90-4b66-adaf-c31f0161d8bd";
 />
   
   <img width="661" height="387" alt="Image" 
src="https://github.com/user-attachments/assets/06613540-72d2-42bc-ba25-89bea7940b2e";
 />
   This won't work



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to