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

JingsongLi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git

commit 820c6e0e54f56e75f758a908c7b96885058de25d
Author: JingsongLi <[email protected]>
AuthorDate: Sun May 24 19:13:45 2026 +0800

    Revert "[core] expire_partitions procedure support DATE type partition 
columns (#6664)"
    
    This reverts commit b8694a7c5441757302a420206075583184d705c2.
    
    Test error in master.
---
 .../paimon/partition/PartitionTimeExtractor.java   | 99 ----------------------
 .../partition/PartitionTimeExtractorTest.java      | 55 ------------
 .../cdc/mysql/MySqlSyncTableActionITCase.java      |  2 +-
 3 files changed, 1 insertion(+), 155 deletions(-)

diff --git 
a/paimon-core/src/main/java/org/apache/paimon/partition/PartitionTimeExtractor.java
 
b/paimon-core/src/main/java/org/apache/paimon/partition/PartitionTimeExtractor.java
index 48fda8a9f1..0016619e21 100644
--- 
a/paimon-core/src/main/java/org/apache/paimon/partition/PartitionTimeExtractor.java
+++ 
b/paimon-core/src/main/java/org/apache/paimon/partition/PartitionTimeExtractor.java
@@ -18,8 +18,6 @@
 
 package org.apache.paimon.partition;
 
-import org.apache.paimon.data.Timestamp;
-
 import javax.annotation.Nullable;
 
 import java.time.LocalDate;
@@ -91,37 +89,6 @@ public class PartitionTimeExtractor {
     }
 
     public LocalDateTime extract(List<String> partitionKeys, List<?> 
partitionValues) {
-        // Try to extract directly from typed partition values (DATE/TIMESTAMP)
-        if (pattern == null && partitionValues.size() == 1) {
-            Object value = partitionValues.get(0);
-            LocalDateTime directExtracted = extractFromTypedValue(value);
-            if (directExtracted != null) {
-                return directExtracted;
-            }
-        }
-
-        // Handle pattern-based extraction with typed values
-        if (pattern != null) {
-            for (int i = 0; i < partitionKeys.size(); i++) {
-                Object value = partitionValues.get(i);
-                LocalDateTime directExtracted = extractFromTypedValue(value);
-                if (directExtracted != null) {
-                    // For typed values with pattern, replace with formatted 
string
-                    String formattedValue = formatTypedValue(directExtracted);
-                    if (formattedValue != null) {
-                        String tempPattern =
-                                pattern.replaceAll("\\$" + 
partitionKeys.get(i), formattedValue);
-                        // If pattern only contains this one variable, we can 
use the extracted
-                        // value
-                        if (!tempPattern.contains("$")) {
-                            return toLocalDateTime(tempPattern, 
this.formatter);
-                        }
-                    }
-                }
-            }
-        }
-
-        // Fall back to string-based extraction
         String timestampString;
         if (pattern == null) {
             timestampString = partitionValues.get(0).toString();
@@ -161,70 +128,4 @@ public class PartitionTimeExtractor {
                     LocalDate.parse(timestampString, DATE_FORMATTER), 
LocalTime.MIDNIGHT);
         }
     }
-
-    /**
-     * Extract LocalDateTime from typed partition values (Integer for DATE, 
Timestamp for
-     * TIMESTAMP).
-     *
-     * @param value the partition value object
-     * @return LocalDateTime if the value is a supported type, null otherwise
-     */
-    @Nullable
-    private static LocalDateTime extractFromTypedValue(Object value) {
-        if (value == null) {
-            return null;
-        }
-
-        // Handle INTEGER type - represents days since epoch (DATE type)
-        if (value instanceof Integer) {
-            int daysSinceEpoch = (Integer) value;
-            return LocalDate.ofEpochDay(daysSinceEpoch).atStartOfDay();
-        }
-
-        // Handle Paimon Timestamp type
-        if (value instanceof Timestamp) {
-            Timestamp timestamp = (Timestamp) value;
-            return timestamp.toLocalDateTime();
-        }
-
-        // Handle java.sql.Date
-        if (value instanceof java.sql.Date) {
-            return ((java.sql.Date) value).toLocalDate().atStartOfDay();
-        }
-
-        // Handle java.sql.Timestamp
-        if (value instanceof java.sql.Timestamp) {
-            return ((java.sql.Timestamp) value).toLocalDateTime();
-        }
-
-        // Handle java.time.LocalDate
-        if (value instanceof LocalDate) {
-            return ((LocalDate) value).atStartOfDay();
-        }
-
-        // Handle java.time.LocalDateTime
-        if (value instanceof LocalDateTime) {
-            return (LocalDateTime) value;
-        }
-
-        return null;
-    }
-
-    /**
-     * Format a LocalDateTime to string for pattern replacement.
-     *
-     * @param dateTime the LocalDateTime to format
-     * @return formatted string, or null if input is null
-     */
-    @Nullable
-    private static String formatTypedValue(LocalDateTime dateTime) {
-        if (dateTime == null) {
-            return null;
-        }
-        // Use ISO format: yyyy-MM-dd HH:mm:ss or yyyy-MM-dd if time is 
midnight
-        if (dateTime.toLocalTime().equals(LocalTime.MIDNIGHT)) {
-            return dateTime.toLocalDate().toString();
-        }
-        return dateTime.toString().replace("T", " ");
-    }
 }
