Skip to content

Commit 1aeaf37

Browse files
committed
Revert "Try fix firebird parameter regex"
This reverts commit 39cf3f5.
1 parent 39cf3f5 commit 1aeaf37

File tree

3 files changed

+20
-124
lines changed

3 files changed

+20
-124
lines changed

src/NHibernate.Test/Async/Linq/ParameterTests.cs

Lines changed: 9 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -162,15 +162,7 @@ public async Task CompareIntegralParametersAndColumnsAsync()
162162
3,
163163
sql =>
164164
{
165-
if (Sfi.Dialect is FirebirdDialect)
166-
{
167-
Assert.That(sql, Does.Contain("cast"));
168-
}
169-
else
170-
{
171-
Assert.That(sql, Does.Not.Contain("cast"));
172-
}
173-
165+
Assert.That(sql, Does.Not.Contain("cast"));
174166
Assert.That(GetTotalOccurrences(sql, $"Type: {pair.Value}"), Is.EqualTo(3));
175167
}));
176168
}
@@ -211,15 +203,7 @@ public async Task CompareIntegralParametersWithFloatingPointColumnsAsync()
211203
3,
212204
sql =>
213205
{
214-
if (Sfi.Dialect is FirebirdDialect)
215-
{
216-
Assert.That(sql, Does.Contain("cast"));
217-
}
218-
else
219-
{
220-
Assert.That(sql, Does.Not.Contain("cast"));
221-
}
222-
206+
Assert.That(sql, Does.Not.Contain("cast"));
223207
Assert.That(GetTotalOccurrences(sql, $"Type: {pair.Value}"), Is.EqualTo(3));
224208
}));
225209
}
@@ -261,15 +245,7 @@ public async Task CompareFloatingPointParametersAndColumnsAsync()
261245
totalParameters,
262246
sql =>
263247
{
264-
if (Sfi.Dialect is FirebirdDialect)
265-
{
266-
Assert.That(sql, Does.Contain("cast"));
267-
}
268-
else
269-
{
270-
Assert.That(sql, Does.Not.Contain("cast"));
271-
}
272-
248+
Assert.That(sql, Does.Not.Contain("cast"));
273249
Assert.That(GetTotalOccurrences(sql, $"Type: {pair.Value}"), Is.EqualTo(totalParameters));
274250
}));
275251
}
@@ -392,17 +368,8 @@ public async Task CompareFloatingPointParameterWithDifferentFloatingPointColumns
392368
var matches = pair.Value == "Double"
393369
? Regex.Matches(sql, @"cast\([\w\d]+\..+\)")
394370
: Regex.Matches(sql, @"cast\(((@|\?|:)p\d+|\?)\s+as.*\)");
395-
if (Sfi.Dialect is FirebirdDialect)
396-
{
397-
// Additional casts are added by FirebirdClientDriver
398-
Assert.That(matches.Count, Is.EqualTo(pair.Value == "Double" ? 1 : 2));
399-
}
400-
else
401-
{
402-
// SQLiteDialect uses sql cast for transparentcast method
403-
Assert.That(matches.Count, Is.EqualTo(sameType && !(Sfi.Dialect is SQLiteDialect) ? 0 : 1));
404-
}
405-
371+
// SQLiteDialect uses sql cast for transparentcast method
372+
Assert.That(matches.Count, Is.EqualTo(sameType && !(Sfi.Dialect is SQLiteDialect) ? 0 : 1));
406373
Assert.That(GetTotalOccurrences(sql, $"Type: {pair.Value}"), Is.EqualTo(1));
407374
}));
408375
}
@@ -441,7 +408,7 @@ public async Task CompareIntegralParameterWithIntegralAndFloatingPointColumnsAsy
441408
sql =>
442409
{
443410
var matches = Regex.Matches(sql, @"cast\(((@|\?|:)p\d+|\?)\s+as.*\)");
444-
Assert.That(matches.Count, Is.EqualTo(Sfi.Dialect is FirebirdDialect ? 2 : 1));
411+
Assert.That(matches.Count, Is.EqualTo(1));
445412
Assert.That(GetTotalOccurrences(sql, $"Type: {pair.Value}"), Is.EqualTo(1));
446413
}));
447414
}
@@ -480,17 +447,7 @@ public async Task UsingValueTypeParameterOfDifferentTypeAsync()
480447
await (AssertTotalParametersAsync(
481448
query,
482449
1,
483-
sql =>
484-
{
485-
if (Sfi.Dialect is FirebirdDialect)
486-
{
487-
Assert.That(sql, Does.Contain("cast"));
488-
}
489-
else
490-
{
491-
Assert.That(sql, Does.Not.Contain("cast"));
492-
}
493-
}));
450+
sql => Assert.That(sql, Does.Not.Contain("cast"))));
494451
}
495452

