List:Commits« Previous MessageNext Message »
From:rburnett Date:April 11 2006 5:24pm
Subject:Connector/NET commit: r214 - trunk/mysqlclient
View as plain text  
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/mysqlclientrburnett11 Apr