jacktengg opened a new pull request, #27014:
URL: https://github.com/apache/doris/pull/27014
## Proposed changes
Issue Number: close #xxx
Test case:
```
CREATE TABLE `multi_distinct_agg_tab` (
`k1` bigint(20) NULL,
`k2` varchar(20) NULL,
`d1` DECIMAL(18, 0) NULL,
`d2` DECIMAL(38, 0) NULL
) ENGINE = OLAP DUPLICATE KEY(`k1`) DISTRIBUTED BY HASH(`k1`) BUCKETS 2
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);
INSERT INTO
`multi_distinct_agg_tab` (`k1`, `k2`, `d1`, `d2`)
VALUES (1, 'aaa', 123, 356),(2, 'bbb', 123, 789), (3, 'ccc', 246, 789);
select
count(distinct d1),
count(distinct d2)
from
multi_distinct_agg_tab;
```
Coredump:
```
17:02:20 F20231114 16:55:35.946138 156798 assert_cast.h:57] Bad cast from
type:doris::vectorized::ColumnDecimal<doris::vectorized::Decimal128I> to
doris::vectorized::ColumnDecimal<doris::vectorized::Decimal<__int128> >
17:02:20 *** Check failure stack trace: ***
17:02:20 @ 0x5627046b3216
google::LogMessageFatal::~LogMessageFatal()
17:02:20 @ 0x5626da741024 assert_cast<>()
17:02:20 @ 0x5626e7c242a4
doris::vectorized::AggregateFunctionUniq<>::add_batch_single_place()
17:02:20 @ 0x5626e7c2c030
doris::vectorized::AggregateFunctionNullUnaryInline<>::add_batch_single_place()
17:02:20 @ 0x5626f14e13c8
doris::vectorized::AggFnEvaluator::execute_single_add()
17:02:20 @ 0x562703dde5b7
doris::pipeline::AggSinkLocalState<>::_execute_without_key()
17:02:20 @ 0x5627041df937 std::_Function_handler<>::_M_invoke()
17:02:20 @ 0x562703dcdb00
doris::pipeline::AggSinkOperatorX<>::sink()
17:02:20 @ 0x562704676257
doris::pipeline::PipelineXTask::execute()
17:02:20 @ 0x5627046931e2
doris::pipeline::TaskScheduler::_do_work()
17:02:20 @ 0x5626dae3276d doris::ThreadPool::dispatch_thread()
17:02:20 @ 0x5626dae0e7e9 doris::Thread::supervise_thread()
17:02:20 @ 0x7fa1d23ef609 start_thread
17:02:20 @ 0x7fa1d269c133 clone
17:02:20 @ (nil) (unknown)
17:02:20 *** Query id: 28287cc913164182-928abacb26a33665 ***
17:02:20 *** tablet id: 0 ***
17:02:20 *** Aborted at 1699952136 (unix time) try "date -d @1699952136"
if you are using GNU date ***
17:02:20 *** Current BE git commitID: 3ce53c8 ***
17:02:20 *** SIGABRT unknown detail explain (@0x26349) received by PID
156489 (TID 156798 OR 0x7f9fee91a700) from PID 156489; stack trace: ***
17:02:20 0# doris::signal::(anonymous
namespace)::FailureSignalHandler(int, siginfo_t*, void*) at
/root/doris/be/src/common/signal_handler.h:417
17:02:20 1# 0x00007FA1D25C0090 in /lib/x86_64-linux-gnu/libc.so.6
17:02:20 2# raise at ../sysdeps/unix/sysv/linux/raise.c:51
17:02:20 3# abort at /build/glibc-SzIz7B/glibc-2.31/stdlib/abort.c:81
17:02:20 4# 0x00005627046BA11D in
/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster0/be/lib/doris_be
17:02:20 5# google::LogMessage::SendToLog() in
/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster0/be/lib/doris_be
17:02:20 6# google::LogMessage::Flush() in
/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster0/be/lib/doris_be
17:02:20 7# google::LogMessageFatal::~LogMessageFatal() in
/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster0/be/lib/doris_be
17:02:20 8# 0x00005626DA741024 in
/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster0/be/lib/doris_be
17:02:20 9#
doris::vectorized::AggregateFunctionUniq<doris::vectorized::Decimal<__int128>,
doris::vectorized::AggregateFunctionUniqExactData<__int128>
>::add_batch_single_place(unsigned long, char*, doris::vectorized::IColumn
const**, doris::vectorized::Arena*) const at
/root/doris/be/src/vec/aggregate_functions/aggregate_function_uniq.h:176
17:02:20 10#
doris::vectorized::AggregateFunctionNullUnaryInline<doris::vectorized::AggregateFunctionUniq<doris::vectorized::Decimal<__int128>,
doris::vectorized::AggregateFunctionUniqExactData<__int128> >,
false>::add_batch_single_place(unsigned long, char*, doris::vectorized::IColumn
const**, doris::vectorized::Arena*) const in
/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster0/be/lib/doris_be
17:02:20 11#
doris::vectorized::AggFnEvaluator::execute_single_add(doris::vectorized::Block*,
char*, doris::vectorized::Arena*) in
/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster0/be/lib/doris_be
17:02:20 12#
doris::pipeline::AggSinkLocalState<doris::pipeline::AggDependency,
doris::pipeline::BlockingAggSinkLocalState>::_execute_without_key(doris::vectorized::Block*)
in /mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster0/be/lib/doris_be
17:02:20 13# std::_Function_handler<doris::Status
(doris::vectorized::Block*), std::_Bind_result<doris::Status, doris::Status
(doris::pipeline::AggSinkLocalState<doris::pipeline::AggDependency,
doris::pipeline::BlockingAggSinkLocalState>::*(doris::pipeline::AggSinkLocalState<doris::pipeline::AggDependency,
doris::pipeline::BlockingAggSinkLocalState>*,
std::_Placeholder<1>))(doris::vectorized::Block*)> >::_M_invoke(std::_Any_data
const&, doris::vectorized::Block*&&) at
/var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291
17:02:20 14#
doris::pipeline::AggSinkOperatorX<doris::pipeline::BlockingAggSinkLocalState>::sink(doris::RuntimeState*,
doris::vectorized::Block*, doris::pipeline::SourceState) at
/root/doris/be/src/pipeline/exec/aggregation_sink_operator.cpp:791
17:02:20 15# doris::pipeline::PipelineXTask::execute(bool*) at
/root/doris/be/src/pipeline/pipeline_x/pipeline_x_task.cpp:261
17:02:20 16# doris::pipeline::TaskScheduler::_do_work(unsigned long) at
/root/doris/be/src/pipeline/task_scheduler.cpp:262
```
## Further comments
If this is a relatively large or complex change, kick off the discussion at
[[email protected]](mailto:[email protected]) by explaining why you
chose the solution you did and what alternatives you considered, etc...
--
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]