496453
queriables = new List<IQueryable<NumericEntity>>
@@ -519,16 +476,7 @@ public async Task UsingValueTypeParameterOfDifferentTypeAsync()
519476
sql => {
520477
// SQLiteDialect uses sql cast for transparentcast method
521478
Assert.That(sql, !sameType || Sfi.Dialect is SQLiteDialect ? Does.Match("where\\s+cast") : (IResolveConstraint)Does.Not.Contain("cast"));
522-
if (Sfi.Dialect is FirebirdDialect)
523-
{
524-
// Additional casts are added by FirebirdClientDriver
525-
Assert.That(GetTotalOccurrences(sql, "cast"), Is.EqualTo(3));
526-
}
527-
else
528-
{
529-
// SQLiteDialect uses sql cast for transparentcast method
530-
Assert.That(GetTotalOccurrences(sql, "cast"), Is.EqualTo(!sameType || Sfi.Dialect is SQLiteDialect ? 1 : 0));
531-
}
479+
Assert.That(GetTotalOccurrences(sql, "cast"), Is.EqualTo(!sameType || Sfi.Dialect is SQLiteDialect ? 1 : 0));
532480
}));
533481
}
534482
}
@@ -541,7 +489,7 @@ public async Task UsingValueTypeParameterTwiceOnNullablePropertyAsync()
541489
db.NumericEntities.Where(o => o.NullableShort == value && o.NullableShort != value && o.Short == value),
542490
1, sql => {
543491

544-
Assert.That(GetTotalOccurrences(sql, "cast"), Is.EqualTo(Sfi.Dialect is FirebirdDialect ? 3 : 0));
492+
Assert.That(GetTotalOccurrences(sql, "cast"), Is.EqualTo(0));
545493
}));
546494
}
547495

src/NHibernate.Test/Linq/ParameterTests.cs

Lines changed: 9 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -150,15 +150,7 @@ public void CompareIntegralParametersAndColumns()
150150
3,
151151
sql =>
152152
{
153-
if (Sfi.Dialect is FirebirdDialect)
154-
{
155-
Assert.That(sql, Does.Contain("cast"));
156-
}
157-
else
158-
{
159-
Assert.That(sql, Does.Not.Contain("cast"));
160-
}
161-
153+
Assert.That(sql, Does.Not.Contain("cast"));
162154
Assert.That(GetTotalOccurrences(sql, $"Type: {pair.Value}"), Is.EqualTo(3));
163155
});
164156
}
@@ -199,15 +191,7 @@ public void CompareIntegralParametersWithFloatingPointColumns()
199191
3,
200192
sql =>
201193
{
202-
if (Sfi.Dialect is FirebirdDialect)
203-
{
204-
Assert.That(sql, Does.Contain("cast"));
205-
}
206-
else
207-
{
208-
Assert.That(sql, Does.Not.Contain("cast"));
209-
}
210-
194+
Assert.That(sql, Does.Not.Contain("cast"));
211195
Assert.That(GetTotalOccurrences(sql, $"Type: {pair.Value}"), Is.EqualTo(3));
212196
});
213197
}
@@ -249,15 +233,7 @@ public void CompareFloatingPointParametersAndColumns()
249233
totalParameters,
250234
sql =>
251235
{
252-
if (Sfi.Dialect is FirebirdDialect)
253-
{
254-
Assert.That(sql, Does.Contain("cast"));
255-
}
256-
else
257-
{
258-
Assert.That(sql, Does.Not.Contain("cast"));
259-
}
260-
236+
Assert.That(sql, Does.Not.Contain("cast"));
261237
Assert.That(GetTotalOccurrences(sql, $"Type: {pair.Value}"), Is.EqualTo(totalParameters));
262238
});
263239
}
@@ -380,17 +356,8 @@ public void CompareFloatingPointParameterWithDifferentFloatingPointColumns()
380356
var matches = pair.Value == "Double"
381357
? Regex.Matches(sql, @"cast\([\w\d]+\..+\)")
382358
: Regex.Matches(sql, @"cast\(((@|\?|:)p\d+|\?)\s+as.*\)");
383-
if (Sfi.Dialect is FirebirdDialect)
384-
{
385-
// Additional casts are added by FirebirdClientDriver
386-
Assert.That(matches.Count, Is.EqualTo(pair.Value == "Double" ? 1 : 2));
387-
}
388-
else
389-
{
390-
// SQLiteDialect uses sql cast for transparentcast method
391-
Assert.That(matches.Count, Is.EqualTo(sameType && !(Sfi.Dialect is SQLiteDialect) ? 0 : 1));
392-
}
393-
359+
// SQLiteDialect uses sql cast for transparentcast method
360+
Assert.That(matches.Count, Is.EqualTo(sameType && !(Sfi.Dialect is SQLiteDialect) ? 0 : 1));
394361
Assert.That(GetTotalOccurrences(sql, $"Type: {pair.Value}"), Is.EqualTo(1));
395362
});
396363
}
@@ -429,7 +396,7 @@ public void CompareIntegralParameterWithIntegralAndFloatingPointColumns()
429396
sql =>
430397
{
431398
var matches = Regex.Matches(sql, @"cast\(((@|\?|:)p\d+|\?)\s+as.*\)");
432-
Assert.That(matches.Count, Is.EqualTo(Sfi.Dialect is FirebirdDialect ? 2 : 1));
399+
Assert.That(matches.Count, Is.EqualTo(1));
433400
Assert.That(GetTotalOccurrences(sql, $"Type: {pair.Value}"), Is.EqualTo(1));
434401
});
435402
}
@@ -468,17 +435,7 @@ public void UsingValueTypeParameterOfDifferentType()
468435
AssertTotalParameters(
469436
query,
470437
1,
471-
sql =>
472-
{
473-
if (Sfi.Dialect is FirebirdDialect)
474-
{
475-
Assert.That(sql, Does.Contain("cast"));
476-
}
477-
else
478-
{
479-
Assert.That(sql, Does.Not.Contain("cast"));
480-
}
481-
});
438+
sql => Assert.That(sql, Does.Not.Contain("cast")));
482439
}
483440

