Skip to content

Commit f27fb48

Browse files
fredericDelaportehazzik
authored andcommitted
Purge more Invariant culture usages
Comparing SQL keywords should be done with ordinal comparisons. But invariant comparisons are kept for object names, because at least with SQL Server these comparisons are collation sensitive. (So ideally object names comparisons should even have their culture configurable...) An undue current culture comparison for SqlString.EndsWithCaseInsensitive is also fixed. Follow-up to #1567.
1 parent 92dad8e commit f27fb48

15 files changed

+46
-50
lines changed

src/NHibernate/Dialect/Function/AnsiTrimEmulationFunction.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ public SqlString Render(IList args, ISessionFactoryImplementor factory)
9898
// so we trim leading and trailing spaces
9999
return BothSpaceTrim.Render(args, factory);
100100
}
101-
102-
if (StringHelper.EqualsCaseInsensitive("from", firstArg))
101+
102+
if ("from".Equals(firstArg, StringComparison.OrdinalIgnoreCase))
103103
{
104104
// we have the form: trim(from trimSource).
105105
// This is functionally equivalent to trim(trimSource)
@@ -118,15 +118,15 @@ public SqlString Render(IList args, ISessionFactoryImplementor factory)
118118
// trim-specification has been specified. we handle the
119119
// exception to that explicitly
120120
int potentialTrimCharacterArgIndex = 1;
121-
if (StringHelper.EqualsCaseInsensitive("leading", firstArg))
121+
if ("leading".Equals(firstArg, StringComparison.OrdinalIgnoreCase))
122122
{
123123
trailing = false;
124124
}
125-
else if (StringHelper.EqualsCaseInsensitive("trailing", firstArg))
125+
else if ("trailing".Equals(firstArg, StringComparison.OrdinalIgnoreCase))
126126
{
127127
leading = false;
128128
}
129-
else if (StringHelper.EqualsCaseInsensitive("both", firstArg))
129+
else if ("both".Equals(firstArg, StringComparison.OrdinalIgnoreCase))
130130
{
131131
}
132132
else
@@ -135,7 +135,7 @@ public SqlString Render(IList args, ISessionFactoryImplementor factory)
135135
}
136136

