Skip to content

Commit b6124b5

Browse files
committed
rows: implement driver.RowsColumnTypeDatabaseTypeName
1 parent 571f082 commit b6124b5

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

fields.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,37 @@ import (
1414
"time"
1515
)
1616

17+
var typeDatabaseName = map[fieldType]string{
18+
fieldTypeDecimal: "DECIMAL",
19+
fieldTypeTiny: "TINYINT",
20+
fieldTypeShort: "SMALLINT",
21+
fieldTypeLong: "INT",
22+
fieldTypeFloat: "FLOAT",
23+
fieldTypeDouble: "DOUBLE",
24+
fieldTypeNULL: "NULL",
25+
fieldTypeTimestamp: "TIMESTAMP",
26+
fieldTypeLongLong: "BIGINT",
27+
fieldTypeInt24: "MEDIUMINT",
28+
fieldTypeDate: "DATE",
29+
fieldTypeTime: "TIME",
30+
fieldTypeDateTime: "DATETIME",
31+
fieldTypeYear: "YEAR",
32+
fieldTypeNewDate: "DATE",
33+
fieldTypeVarChar: "VARCHAR",
34+
fieldTypeBit: "BIT",
35+
fieldTypeJSON: "JSON",
36+
fieldTypeNewDecimal: "DECIMAL",
37+
fieldTypeEnum: "ENUM",
38+
fieldTypeSet: "SET",
39+
fieldTypeTinyBLOB: "TINYBLOB",
40+
fieldTypeMediumBLOB: "MEDIUMBLOB",
41+
fieldTypeLongBLOB: "LONGBLOB",
42+
fieldTypeBLOB: "BLOB",
43+
fieldTypeVarString: "VARSTRING", // correct?
44+
fieldTypeString: "STRING", // correct?
45+
fieldTypeGeometry: "GEOMETRY",
46+
}
47+
1748
var (
1849
scanTypeNil = reflect.TypeOf(nil)
1950
scanTypeNullInt = reflect.TypeOf(sql.NullInt64{})

rows.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,13 @@ func (rows *mysqlRows) Columns() []string {
5858
return columns
5959
}
6060

61+
func (rows *mysqlRows) ColumnTypeDatabaseTypeName(i int) string {
62+
if name, ok := typeDatabaseName[rows.rs.columns[i].fieldType]; ok {
63+
return name
64+
}
65+
return ""
66+
}
67+
6168
func (rows *mysqlRows) ColumnTypeNullable(i int) (nullable, ok bool) {
6269
return rows.rs.columns[i].flags&flagNotNULL != 0, true
6370
}

0 commit comments

Comments
 (0)