-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[branch-2.1] (doris-future) Support auto partition name function #38853
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
5db4f78 to
8662732
Compare
|
clang-tidy review says "All clean, LGTM! 👍" |
8662732 to
e53d6a2
Compare
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
1 similar comment
|
clang-tidy review says "All clean, LGTM! 👍" |
|
clang-tidy review says "All clean, LGTM! 👍" |
e53d6a2 to
93fc121
Compare
93fc121 to
c0a511f
Compare
|
run buildall |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
|
TeamCity be ut coverage result: |
…planner (#55464) ### What problem does this PR solve? **Problem:** Incorrect input arguments for auto_partition_name cause a fallback to the legacy planner in branch 2.1. However, since this function is handled by the FE legacy code, there is no parameter checking logic. (See: #38853) Furthermore, there is a lack of sufficient checks on the BE side, which can lead to crashes. Such as: ``` select auto_partition_name("xxx"); select auto_partition_name("xxx", "sss"); ``` **How to Fix:** So here we simply remove function `auto_partition_name` in legacy planner **The stack is like:** ``` *** Query id: 24c69ac956394483-b2a4d08963d06593 *** *** is nereids: 0 *** *** tablet id: 0 *** *** Aborted at 1756449846 (unix time) try "date -d @1756449846" if you are using GNU date *** *** Current BE git commitID: 2506121 *** *** SIGSEGV address not mapped to object (@0x0) received by PID 1010328 (TID 1011344 OR 0x7f75ba07a6c0) from PID 0; stack trace: *** 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) in /usr/local/service/doris/lib/be/doris_be 1# os::Linux::chained_handler(int, siginfo*, void*) in /usr/local/jdk/jre/lib/amd64/server/libjvm.so 2# JVM_handle_linux_signal in /usr/local/jdk/jre/lib/amd64/server/libjvm.so 3# signalHandler(int, siginfo*, void*) in /usr/local/jdk/jre/lib/amd64/server/libjvm.so 4# 0x00007F77D0EA1AD0 in /lib64/libc.so.6 5# doris::vectorized::PreparedFunctionImpl::default_implementation_for_constant_arguments(doris::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool, bool*) const in /usr/local/service/doris/lib/be/doris_be 6# doris::vectorized::PreparedFunctionImpl::execute_without_low_cardinality_columns(doris::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool) const in /usr/local/service/doris/lib/be/doris_be 7# doris::vectorized::PreparedFunctionImpl::execute(doris::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool) const in /usr/local/service/doris/lib/be/doris_be 8# doris::vectorized::IFunctionBase::execute(doris::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool) const in /usr/local/service/doris/lib/be/doris_be 9# doris::vectorized::VectorizedFnCall::_do_execute(doris::vectorized::VExprContext*, doris::vectorized::Block*, int*, std::vector<unsigned long, std::allocator<unsigned long> >&) in /usr/local/service/doris/lib/be/doris_be 10# doris::vectorized::VectorizedFnCall::execute(doris::vectorized::VExprContext*, doris::vectorized::Block*, int*) in /usr/local/service/doris/lib/be/doris_be 11# doris::vectorized::VExpr::get_const_col(doris::vectorized::VExprContext*, std::shared_ptr<doris::ColumnPtrWrapper>*) in /usr/local/service/doris/lib/be/doris_be 12# doris::vectorized::VectorizedFnCall::open(doris::RuntimeState*, doris::vectorized::VExprContext*, doris::FunctionContext::FunctionStateScope) in /usr/local/service/doris/lib/be/doris_be 13# doris::vectorized::VExprContext::open(doris::RuntimeState*) in /usr/local/service/doris/lib/be/doris_be 14# doris::vectorized::VExpr::open(std::vector<std::shared_ptr<doris::vectorized::VExprContext>, std::allocator<std::shared_ptr<doris::vectorized::VExprContext> > > const&, doris::RuntimeState*) in /usr/local/service/doris/lib/be/doris_be 15# doris::pipeline::UnionSourceOperatorX::open(doris::RuntimeState*) in /usr/local/service/doris/lib/be/doris_be 16# doris::pipeline::Pipeline::prepare(doris::RuntimeState*) in /usr/local/service/doris/lib/be/doris_be 17# doris::pipeline::PipelineXFragmentContext::prepare(doris::TPipelineFragmentParams const&, doris::ThreadPool*) in /usr/local/service/doris/lib/be/doris_be 18# doris::FragmentMgr::exec_plan_fragment(doris::TPipelineFragmentParams const&, doris::QuerySource, std::function<void (doris::RuntimeState*, doris::Status*)> const&) in /usr/local/service/doris/lib/be/doris_be 19# doris::FragmentMgr::exec_plan_fragment(doris::TPipelineFragmentParams const&, doris::QuerySource) in /usr/local/service/doris/lib/be/doris_be ``` ### 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 -->
cherry-pick #34258 to branch-2.1