Skip to content

Commit c3b3b63

Browse files
committed
added scan string type
1 parent 877a977 commit c3b3b63

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

fields.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ var (
111111
scanTypeUint16 = reflect.TypeOf(uint16(0))
112112
scanTypeUint32 = reflect.TypeOf(uint32(0))
113113
scanTypeUint64 = reflect.TypeOf(uint64(0))
114+
scanTypeString = reflect.TypeOf(string(""))
114115
scanTypeRawBytes = reflect.TypeOf(sql.RawBytes{})
115116
scanTypeUnknown = reflect.TypeOf(new(interface{}))
116117
)
@@ -175,11 +176,18 @@ func (mf *mysqlField) scanType() reflect.Type {
175176
}
176177
return scanTypeNullFloat
177178

178-
case fieldTypeDecimal, fieldTypeNewDecimal, fieldTypeVarChar,
179-
fieldTypeBit, fieldTypeEnum, fieldTypeSet, fieldTypeTinyBLOB,
180-
fieldTypeMediumBLOB, fieldTypeLongBLOB, fieldTypeBLOB,
181-
fieldTypeVarString, fieldTypeString, fieldTypeGeometry, fieldTypeJSON,
182-
fieldTypeTime:
179+
case fieldTypeVarChar, fieldTypeString, fieldTypeVarString:
180+
return scanTypeString
181+
182+
case fieldTypeTinyBLOB, fieldTypeMediumBLOB, fieldTypeLongBLOB, fieldTypeBLOB:
183+
if mf.charSet == collations[defaultCollation] {
184+
return scanTypeString
185+
}
186+
fallthrough
187+
188+
case fieldTypeDecimal, fieldTypeNewDecimal, fieldTypeBit,
189+
fieldTypeEnum, fieldTypeSet,
190+
fieldTypeGeometry, fieldTypeJSON, fieldTypeTime:
183191
return scanTypeRawBytes
184192

185193
case fieldTypeDate, fieldTypeNewDate,

0 commit comments

Comments
 (0)