@@ -3,82 +3,72 @@ package agg
33import (
44 "fmt"
55
6- "github.com/brimdata/super"
7- "github.com/brimdata/super/vector"
6+ "github.com/brimdata/super/runtime/vam/expr"
87)
98
10- type Func interface {
11- Consume (vector.Any )
12- ConsumeAsPartial (vector.Any )
13- Result (* super.Context ) vector.Any
14- ResultAsPartial (* super.Context ) vector.Any
15- }
16-
17- type Pattern func () Func
18-
19- func NewPattern (op string , distinct , hasarg bool ) (Pattern , error ) {
9+ func NewPattern (op string , distinct , hasarg bool ) (expr.AggPattern , error ) {
2010 needarg := true
21- var pattern Pattern
11+ var pattern expr. AggPattern
2212 switch op {
2313 case "count" :
2414 needarg = false
25- pattern = func () Func {
15+ pattern = func () expr. AggFunc {
2616 return & count {}
2717 }
2818 case "any" :
29- pattern = func () Func {
19+ pattern = func () expr. AggFunc {
3020 return NewAny ()
3121 }
3222 case "avg" :
33- pattern = func () Func {
23+ pattern = func () expr. AggFunc {
3424 return & avg {}
3525 }
3626 case "array_agg" :
37- pattern = func () Func {
27+ pattern = func () expr. AggFunc {
3828 return & arrayAgg {}
3929 }
4030 case "blend" :
41- pattern = func () Func {
31+ pattern = func () expr. AggFunc {
4232 return newFuse (false )
4333 }
4434 case "dcount" :
45- pattern = func () Func {
35+ pattern = func () expr. AggFunc {
4636 return newDCount ()
4737 }
4838 case "fuse" :
49- pattern = func () Func {
39+ pattern = func () expr. AggFunc {
5040 return newFuse (true )
5141 }
5242 case "sum" :
53- pattern = func () Func {
43+ pattern = func () expr. AggFunc {
5444 return newMathReducer (mathSum )
5545 }
5646 case "min" :
57- pattern = func () Func {
47+ pattern = func () expr. AggFunc {
5848 return newMathReducer (mathMin )
5949 }
6050 case "max" :
61- pattern = func () Func {
51+ pattern = func () expr. AggFunc {
6252 return newMathReducer (mathMax )
6353 }
6454 case "union" :
65- pattern = func () Func {
55+ pattern = func () expr. AggFunc {
6656 return newUnion ()
6757 }
6858 case "collect" :
69- pattern = func () Func {
59+ pattern = func () expr. AggFunc {
7060 return & collect {}
7161 }
7262 case "collect_map" :
73- pattern = func () Func {
63+ pattern = func () expr. AggFunc {
7464 return newCollectMap ()
7565 }
7666 case "and" :
77- pattern = func () Func {
67+ pattern = func () expr. AggFunc {
7868 return & and {}
7969 }
8070 case "or" :
81- pattern = func () Func {
71+ pattern = func () expr. AggFunc {
8272 return & or {}
8373 }
8474 default :
@@ -91,7 +81,7 @@ func NewPattern(op string, distinct, hasarg bool) (Pattern, error) {
9181 switch op {
9282 case "avg" , "collect" , "count" , "sum" :
9383 // Distinct affects only these functions.
94- return func () Func {
84+ return func () expr. AggFunc {
9585 return newDistinct (pattern ())
9686 }, nil
9787 }
0 commit comments