summaryrefslogtreecommitdiff
path: root/vendor/github.com/go-sql-driver/mysql/fields.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/go-sql-driver/mysql/fields.go')
-rw-r--r--vendor/github.com/go-sql-driver/mysql/fields.go70
1 files changed, 27 insertions, 43 deletions
diff --git a/vendor/github.com/go-sql-driver/mysql/fields.go b/vendor/github.com/go-sql-driver/mysql/fields.go
index 2860842..e0654a8 100644
--- a/vendor/github.com/go-sql-driver/mysql/fields.go
+++ b/vendor/github.com/go-sql-driver/mysql/fields.go
@@ -18,7 +18,7 @@ func (mf *mysqlField) typeDatabaseName() string {
case fieldTypeBit:
return "BIT"
case fieldTypeBLOB:
- if mf.charSet != binaryCollationID {
+ if mf.charSet != collations[binaryCollation] {
return "TEXT"
}
return "BLOB"
@@ -37,9 +37,6 @@ func (mf *mysqlField) typeDatabaseName() string {
case fieldTypeGeometry:
return "GEOMETRY"
case fieldTypeInt24:
- if mf.flags&flagUnsigned != 0 {
- return "UNSIGNED MEDIUMINT"
- }
return "MEDIUMINT"
case fieldTypeJSON:
return "JSON"
@@ -49,7 +46,7 @@ func (mf *mysqlField) typeDatabaseName() string {
}
return "INT"
case fieldTypeLongBLOB:
- if mf.charSet != binaryCollationID {
+ if mf.charSet != collations[binaryCollation] {
return "LONGTEXT"
}
return "LONGBLOB"
@@ -59,7 +56,7 @@ func (mf *mysqlField) typeDatabaseName() string {
}
return "BIGINT"
case fieldTypeMediumBLOB:
- if mf.charSet != binaryCollationID {
+ if mf.charSet != collations[binaryCollation] {
return "MEDIUMTEXT"
}
return "MEDIUMBLOB"
@@ -77,12 +74,7 @@ func (mf *mysqlField) typeDatabaseName() string {
}
return "SMALLINT"
case fieldTypeString:
- if mf.flags&flagEnum != 0 {
- return "ENUM"
- } else if mf.flags&flagSet != 0 {
- return "SET"
- }
- if mf.charSet == binaryCollationID {
+ if mf.charSet == collations[binaryCollation] {
return "BINARY"
}
return "CHAR"
@@ -96,17 +88,17 @@ func (mf *mysqlField) typeDatabaseName() string {
}
return "TINYINT"
case fieldTypeTinyBLOB:
- if mf.charSet != binaryCollationID {
+ if mf.charSet != collations[binaryCollation] {
return "TINYTEXT"
}
return "TINYBLOB"
case fieldTypeVarChar:
- if mf.charSet == binaryCollationID {
+ if mf.charSet == collations[binaryCollation] {
return "VARBINARY"
}
return "VARCHAR"
case fieldTypeVarString:
- if mf.charSet == binaryCollationID {
+ if mf.charSet == collations[binaryCollation] {
return "VARBINARY"
}
return "VARCHAR"
@@ -118,23 +110,21 @@ func (mf *mysqlField) typeDatabaseName() string {
}
var (
- scanTypeFloat32 = reflect.TypeOf(float32(0))
- scanTypeFloat64 = reflect.TypeOf(float64(0))
- scanTypeInt8 = reflect.TypeOf(int8(0))
- scanTypeInt16 = reflect.TypeOf(int16(0))
- scanTypeInt32 = reflect.TypeOf(int32(0))
- scanTypeInt64 = reflect.TypeOf(int64(0))
- scanTypeNullFloat = reflect.TypeOf(sql.NullFloat64{})
- scanTypeNullInt = reflect.TypeOf(sql.NullInt64{})
- scanTypeNullTime = reflect.TypeOf(sql.NullTime{})
- scanTypeUint8 = reflect.TypeOf(uint8(0))
- scanTypeUint16 = reflect.TypeOf(uint16(0))
- scanTypeUint32 = reflect.TypeOf(uint32(0))
- scanTypeUint64 = reflect.TypeOf(uint64(0))
- scanTypeString = reflect.TypeOf("")
- scanTypeNullString = reflect.TypeOf(sql.NullString{})
- scanTypeBytes = reflect.TypeOf([]byte{})
- scanTypeUnknown = reflect.TypeOf(new(any))
+ scanTypeFloat32 = reflect.TypeOf(float32(0))
+ scanTypeFloat64 = reflect.TypeOf(float64(0))
+ scanTypeInt8 = reflect.TypeOf(int8(0))
+ scanTypeInt16 = reflect.TypeOf(int16(0))
+ scanTypeInt32 = reflect.TypeOf(int32(0))
+ scanTypeInt64 = reflect.TypeOf(int64(0))
+ scanTypeNullFloat = reflect.TypeOf(sql.NullFloat64{})
+ scanTypeNullInt = reflect.TypeOf(sql.NullInt64{})
+ scanTypeNullTime = reflect.TypeOf(sql.NullTime{})
+ scanTypeUint8 = reflect.TypeOf(uint8(0))
+ scanTypeUint16 = reflect.TypeOf(uint16(0))
+ scanTypeUint32 = reflect.TypeOf(uint32(0))
+ scanTypeUint64 = reflect.TypeOf(uint64(0))
+ scanTypeRawBytes = reflect.TypeOf(sql.RawBytes{})
+ scanTypeUnknown = reflect.TypeOf(new(interface{}))
)
type mysqlField struct {
@@ -197,18 +187,12 @@ func (mf *mysqlField) scanType() reflect.Type {
}
return scanTypeNullFloat
- case fieldTypeBit, fieldTypeTinyBLOB, fieldTypeMediumBLOB, fieldTypeLongBLOB,
- fieldTypeBLOB, fieldTypeVarString, fieldTypeString, fieldTypeGeometry:
- if mf.charSet == binaryCollationID {
- return scanTypeBytes
- }
- fallthrough
case fieldTypeDecimal, fieldTypeNewDecimal, fieldTypeVarChar,
- fieldTypeEnum, fieldTypeSet, fieldTypeJSON, fieldTypeTime:
- if mf.flags&flagNotNULL != 0 {
- return scanTypeString
- }
- return scanTypeNullString
+ fieldTypeBit, fieldTypeEnum, fieldTypeSet, fieldTypeTinyBLOB,
+ fieldTypeMediumBLOB, fieldTypeLongBLOB, fieldTypeBLOB,
+ fieldTypeVarString, fieldTypeString, fieldTypeGeometry, fieldTypeJSON,
+ fieldTypeTime:
+ return scanTypeRawBytes
case fieldTypeDate, fieldTypeNewDate,
fieldTypeTimestamp, fieldTypeDateTime: