StarRocks / starrocks

The world's fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.
https://starrocks.io
Apache License 2.0
9.06k stars 1.82k forks source link

[BugFix] olap view should not participate in MV processing logic (backport #52989) #53000

Closed mergify[bot] closed 3 days ago

mergify[bot] commented 3 days ago

Why I'm doing:

reproduce case:

create table t0 (k1 string, k2 string, k3 string);
create table t1 (k1 string, k2 string, k3 string);
create view v_l as select k1, k2 as k22, k3 as k33;
create view v_r as select k1, k2 as k222, k3 as k332;

select l.k1 from v_l l left join v_r r1 on l.k22=r1.k222 left join v_r r2 on trim(l.k33)=r2.k333;

error msg

com.starrocks.sql.common.StarRocksPlannerException: only found column statistics: {1: k1, 2: k2, 3: k3, 15: k3}, but missing statistic of col: 19: trim.

What I'm doing:

If the olap view does not have mv, the optimizer process will be polluted. like https://github.com/StarRocks/starrocks/blob/main/fe/fe-core/src/main/java/com/starrocks/sql/optimizer/Optimizer.java#L266

Fixes #issue

What type of PR is this:

Does this PR entail a change in behavior?

If yes, please specify the type of change:

Checklist:

Bugfix cherry-pick branch check:

select l.k1 from v_l l left join v_r r1 on l.k22=r1.k222 left join v_r r2 on trim(l.k33)=r2.k333;

error msg

com.starrocks.sql.common.StarRocksPlannerException: only found column statistics: {1: k1, 2: k2, 3: k3, 15: k3}, but missing statistic of col: 19: trim.



## What I'm doing:
If the olap view does not have mv, the optimizer process will be polluted.  like https://github.com/StarRocks/starrocks/blob/main/fe/fe-core/src/main/java/com/starrocks/sql/optimizer/Optimizer.java#L266

Fixes #issue

## What type of PR is this:

- [x] BugFix
- [ ] Feature
- [ ] Enhancement
- [ ] Refactor
- [ ] UT
- [ ] Doc
- [ ] Tool

Does this PR entail a change in behavior?

- [ ] Yes, this PR will result in a change in behavior.
- [x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

- [ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
- [ ] Parameter changes: default values, similar parameters but with different default values
- [ ] Policy changes: use new policy to replace old one, functionality automatically enabled
- [ ] Feature removed
- [ ] Miscellaneous: upgrade & downgrade compatibility, etc.

## Checklist:

- [ ] I have added test cases for my bug fix or my new feature
- [ ] This pr needs user documentation (for new or modified features or behaviors)
  - [ ] I have added documentation for my new feature or new function
- [x] This is a backport pr
sonarcloud[bot] commented 3 days ago

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE