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]

Reply via email to