func (self *ShardData) ShouldAggregateLocally(querySpec *parser.QuerySpec) bool { f := querySpec.GetFromClause() if f != nil && (f.Type == parser.FromClauseInnerJoin || f.Type == parser.FromClauseMerge) { return false } if self.durationIsSplit && querySpec.ReadsFromMultipleSeries() { return false } groupByInterval := querySpec.GetGroupByInterval() if groupByInterval == nil { if querySpec.HasAggregates() { return false } return true } return self.shardDuration%*groupByInterval == 0 }