You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2026/01/19 01:58:07 UTC

(doris) branch master updated: [Fix](iceberg) Fix static partition INSERT OVERWRITE with VALUES clause column count validation (#59951)

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

morningman 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 e572788bb8f [Fix](iceberg) Fix static partition INSERT OVERWRITE with VALUES clause column count validation (#59951)
e572788bb8f is described below

commit e572788bb8fbc6acb7f18cc8f83afa1ff246d79c
Author: Socrates <su...@selectdb.com>
AuthorDate: Mon Jan 19 09:57:59 2026 +0800

    [Fix](iceberg) Fix static partition INSERT OVERWRITE with VALUES clause column count validation (#59951)
    
    - Related Pr: #58396
    ### What problem does this PR solve?
    
    Related: #58396
    
    ## Problem
    
    When using `INSERT OVERWRITE` with static partition syntax and `VALUES`
    clause, the operation incorrectly failed with:
    
    ```
    Column count doesn't match value count. Expected: N, but got: M
    ```
    
    ### Example that was failing:
    ```sql
    -- Table has 2 columns: id (int), par (string) - partitioned by par
    INSERT OVERWRITE TABLE test_partition_branch
    PARTITION (par='a')
    VALUES (11), (12);
    ```
    
    **Error**: Column count doesn't match value count. Expected: 2, but got:
    1
    
    ### Root Cause
    
    The column count validation in `InsertUtils.normalizePlan()` did not
    account for static partition columns. When using `PARTITION
    (col='value')` syntax:
    - The partition column value is **already fixed** in the PARTITION
    clause
    - The VALUES should **only provide non-partition column values**
    - This is standard SQL behavior (Hive, Iceberg, etc.)
    
    The validation was comparing VALUES count against **all** table columns
    instead of **non-partition** columns only.
    
    ## Solution
    
    Modified `InsertUtils.java:363-372` to:
    1. Detect when the sink is `UnboundIcebergTableSink`
    2. Extract static partition columns from `staticPartitionKeyValues`
    3. Filter out static partition columns from the column list before
    validation
    4. Only compare VALUES count against non-partition columns
    
    ```java
    if (unboundLogicalSink instanceof UnboundIcebergTableSink
            && CollectionUtils.isEmpty(unboundLogicalSink.getColNames())) {
        UnboundIcebergTableSink<?> icebergSink = (UnboundIcebergTableSink<?>) unboundLogicalSink;
        Map<String, Expression> staticPartitions = icebergSink.getStaticPartitionKeyValues();
        if (staticPartitions != null && !staticPartitions.isEmpty()) {
            Set<String> staticPartitionColNames = staticPartitions.keySet();
            columns = columns.stream()
                    .filter(column -> !staticPartitionColNames.contains(column.getName()))
                    .collect(ImmutableList.toImmutableList());
        }
    }
    ```
---
 .../trees/plans/commands/insert/InsertUtils.java   |  12 +
 .../test_iceberg_static_partition_overwrite.out    |  49 +++-
 .../test_iceberg_static_partition_overwrite.groovy | 275 +++++++++++++++++++--
 3 files changed, 310 insertions(+), 26 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertUtils.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertUtils.java
index a1f7c2130ed..4ee95b21683 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertUtils.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertUtils.java
@@ -97,6 +97,7 @@ import org.apache.commons.lang3.StringUtils;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -362,6 +363,17 @@ public class InsertUtils {
         ImmutableList.Builder<List<NamedExpression>> optimizedRowConstructors
                 = ImmutableList.builderWithExpectedSize(unboundInlineTable.getConstantExprsList().size());
         List<Column> columns = table.getBaseSchema(false);
+        if (unboundLogicalSink instanceof UnboundIcebergTableSink
+                && CollectionUtils.isEmpty(unboundLogicalSink.getColNames())) {
+            UnboundIcebergTableSink<?> icebergSink = (UnboundIcebergTableSink<?>) unboundLogicalSink;
+            Map<String, Expression> staticPartitions = icebergSink.getStaticPartitionKeyValues();
+            if (staticPartitions != null && !staticPartitions.isEmpty()) {
+                Set<String> staticPartitionColNames = staticPartitions.keySet();
+                columns = columns.stream()
+                        .filter(column -> !staticPartitionColNames.contains(column.getName()))
+                        .collect(ImmutableList.toImmutableList());
+            }
+        }
 
         ConnectContext context = ConnectContext.get();
         ExpressionRewriteContext rewriteContext = null;
diff --git a/regression-test/data/external_table_p0/iceberg/write/test_iceberg_static_partition_overwrite.out b/regression-test/data/external_table_p0/iceberg/write/test_iceberg_static_partition_overwrite.out
index 58cd1fa5ca4..e65ce5de03b 100644
--- a/regression-test/data/external_table_p0/iceberg/write/test_iceberg_static_partition_overwrite.out
+++ b/regression-test/data/external_table_p0/iceberg/write/test_iceberg_static_partition_overwrite.out
@@ -113,22 +113,65 @@
 3	Charlie	2025-01-26T10:00	bj
 
 -- !q17 --
+10	Eve	2025-01-25	bj
+2	Bob	2025-01-25	sh
+3	Charlie	2025-01-26	bj
+
+-- !q18 --
+10	Eve	2025-01-25	bj
+11	Frank	2025-01-25	bj
+12	Grace	2025-01-25	bj
+2	Bob	2025-01-25	sh
+3	Charlie	2025-01-26	bj
+
+-- !q19 --
+10	Eve	100.50	true	95.5	3
+2	Bob	100.50	false	90.0	2
+3	Charlie	200.75	true	75.5	1
+
+-- !q20 --
+2	Bob	2025-01-25	sh
+3	Charlie	2025-01-26	bj
+
+-- !q21 --
+10	Eve	2025-01-25	bj
+20	Frank	2025-01-25	sh
+3	Charlie	2025-01-26	bj
+
+-- !q22 --
+10	Eve	1706140800000
+2	Bob	1706227200000
+3	Charlie	1706313600000
+
+-- !q23 --
+10	Eve	2025-01-25T10:00	food
+2	Bob	2025-01-25T10:00	drink
+3	Charlie	2025-01-26T11:00	food
+
+-- !q24 --
+10	Eve	2025-01-25	bj	99.99
+11	Frank	2025-01-25	bj	88.88
+12	Grace	2025-01-25	bj	77.77
+2	Bob	2025-01-25	sh	200.75
+3	Charlie	2025-01-26	bj	150.25
+
+-- !q25 --
 10	Eve	100.50
 2	Bob	200.75
 3	Charlie	300.25
 
--- !q18 --
+-- !q26 --
 10	Eve	100.50	10
 11	Frank	100.50	20
 3	Charlie	200.75	10
 
--- !q19 --
+-- !q27 --
 10	Eve	1	85.5	true	A
 2	Bob	1	85.5	true	B
 3	Charlie	2	90.0	false	A
 4	David	1	85.5	false	A
 
--- !q20 --
+-- !q28 --
 10	Eve	1	85.5	true	A
 11	Frank	1	85.5	false	B
 4	David	2	90.0	true	A
diff --git a/regression-test/suites/external_table_p0/iceberg/write/test_iceberg_static_partition_overwrite.groovy b/regression-test/suites/external_table_p0/iceberg/write/test_iceberg_static_partition_overwrite.groovy
index d79093b69bf..fadd5a25c65 100644
--- a/regression-test/suites/external_table_p0/iceberg/write/test_iceberg_static_partition_overwrite.groovy
+++ b/regression-test/suites/external_table_p0/iceberg/write/test_iceberg_static_partition_overwrite.groovy
@@ -601,14 +601,243 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         (3, 'Charlie', '2025-01-26 10:00:00', 'bj')
     """
     sql """
-        INSERT OVERWRITE TABLE ${tb1} 
+        INSERT OVERWRITE TABLE ${tb1}
         PARTITION (ts='2025-01-25 10:00:00')
         SELECT id, name, region FROM ${tb_ts_src}
     """
     order_qt_q16 """ SELECT * FROM ${tb1} ORDER BY id """
     sql """ DROP TABLE IF EXISTS ${tb_ts_src} """
 
-    // Test Case 17: Static partition with DECIMAL type
+    // ============================================================================
+    // Test Cases for static partition overwrite with VALUES clause
+    // ============================================================================
+
+    // Test Case 17: Basic static partition overwrite with single VALUE
+    sql """ DROP TABLE IF EXISTS ${tb1} """
+    sql """
+        CREATE TABLE ${tb1} (
+            id BIGINT,
+            name STRING,
+            dt DATE,
+            region STRING
+        ) ENGINE=iceberg
+        PARTITION BY LIST (dt, region) ()
+    """
+    sql """
+        INSERT INTO ${tb1} VALUES
+        (1, 'Alice', '2025-01-25', 'bj'),
+        (2, 'Bob', '2025-01-25', 'sh'),
+        (3, 'Charlie', '2025-01-26', 'bj')
+    """
+    // Overwrite with single VALUE
+    sql """
+        INSERT OVERWRITE TABLE ${tb1}
+        PARTITION (dt='2025-01-25', region='bj')
+        (id, name) VALUES (10, 'Eve')
+    """
+    order_qt_q17 """ SELECT * FROM ${tb1} ORDER BY id """
+
+    // Test Case 18: Static partition overwrite with multiple VALUES
+    sql """ DROP TABLE IF EXISTS ${tb1} """
+    sql """
+        CREATE TABLE ${tb1} (
+            id BIGINT,
+            name STRING,
+            dt DATE,
+            region STRING
+        ) ENGINE=iceberg
+        PARTITION BY LIST (dt, region) ()
+    """
+    sql """
+        INSERT INTO ${tb1} VALUES
+        (1, 'Alice', '2025-01-25', 'bj'),
+        (2, 'Bob', '2025-01-25', 'sh'),
+        (3, 'Charlie', '2025-01-26', 'bj')
+    """
+    // Overwrite with multiple VALUES
+    sql """
+        INSERT OVERWRITE TABLE ${tb1}
+        PARTITION (dt='2025-01-25', region='bj')
+        (id, name) VALUES
+            (10, 'Eve'),
+            (11, 'Frank'),
+            (12, 'Grace')
+    """
+    order_qt_q18 """ SELECT * FROM ${tb1} ORDER BY id """
+
+    // Test Case 19: Static partition overwrite with VALUES and different data types
+    sql """ DROP TABLE IF EXISTS ${tb1} """
+    sql """
+        CREATE TABLE ${tb1} (
+            id BIGINT,
+            name STRING,
+            amount DECIMAL(10,2),
+            is_active BOOLEAN,
+            score FLOAT,
+            level INT
+        ) ENGINE=iceberg
+        PARTITION BY LIST (amount, is_active) ()
+    """
+    sql """
+        INSERT INTO ${tb1} VALUES
+        (1, 'Alice', 100.50, true, 85.5, 1),
+        (2, 'Bob', 100.50, false, 90.0, 2),
+        (3, 'Charlie', 200.75, true, 75.5, 1)
+    """
+    // Overwrite with VALUES containing multiple data types
+    sql """
+        INSERT OVERWRITE TABLE ${tb1}
+        PARTITION (amount=100.50, is_active=true)
+        VALUES (10, 'Eve', 95.5, 3)
+    """
+    order_qt_q19 """ SELECT * FROM ${tb1} ORDER BY id """
+
+    // Test Case 20: Static partition overwrite with empty VALUES (delete partition)
+    sql """ DROP TABLE IF EXISTS ${tb1} """
+    sql """
+        CREATE TABLE ${tb1} (
+            id BIGINT,
+            name STRING,
+            dt DATE,
+            region STRING
+        ) ENGINE=iceberg
+        PARTITION BY LIST (dt, region) ()
+    """
+    sql """
+        INSERT INTO ${tb1} VALUES
+        (1, 'Alice', '2025-01-25', 'bj'),
+        (2, 'Bob', '2025-01-25', 'sh'),
+        (3, 'Charlie', '2025-01-26', 'bj')
+    """
+    // Delete partition by overwriting with empty VALUES (should handle gracefully)
+    // Note: This behavior depends on implementation - empty VALUES might not be allowed
+    // Alternative: Use VALUES with a condition that yields no results
+    sql """
+        INSERT OVERWRITE TABLE ${tb1}
+        PARTITION (dt='2025-01-25', region='bj')
+        SELECT id, name FROM ${tb1} WHERE 1=0
+    """
+    test {
+        sql """
+            INSERT OVERWRITE TABLE ${tb1}
+            PARTITION (dt='2025-01-25', region='bj')
+            select * from ${tb1} where 1=0
+        """
+        exception "Expected 2 columns but got 4"
+    }
+
+    order_qt_q20 """ SELECT * FROM ${tb1} ORDER BY id """
+
+    // Test Case 21: Multiple partitions with different VALUES
+    sql """ DROP TABLE IF EXISTS ${tb1} """
+    sql """
+        CREATE TABLE ${tb1} (
+            id BIGINT,
+            name STRING,
+            dt DATE,
+            region STRING
+        ) ENGINE=iceberg
+        PARTITION BY LIST (dt, region) ()
+    """
+    sql """
+        INSERT INTO ${tb1} VALUES
+        (1, 'Alice', '2025-01-25', 'bj'),
+        (2, 'Bob', '2025-01-25', 'sh'),
+        (3, 'Charlie', '2025-01-26', 'bj')
+    """
+    // Overwrite first partition
+    sql """
+        INSERT OVERWRITE TABLE ${tb1}
+        PARTITION (dt='2025-01-25', region='bj')
+        VALUES (10, 'Eve')
+    """
+    // Overwrite second partition
+    sql """
+        INSERT OVERWRITE TABLE ${tb1}
+        PARTITION (dt='2025-01-25', region='sh')
+        VALUES (20, 'Frank')
+    """
+    order_qt_q21 """ SELECT * FROM ${tb1} ORDER BY id """
+
+    // Test Case 22: Static partition overwrite with VALUES containing LONG timestamp
+    sql """ DROP TABLE IF EXISTS ${tb1} """
+    sql """
+        CREATE TABLE ${tb1} (
+            id BIGINT,
+            name STRING,
+            timestamp_val BIGINT
+        ) ENGINE=iceberg
+        PARTITION BY LIST (timestamp_val) ()
+    """
+    sql """
+        INSERT INTO ${tb1} VALUES
+        (1, 'Alice', 1706140800000),
+        (2, 'Bob', 1706227200000),
+        (3, 'Charlie', 1706313600000)
+    """
+    // Overwrite with VALUES containing LONG type
+    sql """
+        INSERT OVERWRITE TABLE ${tb1}
+        PARTITION (timestamp_val=1706140800000)
+        VALUES (10, 'Eve')
+    """
+    order_qt_q22 """ SELECT * FROM ${tb1} ORDER BY id """
+
+    // Test Case 23: Static partition overwrite with VALUES containing DATETIME
+    sql """ DROP TABLE IF EXISTS ${tb1} """
+    sql """
+        CREATE TABLE ${tb1} (
+            id BIGINT,
+            name STRING,
+            ts DATETIME,
+            category STRING
+        ) ENGINE=iceberg
+        PARTITION BY LIST (ts, category) ()
+    """
+    sql """
+        INSERT INTO ${tb1} VALUES
+        (1, 'Alice', '2025-01-25 10:00:00', 'food'),
+        (2, 'Bob', '2025-01-25 10:00:00', 'drink'),
+        (3, 'Charlie', '2025-01-26 11:00:00', 'food')
+    """
+    // Overwrite with VALUES containing DATETIME type
+    sql """
+        INSERT OVERWRITE TABLE ${tb1}
+        PARTITION (ts='2025-01-25 10:00:00', category='food')
+        VALUES (10, 'Eve')
+    """
+    order_qt_q23 """ SELECT * FROM ${tb1} ORDER BY id """
+
+    // Test Case 24: Static partition overwrite with VALUES - multiple rows with different types
+    sql """ DROP TABLE IF EXISTS ${tb1} """
+    sql """
+        CREATE TABLE ${tb1} (
+            id BIGINT,
+            name STRING,
+            dt DATE,
+            region STRING,
+            amount DECIMAL(10,2)
+        ) ENGINE=iceberg
+        PARTITION BY LIST (dt, region) ()
+    """
+    sql """
+        INSERT INTO ${tb1} VALUES
+        (1, 'Alice', '2025-01-25', 'bj', 100.50),
+        (2, 'Bob', '2025-01-25', 'sh', 200.75),
+        (3, 'Charlie', '2025-01-26', 'bj', 150.25)
+    """
+    // Overwrite with multiple VALUES containing DECIMAL type
+    sql """
+        INSERT OVERWRITE TABLE ${tb1}
+        PARTITION (dt='2025-01-25', region='bj')
+        VALUES
+            (10, 'Eve', 99.99),
+            (11, 'Frank', 88.88),
+            (12, 'Grace', 77.77)
+    """
+    order_qt_q24 """ SELECT * FROM ${tb1} ORDER BY id """
+
+    // Test Case 25: Static partition with DECIMAL type
     sql """ DROP TABLE IF EXISTS ${tb1} """
     sql """
         CREATE TABLE ${tb1} (
@@ -625,13 +854,13 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         (3, 'Charlie', 300.25)
     """
     sql """
-        INSERT OVERWRITE TABLE ${tb1} 
+        INSERT OVERWRITE TABLE ${tb1}
         PARTITION (amount=100.50)
         SELECT 10, 'Eve'
     """
-    order_qt_q17 """ SELECT * FROM ${tb1} ORDER BY id """
+    order_qt_q25 """ SELECT * FROM ${tb1} ORDER BY id """
 
-    // Test Case 18: Hybrid mode with DECIMAL type (static) + INTEGER (dynamic)
+    // Test Case 26: Hybrid mode with DECIMAL type (static) + INTEGER (dynamic)
     sql """ DROP TABLE IF EXISTS ${tb1} """
     sql """
         CREATE TABLE ${tb1} (
@@ -663,14 +892,14 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         (3, 'Charlie', 200.75, 10)
     """
     sql """
-        INSERT OVERWRITE TABLE ${tb1} 
+        INSERT OVERWRITE TABLE ${tb1}
         PARTITION (amount=100.50)
         SELECT id, name, quantity FROM ${tb_decimal_src}
     """
-    order_qt_q18 """ SELECT * FROM ${tb1} ORDER BY id """
+    order_qt_q26 """ SELECT * FROM ${tb1} ORDER BY id """
     sql """ DROP TABLE IF EXISTS ${tb_decimal_src} """
 
-    // Test Case 19: Multiple types in static partition (INTEGER, FLOAT, BOOLEAN, STRING)
+    // Test Case 27: Multiple types in static partition (INTEGER, FLOAT, BOOLEAN, STRING)
     sql """ DROP TABLE IF EXISTS ${tb1} """
     sql """
         CREATE TABLE ${tb1} (
@@ -691,13 +920,13 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         (4, 'David', 1, 85.5, false, 'A')
     """
     sql """
-        INSERT OVERWRITE TABLE ${tb1} 
+        INSERT OVERWRITE TABLE ${tb1}
         PARTITION (level=1, score=85.5, is_active=true, category='A')
         SELECT 10, 'Eve'
     """
-    order_qt_q19 """ SELECT * FROM ${tb1} ORDER BY id """
+    order_qt_q27 """ SELECT * FROM ${tb1} ORDER BY id """
 
-    // Test Case 20: Hybrid mode with multiple types (2 static + 2 dynamic)
+    // Test Case 28: Hybrid mode with multiple types (2 static + 2 dynamic)
     sql """ DROP TABLE IF EXISTS ${tb1} """
     sql """
         CREATE TABLE ${tb1} (
@@ -733,18 +962,18 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         (4, 'David', 2, 90.0, true, 'A')
     """
     sql """
-        INSERT OVERWRITE TABLE ${tb1} 
+        INSERT OVERWRITE TABLE ${tb1}
         PARTITION (level=1, score=85.5)
         SELECT id, name, is_active, category FROM ${tb_multi_src}
     """
-    order_qt_q20 """ SELECT * FROM ${tb1} ORDER BY id """
+    order_qt_q28 """ SELECT * FROM ${tb1} ORDER BY id """
     sql """ DROP TABLE IF EXISTS ${tb_multi_src} """
 
     // ============================================================================
     // Test Cases for non-identity partition transforms - static partition overwrite should fail
     // ============================================================================
 
-    // Test Case 21: Error scenario - bucket partition (non-identity transform)
+    // Test Case 29: Error scenario - bucket partition (non-identity transform)
     sql """ DROP TABLE IF EXISTS ${tb1} """
     sql """
         CREATE TABLE ${tb1} (
@@ -777,7 +1006,7 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         exception "Cannot use static partition syntax for non-identity partition field"
     }
 
-    // Test Case 22: Error scenario - truncate partition (non-identity transform)
+    // Test Case 30: Error scenario - truncate partition (non-identity transform)
     sql """ DROP TABLE IF EXISTS ${tb1} """
     sql """
         CREATE TABLE ${tb1} (
@@ -810,7 +1039,7 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         exception "Cannot use static partition syntax for non-identity partition field"
     }
 
-    // Test Case 23: Error scenario - day partition (non-identity time transform)
+    // Test Case 31: Error scenario - day partition (non-identity time transform)
     sql """ DROP TABLE IF EXISTS ${tb1} """
     sql """
         CREATE TABLE ${tb1} (
@@ -843,7 +1072,7 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         exception "Cannot use static partition syntax for non-identity partition field"
     }
 
-    // Test Case 24: Error scenario - year partition (non-identity time transform)
+    // Test Case 32: Error scenario - year partition (non-identity time transform)
     sql """ DROP TABLE IF EXISTS ${tb1} """
     sql """
         CREATE TABLE ${tb1} (
@@ -876,7 +1105,7 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         exception "Cannot use static partition syntax for non-identity partition field"
     }
 
-    // Test Case 25: Error scenario - month partition (non-identity time transform)
+    // Test Case 33: Error scenario - month partition (non-identity time transform)
     sql """ DROP TABLE IF EXISTS ${tb1} """
     sql """
         CREATE TABLE ${tb1} (
@@ -909,7 +1138,7 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         exception "Cannot use static partition syntax for non-identity partition field"
     }
 
-    // Test Case 26: Error scenario - hour partition (non-identity time transform)
+    // Test Case 34: Error scenario - hour partition (non-identity time transform)
     sql """ DROP TABLE IF EXISTS ${tb1} """
     sql """
         CREATE TABLE ${tb1} (
@@ -942,7 +1171,7 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         exception "Cannot use static partition syntax for non-identity partition field"
     }
 
-    // Test Case 27: Error scenario - mixed identity and non-identity partitions (bucket)
+    // Test Case 35: Error scenario - mixed identity and non-identity partitions (bucket)
     // Table has identity partition (region) + non-identity partition (bucket on id)
     sql """ DROP TABLE IF EXISTS ${tb1} """
     sql """
@@ -977,7 +1206,7 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         exception "Cannot use static partition syntax for non-identity partition field"
     }
 
-    // Test Case 28: Error scenario - truncate on integer column
+    // Test Case 36: Error scenario - truncate on integer column
     sql """ DROP TABLE IF EXISTS ${tb1} """
     sql """
         CREATE TABLE ${tb1} (
@@ -1010,7 +1239,7 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         exception "Cannot use static partition syntax for non-identity partition field"
     }
 
-    // Test Case 29: Error scenario - bucket on BIGINT column
+    // Test Case 37: Error scenario - bucket on BIGINT column
     sql """ DROP TABLE IF EXISTS ${tb1} """
     sql """
         CREATE TABLE ${tb1} (
@@ -1043,7 +1272,7 @@ suite("test_iceberg_static_partition_overwrite", "p0,external,iceberg,external_d
         exception "Cannot use static partition syntax for non-identity partition field"
     }
 
-    // Test Case 30: Mixed partitions - identity column is OK, but non-identity should fail
+    // Test Case 38: Mixed partitions - identity column is OK, but non-identity should fail
     // Test that specifying only identity partition columns works,
     // but including non-identity columns fails
     sql """ DROP TABLE IF EXISTS ${tb1} """


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org