This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new f3f1bbc48c [fix](agg)disallow group by bitmap or hll data type (#11782)
f3f1bbc48c is described below
commit f3f1bbc48c7fd58a2ffb79dce1e426c575b08ce6
Author: starocean999 <[email protected]>
AuthorDate: Tue Aug 16 09:25:02 2022 +0800
[fix](agg)disallow group by bitmap or hll data type (#11782)
* [fix](agg)disallow group by bitmap or hll data type
---
.../org/apache/doris/analysis/AggregateInfo.java | 10 ++++++
.../aggregate_group_by_hll_and_bitmap.groovy | 39 ++++++++++++++++++++++
2 files changed, 49 insertions(+)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AggregateInfo.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AggregateInfo.java
index 2e8681f2c6..344ff112bc 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AggregateInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AggregateInfo.java
@@ -21,6 +21,7 @@
package org.apache.doris.analysis;
import org.apache.doris.catalog.FunctionSet;
+import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.util.VectorizedUtil;
import org.apache.doris.planner.DataPartition;
@@ -160,6 +161,14 @@ public final class AggregateInfo extends AggregateInfoBase
{
partitionExprs = exprs;
}
+ private static void validateGroupingExprs(List<Expr> groupingExprs) throws
AnalysisException {
+ for (Expr expr : groupingExprs) {
+ if (expr.getType().isOnlyMetricType()) {
+ throw new AnalysisException(Type.OnlyMetricTypeErrorMsg);
+ }
+ }
+ }
+
/**
* Creates complete AggregateInfo for groupingExprs and aggExprs, including
* aggTupleDesc and aggTupleSMap. If parameter tupleDesc != null, sets
aggTupleDesc to
@@ -176,6 +185,7 @@ public final class AggregateInfo extends AggregateInfoBase {
Preconditions.checkState(
(groupingExprs != null && !groupingExprs.isEmpty())
|| (aggExprs != null && !aggExprs.isEmpty()));
+ validateGroupingExprs(groupingExprs);
AggregateInfo result = new AggregateInfo(groupingExprs, aggExprs,
AggPhase.FIRST);
// collect agg exprs with DISTINCT clause
diff --git
a/regression-test/suites/query/aggregate/aggregate_group_by_hll_and_bitmap.groovy
b/regression-test/suites/query/aggregate/aggregate_group_by_hll_and_bitmap.groovy
new file mode 100644
index 0000000000..be00387ef8
--- /dev/null
+++
b/regression-test/suites/query/aggregate/aggregate_group_by_hll_and_bitmap.groovy
@@ -0,0 +1,39 @@
+// 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("aggregate_group_by_hll_and_bitmap") {
+ sql "DROP TABLE IF EXISTS test_group_by_hll_and_bitmap"
+
+ sql """
+ CREATE TABLE test_group_by_hll_and_bitmap (id int, user_ids bitmap
bitmap_union, hll_set hll hll_union)
+ ENGINE=OLAP DISTRIBUTED BY HASH(`id`) BUCKETS 5
properties("replication_num" = "1");
+ """
+
+ sql "insert into test_group_by_hll_and_bitmap values(1, bitmap_hash(1),
hll_hash(1))"
+
+ test {
+ sql "select distinct user_ids from test_group_by_hll_and_bitmap"
+ exception "Doris hll and bitmap column must use with specific
function, and don't support filter or group by.please run 'help hll' or 'help
bitmap' in your mysql client"
+ }
+
+ test {
+ sql "select distinct hll_set from test_group_by_hll_and_bitmap"
+ exception "Doris hll and bitmap column must use with specific
function, and don't support filter or group by.please run 'help hll' or 'help
bitmap' in your mysql client"
+ }
+
+ sql "DROP TABLE test_group_by_hll_and_bitmap"
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]