mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
move timeFrom, timeTo, unixEpochFrom and unixEpochTo macros to sql_engine
This commit is contained in:
parent
6cdfff52f7
commit
94d6d51726
@ -66,10 +66,6 @@ func (m *msSqlMacroEngine) evaluateMacro(name string, args []string) (string, er
|
|||||||
}
|
}
|
||||||
|
|
||||||
return fmt.Sprintf("%s BETWEEN '%s' AND '%s'", args[0], m.timeRange.GetFromAsTimeUTC().Format(time.RFC3339), m.timeRange.GetToAsTimeUTC().Format(time.RFC3339)), nil
|
return fmt.Sprintf("%s BETWEEN '%s' AND '%s'", args[0], m.timeRange.GetFromAsTimeUTC().Format(time.RFC3339), m.timeRange.GetToAsTimeUTC().Format(time.RFC3339)), nil
|
||||||
case "__timeFrom":
|
|
||||||
return fmt.Sprintf("'%s'", m.timeRange.GetFromAsTimeUTC().Format(time.RFC3339)), nil
|
|
||||||
case "__timeTo":
|
|
||||||
return fmt.Sprintf("'%s'", m.timeRange.GetToAsTimeUTC().Format(time.RFC3339)), nil
|
|
||||||
case "__timeGroup":
|
case "__timeGroup":
|
||||||
if len(args) < 2 {
|
if len(args) < 2 {
|
||||||
return "", fmt.Errorf("macro %v needs time column and interval", name)
|
return "", fmt.Errorf("macro %v needs time column and interval", name)
|
||||||
@ -96,10 +92,6 @@ func (m *msSqlMacroEngine) evaluateMacro(name string, args []string) (string, er
|
|||||||
return "", fmt.Errorf("missing time column argument for macro %v", name)
|
return "", fmt.Errorf("missing time column argument for macro %v", name)
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("%s >= %d AND %s <= %d", args[0], m.timeRange.GetFromAsSecondsEpoch(), args[0], m.timeRange.GetToAsSecondsEpoch()), nil
|
return fmt.Sprintf("%s >= %d AND %s <= %d", args[0], m.timeRange.GetFromAsSecondsEpoch(), args[0], m.timeRange.GetToAsSecondsEpoch()), nil
|
||||||
case "__unixEpochFrom":
|
|
||||||
return fmt.Sprintf("%d", m.timeRange.GetFromAsSecondsEpoch()), nil
|
|
||||||
case "__unixEpochTo":
|
|
||||||
return fmt.Sprintf("%d", m.timeRange.GetToAsSecondsEpoch()), nil
|
|
||||||
case "__unixEpochGroup":
|
case "__unixEpochGroup":
|
||||||
if len(args) < 2 {
|
if len(args) < 2 {
|
||||||
return "", fmt.Errorf("macro %v needs time column and interval and optional fill value", name)
|
return "", fmt.Errorf("macro %v needs time column and interval and optional fill value", name)
|
||||||
|
@ -111,20 +111,6 @@ func TestMacroEngine(t *testing.T) {
|
|||||||
So(fillInterval, ShouldEqual, 5*time.Minute.Seconds())
|
So(fillInterval, ShouldEqual, 5*time.Minute.Seconds())
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __timeFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__timeFrom(time_column)")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select '%s'", from.Format(time.RFC3339)))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __timeTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__timeTo(time_column)")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select '%s'", to.Format(time.RFC3339)))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFilter function", func() {
|
Convey("interpolate __unixEpochFilter function", func() {
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFilter(time_column)")
|
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFilter(time_column)")
|
||||||
So(err, ShouldBeNil)
|
So(err, ShouldBeNil)
|
||||||
@ -132,20 +118,6 @@ func TestMacroEngine(t *testing.T) {
|
|||||||
So(sql, ShouldEqual, fmt.Sprintf("select time_column >= %d AND time_column <= %d", from.Unix(), to.Unix()))
|
So(sql, ShouldEqual, fmt.Sprintf("select time_column >= %d AND time_column <= %d", from.Unix(), to.Unix()))
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFrom()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", from.Unix()))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochTo()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", to.Unix()))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochGroup function", func() {
|
Convey("interpolate __unixEpochGroup function", func() {
|
||||||
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "SELECT $__unixEpochGroup(time_column,'5m')")
|
sql, err := engine.Interpolate(query, timeRange, "SELECT $__unixEpochGroup(time_column,'5m')")
|
||||||
@ -191,20 +163,6 @@ func TestMacroEngine(t *testing.T) {
|
|||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select time_column >= %d AND time_column <= %d", from.Unix(), to.Unix()))
|
So(sql, ShouldEqual, fmt.Sprintf("select time_column >= %d AND time_column <= %d", from.Unix(), to.Unix()))
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFrom()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", from.Unix()))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochTo()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", to.Unix()))
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("Given a time range between 1960-02-01 07:00 and 1980-02-03 08:00", func() {
|
Convey("Given a time range between 1960-02-01 07:00 and 1980-02-03 08:00", func() {
|
||||||
@ -239,20 +197,6 @@ func TestMacroEngine(t *testing.T) {
|
|||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select time_column >= %d AND time_column <= %d", from.Unix(), to.Unix()))
|
So(sql, ShouldEqual, fmt.Sprintf("select time_column >= %d AND time_column <= %d", from.Unix(), to.Unix()))
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFrom()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", from.Unix()))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochTo()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", to.Unix()))
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -61,10 +61,6 @@ func (m *mySqlMacroEngine) evaluateMacro(name string, args []string) (string, er
|
|||||||
}
|
}
|
||||||
|
|
||||||
return fmt.Sprintf("%s BETWEEN '%s' AND '%s'", args[0], m.timeRange.GetFromAsTimeUTC().Format(time.RFC3339), m.timeRange.GetToAsTimeUTC().Format(time.RFC3339)), nil
|
return fmt.Sprintf("%s BETWEEN '%s' AND '%s'", args[0], m.timeRange.GetFromAsTimeUTC().Format(time.RFC3339), m.timeRange.GetToAsTimeUTC().Format(time.RFC3339)), nil
|
||||||
case "__timeFrom":
|
|
||||||
return fmt.Sprintf("'%s'", m.timeRange.GetFromAsTimeUTC().Format(time.RFC3339)), nil
|
|
||||||
case "__timeTo":
|
|
||||||
return fmt.Sprintf("'%s'", m.timeRange.GetToAsTimeUTC().Format(time.RFC3339)), nil
|
|
||||||
case "__timeGroup":
|
case "__timeGroup":
|
||||||
if len(args) < 2 {
|
if len(args) < 2 {
|
||||||
return "", fmt.Errorf("macro %v needs time column and interval", name)
|
return "", fmt.Errorf("macro %v needs time column and interval", name)
|
||||||
@ -91,10 +87,6 @@ func (m *mySqlMacroEngine) evaluateMacro(name string, args []string) (string, er
|
|||||||
return "", fmt.Errorf("missing time column argument for macro %v", name)
|
return "", fmt.Errorf("missing time column argument for macro %v", name)
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("%s >= %d AND %s <= %d", args[0], m.timeRange.GetFromAsSecondsEpoch(), args[0], m.timeRange.GetToAsSecondsEpoch()), nil
|
return fmt.Sprintf("%s >= %d AND %s <= %d", args[0], m.timeRange.GetFromAsSecondsEpoch(), args[0], m.timeRange.GetToAsSecondsEpoch()), nil
|
||||||
case "__unixEpochFrom":
|
|
||||||
return fmt.Sprintf("%d", m.timeRange.GetFromAsSecondsEpoch()), nil
|
|
||||||
case "__unixEpochTo":
|
|
||||||
return fmt.Sprintf("%d", m.timeRange.GetToAsSecondsEpoch()), nil
|
|
||||||
case "__unixEpochGroup":
|
case "__unixEpochGroup":
|
||||||
if len(args) < 2 {
|
if len(args) < 2 {
|
||||||
return "", fmt.Errorf("macro %v needs time column and interval and optional fill value", name)
|
return "", fmt.Errorf("macro %v needs time column and interval and optional fill value", name)
|
||||||
|
@ -63,20 +63,6 @@ func TestMacroEngine(t *testing.T) {
|
|||||||
So(sql, ShouldEqual, fmt.Sprintf("WHERE time_column BETWEEN '%s' AND '%s'", from.Format(time.RFC3339), to.Format(time.RFC3339)))
|
So(sql, ShouldEqual, fmt.Sprintf("WHERE time_column BETWEEN '%s' AND '%s'", from.Format(time.RFC3339), to.Format(time.RFC3339)))
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __timeFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__timeFrom(time_column)")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select '%s'", from.Format(time.RFC3339)))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __timeTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__timeTo(time_column)")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select '%s'", to.Format(time.RFC3339)))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFilter function", func() {
|
Convey("interpolate __unixEpochFilter function", func() {
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFilter(time)")
|
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFilter(time)")
|
||||||
So(err, ShouldBeNil)
|
So(err, ShouldBeNil)
|
||||||
@ -84,20 +70,6 @@ func TestMacroEngine(t *testing.T) {
|
|||||||
So(sql, ShouldEqual, fmt.Sprintf("select time >= %d AND time <= %d", from.Unix(), to.Unix()))
|
So(sql, ShouldEqual, fmt.Sprintf("select time >= %d AND time <= %d", from.Unix(), to.Unix()))
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFrom()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", from.Unix()))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochTo()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", to.Unix()))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochGroup function", func() {
|
Convey("interpolate __unixEpochGroup function", func() {
|
||||||
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "SELECT $__unixEpochGroup(time_column,'5m')")
|
sql, err := engine.Interpolate(query, timeRange, "SELECT $__unixEpochGroup(time_column,'5m')")
|
||||||
@ -143,20 +115,6 @@ func TestMacroEngine(t *testing.T) {
|
|||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select time >= %d AND time <= %d", from.Unix(), to.Unix()))
|
So(sql, ShouldEqual, fmt.Sprintf("select time >= %d AND time <= %d", from.Unix(), to.Unix()))
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFrom()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", from.Unix()))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochTo()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", to.Unix()))
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("Given a time range between 1960-02-01 07:00 and 1980-02-03 08:00", func() {
|
Convey("Given a time range between 1960-02-01 07:00 and 1980-02-03 08:00", func() {
|
||||||
@ -191,20 +149,6 @@ func TestMacroEngine(t *testing.T) {
|
|||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select time >= %d AND time <= %d", from.Unix(), to.Unix()))
|
So(sql, ShouldEqual, fmt.Sprintf("select time >= %d AND time <= %d", from.Unix(), to.Unix()))
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFrom()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", from.Unix()))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochTo()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", to.Unix()))
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -87,10 +87,6 @@ func (m *postgresMacroEngine) evaluateMacro(name string, args []string) (string,
|
|||||||
}
|
}
|
||||||
|
|
||||||
return fmt.Sprintf("%s BETWEEN '%s' AND '%s'", args[0], m.timeRange.GetFromAsTimeUTC().Format(time.RFC3339), m.timeRange.GetToAsTimeUTC().Format(time.RFC3339)), nil
|
return fmt.Sprintf("%s BETWEEN '%s' AND '%s'", args[0], m.timeRange.GetFromAsTimeUTC().Format(time.RFC3339), m.timeRange.GetToAsTimeUTC().Format(time.RFC3339)), nil
|
||||||
case "__timeFrom":
|
|
||||||
return fmt.Sprintf("'%s'", m.timeRange.GetFromAsTimeUTC().Format(time.RFC3339)), nil
|
|
||||||
case "__timeTo":
|
|
||||||
return fmt.Sprintf("'%s'", m.timeRange.GetToAsTimeUTC().Format(time.RFC3339)), nil
|
|
||||||
case "__timeGroup":
|
case "__timeGroup":
|
||||||
if len(args) < 2 {
|
if len(args) < 2 {
|
||||||
return "", fmt.Errorf("macro %v needs time column and interval and optional fill value", name)
|
return "", fmt.Errorf("macro %v needs time column and interval and optional fill value", name)
|
||||||
@ -122,10 +118,6 @@ func (m *postgresMacroEngine) evaluateMacro(name string, args []string) (string,
|
|||||||
return "", fmt.Errorf("missing time column argument for macro %v", name)
|
return "", fmt.Errorf("missing time column argument for macro %v", name)
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("%s >= %d AND %s <= %d", args[0], m.timeRange.GetFromAsSecondsEpoch(), args[0], m.timeRange.GetToAsSecondsEpoch()), nil
|
return fmt.Sprintf("%s >= %d AND %s <= %d", args[0], m.timeRange.GetFromAsSecondsEpoch(), args[0], m.timeRange.GetToAsSecondsEpoch()), nil
|
||||||
case "__unixEpochFrom":
|
|
||||||
return fmt.Sprintf("%d", m.timeRange.GetFromAsSecondsEpoch()), nil
|
|
||||||
case "__unixEpochTo":
|
|
||||||
return fmt.Sprintf("%d", m.timeRange.GetToAsSecondsEpoch()), nil
|
|
||||||
case "__unixEpochGroup":
|
case "__unixEpochGroup":
|
||||||
if len(args) < 2 {
|
if len(args) < 2 {
|
||||||
return "", fmt.Errorf("macro %v needs time column and interval and optional fill value", name)
|
return "", fmt.Errorf("macro %v needs time column and interval and optional fill value", name)
|
||||||
|
@ -44,13 +44,6 @@ func TestMacroEngine(t *testing.T) {
|
|||||||
So(sql, ShouldEqual, fmt.Sprintf("WHERE time_column BETWEEN '%s' AND '%s'", from.Format(time.RFC3339), to.Format(time.RFC3339)))
|
So(sql, ShouldEqual, fmt.Sprintf("WHERE time_column BETWEEN '%s' AND '%s'", from.Format(time.RFC3339), to.Format(time.RFC3339)))
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __timeFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__timeFrom(time_column)")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select '%s'", from.Format(time.RFC3339)))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __timeGroup function pre 5.3 compatibility", func() {
|
Convey("interpolate __timeGroup function pre 5.3 compatibility", func() {
|
||||||
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "SELECT $__timeGroup(time_column,'5m'), value")
|
sql, err := engine.Interpolate(query, timeRange, "SELECT $__timeGroup(time_column,'5m'), value")
|
||||||
@ -102,13 +95,6 @@ func TestMacroEngine(t *testing.T) {
|
|||||||
So(sql, ShouldEqual, "GROUP BY time_bucket('300s',time_column)")
|
So(sql, ShouldEqual, "GROUP BY time_bucket('300s',time_column)")
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __timeTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__timeTo(time_column)")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select '%s'", to.Format(time.RFC3339)))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFilter function", func() {
|
Convey("interpolate __unixEpochFilter function", func() {
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFilter(time)")
|
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFilter(time)")
|
||||||
So(err, ShouldBeNil)
|
So(err, ShouldBeNil)
|
||||||
@ -116,20 +102,6 @@ func TestMacroEngine(t *testing.T) {
|
|||||||
So(sql, ShouldEqual, fmt.Sprintf("select time >= %d AND time <= %d", from.Unix(), to.Unix()))
|
So(sql, ShouldEqual, fmt.Sprintf("select time >= %d AND time <= %d", from.Unix(), to.Unix()))
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFrom()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", from.Unix()))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochTo()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", to.Unix()))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochGroup function", func() {
|
Convey("interpolate __unixEpochGroup function", func() {
|
||||||
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "SELECT $__unixEpochGroup(time_column,'5m')")
|
sql, err := engine.Interpolate(query, timeRange, "SELECT $__unixEpochGroup(time_column,'5m')")
|
||||||
@ -155,40 +127,12 @@ func TestMacroEngine(t *testing.T) {
|
|||||||
So(sql, ShouldEqual, fmt.Sprintf("WHERE time_column BETWEEN '%s' AND '%s'", from.Format(time.RFC3339), to.Format(time.RFC3339)))
|
So(sql, ShouldEqual, fmt.Sprintf("WHERE time_column BETWEEN '%s' AND '%s'", from.Format(time.RFC3339), to.Format(time.RFC3339)))
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __timeFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__timeFrom(time_column)")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select '%s'", from.Format(time.RFC3339)))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __timeTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__timeTo(time_column)")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select '%s'", to.Format(time.RFC3339)))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFilter function", func() {
|
Convey("interpolate __unixEpochFilter function", func() {
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFilter(time)")
|
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFilter(time)")
|
||||||
So(err, ShouldBeNil)
|
So(err, ShouldBeNil)
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select time >= %d AND time <= %d", from.Unix(), to.Unix()))
|
So(sql, ShouldEqual, fmt.Sprintf("select time >= %d AND time <= %d", from.Unix(), to.Unix()))
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFrom()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", from.Unix()))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochTo()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", to.Unix()))
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("Given a time range between 1960-02-01 07:00 and 1980-02-03 08:00", func() {
|
Convey("Given a time range between 1960-02-01 07:00 and 1980-02-03 08:00", func() {
|
||||||
@ -203,40 +147,12 @@ func TestMacroEngine(t *testing.T) {
|
|||||||
So(sql, ShouldEqual, fmt.Sprintf("WHERE time_column BETWEEN '%s' AND '%s'", from.Format(time.RFC3339), to.Format(time.RFC3339)))
|
So(sql, ShouldEqual, fmt.Sprintf("WHERE time_column BETWEEN '%s' AND '%s'", from.Format(time.RFC3339), to.Format(time.RFC3339)))
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __timeFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__timeFrom(time_column)")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select '%s'", from.Format(time.RFC3339)))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __timeTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__timeTo(time_column)")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select '%s'", to.Format(time.RFC3339)))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFilter function", func() {
|
Convey("interpolate __unixEpochFilter function", func() {
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFilter(time)")
|
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFilter(time)")
|
||||||
So(err, ShouldBeNil)
|
So(err, ShouldBeNil)
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select time >= %d AND time <= %d", from.Unix(), to.Unix()))
|
So(sql, ShouldEqual, fmt.Sprintf("select time >= %d AND time <= %d", from.Unix(), to.Unix()))
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("interpolate __unixEpochFrom function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochFrom()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", from.Unix()))
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("interpolate __unixEpochTo function", func() {
|
|
||||||
sql, err := engine.Interpolate(query, timeRange, "select $__unixEpochTo()")
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
So(sql, ShouldEqual, fmt.Sprintf("select %d", to.Unix()))
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -184,6 +184,10 @@ var Interpolate = func(query *Query, timeRange *TimeRange, sql string) (string,
|
|||||||
|
|
||||||
sql = strings.Replace(sql, "$__interval_ms", strconv.FormatInt(interval.Milliseconds(), 10), -1)
|
sql = strings.Replace(sql, "$__interval_ms", strconv.FormatInt(interval.Milliseconds(), 10), -1)
|
||||||
sql = strings.Replace(sql, "$__interval", interval.Text, -1)
|
sql = strings.Replace(sql, "$__interval", interval.Text, -1)
|
||||||
|
sql = strings.Replace(sql, "$__timeFrom()", fmt.Sprintf("'%s'", timeRange.GetFromAsTimeUTC().Format(time.RFC3339)), -1)
|
||||||
|
sql = strings.Replace(sql, "$__timeTo()", fmt.Sprintf("'%s'", timeRange.GetToAsTimeUTC().Format(time.RFC3339)), -1)
|
||||||
|
sql = strings.Replace(sql, "$__unixEpochFrom()", fmt.Sprintf("%d", timeRange.GetFromAsSecondsEpoch()), -1)
|
||||||
|
sql = strings.Replace(sql, "$__unixEpochTo()", fmt.Sprintf("%d", timeRange.GetToAsSecondsEpoch()), -1)
|
||||||
|
|
||||||
return sql, nil
|
return sql, nil
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package tsdb
|
package tsdb
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -43,6 +44,34 @@ func TestSqlEngine(t *testing.T) {
|
|||||||
So(sql, ShouldEqual, "select 60000 ")
|
So(sql, ShouldEqual, "select 60000 ")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Convey("interpolate __timeFrom function", func() {
|
||||||
|
sql, err := Interpolate(query, timeRange, "select $__timeFrom()")
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
|
||||||
|
So(sql, ShouldEqual, fmt.Sprintf("select '%s'", from.Format(time.RFC3339)))
|
||||||
|
})
|
||||||
|
|
||||||
|
Convey("interpolate __timeTo function", func() {
|
||||||
|
sql, err := Interpolate(query, timeRange, "select $__timeTo()")
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
|
||||||
|
So(sql, ShouldEqual, fmt.Sprintf("select '%s'", to.Format(time.RFC3339)))
|
||||||
|
})
|
||||||
|
|
||||||
|
Convey("interpolate __unixEpochFrom function", func() {
|
||||||
|
sql, err := Interpolate(query, timeRange, "select $__unixEpochFrom()")
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
|
||||||
|
So(sql, ShouldEqual, fmt.Sprintf("select %d", from.Unix()))
|
||||||
|
})
|
||||||
|
|
||||||
|
Convey("interpolate __unixEpochTo function", func() {
|
||||||
|
sql, err := Interpolate(query, timeRange, "select $__unixEpochTo()")
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
|
||||||
|
So(sql, ShouldEqual, fmt.Sprintf("select %d", to.Unix()))
|
||||||
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("Given row values with time.Time as time columns", func() {
|
Convey("Given row values with time.Time as time columns", func() {
|
||||||
|
Loading…
Reference in New Issue
Block a user