From 0b97cdcee1ab23f78ec7234a91eeac483d13c6c9 Mon Sep 17 00:00:00 2001 From: ying-jeanne <74549700+ying-jeanne@users.noreply.github.com> Date: Mon, 10 May 2021 22:22:13 +0800 Subject: [PATCH] fix postgres to have precision of ms (#33853) --- pkg/tsdb/postgres/macros.go | 2 +- pkg/tsdb/postgres/macros_test.go | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/tsdb/postgres/macros.go b/pkg/tsdb/postgres/macros.go index a21e9816bf5..5964330a8c7 100644 --- a/pkg/tsdb/postgres/macros.go +++ b/pkg/tsdb/postgres/macros.go @@ -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( diff --git a/pkg/tsdb/postgres/macros_test.go b/pkg/tsdb/postgres/macros_test.go index 53418e86f55..cf4696f0416 100644 --- a/pkg/tsdb/postgres/macros_test.go +++ b/pkg/tsdb/postgres/macros_test.go @@ -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) {