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

yiguolei pushed a commit to branch branch-4.2
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-4.2 by this push:
     new f58418bd245 [fix](regression) Preserve flexible-update fixtures across 
upgrade stages (#69555)
f58418bd245 is described below

commit f58418bd245e5a453d03efc6b947795b35ae2dc4
Author: Dongyang Li <[email protected]>
AuthorDate: Sun Oct 25 09:21:37 2026 +0800

    [fix](regression) Preserve flexible-update fixtures across upgrade stages 
(#69555)
    
    ### What problem does this PR solve?
    
    The rolling-upgrade regression runs these suites once during
    initialization and again with `-w` after each upgrade stage.
    Initialization updates and deletes rows in the fixtures and enables
    `UPDATE_FLEXIBLE_COLUMNS`. Repeating the original test then compares the
    final data against the initial snapshot, or attempts to enable an
    already-enabled feature, before checking compatibility.
    
    Keep the original initialization path unchanged. During `-w`
    verification, compare the complete ordered persisted fixture against
    fixed reference SQL and verify the flexible-update table property for
    both row-store variants. This path performs no writes, table recreation,
    or reload, so corrupted, missing, and additional persisted rows remain
    failures. Existing generated output files remain unchanged.
    
    Scope: subsequent upgrade stages verify persisted-data and
    feature-metadata compatibility. They no longer replay this suite's
    initialization DML; this change does not establish mixed-version write
    coverage or binary downgrade support.
    
    ### Release note
    
    None
    
    ### Check List (For Author)
    
    - Test: `git diff --check`; isolated Groovy syntax/suite-registration
    and control-flow harness, covering unchanged initialization call traces,
    both row-store tables, three repeated read-only verification runs, and
    rejection of corrupted/missing/additional rows and a disabled feature
    property. This is not a Doris cluster runtime test; rolling-upgrade
    validation remains pending with case artifacts containing this fix.
    - Behavior changed: Yes, `-w` checks the persisted final fixture instead
    of replaying initialization operations.
    - Does this need documentation: No
---
 .../unique_with_mow_p0/flexible/downgrade/test.groovy | 19 +++++++++++++++++++
 .../unique_with_mow_p0/flexible/upgrade/test.groovy   | 19 +++++++++++++++++++
 2 files changed, 38 insertions(+)

diff --git 
a/regression-test/suites/unique_with_mow_p0/flexible/downgrade/test.groovy 
b/regression-test/suites/unique_with_mow_p0/flexible/downgrade/test.groovy
index 059324a1943..a53c659cf53 100644
--- a/regression-test/suites/unique_with_mow_p0/flexible/downgrade/test.groovy
+++ b/regression-test/suites/unique_with_mow_p0/flexible/downgrade/test.groovy
@@ -20,6 +20,25 @@ suite('test_flexible_partial_update_downgrade', 
'p0,restart_fe') {
     for (def use_row_store : [false, true]) {
         logger.info("current params: use_row_store: ${use_row_store}")
         def tableName = "test_f_downgrade_${use_row_store}"
+        if (context.config.withOutLoadData) {
+            // The initial run leaves this final fixture for every 
rolling-upgrade stage.
+            // Check it before any writes, without recreating the table or 
replaying the load.
+            check_sqls_result_equal(
+                "select k,v1,v2,v3,v4,v5 from ${tableName} order by k",
+                """select 0 as k, 0 as v1, 0 as v2, 0 as v3, 0 as v4, 0 as v5
+                    union all select 1, 999, 111, 999, 1, 999
+                    union all select 2, 888, 20, 888, 222, 888
+                    union all select 3, 10, 10, 10, 10, 10
+                    union all select 4, 12, 12, 12, 12, 12
+                    union all select 7, 7, 7, 7, 7, 7
+                    union all select 8, 8, 8, 8, 8, 8
+                    union all select 9, 9, 9, 9, 9, 9
+                    union all select 20, 555, 9876, 555, 1234, 555
+                    union all select 30, 11, 11, 11, 11, 11 order by k""")
+            def persistedSchema = sql "show create table ${tableName}"
+            
assertTrue(persistedSchema.toString().contains('"enable_unique_key_skip_bitmap_column"
 = "true"'))
+            continue
+        }
         qt_sql "select k,v1,v2,v3,v4,v5 from ${tableName} order by k;"
 
         sql "set enable_unique_key_partial_update=true;"
diff --git 
a/regression-test/suites/unique_with_mow_p0/flexible/upgrade/test.groovy 
b/regression-test/suites/unique_with_mow_p0/flexible/upgrade/test.groovy
index 5fabb4b49be..88b35890590 100644
--- a/regression-test/suites/unique_with_mow_p0/flexible/upgrade/test.groovy
+++ b/regression-test/suites/unique_with_mow_p0/flexible/upgrade/test.groovy
@@ -20,6 +20,25 @@ suite('test_flexible_partial_update_upgrade', 
'p0,restart_fe') {
     for (def use_row_store : [false, true]) {
         logger.info("current params: use_row_store: ${use_row_store}")
         def tableName = "test_f_upgrade_${use_row_store}"
+        if (context.config.withOutLoadData) {
+            // The initial run leaves this final fixture for every 
rolling-upgrade stage.
+            // Check it before any writes, without recreating the table or 
replaying the load.
+            check_sqls_result_equal(
+                "select k,v1,v2,v3,v4,v5 from ${tableName} order by k",
+                """select 0 as k, 0 as v1, 0 as v2, 0 as v3, 0 as v4, 0 as v5
+                    union all select 1, 999, 111, 999, 1, 999
+                    union all select 2, 888, 20, 888, 222, 888
+                    union all select 3, 10, 10, 10, 10, 10
+                    union all select 4, 12, 12, 12, 12, 12
+                    union all select 7, 7, 7, 7, 7, 7
+                    union all select 8, 8, 8, 8, 8, 8
+                    union all select 9, 9, 9, 9, 9, 9
+                    union all select 20, 555, 9876, 555, 1234, 555
+                    union all select 30, 11, 11, 11, 11, 11 order by k""")
+            def persistedSchema = sql "show create table ${tableName}"
+            
assertTrue(persistedSchema.toString().contains('"enable_unique_key_skip_bitmap_column"
 = "true"'))
+            continue
+        }
         sql """alter table ${tableName} enable feature 
"UPDATE_FLEXIBLE_COLUMNS"; """
         def show_res = sql "show create table ${tableName}"
         
assertTrue(show_res.toString().contains('"enable_unique_key_skip_bitmap_column" 
= "true"'))


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to