[postgres] fix timeGroup macro rounding (#12468)

* fix timeGroup tests to check for correct grouping

* do explicit floor rounding in $__timeGroup macro

* fix typo in comments
This commit is contained in:
Sven Klemm
2018-07-01 15:55:46 +02:00
committed by Torkel Ödegaard
parent c03d527d25
commit c2c22c142b
3 changed files with 20 additions and 12 deletions

View File

@ -189,21 +189,23 @@ func TestPostgres(t *testing.T) {
So(queryResult.Error, ShouldBeNil)
points := queryResult.Series[0].Points
So(len(points), ShouldEqual, 6)
// without fill this should result in 4 buckets
So(len(points), ShouldEqual, 4)
dt := fromStart
for i := 0; i < 3; i++ {
for i := 0; i < 2; i++ {
aValue := points[i][0].Float64
aTime := time.Unix(int64(points[i][1].Float64)/1000, 0)
So(aValue, ShouldEqual, 15)
So(aTime, ShouldEqual, dt)
So(aTime.Unix()%300, ShouldEqual, 0)
dt = dt.Add(5 * time.Minute)
}
// adjust for 5 minute gap
dt = dt.Add(5 * time.Minute)
for i := 3; i < 6; i++ {
// adjust for 10 minute gap between first and second set of points
dt = dt.Add(10 * time.Minute)
for i := 2; i < 4; i++ {
aValue := points[i][0].Float64
aTime := time.Unix(int64(points[i][1].Float64)/1000, 0)
So(aValue, ShouldEqual, 20)
@ -239,7 +241,7 @@ func TestPostgres(t *testing.T) {
dt := fromStart
for i := 0; i < 3; i++ {
for i := 0; i < 2; i++ {
aValue := points[i][0].Float64
aTime := time.Unix(int64(points[i][1].Float64)/1000, 0)
So(aValue, ShouldEqual, 15)
@ -247,17 +249,23 @@ func TestPostgres(t *testing.T) {
dt = dt.Add(5 * time.Minute)
}
// check for NULL values inserted by fill
So(points[2][0].Valid, ShouldBeFalse)
So(points[3][0].Valid, ShouldBeFalse)
// adjust for 5 minute gap
dt = dt.Add(5 * time.Minute)
for i := 4; i < 7; i++ {
// adjust for 10 minute gap between first and second set of points
dt = dt.Add(10 * time.Minute)
for i := 4; i < 6; i++ {
aValue := points[i][0].Float64
aTime := time.Unix(int64(points[i][1].Float64)/1000, 0)
So(aValue, ShouldEqual, 20)
So(aTime, ShouldEqual, dt)
dt = dt.Add(5 * time.Minute)
}
// check for NULL values inserted by fill
So(points[6][0].Valid, ShouldBeFalse)
})
Convey("When doing a metric query using timeGroup with float fill enabled", func() {