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/Source | rburnett | 1 Feb |