mrhhsg opened a new pull request, #70222:
URL: https://github.com/apache/doris/pull/70222
### What problem does this PR solve?
Issue Number: N/A
Related PR: #69963
Problem Summary: When a DATE min/max runtime filter is received through the
protobuf path, its bounds are decoded with the DATETIME target because
`TYPE_DATE` and `TYPE_DATETIME` share one branch. This changes the DATE bounds'
internal type tags to DATETIME. The consumer then creates DATETIME literals for
DATE scan predicates, which can abort the BE on a Field type mismatch.
Decode `TYPE_DATE` bounds with the DATE target in the shared min/max receive
path. Keep the existing `TYPE_DATETIME` decoding unchanged. The wire format and
other runtime-filter types are unchanged.
### Release note
Fix a BE crash when receiving DATEV1 min/max runtime filters.
### Check List (For Author)
- Test:
- ASAN BE+FE build (`BUILD_TYPE=ASAN ./build.sh --be --fe -j 40`):
passed, including FE checkstyle.
- ASAN `RuntimeFilterWrapperTest.*`: 15 cases passed, including
DATE/DATETIME type, min/max mode, and merge/publish request coverage.
- `test_datev1_minmax_runtime_filter`: generated expected output and
passed a separate verification run; `test_datev1_common`: passed.
- C++ formatting, build hygiene, and changed-line clang-tidy checks:
passed.
- SQL regression ran on a single-BE cluster; cross-BE and mixed-version
execution were not exercised.
- Behavior changed: Yes. Received DATE min/max bounds retain the DATE type
instead of being converted to DATETIME.
- Does this need documentation: No
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]