本文整理汇总了Golang中github.com/influxdb/influxdb/protocol.Series.Fields方法的典型用法代码示例。如果您正苦于以下问题:Golang Series.Fields方法的具体用法?Golang Series.Fields怎么用?Golang Series.Fields使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/influxdb/influxdb/protocol.Series
的用法示例。
在下文中一共展示了Series.Fields方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: fixFields
// modify the series to have the union of the columns from all
// StreamQueries
func (cme *Merger) fixFields(s *protocol.Series) {
if !cme.mergeColumns {
return
}
idx := cme.lastStreamIdx
mapping := cme.resultFieldsPerStream[idx]
if mapping == nil {
for _, f := range cme.resultFields {
index := -1
for i, sf := range s.Fields {
if sf == f {
index = i
break
}
}
mapping = append(mapping, index)
cme.resultFieldsPerStream[idx] = mapping
}
}
s.Fields = cme.resultFields
p := s.Points[0]
originalValues := p.Values
p.Values = nil
for _, i := range mapping {
if i == -1 {
p.Values = append(p.Values, nil)
continue
}
p.Values = append(p.Values, originalValues[i])
}
}
示例2: Yield
func (me *MergeEngine) Yield(s *protocol.Series) (bool, error) {
oldName := s.Name
s.Name = &me.name
s.Fields = append(s.Fields, "_orig_series")
for _, p := range s.Points {
p.Values = append(p.Values, &protocol.FieldValue{StringValue: oldName})
}
return me.next.Yield(s)
}
示例3: Filter
func Filter(query *parser.SelectQuery, series *protocol.Series) (*protocol.Series, error) {
if query.GetWhereCondition() == nil {
return series, nil
}
columns := map[string]struct{}{}
if query.GetFromClause().Type == parser.FromClauseInnerJoin {
outer:
for t, cs := range query.GetResultColumns() {
for _, c := range cs {
// if this is a wildcard select, then drop all columns and
// just use '*'
if c == "*" {
columns = make(map[string]struct{}, 1)
columns[c] = struct{}{}
break outer
}
columns[t.Name+"."+c] = struct{}{}
}
}
} else {
for _, cs := range query.GetResultColumns() {
for _, c := range cs {
columns[c] = struct{}{}
}
}
}
points := series.Points
series.Points = nil
for _, point := range points {
ok, err := matches(query.GetWhereCondition(), series.Fields, point)
if err != nil {
return nil, err
}
if ok {
filterColumns(columns, series.Fields, point)
series.Points = append(series.Points, point)
}
}
if _, ok := columns["*"]; !ok {
newFields := []string{}
for _, f := range series.Fields {
if _, ok := columns[f]; !ok {
continue
}
newFields = append(newFields, f)
}
series.Fields = newFields
}
return series, nil
}