From f7588376df32ca268bbb60ebf269c39fc1889033 Mon Sep 17 00:00:00 2001 From: Kyle Brandt Date: Tue, 11 Feb 2025 10:15:54 -0500 Subject: [PATCH] SQL Expressions: (Chore) Update code for latest plugin-sdk data pkg (#100425) Use new NilAt and SetRefId methods --- pkg/expr/sql/db_test.go | 9 ++--- pkg/expr/sql/frame_db_conv.go | 62 ----------------------------------- pkg/expr/sql/frame_table.go | 2 +- 3 files changed, 3 insertions(+), 70 deletions(-) diff --git a/pkg/expr/sql/db_test.go b/pkg/expr/sql/db_test.go index e648407e41a..5d7d0332da7 100644 --- a/pkg/expr/sql/db_test.go +++ b/pkg/expr/sql/db_test.go @@ -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 -} diff --git a/pkg/expr/sql/frame_db_conv.go b/pkg/expr/sql/frame_db_conv.go index ce0edfc2341..81e59fd9f32 100644 --- a/pkg/expr/sql/frame_db_conv.go +++ b/pkg/expr/sql/frame_db_conv.go @@ -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 - } -} diff --git a/pkg/expr/sql/frame_table.go b/pkg/expr/sql/frame_table.go index a511a3606fa..7ddf7f1dd39 100644 --- a/pkg/expr/sql/frame_table.go +++ b/pkg/expr/sql/frame_table.go @@ -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)