List:Commits« Previous MessageNext Message »
From:rburnett Date:February 1 2008 7:57pm
Subject:Connector/NET commit: r1158 - in branches/5.1: . Driver/Source
View as plain text  
Modified:
   branches/5.1/CHANGES
   branches/5.1/Driver/Source/Statement.cs
Log:
  - Small bugfix and speed enhancement in Statement.TokenizeSql (bug #34220)

We accepted the && bug fix and the parameter marker speed enhancement.  We will
also add enhancements in 5.2 to only call TokenizeSql when parameters are present.

Modified: branches/5.1/CHANGES
===================================================================
--- branches/5.1/CHANGES	2008-02-01 18:25:55 UTC (rev 1157)
+++ branches/5.1/CHANGES	2008-02-01 18:57:05 UTC (rev 1158)
@@ -8,6 +8,7 @@
   - Incorporated some connection string cache optimizations sent to us by Maxim Mass (bug
#34000)
   - Fixed problem with opening a connection that was previously closed by sudden server
disconnection (bug #33909)   
   - Fixed code to yeild better exception when using different connection strings in a
single transaction (bug #34204)   
+  - Small bugfix and speed enhancement in Statement.TokenizeSql (bug #34220)
    
 Version 5.1.4 - 11/12/2007
   - Fixed issue where column name metadata was not using the charset given on the
connection string

Modified: branches/5.1/Driver/Source/Statement.cs
===================================================================
--- branches/5.1/Driver/Source/Statement.cs	2008-02-01 18:25:55 UTC (rev 1157)
+++ branches/5.1/Driver/Source/Statement.cs	2008-02-01 18:57:05 UTC (rev 1158)
@@ -187,6 +187,7 @@
         {
             bool batch = Connection.Settings.AllowBatch & Driver.SupportsBatch;
             char delim = Char.MinValue;
+            char parameterMarker = Connection.ParameterMarker;
             StringBuilder sqlPart = new StringBuilder();
             bool escaped = false;
             ArrayList tokens = new ArrayList();
@@ -206,19 +207,19 @@
                     sqlPart.Remove(0, sqlPart.Length);
                     continue;
                 }
-                else if ((c == '\'' || c == '\"' || c == '`') & !escaped & delim
== Char.MinValue)
+                else if ((c == '\'' || c == '\"' || c == '`') && !escaped
&& delim == Char.MinValue)
                     delim = c;
                 else if (c == '\\')
                     escaped = !escaped;
-                else if (c == Connection.ParameterMarker && delim ==
Char.MinValue && !escaped)
+                else if (c == parameterMarker && delim == Char.MinValue
&& !escaped)
                 {
                     tokens.Add(sqlPart.ToString());
                     sqlPart.Remove(0, sqlPart.Length);
                 }
-                else if (sqlPart.Length > 0 && sqlPart[0] ==
Connection.ParameterMarker &&
+                else if (sqlPart.Length > 0 && sqlPart[0] == parameterMarker
&&
                          !Char.IsLetterOrDigit(c) && c != '_' && c != '.'
&& c != '$' &&
-                         ((c != '@' && c != Connection.ParameterMarker)
&&
-                          (c != '?' && c != Connection.ParameterMarker)))
+                    ((c != '@' && c != parameterMarker) &&
+                     (c != '?' && c != parameterMarker)))
                 {
                     tokens.Add(sqlPart.ToString());
                     sqlPart.Remove(0, sqlPart.Length);

Thread
Connector/NET commit: r1158 - in branches/5.1: . Driver/Sourcerburnett1 Feb