airborne12 commented on code in PR #69444:
URL: https://github.com/apache/doris/pull/69444#discussion_r4347852512
##########
fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java:
##########
@@ -2664,7 +2679,12 @@ public int getAsInt() {
lightIndexChange, buildIndexChange, indexSchemaMap);
}
- if (olapTable.hasChangelog() && !(lightSchemaChange ||
lightIndexChange)) {
+ // The light index change path only publishes the new schema and
submits index delete jobs. When a
+ // clause also needs a heavy schema change, the whole statement
runs as a heavy schema change job,
+ // which applies the index changes as well.
+ boolean useLightIndexChange = Config.enable_light_index_change &&
lightIndexChange
+ && !requiresHeavyChange;
+ if (olapTable.hasChangelog() && !(lightSchemaChange ||
useLightIndexChange)) {
Review Comment:
Agreed that the in-place bloom-filter update survives this rejection, but it
is the pre-existing class rather than something specific to this change: on
master any statement on a changelog table that ends up on the heavy path is
rejected by this same check after the clause loop, e.g. `DROP COLUMN v1, MODIFY
COLUMN vi BIGINT NULL` leaves `v1` out of the bloom filter columns in the same
way. This PR only routes one more statement shape there. Restoring the live
metadata for every rejection before publishing (bloom filter columns, generated
column references, sequence mapping groups) is what #69445 does, so I am
keeping that out of this PR to keep the two changes independent.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]