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 2022/04/06 02:44:57 UTC

[incubator-doris] 11/19: fix agg functions check failed from empty table (#8785)

This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch dev-1.0.1
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git

commit 29db14b0b6f771f59573aaf488f6e666f044575e
Author: zhangstar333 <87...@users.noreply.github.com>
AuthorDate: Sat Apr 2 10:44:55 2022 +0800

    fix agg functions check failed from empty table (#8785)
    
    fix agg functions check failed from empty table
---
 be/src/exprs/aggregate_functions.cpp                          | 11 -----------
 be/src/exprs/aggregate_functions.h                            |  6 ++----
 .../main/java/org/apache/doris/catalog/AggregateFunction.java |  2 +-
 3 files changed, 3 insertions(+), 16 deletions(-)

diff --git a/be/src/exprs/aggregate_functions.cpp b/be/src/exprs/aggregate_functions.cpp
index 9f059b70e6..42661e8f3d 100644
--- a/be/src/exprs/aggregate_functions.cpp
+++ b/be/src/exprs/aggregate_functions.cpp
@@ -234,7 +234,6 @@ StringVal AggregateFunctions::percentile_serialize(FunctionContext* ctx, const S
 }
 
 DoubleVal AggregateFunctions::percentile_finalize(FunctionContext* ctx, const StringVal& src) {
-    DCHECK(!src.is_null);
 
     PercentileState* percentile = reinterpret_cast<PercentileState*>(src.ptr);
     double quantile = percentile->quantile;
@@ -340,7 +339,6 @@ void AggregateFunctions::percentile_approx_merge(FunctionContext* ctx, const Str
 
 DoubleVal AggregateFunctions::percentile_approx_finalize(FunctionContext* ctx,
                                                          const StringVal& src) {
-    DCHECK(!src.is_null);
 
     PercentileApproxState* percentile = reinterpret_cast<PercentileApproxState*>(src.ptr);
     double quantile = percentile->targetQuantile;
@@ -1764,7 +1762,6 @@ StringVal AggregateFunctions::count_distinct_date_serialize(FunctionContext* ctx
 template <typename T>
 BigIntVal AggregateFunctions::count_or_sum_distinct_numeric_finalize(FunctionContext* ctx,
                                                                      const StringVal& state_sv) {
-    DCHECK(!state_sv.is_null);
     MultiDistinctNumericState<T>* state =
             reinterpret_cast<MultiDistinctNumericState<T>*>(state_sv.ptr);
     BigIntVal result = state->count_finalize();
@@ -1774,7 +1771,6 @@ BigIntVal AggregateFunctions::count_or_sum_distinct_numeric_finalize(FunctionCon
 
 BigIntVal AggregateFunctions::count_distinct_string_finalize(FunctionContext* ctx,
                                                              const StringVal& state_sv) {
-    DCHECK(!state_sv.is_null);
     MultiDistinctStringCountState* state =
             reinterpret_cast<MultiDistinctStringCountState*>(state_sv.ptr);
     BigIntVal result = state->finalize();
@@ -1785,7 +1781,6 @@ BigIntVal AggregateFunctions::count_distinct_string_finalize(FunctionContext* ct
 template <typename T>
 DoubleVal AggregateFunctions::sum_distinct_double_finalize(FunctionContext* ctx,
                                                            const StringVal& state_sv) {
-    DCHECK(!state_sv.is_null);
     MultiDistinctNumericState<T>* state =
             reinterpret_cast<MultiDistinctNumericState<T>*>(state_sv.ptr);
     DoubleVal result = state->sum_finalize_double();
@@ -1796,7 +1791,6 @@ DoubleVal AggregateFunctions::sum_distinct_double_finalize(FunctionContext* ctx,
 template <typename T>
 LargeIntVal AggregateFunctions::sum_distinct_largeint_finalize(FunctionContext* ctx,
                                                                const StringVal& state_sv) {
-    DCHECK(!state_sv.is_null);
     MultiDistinctNumericState<T>* state =
             reinterpret_cast<MultiDistinctNumericState<T>*>(state_sv.ptr);
     LargeIntVal result = state->sum_finalize_largeint();
@@ -1807,7 +1801,6 @@ LargeIntVal AggregateFunctions::sum_distinct_largeint_finalize(FunctionContext*
 template <typename T>
 BigIntVal AggregateFunctions::sum_distinct_bigint_finalize(FunctionContext* ctx,
                                                            const StringVal& state_sv) {
-    DCHECK(!state_sv.is_null);
     MultiDistinctNumericState<T>* state =
             reinterpret_cast<MultiDistinctNumericState<T>*>(state_sv.ptr);
     BigIntVal result = state->sum_finalize_bigint();
@@ -1817,7 +1810,6 @@ BigIntVal AggregateFunctions::sum_distinct_bigint_finalize(FunctionContext* ctx,
 
 BigIntVal AggregateFunctions::count_distinct_decimalv2_finalize(FunctionContext* ctx,
                                                                 const StringVal& state_sv) {
-    DCHECK(!state_sv.is_null);
     MultiDistinctDecimalV2State* state =
             reinterpret_cast<MultiDistinctDecimalV2State*>(state_sv.ptr);
     BigIntVal result = state->count_finalize();
@@ -1827,7 +1819,6 @@ BigIntVal AggregateFunctions::count_distinct_decimalv2_finalize(FunctionContext*
 
 DecimalV2Val AggregateFunctions::sum_distinct_decimalv2_finalize(FunctionContext* ctx,
                                                                  const StringVal& state_sv) {
-    DCHECK(!state_sv.is_null);
     MultiDistinctDecimalV2State* state =
             reinterpret_cast<MultiDistinctDecimalV2State*>(state_sv.ptr);
     DecimalV2Val result = state->sum_finalize();
@@ -1837,7 +1828,6 @@ DecimalV2Val AggregateFunctions::sum_distinct_decimalv2_finalize(FunctionContext
 
 BigIntVal AggregateFunctions::count_distinct_date_finalize(FunctionContext* ctx,
                                                            const StringVal& state_sv) {
-    DCHECK(!state_sv.is_null);
     MultiDistinctCountDateState* state =
             reinterpret_cast<MultiDistinctCountDateState*>(state_sv.ptr);
     BigIntVal result = state->count_finalize();
@@ -1993,7 +1983,6 @@ void AggregateFunctions::decimalv2_knuth_var_merge(FunctionContext* ctx, const S
 }
 
 DoubleVal AggregateFunctions::knuth_var_finalize(FunctionContext* ctx, const StringVal& state_sv) {
-    DCHECK(!state_sv.is_null);
     KnuthVarianceState* state = reinterpret_cast<KnuthVarianceState*>(state_sv.ptr);
     if (state->count == 0 || state->count == 1) return DoubleVal::null();
     double variance = compute_knuth_variance(*state, false);
diff --git a/be/src/exprs/aggregate_functions.h b/be/src/exprs/aggregate_functions.h
index 2f1e67bcf3..b3b19ab9ce 100644
--- a/be/src/exprs/aggregate_functions.h
+++ b/be/src/exprs/aggregate_functions.h
@@ -231,12 +231,10 @@ public:
                                                     StringVal* dst);
     static void count_or_sum_distinct_decimalv2_merge(FunctionContext* ctx, StringVal& src,
                                                       StringVal* dst);
-    static StringVal count_or_sum_distinct_decimal_serialize(FunctionContext* ctx,
-                                                             const StringVal& state_sv);
+
     static StringVal count_or_sum_distinct_decimalv2_serialize(FunctionContext* ctx,
                                                                const StringVal& state_sv);
-    static BigIntVal count_distinct_decimal_finalize(FunctionContext* ctx,
-                                                     const StringVal& state_sv);
+
     static BigIntVal count_distinct_decimalv2_finalize(FunctionContext* ctx,
                                                        const StringVal& state_sv);
     static DecimalV2Val sum_distinct_decimalv2_finalize(FunctionContext* ctx,
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/AggregateFunction.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/AggregateFunction.java
index fba361704e..a695a9c4b4 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/AggregateFunction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/AggregateFunction.java
@@ -49,7 +49,7 @@ public class AggregateFunction extends Function {
     private static final Logger LOG = LogManager.getLogger(AggregateFunction.class);
 
     public static ImmutableSet<String> NOT_NULLABLE_AGGREGATE_FUNCTION_NAME_SET =
-            ImmutableSet.of("row_number", "rank", "dense_rank", "hll_union_agg", "hll_union", "bitmap_union", "bitmap_intersect", FunctionSet.COUNT, "ndv", FunctionSet.BITMAP_UNION_INT, FunctionSet.BITMAP_UNION_COUNT, "ndv_no_finalize");
+            ImmutableSet.of("row_number", "rank", "dense_rank", "multi_distinct_count", "multi_distinct_sum", "hll_union_agg", "hll_union", "bitmap_union", "bitmap_intersect", FunctionSet.COUNT, "approx_count_distinct", "ndv", FunctionSet.BITMAP_UNION_INT, FunctionSet.BITMAP_UNION_COUNT, "ndv_no_finalize");
 
     public static ImmutableSet<String> ALWAYS_NULLABLE_AGGREGATE_FUNCTION_NAME_SET =
             ImmutableSet.of("stddev_samp", "variance_samp", "var_samp", "percentile_approx");


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org