ByteYue opened a new issue, #15256: URL: https://github.com/apache/doris/issues/15256
### Search before asking - [X] I had searched in the [issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no similar issues. ### Version master ### What's Wrong? ``` select /*+ SET_VAR(query_timeout = 600) */ ref_0.`PS_SUPPKEY` as c0, ref_0.`PS_SUPPLYCOST` as c1, last_value( cast(bitmap_empty() as BITMAP)) over (partition by ref_0.`PS_AVAILQTY` order by ref_0.`PS_PARTKEY` desc ) as c2, case when false then ref_0.`PS_COMMENT` else ref_0.`PS_COMMENT` end as c3 from regression_test_datev2_tpch_sf1_p1_tpch_sf1.partsupp as ref_0 where ref_0.`PS_PARTKEY` is NULL order by ref_0.`PS_COMMENT` ``` This stmt would cause be coredump because currently BE doesn't support last_value(BITMAP). ### What You Expected? Return Not Supported instead of be crash. ### How to Reproduce? Type the stmt mentioned in `What's wrong`. ### Anything Else? The be.out is as follows: ``` 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /mnt/disk1/yuejing/projects/doris/be/src/common/signal_handler.h:420 1# 0x00007F12912EB400 in /lib64/libc.so.6 2# __GI_raise in /lib64/libc.so.6 3# __GI_abort in /lib64/libc.so.6 4# 0x0000557FABB31EF9 in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be 5# google::LogMessage::SendToLog() in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be 6# google::LogMessage::Flush() in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be 7# google::LogMessageFatal::~LogMessageFatal() in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be 8# doris::vectorized::IAggregateFunction* doris::vectorized::create_function_lead_lag_first_last<doris::vectorized::WindowFunctionData, doris::vectorized::FirstLastData, dor is::vectorized::WindowFunctionLastImpl, false, false>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<dori s::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&) in /mnt/disk1/yuejing/project s/doris/output/be/lib/doris_be 9# auto doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::sha red_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3::opera tor()<std::integral_constant<bool, false>, std::integral_constant<bool, false> >(std::integral_constant<bool, false>, std::integral_constant<bool, false>) const at /mnt/disk1 /yuejing/projects/doris/be/src/vec/aggregate_functions/aggregate_function_window.cpp:116 10# void std::__invoke_impl<void, doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > con st&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3, std::integral_constant<bool, false>, std::integral_constant<bool, false> >(std::__invoke_other, doris::vectorized::create_aggregate_function_window_last(s td::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::sh ared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3&&, std::integral_constant<bool, false>&&, std::integral_constant<bool, fa lse>&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61 11# std::__invoke_result<doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std: :vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, b ool)::$_3, std::integral_constant<bool, false>, std::integral_constant<bool, false> >::type std::__invoke<doris::vectorized::create_aggregate_function_window_last(std::__cxx1 1::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<d oris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3, std::integral_constant<bool, false>, std::integral_constant<bool, false> >(doris:: vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::v ectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3&&, std::integral_const ant<bool, false>&&, std::integral_constant<bool, false>&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/inv oke.h:96 12# std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<void> (*)(doris::vectorized::create_agg regate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType c onst>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3&&, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >&&, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >&&)>, std::integer_sequence<unsigned lo ng, 0ul, 0ul> >::__visit_invoke(doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const &, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array co nst&, bool)::$_3&&, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >&&, std::variant<std::integral_constant<bool, false>, std::integral_ constant<bool, true> >&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/variant:1013 13# decltype(auto) std::__do_visit<std::__detail::__variant::__deduce_visit_result<void>, doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string< char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized ::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >, std::varia nt<std::integral_constant<bool, false>, std::integral_constant<bool, true> > >(doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std:: char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3&&, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >&&, std::variant<std: :integral_constant<bool, false>, std::integral_constant<bool, true> >&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c ++/11/variant:1716 14# decltype(auto) std::visit<doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> > >(doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)::$_3&&, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >&&, std::variant<std::integral_c onstant<bool, false>, std::integral_constant<bool, true> >&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/variant:1769 15# doris::vectorized::create_aggregate_function_window_last(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool) at /mnt/disk1/yuejing/projects/doris/be/src/vec/aggregate_functions/aggregate_function_window.cpp:116 16# std::shared_ptr<doris::vectorized::IAggregateFunction> std::__invoke_impl<std::shared_ptr<doris::vectorized::IAggregateFunction>, std::shared_ptr<doris::vectorized::IAggregateFunction> (*&)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool>(std::__invoke_other, std::shared_ptr<doris::vectorized::IAggregateFunction> (*&)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shar ed_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61 17# std::enable_if<is_invocable_r_v<std::shared_ptr<doris::vectorized::IAggregateFunction>, std::shared_ptr<doris::vectorized::IAggregateFunction> (*&)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool>, std::shared_ptr<doris::vectorized::IAggregateFunction> >::type std::__invoke_r<std::shared_ptr<doris::vectorized::IAggregateFunction>, std::shared_ptr<doris::vectorized::IAggregateFunction> (*&)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std: :shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool>(std::shared_ptr<doris::vectorized::IAggregateFunction> (*&)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > co nst&, doris::vectorized::Array const&, bool&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:114 18# std::_Function_handler<std::shared_ptr<doris::vectorized::IAggregateFunction> (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool), std::shared_ptr<doris::vectorized::IAggregateFunction> (*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool&&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291 19# std::function<std::shared_ptr<doris::vectorized::IAggregateFunction> (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool)>::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool) const at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560 20# doris::vectorized::AggregateFunctionSimpleFactory::get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::shared_ptr<doris::vectorized::IDataType const>, std::allocator<std::shared_ptr<doris::vectorized::IDataType const> > > const&, doris::vectorized::Array const&, bool) at /mnt/disk1/yuejing/projects/doris/be/src/vec/aggregate_functions/aggregate_function_simple_factory.h:97 21# doris::vectorized::AggFnEvaluator::prepare(doris::RuntimeState*, doris::RowDescriptor const&, doris::SlotDescriptor const*, doris::SlotDescriptor const*) at /mnt/disk1/yuejing/projects/doris/be/src/vec/exprs/vectorized_agg_fn.cpp:127 22# doris::vectorized::VAnalyticEvalNode::prepare(doris::RuntimeState*) at /mnt/disk1/yuejing/projects/doris/be/src/vec/exec/vanalytic_eval_node.cpp:159 23# doris::ExecNode::prepare(doris::RuntimeState*) at /mnt/disk1/yuejing/projects/doris/be/src/exec/exec_node.cpp:243 24# doris::vectorized::VSortNode::prepare(doris::RuntimeState*) at /mnt/disk1/yuejing/projects/doris/be/src/vec/exec/vsort_node.cpp:69 25# doris::PlanFragmentExecutor::prepare(doris::TExecPlanFragmentParams const&, doris::QueryFragmentsCtx*) at /mnt/disk1/yuejing/projects/doris/be/src/runtime/plan_fragment_executor.cpp:158 26# doris::FragmentExecState::prepare(doris::TExecPlanFragmentParams const&) in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be 27# doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>) at /mnt/disk1/yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:709 28# doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&) at /mnt/disk1/yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:544 29# doris::PInternalServiceImpl::_exec_plan_fragment(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, doris::PFragmentRequestVersion, bool) at /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:372 30# doris::PInternalServiceImpl::exec_plan_fragment(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*) at /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:195 31# doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google: :protobuf::Closure*) at /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:207 32# doris::PBackendService::CallMethod(google::protobuf::MethodDescriptor const*, google::protobuf::RpcController*, google::protobuf::Message const*, google::protobuf::Messag e*, google::protobuf::Closure*) at /mnt/disk1/yuejing/projects/doris/gensrc/build/gen_cpp/internal_service.pb.cc:24432 33# brpc::policy::ProcessHttpRequest(brpc::InputMessageBase*) in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be 34# brpc::InputMessenger::OnNewMessages(brpc::Socket*) in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be 35# brpc::Socket::ProcessEvent(void*) in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be 36# bthread::TaskGroup::task_runner(long) in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be 37# bthread_make_fcontext in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be ``` ### Are you willing to submit PR? - [X] Yes I am willing to submit a PR! ### Code of Conduct - [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- 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: commits-unsubscr...@doris.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org