30 lines
774 B
Go
30 lines
774 B
Go
package functions
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/influxdata/platform/query"
|
|
"github.com/influxdata/platform/query/semantic"
|
|
"github.com/influxdata/platform/query/values"
|
|
)
|
|
|
|
var systemTimeFuncName = "systemTime"
|
|
|
|
func init() {
|
|
nowFunc := SystemTime()
|
|
query.RegisterBuiltInValue(systemTimeFuncName, nowFunc)
|
|
}
|
|
|
|
// SystemTime return a function value that when called will give the current system time
|
|
func SystemTime() values.Value {
|
|
name := systemTimeFuncName
|
|
ftype := semantic.NewFunctionType(semantic.FunctionSignature{
|
|
ReturnType: semantic.Time,
|
|
})
|
|
call := func(args values.Object) (values.Value, error) {
|
|
return values.NewTimeValue(values.ConvertTime(time.Now().UTC())), nil
|
|
}
|
|
sideEffect := false
|
|
return values.NewFunction(name, ftype, call, sideEffect)
|
|
}
|