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]