diff --git a/executor/builder.go b/executor/builder.go index 3d15e06c8f..b62170d91e 100644 --- a/executor/builder.go +++ b/executor/builder.go @@ -377,9 +377,6 @@ func (b *executorBuilder) buildAggregate(v *plan.Aggregate) Executor { return nil } client := txn.GetClient() - if !client.SupportRequestType(kv.ReqTypeSelect, kv.ReqSubTypeAgg) { - return e - } if len(v.GroupByItems) > 0 && !client.SupportRequestType(kv.ReqTypeSelect, kv.ReqSubTypeGroupBy) { return e } diff --git a/kv/kv.go b/kv/kv.go index f6dc7497ab..a13c0dcfc8 100644 --- a/kv/kv.go +++ b/kv/kv.go @@ -111,8 +111,7 @@ const ( ReqSubTypeBasic = 0 ReqSubTypeDesc = 10000 - ReqSubTypeAgg = 10001 - ReqSubTypeGroupBy = 10002 + ReqSubTypeGroupBy = 10001 ) // KeyRange represents a range where StartKey <= key < EndKey. diff --git a/store/localstore/local_client.go b/store/localstore/local_client.go index ff5d04c3fe..dedf0b2562 100644 --- a/store/localstore/local_client.go +++ b/store/localstore/local_client.go @@ -39,7 +39,7 @@ func (c *dbClient) SupportRequestType(reqType, subType int64) bool { switch reqType { case kv.ReqTypeSelect: switch subType { - case kv.ReqSubTypeAgg: + case kv.ReqSubTypeGroupBy: return true default: return supportExpr(tipb.ExprType(subType)) diff --git a/store/tikv/coprocessor.go b/store/tikv/coprocessor.go index 9c1ea82f76..b68440ac9f 100644 --- a/store/tikv/coprocessor.go +++ b/store/tikv/coprocessor.go @@ -37,7 +37,12 @@ type CopClient struct { func (c *CopClient) SupportRequestType(reqType, subType int64) bool { switch reqType { case kv.ReqTypeSelect: - return supportExpr(tipb.ExprType(subType)) + switch subType { + case kv.ReqSubTypeGroupBy: + return true + default: + return supportExpr(tipb.ExprType(subType)) + } case kv.ReqTypeIndex: switch subType { case kv.ReqSubTypeDesc, kv.ReqSubTypeBasic: @@ -58,6 +63,8 @@ func supportExpr(exprType tipb.ExprType) bool { tipb.ExprType_In, tipb.ExprType_ValueList, tipb.ExprType_Like, tipb.ExprType_Not: return true + case tipb.ExprType_Count: + return true case kv.ReqSubTypeDesc: return true default: