fix postgres to have precision of ms (#33853)

This commit is contained in:
ying-jeanne
2021-05-10 22:22:13 +08:00
committed by GitHub
parent 382fcca530
commit 0b97cdcee1
2 changed files with 6 additions and 6 deletions

View File

@ -109,7 +109,7 @@ func (m *postgresMacroEngine) evaluateMacro(name string, args []string) (string,
}
if m.timescaledb {
return fmt.Sprintf("time_bucket('%.1fs',%s)", interval.Seconds(), args[0]), nil
return fmt.Sprintf("time_bucket('%.3fs',%s)", interval.Seconds(), args[0]), nil
}
return fmt.Sprintf(

View File

@ -91,25 +91,25 @@ func TestMacroEngine(t *testing.T) {
t.Run("interpolate __timeGroup function with TimescaleDB enabled", func(t *testing.T) {
sql, err := engineTS.Interpolate(query, timeRange, "GROUP BY $__timeGroup(time_column,'5m')")
require.NoError(t, err)
require.Equal(t, "GROUP BY time_bucket('300.0s',time_column)", sql)
require.Equal(t, "GROUP BY time_bucket('300.000s',time_column)", sql)
})
t.Run("interpolate __timeGroup function with spaces between args and TimescaleDB enabled", func(t *testing.T) {
sql, err := engineTS.Interpolate(query, timeRange, "GROUP BY $__timeGroup(time_column , '5m')")
require.NoError(t, err)
require.Equal(t, "GROUP BY time_bucket('300.0s',time_column)", sql)
require.Equal(t, "GROUP BY time_bucket('300.000s',time_column)", sql)
})
t.Run("interpolate __timeGroup function with large time range as an argument and TimescaleDB enabled", func(t *testing.T) {
sql, err := engineTS.Interpolate(query, timeRange, "GROUP BY $__timeGroup(time_column , '12d')")
require.NoError(t, err)
require.Equal(t, "GROUP BY time_bucket('1036800.0s',time_column)", sql)
require.Equal(t, "GROUP BY time_bucket('1036800.000s',time_column)", sql)
})
t.Run("interpolate __timeGroup function with small time range as an argument and TimescaleDB enabled", func(t *testing.T) {
sql, err := engineTS.Interpolate(query, timeRange, "GROUP BY $__timeGroup(time_column , '200ms')")
sql, err := engineTS.Interpolate(query, timeRange, "GROUP BY $__timeGroup(time_column , '20ms')")
require.NoError(t, err)
require.Equal(t, "GROUP BY time_bucket('0.2s',time_column)", sql)
require.Equal(t, "GROUP BY time_bucket('0.020s',time_column)", sql)
})
t.Run("interpolate __unixEpochFilter function", func(t *testing.T) {