Skip to content

[fix](column) ensure cut and clone return fresh column trees#62789

Closed
Mryange wants to merge 1 commit into
apache:masterfrom
Mryange:fix-column-const-cut
Closed

[fix](column) ensure cut and clone return fresh column trees#62789
Mryange wants to merge 1 commit into
apache:masterfrom
Mryange:fix-column-const-cut

Conversation

@Mryange
Copy link
Copy Markdown
Contributor

@Mryange Mryange commented Apr 24, 2026

What problem does this PR solve?

Problem Summary:

IColumn::cut is expected to return a fully independent column tree. The shared implementation already builds the result from clone_empty() and insert_range_from(), so cut should remain a normal helper instead of a virtual override point.

The actual ownership bug was in ColumnConst::clone_resized(). It reused the nested data column, which meant clone_resized() and cut() could still share internal subcolumns with the source column. That breaks the expectation that copy-style column operations return a fresh column tree.

This PR fixes ColumnConst::clone_resized() to deep-clone its nested data and adds a BE unit test that walks subcolumns with for_each_subcolumn to verify that clone_resized() and cut() both return fully fresh column trees for representative column types.

Release note

None

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
      • This is a refactor/code format and no logic has been changed.
      • Previous test can cover this change.
      • No code files have been changed.
      • Other reason
  • Behavior changed:

    • No.
    • Yes.
  • Does this need documentation?

    • No.
    • Yes.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

@Thearas
Copy link
Copy Markdown
Contributor

Thearas commented Apr 24, 2026

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?

@Mryange
Copy link
Copy Markdown
Contributor Author

Mryange commented Apr 24, 2026

/review

@github-actions
Copy link
Copy Markdown
Contributor

OpenCode automated review failed and did not complete.

Error: Review step was failure (possibly timeout or cancelled)
Workflow run: https://github.com/apache/doris/actions/runs/24876178057

Please inspect the workflow logs and rerun the review after the underlying issue is resolved.

@Mryange Mryange closed this May 28, 2026
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.

2 participants