eldenmoon opened a new pull request, #67714: URL: https://github.com/apache/doris/pull/67714
### What problem does this PR solve? Related PR: #66858 (prerequisite, not yet merged) Support lightweight ALTER of Variant schema templates and `variant_max_subcolumns_count`. New writes and subsequent compactions apply the latest properties, including when no new load has propagated the schema. Existing rowsets are not proactively rewritten. A count of zero keeps its unlimited meaning. Compaction fetches a consistent FE schema snapshot. When Variant properties differ, it reconstructs values and uses the normal V2 writer to apply the current template, choose materialized/sparse paths and rebuild indexes. Ordered segment linking is bypassed. Schema-template changes remain unsupported for row-store tables. This draft targets master and is stacked on the latest #66858 head. Until that prerequisite merges, the GitHub diff includes its changes. The feature-specific commit adds 17 files' changes, including `be/test/storage/variant/variant_dynamic_subcolumns_count_test.cpp`. ### Release note Allow lightweight changes to Variant schema templates and the materialized-subcolumn limit. New writes and compactions use the current properties without an immediate full-table rewrite. Variant compaction requires an FE supporting the new schema-snapshot RPC. ### Check List (For Author) - Test: Focused ASAN BE tests for dynamic count transitions, randomized writes/compaction, exact per-segment statistics, ordered-compaction bypass, mixed types, projection and expression filtering. 432 tests passed, 0 failures and 0 skips (ASAN, 517.004 seconds). The feature files match the tested workspace; the publication base additionally includes upstream prerequisite updates, so this is not a full rebuild of the publication head. - Test: The included implementation commits record 11 BE tests passed (3 existing capability/Release skips), 19 FE tests passed, and two generated/validated regression suites. These prior results were not rerun as part of this publication step. - Style: clang-format 16 checked on all seven feature C++ files; build hygiene and clang-tidy passed for the dynamic-count test. - Behavior changed: Yes, new writes and later compactions use current Variant properties. - Does this need documentation: Yes, ALTER semantics and row-store restriction. The dynamic-count suite uses DUP-key tablets and stubs only FE schema retrieval. It checks actual writes, reads and compaction, including cold segment-cache reads. Null leaves, empty objects and isolated untyped empty arrays use explicit existing shredder normalization expectations; the suite does not claim raw JSON preservation for these inputs. MOW/FE propagation are covered separately by the included feature tests, not by this fuzz fixture. -- 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]
