From e0f318632c84fb9c1765efb1f25d40fb25829708 Mon Sep 17 00:00:00 2001 From: David Warner Date: Fri, 23 Mar 2018 14:06:26 +1100 Subject: [PATCH] Remember whether TINYINT was treated as boolean --- MySQL.Data/src/Types/MySqlByte.cs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/MySQL.Data/src/Types/MySqlByte.cs b/MySQL.Data/src/Types/MySqlByte.cs index e7b41c9b..ae0bd2e0 100644 --- a/MySQL.Data/src/Types/MySqlByte.cs +++ b/MySQL.Data/src/Types/MySqlByte.cs @@ -34,18 +34,18 @@ namespace MySql.Data.Types { internal struct MySqlByte : IMySqlValue { - public MySqlByte(bool isNull) + public MySqlByte(bool isNull, bool treatAsBoolean) { IsNull = isNull; Value = 0; - TreatAsBoolean = false; + TreatAsBoolean = treatAsBoolean; } - public MySqlByte(sbyte val) + public MySqlByte(sbyte val, bool treatAsBoolean) { IsNull = false; Value = val; - TreatAsBoolean = false; + TreatAsBoolean = treatAsBoolean; } #region IMySqlValue Members @@ -82,15 +82,13 @@ void IMySqlValue.WriteValue(MySqlPacket packet, bool binary, object val, int len IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) - return new MySqlByte(true); + return new MySqlByte(true, TreatAsBoolean); if (length == -1) - return new MySqlByte((sbyte)packet.ReadByte()); + return new MySqlByte((sbyte)packet.ReadByte(), TreatAsBoolean); string s = packet.ReadString(length); - MySqlByte b = new MySqlByte(SByte.Parse(s, NumberStyles.Any, CultureInfo.InvariantCulture)); - b.TreatAsBoolean = TreatAsBoolean; - return b; + return new MySqlByte(SByte.Parse(s, NumberStyles.Any, CultureInfo.InvariantCulture), TreatAsBoolean); } void IMySqlValue.SkipValue(MySqlPacket packet)