Skip to content

Conversation

@Mryange
Copy link
Contributor

@Mryange Mryange commented Feb 2, 2026

What problem does this PR solve?

#58636

#59835

#59830

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

…execute_conjuncts. (apache#58636)

Previously, execute_conjuncts had to check on every operation whether it
was an rf wrapper; now that check is encapsulated in a virtual method.
This has the advantage that in the _always_true case it can return
immediately without constructing a column.
The variables related to the rf check have been moved into VExprContext,
so we no longer need to worry about concurrency.

set in be.conf
```
sys_log_verbose_modules = runtime_filter_selectivity
```

output
```
I20251204 18:02:22.102540 3778890 runtime_filter_selectivity.h:53] Runtime filter[1] selectivity update: filter_rows: 144839, input_rows: 145799,  filter rate: 0.9945866141732284, ignore_thredhold: 0.059489920657150065, counter: 35 , always_true: false
```
…pache#59830)

```mysql
mysql>    set enable_strict_cast = true;
Query OK, 0 rows affected (0.00 sec)

mysql>     select count(
    ->         if(number < 128 ,
    ->           cast(number as tinyint),
    ->           cast(number as String))
    ->       ) from numbers("number" = "300");
ERROR 1105 (HY000): errCode = 2, detailMessage = (127.0.0.1)[INVALID_ARGUMENT]Value 128 out of range for type tinyint
mysql>    set short_circuit_evaluation = true;
Query OK, 0 rows affected (0.00 sec)

mysql>     select count(
    ->         if(number < 128 ,
    ->           cast(number as tinyint),
    ->           cast(number as String))
    ->       ) from numbers("number" = "300");
+-----------------------------------------------------------------------------------------------------------------+
| count(
        if(number < 128 ,
          cast(number as tinyint),
          cast(number as String))
      ) |
+-----------------------------------------------------------------------------------------------------------------+
|                                                                                                             300 |
+-----------------------------------------------------------------------------------------------------------------+
```
@Mryange Mryange requested a review from yiguolei as a code owner February 2, 2026 08:40
@Mryange
Copy link
Contributor Author

Mryange commented Feb 2, 2026

run buildall

@hello-stephen
Copy link
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?

@doris-robot
Copy link

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 79.18% (1784/2253)
Line Coverage 64.93% (31799/48976)
Region Coverage 65.47% (15884/24263)
Branch Coverage 56.02% (8437/15062)

@hello-stephen
Copy link
Contributor

FE UT Coverage Report

Increment line coverage `` 🎉
Increment coverage report
Complete coverage report

@Mryange
Copy link
Contributor Author

Mryange commented Feb 2, 2026

run buildall

@hello-stephen
Copy link
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 79.18% (1784/2253)
Line Coverage 64.90% (31783/48976)
Region Coverage 65.42% (15874/24263)
Branch Coverage 55.96% (8429/15062)

@Mryange
Copy link
Contributor Author

Mryange commented Feb 2, 2026

run buildall

@hello-stephen
Copy link
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 79.18% (1784/2253)
Line Coverage 64.92% (31794/48976)
Region Coverage 65.43% (15875/24263)
Branch Coverage 55.98% (8432/15062)

@hello-stephen
Copy link
Contributor

FE UT Coverage Report

Increment line coverage 42.86% (3/7) 🎉
Increment coverage report
Complete coverage report

@hello-stephen
Copy link
Contributor

BE UT Coverage Report

Increment line coverage 43.98% (460/1046) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 52.98% (19085/36022)
Line Coverage 36.15% (177747/491745)
Region Coverage 32.74% (137703/420575)
Branch Coverage 33.62% (59658/177432)

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