// set the fields of the other time series to null making sure that // the order of the null values match the order of the field // definitions, i.e. left timeseries first followed by values from the // right timeseries func (self *mergeState) getPoint(fields []string, p *protocol.Point) *protocol.Point { if !self.modifyValues { return p } newValues := make([]*protocol.FieldValue, len(self.fields)) oldValues := p.Values for idx, f := range fields { newIdx := self.fields[f] newValues[newIdx] = oldValues[idx] } p.Values = newValues return p }
func (self *CoordinatorImpl) normalizePointAndAppend(fieldNames map[string]int, result *protocol.Series, fields []string, point *protocol.Point) { oldValues := point.Values point.Values = make([]*protocol.FieldValue, len(fieldNames), len(fieldNames)) for index, field := range fields { indexForField, ok := fieldNames[field] // drop this point on the floor if the unexpected happens if !ok { log.Error("Couldn't lookup field: ", field, fields, fieldNames) return } point.Values[indexForField] = oldValues[index] } result.Points = append(result.Points, point) }
func filterColumns(columns map[string]bool, fields []string, point *protocol.Point) { if columns["*"] { return } newValues := []*protocol.FieldValue{} newFields := []string{} for idx, f := range fields { if _, ok := columns[f]; !ok { continue } newValues = append(newValues, point.Values[idx]) newFields = append(newFields, f) } point.Values = newValues }