Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing InvariantCulture on Parse methods #29

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion EntityFramework/src/ProviderServices.cs
Expand Up @@ -56,7 +56,7 @@ public string GetTableCreateScript(EntitySet entitySet, string connectionString,
using (var conn = new MySqlConnection(connectionString.Replace(@"""", "")))
{
conn.Open();
var v = DBVersion.Parse(conn.ServerVersion.ToString());
var v = DBVersion.Parse(conn.ServerVersion.ToString());
service.serverVersion = new Version(v.Major + "." + v.Minor);
}
}
Expand Down
2 changes: 1 addition & 1 deletion MySQL.Data/src/Driver.cs
Expand Up @@ -321,7 +321,7 @@ private int GetTimeZoneOffset(MySqlConnection con )
if (timeZoneDiff.HasValue)
timeZoneString = timeZoneDiff.ToString();

return int.Parse(timeZoneString.Substring(0, timeZoneString.IndexOf(':')));
return int.Parse(timeZoneString.Substring(0, timeZoneString.IndexOf(':')), CultureInfo.InvariantCulture);
}

/// <summary>
Expand Down
6 changes: 3 additions & 3 deletions MySQL.Data/src/ISSchemaProvider.cs
Expand Up @@ -717,14 +717,14 @@ private static void ParseDataTypeSize(MySqlSchemaRow row, string size)

if (!MetaData.IsNumericType(row["DATA_TYPE"].ToString()))
{
row["CHARACTER_MAXIMUM_LENGTH"] = Int32.Parse(parts[0]);
row["CHARACTER_MAXIMUM_LENGTH"] = Int32.Parse(parts[0], CultureInfo.InvariantCulture);
// will set octet length in a minute
}
else
{
row["NUMERIC_PRECISION"] = Int32.Parse(parts[0]);
row["NUMERIC_PRECISION"] = Int32.Parse(parts[0], CultureInfo.InvariantCulture);
if (parts.Length == 2)
row["NUMERIC_SCALE"] = Int32.Parse(parts[1]);
row["NUMERIC_SCALE"] = Int32.Parse(parts[1], CultureInfo.InvariantCulture);
}
}

Expand Down
10 changes: 5 additions & 5 deletions MySQL.Data/src/MySqlBaseConnectionStringBuilder.cs
Expand Up @@ -637,16 +637,16 @@ public void ValidateValue(ref object value)
if (typeName == "Boolean" && Boolean.TryParse(value.ToString(), out b)) { value = b; return; }

UInt64 uintVal;
if (typeName.StartsWith("UInt64") && UInt64.TryParse(value.ToString(), out uintVal)) { value = uintVal; return; }
if (typeName.StartsWith("UInt64") && UInt64.TryParse(value.ToString(), NumberStyles.Any, CultureInfo.InvariantCulture, out uintVal)) { value = uintVal; return; }

UInt32 uintVal32;
if (typeName.StartsWith("UInt32") && UInt32.TryParse(value.ToString(), out uintVal32)) { value = uintVal32; return; }
if (typeName.StartsWith("UInt32") && UInt32.TryParse(value.ToString(), NumberStyles.Any, CultureInfo.InvariantCulture, out uintVal32)) { value = uintVal32; return; }

Int64 intVal;
if (typeName.StartsWith("Int64") && Int64.TryParse(value.ToString(), out intVal)) { value = intVal; return; }
if (typeName.StartsWith("Int64") && Int64.TryParse(value.ToString(), NumberStyles.Any, CultureInfo.InvariantCulture, out intVal)) { value = intVal; return; }

Int32 intVal32;
if (typeName.StartsWith("Int32") && Int32.TryParse(value.ToString(), out intVal32)) { value = intVal32; return; }
if (typeName.StartsWith("Int32") && Int32.TryParse(value.ToString(), NumberStyles.Any, CultureInfo.InvariantCulture, out intVal32)) { value = intVal32; return; }

object objValue;
Type baseType = BaseType.GetTypeInfo().BaseType;
Expand All @@ -666,7 +666,7 @@ public void ValidateValue(ref object value, string keyword)
switch (keyword)
{
case "connect-timeout":
if (typeName != valueType.Name && !uint.TryParse(value.ToString(), out uint uintVal)) throw new FormatException(ResourcesX.InvalidConnectionTimeoutValue);
if (typeName != valueType.Name && !uint.TryParse(value.ToString(), NumberStyles.Any, CultureInfo.InvariantCulture, out uint uintVal)) throw new FormatException(ResourcesX.InvalidConnectionTimeoutValue);
break;
}
}
Expand Down
5 changes: 3 additions & 2 deletions MySQL.Data/src/MysqlDefs.cs
Expand Up @@ -28,6 +28,7 @@

using System;
using System.ComponentModel;
using System.Globalization;
using System.Reflection;

namespace MySql.Data.MySqlClient
Expand Down Expand Up @@ -530,7 +531,7 @@ public string PID
string pid = string.Empty;
try
{
pid = System.Diagnostics.Process.GetCurrentProcess().Id.ToString();
pid = System.Diagnostics.Process.GetCurrentProcess().Id.ToString(CultureInfo.InvariantCulture);
}
catch (Exception ex)
{
Expand Down Expand Up @@ -561,7 +562,7 @@ public string Thread
string thread = string.Empty;
try
{
thread = System.Diagnostics.Process.GetCurrentProcess().Threads[0].Id.ToString();
thread = System.Diagnostics.Process.GetCurrentProcess().Threads[0].Id.ToString(CultureInfo.InvariantCulture);
}
catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); }

Expand Down
2 changes: 1 addition & 1 deletion MySQL.Data/src/SchemaProvider.cs
Expand Up @@ -67,7 +67,7 @@ public virtual MySqlSchemaCollection GetSchema(string collection, String[] restr
public virtual MySqlSchemaCollection GetDatabases(string[] restrictions)
{
Regex regex = null;
int caseSetting = Int32.Parse(connection.driver.Property("lower_case_table_names"));
int caseSetting = Int32.Parse(connection.driver.Property("lower_case_table_names"), CultureInfo.InvariantCulture);

string sql = "SHOW DATABASES";

Expand Down
7 changes: 4 additions & 3 deletions MySQL.Data/src/Types/MySqlBit.cs
Expand Up @@ -27,6 +27,7 @@
// 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

using System;
using System.Globalization;
using MySql.Data.MySqlClient;

namespace MySql.Data.Types
Expand Down Expand Up @@ -63,7 +64,7 @@ public void WriteValue(MySqlPacket packet, bool binary, object value, int length
if (binary)
packet.WriteInteger((long)v, 8);
else
packet.WriteStringNoNull(v.ToString());
packet.WriteStringNoNull(v.ToString(CultureInfo.InvariantCulture));
}

public IMySqlValue ReadValue(MySqlPacket packet, long length, bool isNull)
Expand All @@ -76,7 +77,7 @@ public IMySqlValue ReadValue(MySqlPacket packet, long length, bool isNull)
length = packet.ReadFieldLength();

if (ReadAsString)
_value = UInt64.Parse(packet.ReadString(length));
_value = UInt64.Parse(packet.ReadString(length), CultureInfo.InvariantCulture);
else
_value = (UInt64)packet.ReadBitValue((int)length);
return this;
Expand All @@ -98,7 +99,7 @@ internal static void SetDSInfo(MySqlSchemaCollection sc)
row["ProviderDbType"] = MySqlDbType.Bit;
row["ColumnSize"] = 64;
row["CreateFormat"] = "BIT";
row["CreateParameters"] = DBNull.Value; ;
row["CreateParameters"] = DBNull.Value;
row["DataType"] = typeof(ulong).ToString();
row["IsAutoincrementable"] = false;
row["IsBestMatch"] = true;
Expand Down
2 changes: 1 addition & 1 deletion MySQL.Data/src/Types/MySqlByte.cs
Expand Up @@ -76,7 +76,7 @@ void IMySqlValue.WriteValue(MySqlPacket packet, bool binary, object val, int len
if (binary)
packet.WriteByte((byte)v);
else
packet.WriteStringNoNull(v.ToString());
packet.WriteStringNoNull(v.ToString(CultureInfo.InvariantCulture));
}

IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
Expand Down
16 changes: 8 additions & 8 deletions MySQL.Data/src/Types/MySqlDateTime.cs
Expand Up @@ -309,21 +309,21 @@ private MySqlDateTime ParseMySql(string s)
{
string[] parts = s.Split('-', ' ', ':', '/', '.');

int year = int.Parse(parts[0]);
int month = int.Parse(parts[1]);
int day = int.Parse(parts[2]);
int year = int.Parse(parts[0], CultureInfo.InvariantCulture);
int month = int.Parse(parts[1], CultureInfo.InvariantCulture);
int day = int.Parse(parts[2], CultureInfo.InvariantCulture);

int hour = 0, minute = 0, second = 0, microsecond = 0;
if (parts.Length > 3)
{
hour = int.Parse(parts[3]);
minute = int.Parse(parts[4]);
second = int.Parse(parts[5]);
hour = int.Parse(parts[3], CultureInfo.InvariantCulture);
minute = int.Parse(parts[4], CultureInfo.InvariantCulture);
second = int.Parse(parts[5], CultureInfo.InvariantCulture);
}

if (parts.Length > 6)
{
microsecond = int.Parse(parts[6].PadRight(6, '0'));
microsecond = int.Parse(parts[6].PadRight(6, '0'), CultureInfo.InvariantCulture);
}

return new MySqlDateTime(_type, year, month, day, hour, minute, second, microsecond);
Expand Down Expand Up @@ -415,7 +415,7 @@ public override string ToString()
if (this.IsValidDateTime)
{
DateTime d = new DateTime(Year, Month, Day, Hour, Minute, Second).AddTicks(_microsecond * 10);
return (_type == MySqlDbType.Date) ? d.ToString("d") : d.ToString();
return (_type == MySqlDbType.Date) ? d.ToString("d", CultureInfo.InvariantCulture) : d.ToString(CultureInfo.InvariantCulture);
}

string dateString = FormatDateCustom(
Expand Down
2 changes: 1 addition & 1 deletion MySQL.Data/src/Types/MySqlDecimal.cs
Expand Up @@ -86,7 +86,7 @@ internal MySqlDecimal(string val)
/// <returns>The value of this type converted to a dobule value.</returns>
public double ToDouble()
{
return Double.Parse(_value);
return Double.Parse(_value, CultureInfo.InvariantCulture);
}

public override string ToString()
Expand Down
5 changes: 3 additions & 2 deletions MySQL.Data/src/Types/MySqlInt16.cs
Expand Up @@ -27,6 +27,7 @@
// 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

using System;
using System.Globalization;
using MySql.Data.MySqlClient;

namespace MySql.Data.Types
Expand Down Expand Up @@ -65,7 +66,7 @@ void IMySqlValue.WriteValue(MySqlPacket packet, bool binary, object val, int len
if (binary)
packet.WriteInteger((long)v, 2);
else
packet.WriteStringNoNull(v.ToString());
packet.WriteStringNoNull(v.ToString(CultureInfo.InvariantCulture));
}

IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
Expand All @@ -76,7 +77,7 @@ IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
if (length == -1)
return new MySqlInt16((short)packet.ReadInteger(2));
else
return new MySqlInt16(Int16.Parse(packet.ReadString(length)));
return new MySqlInt16(Int16.Parse(packet.ReadString(length), CultureInfo.InvariantCulture));
}

void IMySqlValue.SkipValue(MySqlPacket packet)
Expand Down
4 changes: 2 additions & 2 deletions MySQL.Data/src/Types/MySqlInt32.cs
Expand Up @@ -75,9 +75,9 @@ void IMySqlValue.WriteValue(MySqlPacket packet, bool binary, object val, int len
{
int v = val as int? ?? Convert.ToInt32(val);
if (binary)
packet.WriteInteger((long)v, _is24Bit ? 3 : 4);
packet.WriteInteger(v, _is24Bit ? 3 : 4);
else
packet.WriteStringNoNull(v.ToString());
packet.WriteStringNoNull(v.ToString(CultureInfo.InvariantCulture));
}

IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
Expand Down
5 changes: 3 additions & 2 deletions MySQL.Data/src/Types/MySqlInt64.cs
Expand Up @@ -27,6 +27,7 @@
// 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

using System;
using System.Globalization;
using MySql.Data.MySqlClient;

namespace MySql.Data.Types
Expand Down Expand Up @@ -68,7 +69,7 @@ void IMySqlValue.WriteValue(MySqlPacket packet, bool binary, object val, int len
if (binary)
packet.WriteInteger(v, 8);
else
packet.WriteStringNoNull(v.ToString());
packet.WriteStringNoNull(v.ToString(CultureInfo.InvariantCulture));
}

IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
Expand All @@ -79,7 +80,7 @@ IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
if (length == -1)
return new MySqlInt64((long)packet.ReadULong(8));
else
return new MySqlInt64(Int64.Parse(packet.ReadString(length)));
return new MySqlInt64(Int64.Parse(packet.ReadString(length), CultureInfo.InvariantCulture));
}

void IMySqlValue.SkipValue(MySqlPacket packet)
Expand Down
3 changes: 1 addition & 2 deletions MySQL.Data/src/Types/MySqlSingle.cs
Expand Up @@ -69,8 +69,7 @@ void IMySqlValue.WriteValue(MySqlPacket packet, bool binary, object val, int len
if (binary)
packet.Write(BitConverter.GetBytes(v));
else
packet.WriteStringNoNull(v.ToString("R",
CultureInfo.InvariantCulture));
packet.WriteStringNoNull(v.ToString("R", CultureInfo.InvariantCulture));
}

IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
Expand Down
9 changes: 5 additions & 4 deletions MySQL.Data/src/Types/MySqlTime.cs
Expand Up @@ -27,6 +27,7 @@
// 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

using System;
using System.Globalization;
using MySql.Data.MySqlClient;

namespace MySql.Data.Types
Expand Down Expand Up @@ -177,16 +178,16 @@ private void ParseMySql(string s)
{

string[] parts = s.Split(':', '.');
int hours = Int32.Parse(parts[0]);
int mins = Int32.Parse(parts[1]);
int secs = Int32.Parse(parts[2]);
int hours = Int32.Parse(parts[0], CultureInfo.InvariantCulture);
int mins = Int32.Parse(parts[1], CultureInfo.InvariantCulture);
int secs = Int32.Parse(parts[2], CultureInfo.InvariantCulture);
int nanoseconds = 0;

if (parts.Length > 3)
{
//if the data is saved in MySql as Time(3) the division by 1000 always returns 0, but handling the data as Time(6) the result is the expected
parts[3] = parts[3].PadRight(7, '0');
nanoseconds = int.Parse(parts[3]);
nanoseconds = int.Parse(parts[3], CultureInfo.InvariantCulture);
}


Expand Down
5 changes: 3 additions & 2 deletions MySQL.Data/src/Types/MySqlUByte.cs
Expand Up @@ -27,6 +27,7 @@
// 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

using System;
using System.Globalization;
using MySql.Data.MySqlClient;

namespace MySql.Data.Types
Expand Down Expand Up @@ -65,7 +66,7 @@ void IMySqlValue.WriteValue(MySqlPacket packet, bool binary, object val, int len
if (binary)
packet.WriteByte(v);
else
packet.WriteStringNoNull(v.ToString());
packet.WriteStringNoNull(v.ToString(CultureInfo.InvariantCulture));
}

IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
Expand All @@ -76,7 +77,7 @@ IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
if (length == -1)
return new MySqlUByte((byte)packet.ReadByte());
else
return new MySqlUByte(Byte.Parse(packet.ReadString(length)));
return new MySqlUByte(Byte.Parse(packet.ReadString(length), CultureInfo.InvariantCulture));
}

void IMySqlValue.SkipValue(MySqlPacket packet)
Expand Down
7 changes: 4 additions & 3 deletions MySQL.Data/src/Types/MySqlUInt16.cs
Expand Up @@ -27,6 +27,7 @@
// 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

using System;
using System.Globalization;
using MySql.Data.MySqlClient;

namespace MySql.Data.Types
Expand Down Expand Up @@ -63,9 +64,9 @@ void IMySqlValue.WriteValue(MySqlPacket packet, bool binary, object val, int len
{
int v = (val is UInt16) ? (UInt16)val : Convert.ToUInt16(val);
if (binary)
packet.WriteInteger((long)v, 2);
packet.WriteInteger(v, 2);
else
packet.WriteStringNoNull(v.ToString());
packet.WriteStringNoNull(v.ToString(CultureInfo.InvariantCulture));
}

IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
Expand All @@ -76,7 +77,7 @@ IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
if (length == -1)
return new MySqlUInt16((ushort)packet.ReadInteger(2));
else
return new MySqlUInt16(UInt16.Parse(packet.ReadString(length)));
return new MySqlUInt16(UInt16.Parse(packet.ReadString(length), CultureInfo.InvariantCulture));
}

void IMySqlValue.SkipValue(MySqlPacket packet)
Expand Down
2 changes: 1 addition & 1 deletion MySQL.Data/src/Types/MySqlUInt32.cs
Expand Up @@ -79,7 +79,7 @@ void IMySqlValue.WriteValue(MySqlPacket packet, bool binary, object v, int lengt
if (binary)
packet.WriteInteger((long)val, _is24Bit ? 3 : 4);
else
packet.WriteStringNoNull(val.ToString());
packet.WriteStringNoNull(val.ToString(CultureInfo.InvariantCulture));
}

IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
Expand Down
5 changes: 3 additions & 2 deletions MySQL.Data/src/Types/MySqlUInt64.cs
Expand Up @@ -27,6 +27,7 @@
// 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

using System;
using System.Globalization;
using MySql.Data.MySqlClient;

namespace MySql.Data.Types
Expand Down Expand Up @@ -68,7 +69,7 @@ void IMySqlValue.WriteValue(MySqlPacket packet, bool binary, object val, int len
if (binary)
packet.WriteInteger((long)v, 8);
else
packet.WriteStringNoNull(v.ToString());
packet.WriteStringNoNull(v.ToString(CultureInfo.InvariantCulture));
}

IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
Expand All @@ -79,7 +80,7 @@ IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
if (length == -1)
return new MySqlUInt64(packet.ReadULong(8));
else
return new MySqlUInt64(UInt64.Parse(packet.ReadString(length)));
return new MySqlUInt64(UInt64.Parse(packet.ReadString(length), CultureInfo.InvariantCulture));
}

void IMySqlValue.SkipValue(MySqlPacket packet)
Expand Down