InfluxDB: flux query result can cause crash (#26329)
This commit is contained in:
@@ -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
@@ -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
|
||||
|
@@ -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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
|
||||
Reference in New Issue
Block a user