Skip to content

Commit c0a8d12

Browse files
committed
rows: implement driver.RowsColumnTypeDatabaseTypeName
1 parent cde4f46 commit c0a8d12

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
@@ -56,6 +56,13 @@ func (rows *mysqlRows) Columns() []string {
5656
return columns
5757
}
5858

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

0 commit comments

Comments
 (0)