484441
queriables = new List<IQueryable<NumericEntity>>
@@ -507,16 +464,7 @@ public void UsingValueTypeParameterOfDifferentType()
507464
sql => {
508465
// SQLiteDialect uses sql cast for transparentcast method
509466
Assert.That(sql, !sameType || Sfi.Dialect is SQLiteDialect ? Does.Match("where\\s+cast") : (IResolveConstraint)Does.Not.Contain("cast"));
510-
if (Sfi.Dialect is FirebirdDialect)
511-
{
512-
// Additional casts are added by FirebirdClientDriver
513-
Assert.That(GetTotalOccurrences(sql, "cast"), Is.EqualTo(3));
514-
}
515-
else
516-
{
517-
// SQLiteDialect uses sql cast for transparentcast method
518-
Assert.That(GetTotalOccurrences(sql, "cast"), Is.EqualTo(!sameType || Sfi.Dialect is SQLiteDialect ? 1 : 0));
519-
}
467+
Assert.That(GetTotalOccurrences(sql, "cast"), Is.EqualTo(!sameType || Sfi.Dialect is SQLiteDialect ? 1 : 0));
520468
});
521469
}
522470
}
@@ -529,7 +477,7 @@ public void UsingValueTypeParameterTwiceOnNullableProperty()
529477
db.NumericEntities.Where(o => o.NullableShort == value && o.NullableShort != value && o.Short == value),
530478
1, sql => {
531479

532-
Assert.That(GetTotalOccurrences(sql, "cast"), Is.EqualTo(Sfi.Dialect is FirebirdDialect ? 3 : 0));
480+
Assert.That(GetTotalOccurrences(sql, "cast"), Is.EqualTo(0));
533481
});
534482
}
535483

src/NHibernate/Driver/FirebirdClientDriver.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class FirebirdClientDriver : ReflectionBasedDriver
2424
// Zero-width negative look-behind: the match must not be preceded by
2525
@"(?<!" +
2626
// a comparison,
27-
@"[=<>]\s" +
27+
@"[=<>]\s*" +
2828
// or a paging instruction,
2929
@"|\bfirst\s+|\bskip\s+" +
3030
// or a "between" condition,
@@ -36,7 +36,7 @@ public class FirebirdClientDriver : ReflectionBasedDriver
3636
// Zero-width negative look-ahead: the match must not be followed by
3737
@"(?!" +
3838
// a comparison.
39-
@"\s[=<>])";
39+
@"\s*[=<>])";
4040
private static readonly Regex _statementRegEx = new Regex(SELECT_CLAUSE_EXP, RegexOptions.IgnoreCase);
4141
private static readonly Regex _castCandidateRegEx = new Regex(CAST_PARAMS_EXP, RegexOptions.IgnoreCase);
4242
private readonly FirebirdDialect _fbDialect = new FirebirdDialect();

0 commit comments

Comments
 (0)