mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
SQL Expressions: (Chore) Update code for latest plugin-sdk data pkg (#100425)
Use new NilAt and SetRefId methods
This commit is contained in:
parent
28f21e0a0d
commit
f7588376df
@ -45,11 +45,11 @@ func TestQueryFrames(t *testing.T) {
|
||||
name: "query all rows from single input frame",
|
||||
query: `SELECT * FROM inputFrameRefId LIMIT 1;`,
|
||||
input_frames: []*data.Frame{
|
||||
setRefID(data.NewFrame(
|
||||
data.NewFrame(
|
||||
"",
|
||||
//nolint:misspell
|
||||
data.NewField("OSS Projects with Typos", nil, []string{"Garfana", "Pormetheus"}),
|
||||
), "inputFrameRefId"),
|
||||
).SetRefID("inputFrameRefId"),
|
||||
},
|
||||
expected: data.NewFrame(
|
||||
"sqlExpressionRefId",
|
||||
@ -174,8 +174,3 @@ func TestQueryFramesDateTimeSelect(t *testing.T) {
|
||||
func p[T any](v T) *T {
|
||||
return &v
|
||||
}
|
||||
|
||||
func setRefID(f *data.Frame, refID string) *data.Frame {
|
||||
f.RefID = refID
|
||||
return f
|
||||
}
|
||||
|
@ -410,65 +410,3 @@ func fieldValFromRowVal(fieldType data.FieldType, val interface{}) (interface{},
|
||||
return nil, fmt.Errorf("unsupported field type %s for val %v", fieldType, val)
|
||||
}
|
||||
}
|
||||
|
||||
// Is the field nilAt the index. Can panic if out of range.
|
||||
// TODO: Maybe this should be a method on data.Field?
|
||||
func nilAt(field data.Field, at int) bool {
|
||||
if !field.Nullable() {
|
||||
return false
|
||||
}
|
||||
|
||||
switch field.Type() {
|
||||
case data.FieldTypeNullableInt8:
|
||||
v := field.At(at).(*int8)
|
||||
return v == nil
|
||||
|
||||
case data.FieldTypeNullableUint8:
|
||||
v := field.At(at).(*uint8)
|
||||
return v == nil
|
||||
|
||||
case data.FieldTypeNullableInt16:
|
||||
v := field.At(at).(*int16)
|
||||
return v == nil
|
||||
|
||||
case data.FieldTypeNullableUint16:
|
||||
v := field.At(at).(*uint16)
|
||||
return v == nil
|
||||
|
||||
case data.FieldTypeNullableInt32:
|
||||
v := field.At(at).(*int32)
|
||||
return v == nil
|
||||
|
||||
case data.FieldTypeNullableUint32:
|
||||
v := field.At(at).(*uint32)
|
||||
return v == nil
|
||||
|
||||
case data.FieldTypeNullableInt64:
|
||||
v := field.At(at).(*int64)
|
||||
return v == nil
|
||||
|
||||
case data.FieldTypeNullableUint64:
|
||||
v := field.At(at).(*uint64)
|
||||
return v == nil
|
||||
|
||||
case data.FieldTypeNullableFloat64:
|
||||
v := field.At(at).(*float64)
|
||||
return v == nil
|
||||
|
||||
case data.FieldTypeNullableString:
|
||||
v := field.At(at).(*string)
|
||||
return v == nil
|
||||
|
||||
case data.FieldTypeNullableTime:
|
||||
v := field.At(at).(*time.Time)
|
||||
return v == nil
|
||||
|
||||
case data.FieldTypeNullableBool:
|
||||
v := field.At(at).(*bool)
|
||||
return v == nil
|
||||
|
||||
default:
|
||||
// Either it's not a nullable type or it's unsupported
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ func (ri *rowIter) Next(_ *mysql.Context) (mysql.Row, error) {
|
||||
// the value from each column at the current row index.
|
||||
row := make(mysql.Row, len(ri.ft.Frame.Fields))
|
||||
for colIndex, field := range ri.ft.Frame.Fields {
|
||||
if nilAt(*field, ri.row) {
|
||||
if field.NilAt(ri.row) {
|
||||
continue
|
||||
}
|
||||
row[colIndex], _ = field.ConcreteAt(ri.row)
|
||||
|
Loading…
Reference in New Issue
Block a user