Use values instead of pointers for DAL aggregate attributes

This commit is contained in:
Tomaž Jerman
2022-10-12 09:16:40 +02:00
parent 01c6f7cc6e
commit 2bd455cab7
+3 -3
View File
@@ -248,7 +248,7 @@ func (d *model) Search(f filter.Filter) (i *iterator, err error) {
// expressions when constructing expressions & columns to select from.
//
// Passing in filter with cursor, empty groupBy or aggrExpr slice will result in an error
func (d *model) Aggregate(f filter.Filter, groupBy []*dal.AggregateAttr, aggrExpr []*dal.AggregateAttr, having *ql.ASTNode) (i *iterator, err error) {
func (d *model) Aggregate(f filter.Filter, groupBy []dal.AggregateAttr, aggrExpr []dal.AggregateAttr, having *ql.ASTNode) (i *iterator, err error) {
if len(groupBy) == 0 {
return nil, fmt.Errorf("can not run aggregation without group-by")
}
@@ -488,7 +488,7 @@ func (d *model) searchSql(f filter.Filter) *goqu.SelectDataset {
return base.Where(cnd...)
}
func (d *model) aggregateSql(f filter.Filter, groupBy []*dal.AggregateAttr, out []*dal.AggregateAttr, having *ql.ASTNode) (q *goqu.SelectDataset) {
func (d *model) aggregateSql(f filter.Filter, groupBy []dal.AggregateAttr, out []dal.AggregateAttr, having *ql.ASTNode) (q *goqu.SelectDataset) {
// get SELECT query based on
// the given filter
q = d.searchSql(f)
@@ -499,7 +499,7 @@ func (d *model) aggregateSql(f filter.Filter, groupBy []*dal.AggregateAttr, out
selected []any
field = func(c *dal.AggregateAttr) (expr exp.Expression, err error) {
field = func(c dal.AggregateAttr) (expr exp.Expression, err error) {
switch {
case len(c.RawExpr) > 0:
// @todo could probably be removed since RawExpr is only a temporary solution?