Skip to content

Commit d310103

Browse files
committed
Handle ColumnType.Enum. Fixes #850
In MySQL Server 8.0.21, an INFORMATION_SCHEMA column has changed from CHAR(5) to ENUM. Additionally, this new ENUM column is returned as MYSQL_TYPE_ENUM; other ENUM columns as still returned as MYSQL_TYPE_STRING with ENUM_FLAG set. This updates the deserialization logic to handle ENUM and SET as strings.
1 parent a9bfb2b commit d310103

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed

src/MySqlConnector/Core/BinaryRow.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ protected override object GetValueCore(ReadOnlySpan<byte> data, ColumnDefinition
132132
case ColumnType.Blob:
133133
case ColumnType.MediumBlob:
134134
case ColumnType.LongBlob:
135+
case ColumnType.Enum:
136+
case ColumnType.Set:
135137
if (columnDefinition.CharacterSet == CharacterSet.Binary)
136138
{
137139
var guidFormat = Connection.GuidFormat;

src/MySqlConnector/Core/TextRow.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ protected override object GetValueCore(ReadOnlySpan<byte> data, ColumnDefinition
6868
case ColumnType.Blob:
6969
case ColumnType.MediumBlob:
7070
case ColumnType.LongBlob:
71+
case ColumnType.Enum:
72+
case ColumnType.Set:
7173
if (columnDefinition.CharacterSet == CharacterSet.Binary)
7274
{
7375
var guidFormat = Connection.GuidFormat;

src/MySqlConnector/Core/TypeMapper.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ public static MySqlDbType ConvertToMySqlDbType(ColumnDefinitionPayload columnDef
208208
return MySqlDbType.Set;
209209
goto case ColumnType.VarString;
210210

211+
case ColumnType.VarChar:
211212
case ColumnType.VarString:
212213
case ColumnType.TinyBlob:
213214
case ColumnType.Blob:
@@ -272,6 +273,12 @@ public static MySqlDbType ConvertToMySqlDbType(ColumnDefinitionPayload columnDef
272273
case ColumnType.Null:
273274
return MySqlDbType.Null;
274275

276+
case ColumnType.Enum:
277+
return MySqlDbType.Enum;
278+
279+
case ColumnType.Set:
280+
return MySqlDbType.Set;
281+
275282
default:
276283
throw new NotImplementedException("ConvertToMySqlDbType for {0} is not implemented".FormatInvariant(columnDefinition.ColumnType));
277284
}

0 commit comments

Comments
 (0)