Skip to content

branch-4.1: [feat](Variant) Support NestedGroup public config#64679

Open
eldenmoon wants to merge 1 commit into
apache:branch-4.1from
eldenmoon:branch-4.1-nested-group-public
Open

branch-4.1: [feat](Variant) Support NestedGroup public config#64679
eldenmoon wants to merge 1 commit into
apache:branch-4.1from
eldenmoon:branch-4.1-nested-group-public

Conversation

@eldenmoon

Copy link
Copy Markdown
Member

cherry-pick #9818

@eldenmoon eldenmoon requested a review from yiguolei as a code owner June 22, 2026 07:54
Copilot AI review requested due to automatic review settings June 22, 2026 07:54
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot couldn't run its full agentic review because no GitHub Actions runner was available. Make sure your repository has a runner available to run Copilot's review, or add a copilot-setup-steps.yml file specifying one with the runs-on attribute. See the docs for more details.

Enables VARIANT NestedGroup support as a public configuration and wires build-time toggles for the NestedGroup feature module.

Changes:

  • Adjusts FE parsing/serialization and tests to accept variant_enable_nested_group and validate conflicts with doc mode.
  • Adds BE build flags and CMake integration to optionally compile a NestedGroup module and its unit tests.
  • Updates default NestedGroup-related config and strengthens default provider behavior to reject write path when not built.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
regression-test/suites/variant_p0/test_variant_search_subcolumn.groovy Adds context comment tying the suite to Variant SEARCH subcolumn binding behavior.
fe/fe-core/src/test/java/org/apache/doris/nereids/parser/NereidsParserTest.java Updates parser tests to accept NestedGroup property and assert conflict error with doc mode.
fe/fe-core/src/test/java/org/apache/doris/catalog/TypeTest.java Updates VariantType SQL serialization test to require nested group property output.
fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java Changes NestedGroup parsing behavior from “reject” to “override/disable other features”.
fe/fe-common/src/main/java/org/apache/doris/catalog/VariantType.java Serializes variant_enable_nested_group into toSql().
build.sh Adds env-driven cmake options for enabling NestedGroup module and setting its directory.
be/test/storage/segment/nested_group_provider_test.cpp Expands tests ensuring default provider rejects NestedGroup write path with correct status codes.
be/test/CMakeLists.txt Conditionally includes NestedGroup module unit tests when feature is enabled.
be/src/storage/segment/variant/nested_group_provider.cpp Changes default write provider from no-op OK to NotSupported.
be/src/storage/CMakeLists.txt Conditionally replaces default provider with module sources when NestedGroup feature is enabled.
be/src/common/config.cpp Changes default for variant_nested_group_discard_scalar_on_conflict to true.
be/CMakeLists.txt Adds ENABLE_NESTED_GROUP option and requires module dir when enabled.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +5309 to +5313
enableVariantDocMode = false;
variantMaxSubcolumnsCount = 0;
enableTypedPathsToSparse = false;
variantMaxSparseColumnStatisticsSize = 0;
variantSparseHashShardCount = 0;
Comment on lines +190 to +194
if (enableNestedGroup) {
sb.append(",");
sb.append("\"variant_enable_nested_group\" = \"")
.append(String.valueOf(enableNestedGroup)).append("\"");
}
Comment thread be/test/CMakeLists.txt Outdated
Comment on lines +26 to +30
if (ENABLE_NESTED_GROUP)
file(GLOB_RECURSE NESTED_GROUP_UT_FILES CONFIGURE_DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/${NESTED_GROUP_MODULE_DIR}/*.cpp")
list(APPEND UT_FILES ${NESTED_GROUP_UT_FILES})
endif()
Comment thread be/src/common/config.cpp
// Deeper arrays will be stored as JSONB
DEFINE_mInt32(variant_nested_group_max_depth, "10");
DEFINE_mBool(variant_nested_group_discard_scalar_on_conflict, "false");
DEFINE_mBool(variant_nested_group_discard_scalar_on_conflict, "true");
Comment thread build.sh Outdated
Comment on lines +713 to +714
-DENABLE_NESTED_GROUP="${ENABLE_NESTED_GROUP}" \
-DNESTED_GROUP_MODULE_DIR="${WITH_NESTED_GROUP_DIR}" \
@eldenmoon eldenmoon force-pushed the branch-4.1-nested-group-public branch from 72698ac to 307593f Compare June 22, 2026 08:37
eldenmoon added a commit to eldenmoon/incubator-doris that referenced this pull request Jun 22, 2026
@eldenmoon

Copy link
Copy Markdown
Member Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 100.00% (5/5) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 0.00% (0/5) 🎉
Increment coverage report
Complete coverage report

@eldenmoon

Copy link
Copy Markdown
Member Author

run buildall

@eldenmoon eldenmoon force-pushed the branch-4.1-nested-group-public branch from 307593f to a4dddd3 Compare June 22, 2026 16:33
eldenmoon added a commit to eldenmoon/incubator-doris that referenced this pull request Jun 22, 2026
@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 100.00% (5/5) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 50.00% (2/4) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 71.91% (26765/37220)
Line Coverage 55.04% (285240/518217)
Region Coverage 52.59% (238591/453678)
Branch Coverage 53.66% (102777/191532)

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 0.00% (0/5) 🎉
Increment coverage report
Complete coverage report

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants