Uh oh!
There was an error while loading. Please reload this page.
[fix](fe) Fix NoSuchElementException when count with MATCH_ALL expression - #62172
Merged
Conversation
…sion Issue Number: close #??? Problem Summary: When executing explain on SQL like: SELECT count(col MATCH_ALL 'xxx') FROM table WHERE ... The Nereids optimizer throws NoSuchElementException because storageLayerAggregate rule tries to get originalColumn from a SlotReference that represents a virtual column (generated from MATCH_ALL expression). The virtual column has no physical column in the table schema, so getOriginalColumn() returns Optional.empty(). The fix adds proper isPresent() checks before calling get() on Optional. Release note: Fix a bug where count(MATCH_ALL) causes explain to fail with NoSuchElementException Test: - Added regression test test_count_match_all_pushdown to cover this case
Thearas
commented
Apr 7, 2026
Contributor
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
HappenLee
commented
Apr 7, 2026
ContributorAuthor
run buildall |
morrySnow
approved these changes
Apr 7, 2026
Contributor
PR approved by at least one committer and no changes requested. |
Contributor
PR approved by anyone and no changes requested. |
hello-stephen
commented
Apr 7, 2026
Contributor
FE UT Coverage ReportIncrement line coverage |
BiteTheDDDDt
approved these changes
Apr 8, 2026
Uh oh!
There was an error while loading. Please reload this page.
github-actionsBot
pushed a commit
that referenced
this pull request
Apr 8, 2026
…sion (#62172) When executing explain on SQL like: SELECT count(col MATCH_ALL 'xxx') FROM table WHERE ... The Nereids optimizer throws NoSuchElementException because storageLayerAggregate rule tries to get originalColumn from a SlotReference that represents a virtual column (generated from MATCH_ALL expression). The virtual column has no physical column in the table schema, so getOriginalColumn() returns Optional.empty(). The fix adds proper isPresent() checks before calling get() on Optional. Release note: Fix a bug where count(MATCH_ALL) causes explain to fail with NoSuchElementException Test: - Added regression test test_count_match_all_pushdown to cover this case
github-actionsBot
pushed a commit
that referenced
this pull request
Apr 8, 2026
…sion (#62172) When executing explain on SQL like: SELECT count(col MATCH_ALL 'xxx') FROM table WHERE ... The Nereids optimizer throws NoSuchElementException because storageLayerAggregate rule tries to get originalColumn from a SlotReference that represents a virtual column (generated from MATCH_ALL expression). The virtual column has no physical column in the table schema, so getOriginalColumn() returns Optional.empty(). The fix adds proper isPresent() checks before calling get() on Optional. Release note: Fix a bug where count(MATCH_ALL) causes explain to fail with NoSuchElementException Test: - Added regression test test_count_match_all_pushdown to cover this case
HappenLee added a commit
to HappenLee/incubator-doris
that referenced
this pull request
Apr 15, 2026
…sion (apache#62172) When executing explain on SQL like: SELECT count(col MATCH_ALL 'xxx') FROM table WHERE ... The Nereids optimizer throws NoSuchElementException because storageLayerAggregate rule tries to get originalColumn from a SlotReference that represents a virtual column (generated from MATCH_ALL expression). The virtual column has no physical column in the table schema, so getOriginalColumn() returns Optional.empty(). The fix adds proper isPresent() checks before calling get() on Optional. Release note: Fix a bug where count(MATCH_ALL) causes explain to fail with NoSuchElementException Test: - Added regression test test_count_match_all_pushdown to cover this case
yiguolei pushed a commit
that referenced
this pull request
May 1, 2026
…sion (#62172) (#62518) When executing explain on SQL like: SELECT count(col MATCH_ALL 'xxx') FROM table WHERE ... The Nereids optimizer throws NoSuchElementException because storageLayerAggregate rule tries to get originalColumn from a SlotReference that represents a virtual column (generated from MATCH_ALL expression). The virtual column has no physical column in the table schema, so getOriginalColumn() returns Optional.empty(). The fix adds proper isPresent() checks before calling get() on Optional. Release note: Fix a bug where count(MATCH_ALL) causes explain to fail with NoSuchElementException Test: - Added regression test test_count_match_all_pushdown to cover this case ### What problem does this PR solve? Issue Number: close #xxx Related PR: #xxx Problem Summary: ### Release note None ### Check List (For Author) - Test <!-- At least one of them must be included. --> - [ ] 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 <!-- Add your reason? --> - Behavior changed: - [ ] No. - [ ] Yes. <!-- Explain the behavior change --> - Does this need documentation? - [ ] No. - [ ] Yes. <!-- Add document PR link here. eg: apache/doris-website#1214 --> ### Check List (For Reviewer who merge this PR) - [ ] Confirm the release note - [ ] Confirm test cases - [ ] Confirm document - [ ] Add branch pick label <!-- Add branch pick label that this PR should merge into -->
Closed
HappenLee added a commit
that referenced
this pull request
Jun 24, 2026
…sion (#62172) When executing explain on SQL like: SELECT count(col MATCH_ALL 'xxx') FROM table WHERE ... The Nereids optimizer throws NoSuchElementException because storageLayerAggregate rule tries to get originalColumn from a SlotReference that represents a virtual column (generated from MATCH_ALL expression). The virtual column has no physical column in the table schema, so getOriginalColumn() returns Optional.empty(). The fix adds proper isPresent() checks before calling get() on Optional. Release note: Fix a bug where count(MATCH_ALL) causes explain to fail with NoSuchElementException Test: - Added regression test test_count_match_all_pushdown to cover this case
16 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem Summary:
When executing explain on SQL like:
SELECT count(col MATCH_ALL 'xxx') FROM table WHERE ...
The Nereids optimizer throws NoSuchElementException because storageLayerAggregate rule tries to get originalColumn from a SlotReference that represents a virtual column (generated from MATCH_ALL expression). The virtual column has no physical column in the table schema, so getOriginalColumn() returns Optional.empty().
The fix adds proper isPresent() checks before calling get() on Optional.
Release note:
Fix a bug where count(MATCH_ALL) causes explain to fail with NoSuchElementException
Test: