Modified:
trunk/mysqlclient/UsageAdvisor.cs
trunk/mysqlclient/datareader.cs
Log:
Added usage advisor warnings for unnecessarily converting column values
Modified: trunk/mysqlclient/UsageAdvisor.cs
===================================================================
--- trunk/mysqlclient/UsageAdvisor.cs 2006-03-13 10:12:47 UTC (rev 213)
+++ trunk/mysqlclient/UsageAdvisor.cs 2006-04-11 17:24:07 UTC (rev 214)
@@ -57,6 +57,16 @@
LogUAFooter();
}
+ public void Converting(string cmdText, string columnName,
+ string fromType, string toType)
+ {
+ LogUAHeader(cmdText);
+ Logger.WriteLine("Reason: Performing unnecessary conversion on field "
+ + columnName + ".");
+ Logger.WriteLine("From: " + fromType + " to " + toType);
+ LogUAFooter();
+ }
+
private void LogUAWarning(string cmdText, string reason)
{
LogUAHeader(cmdText);
Modified: trunk/mysqlclient/datareader.cs
===================================================================
--- trunk/mysqlclient/datareader.cs 2006-03-13 10:12:47 UTC (rev 213)
+++ trunk/mysqlclient/datareader.cs 2006-04-11 17:24:07 UTC (rev 214)
@@ -384,6 +384,9 @@
IMySqlValue v = GetFieldValue(index);
if (v is MySqlInt16)
return ((MySqlInt16)v).Value;
+
+ connection.UsageAdvisor.Converting(command.CommandText,
+ fields[index].ColumnName, v.MySqlTypeName, "Int16");
return ((IConvertible)v.Value).ToInt16(null);
}
@@ -393,7 +396,10 @@
IMySqlValue v = GetFieldValue(index);
if (v is MySqlInt32)
return ((MySqlInt32)v).Value;
- return ((IConvertible)v.Value).ToInt32(null);
+
+ connection.UsageAdvisor.Converting(command.CommandText,
+ fields[index].ColumnName, v.MySqlTypeName, "Int32");
+ return ((IConvertible)v.Value).ToInt32(null);
}
/// <include file='docs/MySqlDataReader.xml' path='docs/GetInt64/*'/>
@@ -402,7 +408,10 @@
IMySqlValue v = GetFieldValue(index);
if (v is MySqlInt64)
return ((MySqlInt64)v).Value;
- return ((IConvertible)v.Value).ToInt64(null);
+
+ connection.UsageAdvisor.Converting(command.CommandText,
+ fields[index].ColumnName, v.MySqlTypeName, "Int64");
+ return ((IConvertible)v.Value).ToInt64(null);
}
/// <summary>
@@ -577,30 +586,39 @@
}
/// <include file='docs/MySqlDataReader.xml' path='docs/GetUInt16/*'/>
- public UInt16 GetUInt16( int index )
+ public UInt16 GetUInt16(int index)
{
IMySqlValue v = GetFieldValue(index);
if (v is MySqlUInt16)
return ((MySqlUInt16)v).Value;
- return Convert.ToUInt16(v.Value);
+
+ connection.UsageAdvisor.Converting(command.CommandText,
+ fields[index].ColumnName, v.MySqlTypeName, "UInt16");
+ return Convert.ToUInt16(v.Value);
}
/// <include file='docs/MySqlDataReader.xml' path='docs/GetUInt32/*'/>
- public UInt32 GetUInt32( int index )
+ public UInt32 GetUInt32(int index)
{
IMySqlValue v = GetFieldValue(index);
if (v is MySqlUInt32)
return ((MySqlUInt32)v).Value;
- return Convert.ToUInt32(v.Value);
+
+ connection.UsageAdvisor.Converting(command.CommandText,
+ fields[index].ColumnName, v.MySqlTypeName, "UInt32");
+ return Convert.ToUInt32(v.Value);
}
/// <include file='docs/MySqlDataReader.xml' path='docs/GetUInt64/*'/>
- public UInt64 GetUInt64( int index )
+ public UInt64 GetUInt64(int index)
{
IMySqlValue v = GetFieldValue(index);
if (v is MySqlUInt64)
return ((MySqlUInt64)v).Value;
- return Convert.ToUInt64(v.Value);
+
+ connection.UsageAdvisor.Converting(command.CommandText,
+ fields[index].ColumnName, v.MySqlTypeName, "UInt64");
+ return Convert.ToUInt64(v.Value);
}
| Thread |
|---|
| • Connector/NET commit: r214 - trunk/mysqlclient | rburnett | 11 Apr |