You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2023/08/11 15:48:51 UTC
[doris] 07/07: [fix](agg) fix coredump caused by push down count aggregation (#22699)
This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git
commit b7f163e4d6d87032194dd2d5e804539eaf348c63
Author: HappenLee <ha...@hotmail.com>
AuthorDate: Wed Aug 9 10:21:20 2023 +0800
[fix](agg) fix coredump caused by push down count aggregation (#22699)
fix coredump caused by push down count aggregation
---
.../apache/doris/planner/SingleNodePlanner.java | 3 +-
.../test_aggregate_push_down_agg.out | 4 ++
.../test_aggregate_push_down_agg.groovy | 44 ++++++++++++++++++++++
3 files changed, 50 insertions(+), 1 deletion(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java b/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java
index 5d59df3a8a..5cc1b85b54 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java
@@ -420,7 +420,8 @@ public class SingleNodePlanner {
break;
}
- if (CollectionUtils.isNotEmpty(root.getConjuncts())) {
+ if (CollectionUtils.isNotEmpty(root.getConjuncts())
+ || CollectionUtils.isNotEmpty(root.getProjectList())) {
break;
}
diff --git a/regression-test/data/query_p0/sql_functions/aggregate_functions/test_aggregate_push_down_agg.out b/regression-test/data/query_p0/sql_functions/aggregate_functions/test_aggregate_push_down_agg.out
new file mode 100644
index 0000000000..f88a155567
--- /dev/null
+++ b/regression-test/data/query_p0/sql_functions/aggregate_functions/test_aggregate_push_down_agg.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !sql --
+3
+
diff --git a/regression-test/suites/query_p0/sql_functions/aggregate_functions/test_aggregate_push_down_agg.groovy b/regression-test/suites/query_p0/sql_functions/aggregate_functions/test_aggregate_push_down_agg.groovy
new file mode 100644
index 0000000000..443377f8e2
--- /dev/null
+++ b/regression-test/suites/query_p0/sql_functions/aggregate_functions/test_aggregate_push_down_agg.groovy
@@ -0,0 +1,44 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_aggregate_push_down_agg") {
+ sql """ drop table if exists test_aggregate_push_down_agg; """
+ sql """
+ create table test_aggregate_push_down_agg (
+ k1 int,
+ tracking_number varchar(16)
+ ) duplicate key(k1)
+ distributed by hash(k1)
+ properties("replication_num"="1");
+ """
+ sql """ insert into test_aggregate_push_down_agg values(1, "aaa"), (1, "bbb"), (2, "ccc") """
+ sql 'set enable_nereids_planner=false'
+ qt_sql """
+ SELECT
+ count(*)
+ FROM
+ (
+ select
+ case
+ when tracking_number is null then ''
+ else tracking_number
+ end as tracking_number
+ from
+ test_aggregate_push_down_agg
+ ) V_T;
+ """
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org