Add scalar() function.
Change-Id: I1d1183e926a18fc98c9e94bbb9a808a3fb313102
This commit is contained in:
parent
e26d3437fd
commit
be8024e18c
|
@ -16,6 +16,7 @@ package ast
|
|||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"math"
|
||||
"sort"
|
||||
"time"
|
||||
|
||||
|
@ -255,6 +256,15 @@ func sampleVectorImpl(timestamp time.Time, view *viewAdapter, args []Node) inter
|
|||
}
|
||||
}
|
||||
|
||||
// === scalar(node *VectorNode) Scalar ===
|
||||
func scalarImpl(timestamp time.Time, view *viewAdapter, args []Node) interface{} {
|
||||
v := args[0].(VectorNode).Eval(timestamp, view)
|
||||
if len(v) != 1 {
|
||||
return clientmodel.SampleValue(math.NaN())
|
||||
}
|
||||
return clientmodel.SampleValue(v[0].Value)
|
||||
}
|
||||
|
||||
var functions = map[string]*Function{
|
||||
"delta": {
|
||||
name: "delta",
|
||||
|
@ -274,6 +284,12 @@ var functions = map[string]*Function{
|
|||
returnType: VECTOR,
|
||||
callFn: sampleVectorImpl,
|
||||
},
|
||||
"scalar": {
|
||||
name: "scalar",
|
||||
argTypes: []ExprType{VECTOR},
|
||||
returnType: SCALAR,
|
||||
callFn: scalarImpl,
|
||||
},
|
||||
"sort": {
|
||||
name: "sort",
|
||||
argTypes: []ExprType{VECTOR},
|
||||
|
|
Loading…
Reference in New Issue