mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
InfluxDB: flux query result can cause crash (#26329)
This commit is contained in:
parent
72cd9a3222
commit
1f271d06e9
2
go.mod
2
go.mod
@ -36,7 +36,7 @@ require (
|
||||
github.com/gorilla/websocket v1.4.1
|
||||
github.com/gosimple/slug v1.4.2
|
||||
github.com/grafana/grafana-plugin-model v0.0.0-20190930120109-1fc953a61fb4
|
||||
github.com/grafana/grafana-plugin-sdk-go v0.74.0
|
||||
github.com/grafana/grafana-plugin-sdk-go v0.75.0
|
||||
github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd
|
||||
github.com/hashicorp/go-plugin v1.2.2
|
||||
github.com/hashicorp/go-version v1.1.0
|
||||
|
4
go.sum
4
go.sum
@ -199,8 +199,8 @@ github.com/gosimple/slug v1.4.2 h1:jDmprx3q/9Lfk4FkGZtvzDQ9Cj9eAmsjzeQGp24PeiQ=
|
||||
github.com/gosimple/slug v1.4.2/go.mod h1:ER78kgg1Mv0NQGlXiDe57DpCyfbNywXXZ9mIorhxAf0=
|
||||
github.com/grafana/grafana-plugin-model v0.0.0-20190930120109-1fc953a61fb4 h1:SPdxCL9BChFTlyi0Khv64vdCW4TMna8+sxL7+Chx+Ag=
|
||||
github.com/grafana/grafana-plugin-model v0.0.0-20190930120109-1fc953a61fb4/go.mod h1:nc0XxBzjeGcrMltCDw269LoWF9S8ibhgxolCdA1R8To=
|
||||
github.com/grafana/grafana-plugin-sdk-go v0.74.0 h1:UdyX8dJ5HoM8JoUk6I7zIt7rFbjkAeAXVbqQRDxZ5Eg=
|
||||
github.com/grafana/grafana-plugin-sdk-go v0.74.0/go.mod h1:NvxLzGkVhnoBKwzkst6CFfpMFKwAdIUZ1q8ssuLeF60=
|
||||
github.com/grafana/grafana-plugin-sdk-go v0.75.0 h1:b0Ugpn88VNx17Q8MA1MsWkD3ddBEbRvFxzid+Nka3F0=
|
||||
github.com/grafana/grafana-plugin-sdk-go v0.75.0/go.mod h1:NvxLzGkVhnoBKwzkst6CFfpMFKwAdIUZ1q8ssuLeF60=
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.2.0 h1:0IKlLyQ3Hs9nDaiK5cSHAGmcQEIC8l2Ts1u6x5Dfrqg=
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s=
|
||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
|
||||
|
@ -52,9 +52,9 @@ func getConverter(t string) (*data.FieldConverter, error) {
|
||||
case stringDatatype:
|
||||
return &AnyToOptionalString, nil
|
||||
case timeDatatypeRFC:
|
||||
return &Int64ToOptionalInt64, nil
|
||||
return &TimeToOptionalTime, nil
|
||||
case timeDatatypeRFCNano:
|
||||
return &Int64ToOptionalInt64, nil
|
||||
return &TimeToOptionalTime, nil
|
||||
case durationDatatype:
|
||||
return &Int64ToOptionalInt64, nil
|
||||
case doubleDatatype:
|
||||
|
@ -100,6 +100,21 @@ var BoolToOptionalBool = data.FieldConverter{
|
||||
},
|
||||
}
|
||||
|
||||
// TimeToOptionalTime optional int value
|
||||
var TimeToOptionalTime = data.FieldConverter{
|
||||
OutputFieldType: data.FieldTypeNullableTime,
|
||||
Converter: func(v interface{}) (interface{}, error) {
|
||||
if v == nil {
|
||||
return nil, nil
|
||||
}
|
||||
val, ok := v.(time.Time)
|
||||
if !ok { // or return some default value instead of erroring
|
||||
return nil, fmt.Errorf("[time] expected time input but got type %T", v)
|
||||
}
|
||||
return &val, nil
|
||||
},
|
||||
}
|
||||
|
||||
// RFC3339StringToNullableTime .....
|
||||
func RFC3339StringToNullableTime(s string) (*time.Time, error) {
|
||||
if s == "" {
|
||||
|
@ -261,3 +261,12 @@ func TestBuckets(t *testing.T) {
|
||||
fmt.Println("----------------------")
|
||||
})
|
||||
}
|
||||
|
||||
func TestGoldenFiles(t *testing.T) {
|
||||
t.Run("Renamed", func(t *testing.T) {
|
||||
_, err := verifyGoldenResponse("renamed")
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
})
|
||||
}
|
||||
|
24
pkg/tsdb/influxdb/flux/testdata/renamed.csv
vendored
Normal file
24
pkg/tsdb/influxdb/flux/testdata/renamed.csv
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
#group,false,false,false,false
|
||||
#datatype,string,long,double,dateTime:RFC3339
|
||||
#default,_result,,,
|
||||
,result,table,MeanAggregate,time
|
||||
,,0,0,2020-07-14T03:26:31Z
|
||||
,,0,0,2020-07-14T03:26:32Z
|
||||
,,0,0,2020-07-14T03:26:35Z
|
||||
,,0,0,2020-07-14T03:29:33Z
|
||||
,,0,29.38586956521739,2020-07-14T04:59:41Z
|
||||
,,0,0,2020-07-14T05:04:24Z
|
||||
,,0,7.306756756756757,2020-07-14T05:04:25Z
|
||||
,,0,3.633736559139785,2020-07-14T05:04:26Z
|
||||
,,0,3.6143048128342246,2020-07-14T05:04:27Z
|
||||
,,0,3.5950797872340425,2020-07-14T05:04:28Z
|
||||
,,0,2.013780260707635,2020-07-14T10:14:01Z
|
||||
,,0,9.1166908290378,2020-07-14T11:43:56Z
|
||||
,,0,0,2020-07-14T11:47:43Z
|
||||
,,0,0,2020-07-14T11:47:44Z
|
||||
,,0,0,2020-07-14T11:47:45Z
|
||||
,,0,0,2020-07-14T11:47:46Z
|
||||
,,0,0,2020-07-14T11:47:47Z
|
||||
,,0,1.5051560758082496,2020-07-14T11:47:48Z
|
||||
,,0,2.022162706401263,2020-07-14T11:47:49Z
|
||||
,,0,2.019892437805675,2020-07-14T11:47:50Z
|
|
25
pkg/tsdb/influxdb/flux/testdata/renamed.golden.txt
vendored
Normal file
25
pkg/tsdb/influxdb/flux/testdata/renamed.golden.txt
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
🌟 This was machine generated. Do not edit. 🌟
|
||||
|
||||
Frame[0] {}
|
||||
Name:
|
||||
Dimensions: 4 Fields by 20 Rows
|
||||
+-----------------+----------------+---------------------+-------------------------------+
|
||||
| Name: result | Name: table | Name: MeanAggregate | Name: time |
|
||||
| Labels: | Labels: | Labels: | Labels: |
|
||||
| Type: []*string | Type: []*int64 | Type: []*float64 | Type: []*time.Time |
|
||||
+-----------------+----------------+---------------------+-------------------------------+
|
||||
| _result | 0 | 0 | 2020-07-14 03:26:31 +0000 UTC |
|
||||
| _result | 0 | 0 | 2020-07-14 03:26:32 +0000 UTC |
|
||||
| _result | 0 | 0 | 2020-07-14 03:26:35 +0000 UTC |
|
||||
| _result | 0 | 0 | 2020-07-14 03:29:33 +0000 UTC |
|
||||
| _result | 0 | 29.38586956521739 | 2020-07-14 04:59:41 +0000 UTC |
|
||||
| _result | 0 | 0 | 2020-07-14 05:04:24 +0000 UTC |
|
||||
| _result | 0 | 7.306756756756757 | 2020-07-14 05:04:25 +0000 UTC |
|
||||
| _result | 0 | 3.633736559139785 | 2020-07-14 05:04:26 +0000 UTC |
|
||||
| _result | 0 | 3.6143048128342246 | 2020-07-14 05:04:27 +0000 UTC |
|
||||
| ... | ... | ... | ... |
|
||||
+-----------------+----------------+---------------------+-------------------------------+
|
||||
|
||||
|
||||
====== TEST DATA RESPONSE (arrow base64) ======
|
||||
FRAME=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
|
Loading…
Reference in New Issue
Block a user