Skip to content

Commit d098a4e

Browse files
Merge pull request #309 from yoosoopov/patch-1
Avoid parameter sniffing for exists subquery
2 parents e435350 + de08573 commit d098a4e

3 files changed

Lines changed: 4 additions & 5 deletions

File tree

QueryBuilder.Tests/DefineTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ public void Test_Define_WhereExists()
306306
);
307307

308308
var c = Compile(query);
309-
Assert.Equal("SELECT * FROM [Customers] WHERE EXISTS (SELECT TOP (1) 1 FROM [Orders] WHERE [ShipPostalCode] = '8200')", c[EngineCodes.SqlServer]);
309+
Assert.Equal("SELECT * FROM [Customers] WHERE EXISTS (SELECT 1 FROM [Orders] WHERE [ShipPostalCode] = '8200')", c[EngineCodes.SqlServer]);
310310
}
311311

312312

QueryBuilder.Tests/SqlServer/NestedSelectTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public void SqlCompile_QueryLimitAndNestedLimit_BindingValue()
5656
// var q = new Query().From("Foo").Where("C", "c").WhereExists(n).Where("A", "a");
5757

5858
var actual = compiler.Compile(q).ToString();
59-
Assert.Contains("SELECT * FROM [Foo] WHERE [x] = true AND NOT EXISTS (SELECT TOP (1) 1 FROM [Bar])",
59+
Assert.Contains("SELECT * FROM [Foo] WHERE [x] = true AND NOT EXISTS (SELECT 1 FROM [Bar])",
6060
actual);
6161
// Assert.Contains("SELECT * FROM [Foo] WHERE [C] = 'c' AND EXISTS (SELECT TOP (1) 1 FROM [Bar]) AND [A] = 'a'", actual);
6262
}

QueryBuilder/Base.Where.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -527,8 +527,7 @@ public Q WhereExists(Query query)
527527

528528
// remove unneeded components
529529
query = query.Clone().ClearComponent("select")
530-
.SelectRaw("1")
531-
.Limit(1);
530+
.SelectRaw("1");
532531

533532
return AddComponent("where", new ExistsCondition
534533
{
@@ -690,4 +689,4 @@ public Q OrWhereNotTime(string column, object value)
690689
#endregion
691690

692691
}
693-
}
692+
}

0 commit comments

Comments
 (0)