From 305c88447894582623347e86a0bab8a43ede54f2 Mon Sep 17 00:00:00 2001 From: TengJianPing <18241664+jacktengg@users.noreply.github.com> Date: Mon, 23 Oct 2023 10:16:28 +0800 Subject: [PATCH] [fix](rf) fix minmax runtime filter (#25720) Template arguments for decimalv3 type is wrong when creating MinMaxNumFunc, which result in wrong decimal type like vectorized::Decimal : class MinmaxFunctionTraits { public: using BasePtr = MinMaxFuncBase*; template static BasePtr get_function() { return new MinMaxNumFunc::CppType>, typename PrimitiveTypeTraits::CppType>>(); } }; (gdb) bt #0 doris::vectorized::Decimal<__int128>::operator<=>(doris::vectorized::Decimal<__int128> const&) const (x=..., this=) at /mnt/disk2/user/doris-1.1/be/src/vec/core/types.h:381 #1 doris::vectorized::Decimal::operator<=>(doris::vectorized::Decimal const&) const (x=..., this=) at /mnt/disk2/user/doris-1.1/be/src/vec/core/types.h:381 #2 doris::MinMaxNumFunc >::insert (this=0x7ef19de903c0, data=0x7c612928d860) at /mnt/disk2/user/doris-1.1/be/src/exprs/minmax_predicate.h:61 #3 0x0000558465c2844a in doris::RuntimePredicateWrapper::insert (this=0x7f47a2e3d720, value=...) at /mnt/disk2/user/doris-1.1/be/src/exprs/runtime_filter.cpp:492 #4 doris::RuntimePredicateWrapper::insert_batch (this=0x7f47a2e3d720, column=..., rows=...) at /mnt/disk2/user/doris-1.1/be/src/exprs/runtime_filter.cpp:504 #5 0x0000558465c1f6c3 in doris::IRuntimeFilter::insert_batch (this=, column=..., rows=...) at /mnt/disk2/user/doris-1.1/be/src/exprs/runtime_filter.cpp:1060 #6 0x000055846883dafd in doris::VRuntimeFilterSlots::insert (this=0x7d7e767f4e70, datas=...) at /mnt/disk2/user/doris-1.1/be/src/exprs/runtime_filter_slots.h:188 #7 0x0000558468840535 in doris::vectorized::ProcessRuntimeFilterBuild::operator(), HashTableNoState>, HashCRC32, PartitionedHashTableGrower<8ul>, Allocator > > >, doris::vectorized::HashJoinNode> ( this=this@entry=0x7e7c6a5bee40, state=0x7ef19df00400, hash_table_ctx=..., parent=0x7ef19dee3c00) at /mnt/disk2/user/doris-1.1/be/src/vec/exec/join/vhash_join_node.h:92 --- be/src/exprs/create_predicate_function.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/be/src/exprs/create_predicate_function.h b/be/src/exprs/create_predicate_function.h index 7d89141c443b37..011270cd09e3cb 100644 --- a/be/src/exprs/create_predicate_function.h +++ b/be/src/exprs/create_predicate_function.h @@ -34,10 +34,7 @@ class MinmaxFunctionTraits { using BasePtr = MinMaxFuncBase*; template static BasePtr get_function() { - return new MinMaxNumFunc::CppType>, - typename PrimitiveTypeTraits::CppType>>(); + return new MinMaxNumFunc::CppType>(); } };