// Return the number of dropped ticks from filtering. if the series // had more than one alias, returns the min of all dropped ticks func (self *LevelDbDatastore) sendBatch(query *parser.SelectQuery, series *protocol.Series, yield func(series *protocol.Series) error) (int, error) { dropped := int(math.MaxInt32) for _, alias := range query.GetTableAliases(*series.Name) { _alias := alias newSeries := &protocol.Series{Name: &_alias, Points: series.Points, Fields: series.Fields} lengthBeforeFiltering := len(newSeries.Points) var filteredResult *protocol.Series var err error if query.GetFromClause().Type == parser.FromClauseInnerJoin { filteredResult = newSeries } else { filteredResult, err = Filter(query, newSeries) if err != nil { return 0, err } } _dropped := lengthBeforeFiltering - len(filteredResult.Points) if _dropped < dropped { dropped = _dropped } if err := yield(filteredResult); err != nil { return 0, err } } return dropped, nil }