MSSQL: Add `SQL_VARIANT` converter and update test (#85823)

Add SQL_VARIANT converter and update test
pull/86474/head
Andreas Christou 1 year ago committed by GitHub
parent 38fe9fcfd1
commit 420067a7e1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 15
      pkg/tsdb/mssql/mssql.go
  2. 4
      pkg/tsdb/mssql/mssql_test.go

@ -403,5 +403,20 @@ func (t *mssqlQueryResultTransformer) GetConverterList() []sqlutil.StringConvert
},
},
},
{
Name: "handle SQL_VARIANT",
InputScanKind: reflect.Pointer,
InputTypeName: "SQL_VARIANT",
ConversionFunc: func(in *string) (*string, error) { return in, nil },
Replacer: &sqlutil.StringFieldReplacer{
OutputFieldType: data.FieldTypeNullableString,
ReplaceFunc: func(in *string) (any, error) {
if in == nil {
return nil, nil
}
return in, nil
},
},
},
}
}

@ -92,6 +92,7 @@ func TestMSSQL(t *testing.T) {
c_datetimeoffset datetimeoffset,
c_uuid uniqueidentifier
c_sql_variant sql_variant
)
`
@ -114,7 +115,7 @@ func TestMSSQL(t *testing.T) {
'char10', 'varchar10', 'text',
N'nchar12', N'nvarchar12', N'text',
CAST('%s' AS DATETIME), CAST('%s' AS DATETIME2), CAST('%s' AS SMALLDATETIME), CAST('%s' AS DATE), CAST('%s' AS TIME), SWITCHOFFSET(CAST('%s' AS DATETIMEOFFSET), '-07:00'),
CONVERT(uniqueidentifier, '%s')
CONVERT(uniqueidentifier, '%s'), 'test-sql-variant'
`, d, d2, d, d, d, d2, uuid)
_, err = db.Exec(sql)
@ -170,6 +171,7 @@ func TestMSSQL(t *testing.T) {
require.Equal(t, dt2.In(time.FixedZone("UTC-7", int(-7*60*60))).Unix(), (*frames[0].Fields[22].At(0).(*time.Time)).Unix())
require.Equal(t, uuid, *frames[0].Fields[23].At(0).(*string))
require.Equal(t, "test-sql-variant", *frames[0].Fields[24].At(0).(*string))
})
})

Loading…
Cancel
Save