From a9c535e551d9508b18a350f774acc98644111ff8 Mon Sep 17 00:00:00 2001 From: Daniel Lee Date: Fri, 12 May 2017 11:37:23 +0200 Subject: [PATCH] mysql: add some more type mapping Decimals mapped to floats for now. No mapping for bit or any of the blob types. Tinyint not mapped to bool. --- pkg/tsdb/mysql/mysql.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pkg/tsdb/mysql/mysql.go b/pkg/tsdb/mysql/mysql.go index 705db1e50da..4ebe467459d 100644 --- a/pkg/tsdb/mysql/mysql.go +++ b/pkg/tsdb/mysql/mysql.go @@ -184,14 +184,34 @@ func (e MysqlExecutor) getTypedRowData(types []*sql.ColumnType, rows *core.Rows) for i, stype := range types { switch stype.DatabaseTypeName() { + case mysql.FieldTypeNameTiny: + values[i] = new(int8) + case mysql.FieldTypeNameInt24: + values[i] = new(int32) + case mysql.FieldTypeNameShort: + values[i] = new(int16) case mysql.FieldTypeNameVarString: values[i] = new(string) + case mysql.FieldTypeNameVarChar: + values[i] = new(string) case mysql.FieldTypeNameLongLong: values[i] = new(int64) case mysql.FieldTypeNameDouble: values[i] = new(float64) + case mysql.FieldTypeNameDecimal: + values[i] = new(float32) + case mysql.FieldTypeNameNewDecimal: + values[i] = new(float64) + case mysql.FieldTypeNameTimestamp: + values[i] = new(time.Time) case mysql.FieldTypeNameDateTime: values[i] = new(time.Time) + case mysql.FieldTypeNameTime: + values[i] = new(time.Duration) + case mysql.FieldTypeNameYear: + values[i] = new(int16) + case mysql.FieldTypeNameNULL: + values[i] = nil default: return nil, fmt.Errorf("Database type %s not supported", stype.DatabaseTypeName()) }