mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
InfluxDB: return a table rather than an error when timeseries is missing time (#27320)
This commit is contained in:
parent
ff1149ac39
commit
0bc67b032a
@ -119,40 +119,42 @@ func (fb *frameBuilder) Init(metadata *query.FluxTableMetadata) error {
|
||||
}
|
||||
}
|
||||
|
||||
// Timeseries has a "_value" and a time
|
||||
if fb.isTimeSeries {
|
||||
col := getTimeSeriesTimeColumn(columns)
|
||||
if col == nil {
|
||||
return fmt.Errorf("no time column in timeSeries")
|
||||
}
|
||||
|
||||
fb.timeColumn = col.Name()
|
||||
fb.timeDisplay = "Time"
|
||||
if "_time" != fb.timeColumn {
|
||||
fb.timeDisplay = col.Name()
|
||||
}
|
||||
} else {
|
||||
fb.labels = make([]string, 0)
|
||||
for _, col := range columns {
|
||||
// Skip the result column
|
||||
if col.Index() == 0 && col.Name() == "result" && col.DataType() == stringDatatype {
|
||||
continue
|
||||
if col != nil {
|
||||
fb.timeColumn = col.Name()
|
||||
fb.timeDisplay = "Time"
|
||||
if "_time" != fb.timeColumn {
|
||||
fb.timeDisplay = col.Name()
|
||||
}
|
||||
if col.Index() == 1 && col.Name() == "table" && col.DataType() == longDatatype {
|
||||
continue
|
||||
}
|
||||
|
||||
converter, err := getConverter(col.DataType())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fb.columns = append(fb.columns, columnInfo{
|
||||
name: col.Name(),
|
||||
converter: converter,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// reset any timeseries properties
|
||||
fb.value = nil
|
||||
fb.isTimeSeries = false
|
||||
fb.labels = make([]string, 0)
|
||||
for _, col := range columns {
|
||||
// Skip the result column
|
||||
if col.Index() == 0 && col.Name() == "result" && col.DataType() == stringDatatype {
|
||||
continue
|
||||
}
|
||||
if col.Index() == 1 && col.Name() == "table" && col.DataType() == longDatatype {
|
||||
continue
|
||||
}
|
||||
|
||||
converter, err := getConverter(col.DataType())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fb.columns = append(fb.columns, columnInfo{
|
||||
name: col.Name(),
|
||||
converter: converter,
|
||||
})
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -87,6 +87,13 @@ func TestExecuteSimple(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
func TestExecuteSingle(t *testing.T) {
|
||||
t.Run("Single value", func(t *testing.T) {
|
||||
dr := verifyGoldenResponse(t, "single")
|
||||
require.Len(t, dr.Frames, 1)
|
||||
})
|
||||
}
|
||||
|
||||
func TestExecuteMultiple(t *testing.T) {
|
||||
t.Run("Multiple Test", func(t *testing.T) {
|
||||
dr := verifyGoldenResponse(t, "multiple")
|
||||
|
5
pkg/tsdb/influxdb/flux/testdata/single.csv
vendored
Normal file
5
pkg/tsdb/influxdb/flux/testdata/single.csv
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
#group,false,false,true,false
|
||||
#datatype,string,long,string,long
|
||||
#default,_result,,,
|
||||
,result,table,_field,_value
|
||||
,,0,summary_serial_number,6
|
|
16
pkg/tsdb/influxdb/flux/testdata/single.golden.txt
vendored
Normal file
16
pkg/tsdb/influxdb/flux/testdata/single.golden.txt
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
🌟 This was machine generated. Do not edit. 🌟
|
||||
|
||||
Frame[0] {}
|
||||
Name:
|
||||
Dimensions: 2 Fields by 1 Rows
|
||||
+-----------------------+----------------+
|
||||
| Name: _field | Name: _value |
|
||||
| Labels: | Labels: |
|
||||
| Type: []*string | Type: []*int64 |
|
||||
+-----------------------+----------------+
|
||||
| summary_serial_number | 6 |
|
||||
+-----------------------+----------------+
|
||||
|
||||
|
||||
====== TEST DATA RESPONSE (arrow base64) ======
|
||||
FRAME=QVJST1cxAAD/////kAEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEDAAoADAAAAAgABAAKAAAACAAAAHQAAAADAAAATAAAACgAAAAEAAAA+P7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAAY////CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAADj///8IAAAADAAAAAIAAAB7fQAABAAAAG1ldGEAAAAAAgAAAIQAAAAEAAAAlv///xQAAAA8AAAARAAAAAAAAgFIAAAAAQAAAAQAAACE////CAAAABAAAAAGAAAAX3ZhbHVlAAAEAAAAbmFtZQAAAAAAAAAACAAMAAgABwAIAAAAAAAAAUAAAAAGAAAAX3ZhbHVlAAAAABIAGAAUABMAEgAMAAAACAAEABIAAAAUAAAARAAAAEgAAAAAAAUBRAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAGAAAAX2ZpZWxkAAAEAAAAbmFtZQAAAAAAAAAABAAEAAQAAAAGAAAAX2ZpZWxkAAD/////yAAAABQAAAAAAAAADAAWABQAEwAMAAQADAAAACgAAAAAAAAAFAAAAAAAAAMDAAoAGAAMAAgABAAKAAAAFAAAAGgAAAABAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAACAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABUAAABzdW1tYXJ5X3NlcmlhbF9udW1iZXIAAAAGAAAAAAAAABAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA8AAAAAAADAAEAAACgAQAAAAAAANAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoADAAAAAgABAAKAAAACAAAAHQAAAADAAAATAAAACgAAAAEAAAA+P7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAAY////CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAADj///8IAAAADAAAAAIAAAB7fQAABAAAAG1ldGEAAAAAAgAAAIQAAAAEAAAAlv///xQAAAA8AAAARAAAAAAAAgFIAAAAAQAAAAQAAACE////CAAAABAAAAAGAAAAX3ZhbHVlAAAEAAAAbmFtZQAAAAAAAAAACAAMAAgABwAIAAAAAAAAAUAAAAAGAAAAX3ZhbHVlAAAAABIAGAAUABMAEgAMAAAACAAEABIAAAAUAAAARAAAAEgAAAAAAAUBRAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAGAAAAX2ZpZWxkAAAEAAAAbmFtZQAAAAAAAAAABAAEAAQAAAAGAAAAX2ZpZWxkAADAAQAAQVJST1cx
|
Loading…
Reference in New Issue
Block a user