137137
object potentialTrimCharacter = args[potentialTrimCharacterArgIndex];
138-
if (StringHelper.EqualsCaseInsensitive("from", potentialTrimCharacter.ToString()))
138+
if ("from".Equals(potentialTrimCharacter.ToString(), StringComparison.OrdinalIgnoreCase))
139139
{
140140
trimCharacter = "' '";
141141
trimSource = args[potentialTrimCharacterArgIndex + 1];
@@ -148,7 +148,7 @@ public SqlString Render(IList args, ISessionFactoryImplementor factory)
148148
else
149149
{
150150
trimCharacter = potentialTrimCharacter;
151-
if (StringHelper.EqualsCaseInsensitive("from", args[potentialTrimCharacterArgIndex + 1].ToString()))
151+
if ("from".Equals(args[potentialTrimCharacterArgIndex + 1].ToString(), StringComparison.OrdinalIgnoreCase))
152152
{
153153
trimSource = args[potentialTrimCharacterArgIndex + 2];
154154
}

src/NHibernate/Dialect/Function/CastFunction.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ protected virtual bool CastingIsRequired(string sqlType)
9292

9393
bool IFunctionGrammar.IsSeparator(string token)
9494
{
95-
return "as".Equals(token, StringComparison.InvariantCultureIgnoreCase);
95+
return "as".Equals(token, StringComparison.OrdinalIgnoreCase);
9696
}
9797

9898
bool IFunctionGrammar.IsKnownArgument(string token)

src/NHibernate/Dialect/Function/ClassicAggregateFunction.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ public SqlString Render(IList args, ISessionFactoryImplementor factory)
7777
if (args.Count > 1)
7878
{
7979
object firstArg = args[0];
80-
if (!StringHelper.EqualsCaseInsensitive("distinct", firstArg.ToString()) &&
81-
!StringHelper.EqualsCaseInsensitive("all", firstArg.ToString()))
80+
if (!"distinct".Equals(firstArg.ToString(), StringComparison.OrdinalIgnoreCase) &&
81+
!"all".Equals(firstArg.ToString(), StringComparison.OrdinalIgnoreCase))
8282
{
8383
throw new QueryException(string.Format("Aggregate {0}(): token unknow {1}.", name, firstArg));
8484
}

src/NHibernate/Driver/NDataReader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,7 @@ public int GetOrdinal(string colName)
612612

613613
foreach (KeyValuePair<string, int> pair in fieldNameToIndex)
614614
{
615-
if (StringHelper.EqualsCaseInsensitive(pair.Key, colName))
615+
if (string.Equals(pair.Key, colName, StringComparison.InvariantCultureIgnoreCase))
616616
{
617617
return pair.Value;
618618
}

src/NHibernate/Hql/QuerySplitter.cs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System;
2-
using System.Collections;
32
using System.Collections.Generic;
43
using System.Text;
54
using NHibernate.Engine;
@@ -60,7 +59,6 @@ public static string[] ConcreteQueries(string query, ISessionFactoryImplementor
6059
string next = null;
6160

6261
templateQuery.Append(tokens[0]);
63-
bool isSelectClause = StringHelper.EqualsCaseInsensitive("select", tokens[0]);
6462

6563
for (int i = 1; i < tokens.Length; i++)
6664
{
@@ -70,9 +68,6 @@ public static string[] ConcreteQueries(string query, ISessionFactoryImplementor
7068
last = tokens[i - 1].ToLowerInvariant();
7169
}
7270

73-
// select-range is terminated by declaration of "from"
74-
isSelectClause = !StringHelper.EqualsCaseInsensitive("from", tokens[i]);
75-
7671
string token = tokens[i];
7772
if (!ParserHelper.IsWhitespace(token) || last == null)
7873
{
@@ -120,11 +115,5 @@ public static string[] ConcreteQueries(string query, ISessionFactoryImplementor
120115
}
121116
return results;
122117
}
123-
124-
private static bool IsPossiblyClassName(string last, string next)
125-
{
126-
return ParserHelper.EntityClass.Equals(last) ||
127-
(beforeClassTokens.Contains(last) && !notAfterClassTokens.Contains(next));
128-
}
129118
}
130119
}

src/NHibernate/Mapping/Column.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ private string GetAlias(int maxAliasLength)
155155
// But I will leave it like this for now to make it look similar. /Oskar 2016-08-20
156156
bool useRawName = name.Length + suffix.Length <= usableLength &&
157157
!_quoted &&
158-
!StringHelper.EqualsCaseInsensitive(name, "rowid");
158+
!"rowid".Equals(name, StringComparison.OrdinalIgnoreCase);
159159
if (!useRawName)
160160
{
161161
if (suffix.Length >= usableLength)

src/NHibernate/Mapping/ManyToOne.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public void CreatePropertyRefConstraints(IDictionary<string, PersistentClass> pe
7373
if (property == null)
7474
throw new MappingException("Could not find property " + ReferencedPropertyName + " on " + ReferencedEntityName);
7575

76-
if (!HasFormula && !"none".Equals(ForeignKeyName, StringComparison.InvariantCultureIgnoreCase))
76+
if (!HasFormula && !"none".Equals(ForeignKeyName, StringComparison.OrdinalIgnoreCase))
7777
{
7878

7979
IEnumerable<Column> ce = new SafetyEnumerable<Column>(property.ColumnIterator);

src/NHibernate/Mapping/ReferenceDependantValue.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public IEnumerable<Column> ReferenceColumns
2424

2525
public override void CreateForeignKeyOfEntity(string entityName)
2626
{
27-
if (!HasFormula && !string.Equals("none", ForeignKeyName, StringComparison.InvariantCultureIgnoreCase))
27+
if (!HasFormula && !string.Equals("none", ForeignKeyName, StringComparison.OrdinalIgnoreCase))
2828
{
2929
var referencedColumns = new List<Column>(_prototype.ColumnSpan);
3030
foreach (Column column in _prototype.ColumnIterator)

src/NHibernate/Mapping/SimpleValue.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public virtual bool IsComposite
7575

7676
public virtual void CreateForeignKeyOfEntity(string entityName)
7777
{
78-
if (!HasFormula && ! "none".Equals(ForeignKeyName, StringComparison.InvariantCultureIgnoreCase))
78+
if (!HasFormula && ! "none".Equals(ForeignKeyName, StringComparison.OrdinalIgnoreCase))
7979
{
8080
ForeignKey fk = table.CreateForeignKey(ForeignKeyName, ConstraintColumns, entityName);
8181
fk.CascadeDeleteEnabled = cascadeDeleteEnabled;

src/NHibernate/SqlCommand/Parser/MsSqlSelectParser.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,15 @@ private IEnumerable<ColumnDefinition> ParseColumnDefinitions(IEnumerator<SqlToke
131131
case SqlTokenType.Text:
132132
if (blockLevel != 0) break;
133133

134-
if (token.Equals(",", StringComparison.InvariantCultureIgnoreCase))
134+
if (token.Equals(",", StringComparison.Ordinal))
135135
{
136136
if (columnAliasToken != null)
137137
{
138138
yield return ParseSelectColumnDefinition(columnBeginToken, columnEndToken ?? columnAliasToken, columnAliasToken);
139139
}
140140
}
141141

142-
if (token.Equals("from", StringComparison.InvariantCultureIgnoreCase))
142+
if (token.Equals("from", StringComparison.OrdinalIgnoreCase))
143143
{
144144
if (columnAliasToken != null)
145145
{
@@ -148,7 +148,7 @@ private IEnumerable<ColumnDefinition> ParseColumnDefinitions(IEnumerator<SqlToke
148148
yield break;
149149
}
150150

151-
if (token.Equals("as", StringComparison.InvariantCultureIgnoreCase))
151+
if (token.Equals("as", StringComparison.OrdinalIgnoreCase))
152152
{
153153
columnEndToken = prevToken;
154154
}
@@ -237,8 +237,8 @@ private IEnumerable<OrderDefinition> ParseOrderDefinitions(IEnumerator<SqlToken>
237237
case SqlTokenType.Text:
238238
if (blockLevel != 0) break;
239239

240-
if (token.Equals("asc", StringComparison.InvariantCultureIgnoreCase)
241-
|| token.Equals("desc", StringComparison.InvariantCultureIgnoreCase))
240+
if (token.Equals("asc", StringComparison.OrdinalIgnoreCase)
241+
|| token.Equals("desc", StringComparison.OrdinalIgnoreCase))
242242
{
243243
orderEndToken = prevToken;
244244
directionToken = token;
@@ -269,7 +269,7 @@ private IEnumerable<OrderDefinition> ParseOrderDefinitions(IEnumerator<SqlToken>
269269
private OrderDefinition ParseOrderDefinition(SqlToken beginToken, SqlToken endToken, SqlToken directionToken)
270270
{
271271
var isDescending = directionToken != null &&
272-
directionToken.Equals("desc", StringComparison.InvariantCultureIgnoreCase);
272+
directionToken.Equals("desc", StringComparison.OrdinalIgnoreCase);
273273

274274
var columnNameOrIndex = beginToken == endToken
275275
? beginToken.Value

0 commit comments

Comments
 (0)