From a0f35b4b688d8f0da456f479aa8a6475b3fc9b55 Mon Sep 17 00:00:00 2001 From: shenyushi Date: Thu, 23 Jan 2025 17:33:24 +0800 Subject: [PATCH] Fix bug of groupby expression. --- src/executor/operator/physical_aggregate.cpp | 2 +- test/sql/dql/aggregate/test_groupby_complex.slt | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/executor/operator/physical_aggregate.cpp b/src/executor/operator/physical_aggregate.cpp index 243ecef7d9..f8faf84c3e 100644 --- a/src/executor/operator/physical_aggregate.cpp +++ b/src/executor/operator/physical_aggregate.cpp @@ -100,7 +100,7 @@ bool PhysicalAggregate::Execute(QueryContext *query_context, OperatorState *oper groupby_table->data_blocks_.emplace_back(DataBlock::MakeUniquePtr()); DataBlock *output_data_block = groupby_table->data_blocks_.back().get(); - output_data_block->Init(groupby_types, 1); + output_data_block->Init(groupby_types); ExpressionEvaluator groupby_executor; groupby_executor.Init(input_data_block); diff --git a/test/sql/dql/aggregate/test_groupby_complex.slt b/test/sql/dql/aggregate/test_groupby_complex.slt index 2bb18bf26e..d6e1cb4e7f 100644 --- a/test/sql/dql/aggregate/test_groupby_complex.slt +++ b/test/sql/dql/aggregate/test_groupby_complex.slt @@ -29,6 +29,23 @@ SELECT c1, c2, SUM(c3) FROM simple_groupby GROUP BY c1, c2; 2 2 10.000000 2 3 10.000000 +query IR rowsort +SELECT c1+c2, SUM(c3) FROM simple_groupby GROUP BY c1+c2; +---- +2 8.000000 +3 14.000000 +4 14.000000 +5 10.000000 + +query IIR rowsort +SELECT abs(c1-c2), c1+c2, SUM(c3) FROM simple_groupby GROUP BY abs(c1-c2), c1+c2; +---- +0 2 8.000000 +0 4 10.000000 +1 3 14.000000 +1 5 10.000000 +2 4 4.000000 + query IIR rowsort SELECT c1, c2, SUM(c3) FROM simple_groupby WHERE c1 > 1 GROUP BY c1, c2; ----