diff --git 
a/paimon-core/src/test/java/org/apache/paimon/partition/PartitionTimeExtractorTest.java
 
b/paimon-core/src/test/java/org/apache/paimon/partition/PartitionTimeExtractorTest.java
index b276ca29dc..3f6cff6ee5 100644
--- 
a/paimon-core/src/test/java/org/apache/paimon/partition/PartitionTimeExtractorTest.java
+++ 
b/paimon-core/src/test/java/org/apache/paimon/partition/PartitionTimeExtractorTest.java
@@ -105,59 +105,4 @@ public class PartitionTimeExtractorTest {
                                 DateTimeParseException.class,
                                 "Text 'unknown' could not be parsed at index 
0"));
     }
-
-    @Test
-    public void testExtractFromIntegerDateType() {
-        // Test INTEGER type representing days since epoch (DATE type in 
Paimon)
-        // 2025-10-10 = 20371 days since 1970-01-01
-        PartitionTimeExtractor extractor = new PartitionTimeExtractor(null, 
null);
-        assertThat(
-                        extractor.extract(
-                                Collections.singletonList("order_date"),
-                                Collections.singletonList(20371)))
-                .isEqualTo(LocalDateTime.parse("2025-10-10T00:00:00"));
-
-        // Test with pattern
-        extractor = new PartitionTimeExtractor("$order_date", "yyyy-MM-dd");
-        assertThat(
-                        extractor.extract(
-                                Collections.singletonList("order_date"),
-                                Collections.singletonList(20371)))
-                .isEqualTo(LocalDateTime.parse("2025-10-10T00:00:00"));
-    }
-
-    @Test
-    public void testExtractFromLocalDateType() {
-        // Test java.time.LocalDate type
-        PartitionTimeExtractor extractor = new PartitionTimeExtractor(null, 
null);
-        assertThat(
-                        extractor.extract(
-                                Collections.singletonList("dt"),
-                                
Collections.singletonList(java.time.LocalDate.of(2023, 1, 15))))
-                .isEqualTo(LocalDateTime.parse("2023-01-15T00:00:00"));
-    }
-
-    @Test
-    public void testExtractFromLocalDateTimeType() {
-        // Test java.time.LocalDateTime type
-        PartitionTimeExtractor extractor = new PartitionTimeExtractor(null, 
null);
-        assertThat(
-                        extractor.extract(
-                                Collections.singletonList("ts"),
-                                Collections.singletonList(
-                                        java.time.LocalDateTime.of(2023, 1, 
15, 10, 30, 45))))
-                .isEqualTo(LocalDateTime.parse("2023-01-15T10:30:45"));
-    }
-
-    @Test
-    public void testExtractFromMultiplePartitionWithTypedDate() {
-        // Test pattern with multiple partitions, one of which is DATE type
-        PartitionTimeExtractor extractor =
-                new PartitionTimeExtractor("$year-$month-$day 00:00:00", null);
-        assertThat(
-                        extractor.extract(
-                                Arrays.asList("year", "month", "day"),
-                                Arrays.asList("2023", "01", "15")))
-                .isEqualTo(LocalDateTime.parse("2023-01-15T00:00:00"));
-    }
 }
diff --git 
a/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableActionITCase.java
 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableActionITCase.java
index ef79791110..065b926204 100644
--- 
a/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableActionITCase.java
+++ 
b/paimon-flink/paimon-flink-cdc/src/test/java/org/apache/paimon/flink/action/cdc/mysql/MySqlSyncTableActionITCase.java
@@ -370,7 +370,7 @@ public class MySqlSyncTableActionITCase extends 
MySqlActionITCaseBase {
     }
 
     @Test
-    @Timeout(600)
+    @Timeout(60)
     public void testSchemaEvolutionWithComment() throws Exception {
         Map<String, String> mySqlConfig = getBasicMySqlConfig();
         mySqlConfig.put("database-name", DATABASE_NAME);

Reply via email to