Merge branch 'master' into ef7

pull/134/head
Christopher Jolly 3 years ago committed by GitHub
commit 5ea5fdc446
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -10,7 +10,7 @@
-->
<VersionPrefix>7.0.0</VersionPrefix>
<PreReleaseVersionLabel>alpha</PreReleaseVersionLabel>
<PreReleaseVersionIteration>1</PreReleaseVersionIteration>
<PreReleaseVersionIteration>2</PreReleaseVersionIteration>
<!--
The following properties will automatically be set by CI builds when appropriate:

@ -33,8 +33,8 @@ namespace EntityFrameworkCore.Jet.Data
}
}
public static DataAccessProviderType DefaultDataAccessProviderType { get; set; } = DataAccessProviderType.Odbc;
public static DataAccessProviderType DefaultDataAccessProviderType { get; set; } = DataAccessProviderType.Odbc;
// The SQL statement
//
// (SELECT COUNT(*) FROM MSysRelationships)

@ -485,5 +485,101 @@ namespace EntityFrameworkCore.Jet.Query.ExpressionTranslators.Internal
return builder.ToString();
}
private SqlExpression TranslateStartsEndsWith(SqlExpression instance, SqlExpression pattern, bool startsWith)
{
var stringTypeMapping = ExpressionExtensions.InferTypeMapping(instance, pattern);
instance = _sqlExpressionFactory.ApplyTypeMapping(instance, stringTypeMapping);
pattern = _sqlExpressionFactory.ApplyTypeMapping(pattern, stringTypeMapping);
if (pattern is SqlConstantExpression constantExpression)
{
// The pattern is constant. Aside from null or empty, we escape all special characters (%, _, \)
// in C# and send a simple LIKE
if (!(constantExpression.Value is string patternValue))
{
return _sqlExpressionFactory.Like(
instance,
_sqlExpressionFactory.Constant(null, stringTypeMapping));
}
return patternValue.Any(IsLikeWildChar)
? _sqlExpressionFactory.Like(
instance,
_sqlExpressionFactory.Constant(
startsWith
? EscapeLikePattern(patternValue) + '%'
: '%' + EscapeLikePattern(patternValue)),
_sqlExpressionFactory.Constant(LikeEscapeString))
: _sqlExpressionFactory.Like(
instance,
_sqlExpressionFactory.Constant(startsWith ? patternValue + '%' : '%' + patternValue));
}
// The pattern is non-constant, we use LEFT or RIGHT to extract substring and compare.
if (startsWith)
{
return _sqlExpressionFactory.Equal(
_sqlExpressionFactory.Function(
"LEFT",
new[]
{
instance,
_sqlExpressionFactory.Function(
"LEN",
new[] { pattern },
nullable: true,
argumentsPropagateNullability: new[] { true },
typeof(int))
},
nullable: true,
argumentsPropagateNullability: new[] { true, true },
typeof(string),
stringTypeMapping),
pattern);
}
return _sqlExpressionFactory.Equal(
_sqlExpressionFactory.Function(
"RIGHT",
new[]
{
instance,
_sqlExpressionFactory.Function(
"LEN",
new[] { pattern },
nullable: true,
argumentsPropagateNullability: new[] { true },
typeof(int))
},
nullable: true,
argumentsPropagateNullability: new[] { true, true },
typeof(string),
stringTypeMapping),
pattern);
}
// See https://docs.microsoft.com/en-us/sql/t-sql/language-elements/like-transact-sql
private bool IsLikeWildChar(char c)
=> c == '%' || c == '_' || c == '[';
private string EscapeLikePattern(string pattern)
{
var builder = new StringBuilder();
for (var i = 0; i < pattern.Length; i++)
{
var c = pattern[i];
if (IsLikeWildChar(c)
|| c == LikeEscapeChar)
{
builder.Append(LikeEscapeChar);
}
builder.Append(c);
}
return builder.ToString();
}
}
}

@ -202,7 +202,7 @@ FROM `Order Details` AS `o`");
await base.Average_with_division_on_decimal_no_significant_digits(isAsync);
AssertSql(
$@"SELECT AVG(IIF(`o`.`Quantity` IS NULL, NULL, CCUR(`o`.`Quantity`)) / 2.0)
$@"SELECT AVG(CCUR(`o`.`Quantity`) / 2.0)
FROM `Order Details` AS `o`");
}

@ -764,7 +764,7 @@ WHERE ABS(`p`.`ProductID`) > 10");
await base.Where_math_abs2(isAsync);
AssertSql(
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE `o`.`UnitPrice` < 7.0 AND ABS(`o`.`Quantity`) > 10");
}
@ -774,7 +774,7 @@ WHERE `o`.`UnitPrice` < 7.0 AND ABS(`o`.`Quantity`) > 10");
await base.Where_math_abs3(isAsync);
AssertSql(
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE `o`.`Quantity` < 5 AND ABS(`o`.`UnitPrice`) > 10.0");
}
@ -1006,7 +1006,7 @@ WHERE `o`.`OrderID` = 11077 AND SQR(CDBL(`o`.`Discount`)) > 0.0");
await base.Where_math_acos(isAsync);
AssertSql(
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE `o`.`OrderID` = 11077 AND (1.5707963267948966 + ATN(-CDBL(`o`.`Discount`) / SQR(-(CDBL(`o`.`Discount`) * CDBL(`o`.`Discount`)) + 1.0))) > 1.0");
}
@ -1016,7 +1016,7 @@ WHERE `o`.`OrderID` = 11077 AND (1.5707963267948966 + ATN(-CDBL(`o`.`Discount`)
await base.Where_math_asin(isAsync);
AssertSql(
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE `o`.`OrderID` = 11077 AND ATN(CDBL(`o`.`Discount`) / SQR(-(CDBL(`o`.`Discount`) * CDBL(`o`.`Discount`)) + 1.0)) > 0.0");
}
@ -1373,6 +1373,237 @@ WHERE `o`.`OrderID` = 11077 AND SGN(`o`.`Discount`) > 0
""");
}
public override async Task Where_mathf_abs1(bool async)
{
await base.Where_mathf_abs1(async);
AssertSql(
@"SELECT `p`.`ProductID`, `p`.`Discontinued`, `p`.`ProductName`, `p`.`SupplierID`, `p`.`UnitPrice`, `p`.`UnitsInStock`
FROM `Products` AS `p`
WHERE ABS(CSNG(`p`.`ProductID`)) > 10");
}
public override async Task Where_mathf_ceiling1(bool async)
{
await base.Where_mathf_ceiling1(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE `o`.`UnitPrice` < 7.0 AND CEILING(`o`.`Discount`) > CAST(0 AS real)");
}
public override async Task Where_mathf_floor(bool async)
{
await base.Where_mathf_floor(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE `o`.`Quantity` < CAST(5 AS smallint) AND FLOOR(CAST(`o`.`UnitPrice` AS real)) > CAST(10 AS real)");
}
public override async Task Where_mathf_power(bool async)
{
await base.Where_mathf_power(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE `o`.`Discount`^3 > 0.005");
}
public override async Task Where_mathf_square(bool async)
{
await base.Where_mathf_square(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE `o`.`Discount`^2 > 0.05");
}
public override async Task Where_mathf_round2(bool async)
{
await base.Where_mathf_round2(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE CSNG(ROUND(CSNG(`o`.`UnitPrice`), 2)) > 100");
}
public override async Task Select_mathf_round(bool async)
{
await base.Select_mathf_round(async);
AssertSql(
@"SELECT CSNG(ROUND(CSNG(`o`.`OrderID`), 0))
FROM `Orders` AS `o`
WHERE `o`.`OrderID` < 10250");
}
public override async Task Select_mathf_round2(bool async)
{
await base.Select_mathf_round2(async);
AssertSql(
@"SELECT CSNG(ROUND(CSNG(`o`.`UnitPrice`), 2))
FROM `Order Details` AS `o`
WHERE `o`.`Quantity` < 5");
}
public override async Task Where_mathf_truncate(bool async)
{
await base.Where_mathf_truncate(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE (`o`.`Quantity` < 5) AND (CSNG(INT(CSNG(`o`.`UnitPrice`))) > 10)");
}
public override async Task Select_mathf_truncate(bool async)
{
await base.Select_mathf_truncate(async);
AssertSql(
@"SELECT CSNG(INT(CSNG(`o`.`UnitPrice`)))
FROM `Order Details` AS `o`
WHERE `o`.`Quantity` < 5");
}
public override async Task Where_mathf_exp(bool async)
{
await base.Where_mathf_exp(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE (`o`.`OrderID` = 11077) AND (EXP(`o`.`Discount`) > 1)");
}
public override async Task Where_mathf_log10(bool async)
{
await base.Where_mathf_log10(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE ((`o`.`OrderID` = 11077) AND (`o`.`Discount` > 0)) AND ((LOG(`o`.`Discount`) / 2.3025851) < 0)");
}
public override async Task Where_mathf_log(bool async)
{
await base.Where_mathf_log(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE ((`o`.`OrderID` = 11077) AND (`o`.`Discount` > 0)) AND (LOG(`o`.`Discount`) < 0)");
}
public override async Task Where_mathf_log_new_base(bool async)
{
await base.Where_mathf_log_new_base(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE ((`o`.`OrderID` = 11077) AND (`o`.`Discount` > 0)) AND ((LOG(`o`.`Discount`) / LOG(7)) < 0)");
}
public override async Task Where_mathf_sqrt(bool async)
{
await base.Where_mathf_sqrt(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE (`o`.`OrderID` = 11077) AND (SQR(`o`.`Discount`) > 0)");
}
public override async Task Where_mathf_acos(bool async)
{
await base.Where_mathf_acos(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE (`o`.`OrderID` = 11077) AND ((1.5707963267948966 + ATN(-`o`.`Discount` / SQR(-(`o`.`Discount` * `o`.`Discount`) + 1))) > 1.0)");
}
public override async Task Where_mathf_asin(bool async)
{
await base.Where_mathf_asin(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE (`o`.`OrderID` = 11077) AND (ATN(`o`.`Discount` / SQR(-(`o`.`Discount` * `o`.`Discount`) + 1)) > 0)");
}
public override async Task Where_mathf_atan(bool async)
{
await base.Where_mathf_atan(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE (`o`.`OrderID` = 11077) AND (ATN(`o`.`Discount`) > 0)");
}
public override async Task Where_mathf_atan2(bool async)
{
await base.Where_mathf_atan2(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE (`o`.`OrderID` = 11077) AND ATN2(`o`.`Discount`, CAST(1 AS real)) > CAST(0 AS real)");
}
public override async Task Where_mathf_cos(bool async)
{
await base.Where_mathf_cos(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE (`o`.`OrderID` = 11077) AND (COS(`o`.`Discount`) > 0)");
}
public override async Task Where_mathf_sin(bool async)
{
await base.Where_mathf_sin(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE (`o`.`OrderID` = 11077) AND (SIN(`o`.`Discount`) > 0)");
}
public override async Task Where_mathf_tan(bool async)
{
await base.Where_mathf_tan(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE (`o`.`OrderID` = 11077) AND (TAN(`o`.`Discount`) > 0)");
}
public override async Task Where_mathf_sign(bool async)
{
await base.Where_mathf_sign(async);
AssertSql(
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
FROM `Order Details` AS `o`
WHERE (`o`.`OrderID` = 11077) AND (SGN(`o`.`Discount`) > 0)");
}
public override async Task Where_guid_newguid(bool isAsync)
{
await base.Where_guid_newguid(isAsync);

@ -922,16 +922,12 @@ GROUP BY `t`.`CustomerID`");
await base.OrderBy_Skip_Take_GroupBy_Aggregate(isAsync);
AssertSql(
$@"{AssertSqlHelper.Declaration("@__p_0='80'")}
{AssertSqlHelper.Declaration("@__p_1='500'")}
SELECT MAX(`t`.`OrderID`)
$@"SELECT MAX(`t`.`OrderID`)
FROM (
SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
FROM `Orders` AS `o`
ORDER BY `o`.`OrderID`
SKIP {AssertSqlHelper.Parameter("@__p_0")} FETCH NEXT {AssertSqlHelper.Parameter("@__p_1")} ROWS ONLY
SKIP 80 FETCH NEXT 50 ROWS ONLY
) AS `t`
GROUP BY `t`.`CustomerID`");
}
@ -1221,7 +1217,7 @@ ORDER BY COUNT(*), `o`.`CustomerID`");
await base.GroupBy_aggregate_Contains(isAsync);
AssertSql(
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
FROM `Orders` AS `o`
WHERE EXISTS (
SELECT 1
@ -1362,7 +1358,7 @@ INNER JOIN `Orders` AS `o0` ON `t`.`LastOrderID` = `o0`.`OrderID`");
await base.Join_GroupBy_Aggregate_single_join(isAsync);
AssertSql(
$@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, `t`.`LastOrderID`
$@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, `t`.`LastOrderID`
FROM `Customers` AS `c`
INNER JOIN (
SELECT `o`.`CustomerID`, MAX(`o`.`OrderID`) AS `LastOrderID`
@ -1393,7 +1389,7 @@ INNER JOIN `Orders` AS `o0` ON `c`.`CustomerID` = `o0`.`CustomerID`");
await base.Join_GroupBy_Aggregate_in_subquery(isAsync);
AssertSql(
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`, `t0`.`CustomerID`, `t0`.`Address`, `t0`.`City`, `t0`.`CompanyName`, `t0`.`ContactName`, `t0`.`ContactTitle`, `t0`.`Country`, `t0`.`Fax`, `t0`.`Phone`, `t0`.`PostalCode`, `t0`.`Region`
@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`, `t0`.`CustomerID`, `t0`.`Address`, `t0`.`City`, `t0`.`CompanyName`, `t0`.`ContactName`, `t0`.`ContactTitle`, `t0`.`Country`, `t0`.`Fax`, `t0`.`Phone`, `t0`.`PostalCode`, `t0`.`Region`
FROM `Orders` AS `o`
INNER JOIN (
SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`
@ -1482,7 +1478,7 @@ ORDER BY `t`.`CustomerID`");
END
), `c`.`CustomerID`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'A' & '%'",
WHERE `c`.`CustomerID` LIKE 'A%'",
//
$@"{AssertSqlHelper.Declaration("@_outer_CustomerID='ALFKI' (Size = 5)")}
@ -1684,14 +1680,14 @@ FROM (
await base.MinMax_after_GroupBy_aggregate(isAsync);
AssertSql(
$@"SELECT MIN(`t`.`c`)
@"SELECT MIN(`t`.`c`)
FROM (
SELECT IIF(SUM(`o`.`OrderID`) IS NULL, 0, SUM(`o`.`OrderID`)) AS `c`
FROM `Orders` AS `o`
GROUP BY `o`.`CustomerID`
) AS `t`",
//
$@"SELECT MAX(`t`.`c`)
@"SELECT MAX(`t`.`c`)
FROM (
SELECT IIF(SUM(`o`.`OrderID`) IS NULL, 0, SUM(`o`.`OrderID`)) AS `c`
FROM `Orders` AS `o`

@ -25,7 +25,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests.Query
await base.Include_list(async);
AssertSql(
$@"SELECT `p`.`ProductID`, `p`.`Discontinued`, `p`.`ProductName`, `p`.`SupplierID`, `p`.`UnitPrice`, `p`.`UnitsInStock`, `t`.`OrderID`, `t`.`ProductID`, `t`.`Discount`, `t`.`Quantity`, `t`.`UnitPrice`, `t`.`OrderID0`, `t`.`CustomerID`, `t`.`EmployeeID`, `t`.`OrderDate`
@"SELECT `p`.`ProductID`, `p`.`Discontinued`, `p`.`ProductName`, `p`.`SupplierID`, `p`.`UnitPrice`, `p`.`UnitsInStock`, `t`.`OrderID`, `t`.`ProductID`, `t`.`Discount`, `t`.`Quantity`, `t`.`UnitPrice`, `t`.`OrderID0`, `t`.`CustomerID`, `t`.`EmployeeID`, `t`.`OrderDate`
FROM `Products` AS `p`
LEFT JOIN (
SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`, `o0`.`OrderID` AS `OrderID0`, `o0`.`CustomerID`, `o0`.`EmployeeID`, `o0`.`OrderDate`
@ -41,7 +41,7 @@ ORDER BY `p`.`ProductID`, `t`.`OrderID`, `t`.`ProductID`");
await base.Include_reference(async);
AssertSql(
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`, `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`
@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`, `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`
FROM `Orders` AS `o`
LEFT JOIN `Customers` AS `c` ON `o`.`CustomerID` = `c`.`CustomerID`
WHERE (`o`.`CustomerID` IS NOT NULL) AND (`o`.`CustomerID` LIKE 'F%')");
@ -52,11 +52,11 @@ WHERE (`o`.`CustomerID` IS NOT NULL) AND (`o`.`CustomerID` LIKE 'F%')");
await base.Include_when_result_operator(async);
AssertSql(
$@"SELECT CASE
@"SELECT CASE
WHEN EXISTS (
SELECT 1
FROM `Customers` AS `c`) THEN True
ELSE False
FROM `Customers` AS `c`) THEN CAST(1 AS bit)
ELSE CAST(0 AS bit)
END");
}
@ -65,7 +65,7 @@ END");
await base.Include_collection(async);
AssertSql(
$@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
FROM `Customers` AS `c`
LEFT JOIN `Orders` AS `o` ON `c`.`CustomerID` = `o`.`CustomerID`
WHERE `c`.`CustomerID` LIKE 'F%'
@ -77,7 +77,7 @@ ORDER BY `c`.`CustomerID`");
await base.Include_collection_with_last(async);
AssertSql(
$@"SELECT `t`.`CustomerID`, `t`.`Address`, `t`.`City`, `t`.`CompanyName`, `t`.`ContactName`, `t`.`ContactTitle`, `t`.`Country`, `t`.`Fax`, `t`.`Phone`, `t`.`PostalCode`, `t`.`Region`, `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
@"SELECT `t`.`CustomerID`, `t`.`Address`, `t`.`City`, `t`.`CompanyName`, `t`.`ContactName`, `t`.`ContactTitle`, `t`.`Country`, `t`.`Fax`, `t`.`Phone`, `t`.`PostalCode`, `t`.`Region`, `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
FROM (
SELECT TOP 1 `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`
FROM `Customers` AS `c`
@ -253,7 +253,7 @@ ORDER BY `t`.`OrderID`, `t0`.`OrderID`, `t0`.`ProductID`");
await base.Include_collection_alias_generation(async);
AssertSql(
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`, `o0`.`OrderID`, `o0`.`ProductID`, `o0`.`Discount`, `o0`.`Quantity`, `o0`.`UnitPrice`
@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`, `o0`.`OrderID`, `o0`.`ProductID`, `o0`.`Discount`, `o0`.`Quantity`, `o0`.`UnitPrice`
FROM `Orders` AS `o`
LEFT JOIN `Order Details` AS `o0` ON `o`.`OrderID` = `o0`.`OrderID`
WHERE (`o`.`CustomerID` IS NOT NULL) AND (`o`.`CustomerID` LIKE 'F%')
@ -273,7 +273,7 @@ FROM (
WHERE `c`.`CustomerID` = `o`.`CustomerID`
ORDER BY `o`.`OrderDate` DESC) AS `c`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'W' & '%'
WHERE `c`.`CustomerID` LIKE 'W%'
ORDER BY (
SELECT TOP 1 `o`.`OrderDate`
FROM `Orders` AS `o`
@ -289,7 +289,7 @@ ORDER BY `t`.`c` DESC, `t`.`CustomerID`, `o0`.`OrderID`");
await base.Include_collection_order_by_key(async);
AssertSql(
$@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
FROM `Customers` AS `c`
LEFT JOIN `Orders` AS `o` ON `c`.`CustomerID` = `o`.`CustomerID`
WHERE `c`.`CustomerID` LIKE 'F%'
@ -301,7 +301,7 @@ ORDER BY `c`.`CustomerID`");
await base.Include_collection_order_by_non_key(async);
AssertSql(
$@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
FROM `Customers` AS `c`
LEFT JOIN `Orders` AS `o` ON `c`.`CustomerID` = `o`.`CustomerID`
WHERE `c`.`CustomerID` LIKE 'F%'
@ -340,7 +340,7 @@ FROM (
SKIP {AssertSqlHelper.Parameter("@__p_0")}
) AS `t`
LEFT JOIN `Orders` AS `o` ON `t`.`CustomerID` = `o`.`CustomerID`
ORDER BY `t`.`ContactTitle`, `t`.`CustomerID`, `o`.`OrderID`");
ORDER BY `t`.`ContactTitle`, `t`.`CustomerID`");
}
}
@ -431,7 +431,7 @@ ORDER BY `c`.`CustomerID`");
await base.Include_collection_then_include_collection(async);
AssertSql(
$@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, `t`.`OrderID`, `t`.`CustomerID`, `t`.`EmployeeID`, `t`.`OrderDate`, `t`.`OrderID0`, `t`.`ProductID`, `t`.`Discount`, `t`.`Quantity`, `t`.`UnitPrice`
@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, `t`.`OrderID`, `t`.`CustomerID`, `t`.`EmployeeID`, `t`.`OrderDate`, `t`.`OrderID0`, `t`.`ProductID`, `t`.`Discount`, `t`.`Quantity`, `t`.`UnitPrice`
FROM `Customers` AS `c`
LEFT JOIN (
SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`, `o0`.`OrderID` AS `OrderID0`, `o0`.`ProductID`, `o0`.`Discount`, `o0`.`Quantity`, `o0`.`UnitPrice`
@ -446,7 +446,7 @@ ORDER BY `c`.`CustomerID`, `t`.`OrderID`, `t`.`OrderID0`");
await base.Include_collection_then_include_collection_then_include_reference(async);
AssertSql(
$@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, `t0`.`OrderID`, `t0`.`CustomerID`, `t0`.`EmployeeID`, `t0`.`OrderDate`, `t0`.`OrderID0`, `t0`.`ProductID`, `t0`.`Discount`, `t0`.`Quantity`, `t0`.`UnitPrice`, `t0`.`ProductID0`, `t0`.`Discontinued`, `t0`.`ProductName`, `t0`.`SupplierID`, `t0`.`UnitPrice0`, `t0`.`UnitsInStock`
@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, `t0`.`OrderID`, `t0`.`CustomerID`, `t0`.`EmployeeID`, `t0`.`OrderDate`, `t0`.`OrderID0`, `t0`.`ProductID`, `t0`.`Discount`, `t0`.`Quantity`, `t0`.`UnitPrice`, `t0`.`ProductID0`, `t0`.`Discontinued`, `t0`.`ProductName`, `t0`.`SupplierID`, `t0`.`UnitPrice0`, `t0`.`UnitsInStock`
FROM `Customers` AS `c`
LEFT JOIN (
SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`, `t`.`OrderID` AS `OrderID0`, `t`.`ProductID`, `t`.`Discount`, `t`.`Quantity`, `t`.`UnitPrice`, `t`.`ProductID0`, `t`.`Discontinued`, `t`.`ProductName`, `t`.`SupplierID`, `t`.`UnitPrice0`, `t`.`UnitsInStock`
@ -664,7 +664,7 @@ WHERE (`o`.`OrderID` MOD 23) = 13");
await base.Include_reference_alias_generation(async);
AssertSql(
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`, `o0`.`OrderID`, `o0`.`CustomerID`, `o0`.`EmployeeID`, `o0`.`OrderDate`
@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`, `o0`.`OrderID`, `o0`.`CustomerID`, `o0`.`EmployeeID`, `o0`.`OrderDate`
FROM `Order Details` AS `o`
INNER JOIN `Orders` AS `o0` ON `o`.`OrderID` = `o0`.`OrderID`
WHERE (`o`.`OrderID` MOD 23) = 13");
@ -785,11 +785,11 @@ WHERE `o`.`CustomerID` = 'ALFKI'");
await base.Include_collection_dependent_already_tracked(async);
AssertSql(
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
FROM `Orders` AS `o`
WHERE `o`.`CustomerID` = 'ALFKI'",
//
$@"SELECT `t`.`CustomerID`, `t`.`Address`, `t`.`City`, `t`.`CompanyName`, `t`.`ContactName`, `t`.`ContactTitle`, `t`.`Country`, `t`.`Fax`, `t`.`Phone`, `t`.`PostalCode`, `t`.`Region`, `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
@"SELECT `t`.`CustomerID`, `t`.`Address`, `t`.`City`, `t`.`CompanyName`, `t`.`ContactName`, `t`.`ContactTitle`, `t`.`Country`, `t`.`Fax`, `t`.`Phone`, `t`.`PostalCode`, `t`.`Region`, `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
FROM (
SELECT TOP 2 `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`
FROM `Customers` AS `c`
@ -833,7 +833,7 @@ LEFT JOIN `Customers` AS `c` ON `o`.`CustomerID` = `c`.`CustomerID`");
await base.Include_with_complex_projection_does_not_change_ordering_of_projection(async);
AssertSql(
$@"SELECT `c`.`CustomerID` AS `Id`, (
@"SELECT `c`.`CustomerID` AS `Id`, (
SELECT COUNT(*)
FROM `Orders` AS `o0`
WHERE `c`.`CustomerID` = `o0`.`CustomerID`) AS `TotalOrders`
@ -918,7 +918,7 @@ FROM (
WHERE `c`.`CustomerID` = `o`.`CustomerID`
ORDER BY `o`.`OrderDate` DESC) AS `c`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'W' & '%'
WHERE `c`.`CustomerID` LIKE 'W%'
ORDER BY (
SELECT TOP 1 `o`.`OrderDate`
FROM `Orders` AS `o`
@ -995,21 +995,21 @@ ORDER BY `o`.`OrderID`, `o0`.`OrderID`");
SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'A' & '%'
WHERE `c`.`CustomerID` LIKE 'A%'
ORDER BY (SELECT 1), `c`.`CustomerID`
SKIP {AssertSqlHelper.Parameter("@__p_1")}",
//
$@"{AssertSqlHelper.Declaration("@__p_1='1'")}
SELECT [c.Orders].`OrderID`, [c.Orders].`CustomerID`, [c.Orders].`EmployeeID`, [c.Orders].`OrderDate`
FROM `Orders` AS [c.Orders]
SELECT `c.Orders].`OrderID`, `c.Orders].`CustomerID`, `c.Orders].`EmployeeID`, `c.Orders].`OrderDate`
FROM `Orders` AS `c.Orders]
INNER JOIN (
SELECT `c0`.`CustomerID`, False AS `c`
FROM `Customers` AS `c0`
WHERE `c0`.`CustomerID` LIKE 'A' & '%'
WHERE `c0`.`CustomerID` LIKE 'A%'
ORDER BY `c`, `c0`.`CustomerID`
SKIP {AssertSqlHelper.Parameter("@__p_1")}
) AS `t` ON [c.Orders].`CustomerID` = `t`.`CustomerID`
) AS `t` ON `c.Orders].`CustomerID` = `t`.`CustomerID`
ORDER BY `t`.`c`, `t`.`CustomerID`");
}
@ -1022,21 +1022,21 @@ ORDER BY `t`.`c`, `t`.`CustomerID`");
SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'A' & '%'
WHERE `c`.`CustomerID` LIKE 'A%'
ORDER BY (SELECT 1), `c`.`CustomerID`
SKIP {AssertSqlHelper.Parameter("@__p_1")}",
//
$@"{AssertSqlHelper.Declaration("@__p_1='1'")}
SELECT [c.Orders].`OrderID`, [c.Orders].`CustomerID`, [c.Orders].`EmployeeID`, [c.Orders].`OrderDate`
FROM `Orders` AS [c.Orders]
SELECT `c.Orders].`OrderID`, `c.Orders].`CustomerID`, `c.Orders].`EmployeeID`, `c.Orders].`OrderDate`
FROM `Orders` AS `c.Orders]
INNER JOIN (
SELECT `c0`.`CustomerID`, True AS `c`
FROM `Customers` AS `c0`
WHERE `c0`.`CustomerID` LIKE 'A' & '%'
WHERE `c0`.`CustomerID` LIKE 'A%'
ORDER BY `c`, `c0`.`CustomerID`
SKIP {AssertSqlHelper.Parameter("@__p_1")}
) AS `t` ON [c.Orders].`CustomerID` = `t`.`CustomerID`
) AS `t` ON `c.Orders].`CustomerID` = `t`.`CustomerID`
ORDER BY `t`.`c`, `t`.`CustomerID`");
}
@ -1051,7 +1051,7 @@ SELECT `t`.`CustomerID`, `t`.`Address`, `t`.`City`, `t`.`CompanyName`, `t`.`Cont
FROM (
SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, IIF(`c`.`CustomerID` IN ('ALFKI'), 1, 0) AS `c`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'A' & '%'
WHERE `c`.`CustomerID` LIKE 'A%'
ORDER BY IIF(`c`.`CustomerID` IN ('ALFKI'), 1, 0)
SKIP {AssertSqlHelper.Parameter("@__p_1")}
) AS `t`
@ -1070,7 +1070,7 @@ SELECT `t`.`CustomerID`, `t`.`Address`, `t`.`City`, `t`.`CompanyName`, `t`.`Cont
FROM (
SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, IIF(`c`.`CustomerID` NOT IN ('ALFKI'), 1, 0) AS `c`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'A' & '%'
WHERE `c`.`CustomerID` LIKE 'A%'
ORDER BY IIF(`c`.`CustomerID` NOT IN ('ALFKI'), 1, 0)
SKIP {AssertSqlHelper.Parameter("@__p_1")}
) AS `t`

@ -207,7 +207,7 @@ WHERE `t`.`CustomerID` = 'ALFKI'");
$@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`, `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
FROM `Customers` AS `c`
INNER JOIN `Orders` AS `o` ON (`c`.`CustomerID` = `o`.`CustomerID`) AND (`c`.`CustomerID` = `o`.`CustomerID`)
WHERE `c`.`CustomerID` LIKE 'F' & '%'");
WHERE `c`.`CustomerID` LIKE 'F%'");
}
public override async Task Join_complex_condition(bool isAsync)

@ -887,7 +887,7 @@ ORDER BY `c`.`CustomerID`");
ELSE False
END AS `hasOrders`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'A' & '%'
WHERE `c`.`CustomerID` LIKE 'A%'
ORDER BY `c`.`CustomerID`");
}
@ -1320,7 +1320,7 @@ FROM (SELECT COUNT(*) FROM `" + (string.IsNullOrEmpty(JetConfiguration.CustomDua
WHEN EXISTS (
SELECT 1
FROM `Customers` AS `c`
WHERE `c`.`ContactName` IS NOT NULL AND (`c`.`ContactName` LIKE 'A' & '%')) THEN True
WHERE `c`.`ContactName` IS NOT NULL AND (`c`.`ContactName` LIKE 'A%')) THEN True
ELSE False
END");
}
@ -1335,7 +1335,7 @@ FROM `Customers` AS `c`
WHERE NOT (EXISTS (
SELECT 1
FROM `Orders` AS `o`
WHERE `o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A' & '%')))");
WHERE `o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A%')))");
}
public override async Task Any_nested_negated2(bool isAsync)
@ -1348,7 +1348,7 @@ FROM `Customers` AS `c`
WHERE ((`c`.`City` <> 'London') OR `c`.`City` IS NULL) AND NOT (EXISTS (
SELECT 1
FROM `Orders` AS `o`
WHERE `o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A' & '%')))");
WHERE `o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A%')))");
}
public override async Task Any_nested_negated3(bool isAsync)
@ -1361,7 +1361,7 @@ FROM `Customers` AS `c`
WHERE NOT (EXISTS (
SELECT 1
FROM `Orders` AS `o`
WHERE `o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A' & '%'))) AND ((`c`.`City` <> 'London') OR `c`.`City` IS NULL)");
WHERE `o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A%'))) AND ((`c`.`City` <> 'London') OR `c`.`City` IS NULL)");
}
public override async Task Any_nested(bool isAsync)
@ -1374,7 +1374,7 @@ FROM `Customers` AS `c`
WHERE EXISTS (
SELECT 1
FROM `Orders` AS `o`
WHERE `o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A' & '%'))");
WHERE `o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A%'))");
}
public override async Task Any_nested2(bool isAsync)
@ -1387,7 +1387,7 @@ FROM `Customers` AS `c`
WHERE ((`c`.`City` <> 'London') OR `c`.`City` IS NULL) AND EXISTS (
SELECT 1
FROM `Orders` AS `o`
WHERE `o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A' & '%'))");
WHERE `o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A%'))");
}
public override async Task Any_nested3(bool isAsync)
@ -1400,7 +1400,7 @@ FROM `Customers` AS `c`
WHERE EXISTS (
SELECT 1
FROM `Orders` AS `o`
WHERE `o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A' & '%')) AND ((`c`.`City` <> 'London') OR `c`.`City` IS NULL)");
WHERE `o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A%')) AND ((`c`.`City` <> 'London') OR `c`.`City` IS NULL)");
}
public override async Task Any_with_multiple_conditions_still_uses_exists(bool isAsync)
@ -1426,7 +1426,7 @@ WHERE (`c`.`City` = 'London') AND EXISTS (
// WHEN NOT EXISTS (
// SELECT 1
// FROM `Customers` AS `c`
// WHERE NOT (`c`.`ContactName` LIKE 'A' & '%'))
// WHERE NOT (`c`.`ContactName` LIKE 'A%'))
// THEN True ELSE False
//END");
}
@ -1995,7 +1995,7 @@ SELECT CASE
ORDER BY `c`.`CustomerID`
SKIP {AssertSqlHelper.Parameter("@__p_0")} FETCH NEXT {AssertSqlHelper.Parameter("@__p_1")} ROWS ONLY
) AS `t`
WHERE NOT (`t`.`CustomerID` LIKE 'B' & '%')) THEN True
WHERE NOT (`t`.`CustomerID` LIKE 'B%')) THEN True
ELSE False
END");
}
@ -2015,7 +2015,7 @@ SELECT CASE
FROM `Customers` AS `c`
ORDER BY `c`.`CustomerID`
) AS `t`
WHERE NOT (`t`.`CustomerID` LIKE 'A' & '%')) THEN True
WHERE NOT (`t`.`CustomerID` LIKE 'A%')) THEN True
ELSE False
END");
}
@ -2038,7 +2038,7 @@ SELECT CASE
ORDER BY `c`.`CustomerID`
SKIP {AssertSqlHelper.Parameter("@__p_0")} FETCH NEXT {AssertSqlHelper.Parameter("@__p_1")} ROWS ONLY
) AS `t`
WHERE `t`.`CustomerID` LIKE 'C' & '%') THEN True
WHERE `t`.`CustomerID` LIKE 'C%') THEN True
ELSE False
END");
}
@ -2058,7 +2058,7 @@ SELECT CASE
FROM `Customers` AS `c`
ORDER BY `c`.`CustomerID`
) AS `t`
WHERE `t`.`CustomerID` LIKE 'B' & '%') THEN True
WHERE `t`.`CustomerID` LIKE 'B%') THEN True
ELSE False
END");
}
@ -2190,7 +2190,7 @@ END");
AssertSql(
$@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'A' & '%'
WHERE `c`.`CustomerID` LIKE 'A%'
ORDER BY CASE
WHEN EXISTS (
SELECT 1
@ -2339,7 +2339,7 @@ INNER JOIN `Customers` AS `c` ON `t`.`CustomerID` = `c`.`CustomerID`");
// FROM `Orders` AS `o`
// WHERE `o`.`OrderID` < 10300
//) AS `t`
//WHERE `c`.`CustomerID` LIKE 'A' & '%'");
//WHERE `c`.`CustomerID` LIKE 'A%'");
}
public override async Task Select_correlated_subquery_filtered(bool isAsync)
@ -2349,7 +2349,7 @@ INNER JOIN `Customers` AS `c` ON `t`.`CustomerID` = `c`.`CustomerID`");
AssertSql(
$@"SELECT `c`.`CustomerID`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'A' & '%'
WHERE `c`.`CustomerID` LIKE 'A%'
ORDER BY `c`.`CustomerID`",
//
$@"{AssertSqlHelper.Declaration("@_outer_CustomerID='ALFKI' (Size = 5)")}
@ -3507,7 +3507,7 @@ FROM (
SELECT DISTINCT `c`.`CustomerID`
FROM `Customers` AS `c`
) AS `t`
WHERE `t`.`CustomerID` LIKE 'A' & '%'");
WHERE `t`.`CustomerID` LIKE 'A%'");
}
public override async Task Anonymous_complex_distinct_where(bool isAsync)
@ -3543,7 +3543,7 @@ FROM (
SELECT DISTINCT `c`.`CustomerID` + `c`.`City` AS `c`
FROM `Customers` AS `c`
) AS `t`
WHERE `t`.`c` IS NOT NULL AND (`t`.`c` LIKE 'A' & '%')");
WHERE `t`.`c` IS NOT NULL AND (`t`.`c` LIKE 'A%')");
}
public override async Task Anonymous_complex_orderby(bool isAsync)
@ -3611,7 +3611,7 @@ FROM (
SELECT DISTINCT `c`.`CustomerID`
FROM `Customers` AS `c`
) AS `t`
WHERE `t`.`CustomerID` LIKE 'A' & '%'");
WHERE `t`.`CustomerID` LIKE 'A%'");
}
public override async Task DTO_complex_distinct_where(bool isAsync)
@ -3647,7 +3647,7 @@ FROM (
SELECT DISTINCT `c`.`CustomerID` + `c`.`City` AS `c`
FROM `Customers` AS `c`
) AS `t`
WHERE `t`.`c` IS NOT NULL AND (`t`.`c` LIKE 'A' & '%')");
WHERE `t`.`c` IS NOT NULL AND (`t`.`c` LIKE 'A%')");
}
public override async Task DTO_complex_orderby(bool isAsync)
@ -4101,7 +4101,7 @@ FROM `Orders` AS `o`,
`Orders` AS `o0`
LEFT JOIN `Customers` AS `c` ON `o`.`CustomerID` = `c`.`CustomerID`
LEFT JOIN `Customers` AS `c0` ON `o0`.`CustomerID` = `c0`.`CustomerID`
WHERE (`o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A' & '%')) AND ((`c`.`CustomerID` = `c0`.`CustomerID`) OR (`c`.`CustomerID` IS NULL AND `c0`.`CustomerID` IS NULL))
WHERE (`o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A%')) AND ((`c`.`CustomerID` = `c0`.`CustomerID`) OR (`c`.`CustomerID` IS NULL AND `c0`.`CustomerID` IS NULL))
ORDER BY `o`.`OrderID`, `o0`.`OrderID`");
}
@ -4115,7 +4115,7 @@ FROM `Orders` AS `o`,
`Orders` AS `o0`
LEFT JOIN `Customers` AS `c` ON `o`.`CustomerID` = `c`.`CustomerID`
LEFT JOIN `Customers` AS `c0` ON `o0`.`CustomerID` = `c0`.`CustomerID`
WHERE (`o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A' & '%')) AND ((`c`.`CustomerID` = `c0`.`CustomerID`) OR (`c`.`CustomerID` IS NULL AND `c0`.`CustomerID` IS NULL))
WHERE (`o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A%')) AND ((`c`.`CustomerID` = `c0`.`CustomerID`) OR (`c`.`CustomerID` IS NULL AND `c0`.`CustomerID` IS NULL))
ORDER BY `o`.`OrderID`, `o0`.`OrderID`");
}
@ -4359,7 +4359,7 @@ WHERE EXISTS (
WHERE `c`.`CustomerID` = `o`.`CustomerID`
ORDER BY `o`.`OrderDate`) AS `OrderDate`
FROM `Customers` AS `c`
WHERE (`c`.`CustomerID` LIKE 'A' & '%') AND (
WHERE (`c`.`CustomerID` LIKE 'A%') AND (
SELECT TOP 1 `o0`.`OrderID`
FROM `Orders` AS `o0`
WHERE `c`.`CustomerID` = `o0`.`CustomerID`
@ -4377,7 +4377,7 @@ WHERE (`c`.`CustomerID` LIKE 'A' & '%') AND (
WHERE `c`.`CustomerID` = `o`.`CustomerID`
ORDER BY `o`.`OrderDate`) AS `A`
FROM `Customers` AS `c`
WHERE (`c`.`CustomerID` LIKE 'A' & '%') AND (((
WHERE (`c`.`CustomerID` LIKE 'A%') AND (((
SELECT TOP 1 `o0`.`OrderID`
FROM `Orders` AS `o0`
WHERE `c`.`CustomerID` = `o0`.`CustomerID`
@ -4425,7 +4425,7 @@ WHERE (
// AssertSql(
// $@"SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`
//FROM `Customers` AS `c`
//WHERE `c`.`CustomerID` LIKE 'A' & '%' AND ((
//WHERE `c`.`CustomerID` LIKE 'A%' AND ((
// SELECT TOP 1 `o`.`OrderID`
// FROM `Orders` AS `o`
// WHERE `o`.`OrderID` < 10300

@ -121,7 +121,7 @@ SELECT `t1`.`CustomerID`, `t1`.`OrderID`, `t1`.`c`
FROM (
SELECT TOP {AssertSqlHelper.Parameter("@__p_0")} `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'F' & '%'
WHERE `c`.`CustomerID` LIKE 'F%'
ORDER BY `c`.`CustomerID`
) AS `t`
LEFT JOIN (
@ -146,7 +146,7 @@ SELECT `t1`.`CustomerID`, `t1`.`OrderID`, `t1`.`c`
FROM (
SELECT TOP {AssertSqlHelper.Parameter("@__p_0")} `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'F' & '%'
WHERE `c`.`CustomerID` LIKE 'F%'
ORDER BY `c`.`CustomerID`
) AS `t`
LEFT JOIN (
@ -338,7 +338,7 @@ FROM `Orders` AS `o`,
`Orders` AS `o0`
LEFT JOIN `Customers` AS `c` ON `o`.`CustomerID` = `c`.`CustomerID`
LEFT JOIN `Customers` AS `c0` ON `o0`.`CustomerID` = `c0`.`CustomerID`
WHERE ((`o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A' & '%')) AND (`o0`.`CustomerID` IS NOT NULL AND (`o0`.`CustomerID` LIKE 'A' & '%'))) AND ((`c`.`CustomerID` = `c0`.`CustomerID`) OR (`c`.`CustomerID` IS NULL AND `c0`.`CustomerID` IS NULL))");
WHERE ((`o`.`CustomerID` IS NOT NULL AND (`o`.`CustomerID` LIKE 'A%')) AND (`o0`.`CustomerID` IS NOT NULL AND (`o0`.`CustomerID` LIKE 'A%'))) AND ((`c`.`CustomerID` = `c0`.`CustomerID`) OR (`c`.`CustomerID` IS NULL AND `c0`.`CustomerID` IS NULL))");
}
public override async Task Select_Where_Navigation_Null(bool isAsync)
@ -615,7 +615,7 @@ END AS `all`, (
FROM `Order Details` AS `o2`
WHERE `o3`.`OrderID` = `o2`.`OrderID`) AS `collection2`
FROM `Orders` AS `o3`
WHERE `o3`.`CustomerID` IS NOT NULL AND (`o3`.`CustomerID` LIKE 'A' & '%')");
WHERE `o3`.`CustomerID` IS NOT NULL AND (`o3`.`CustomerID` LIKE 'A%')");
}
public override async Task Collection_select_nav_prop_sum(bool isAsync)
@ -690,7 +690,7 @@ LEFT JOIN (
) AS `t`
WHERE `t`.`row` <= 1
) AS `t0` ON `c`.`CustomerID` = `t0`.`CustomerID0`
WHERE `c`.`CustomerID` LIKE 'A' & '%'
WHERE `c`.`CustomerID` LIKE 'A%'
ORDER BY `c`.`CustomerID`");
}
@ -705,7 +705,7 @@ ORDER BY `c`.`CustomerID`");
LEFT JOIN `Customers` AS `c` ON `o`.`CustomerID` = `c`.`CustomerID`
WHERE `o`.`CustomerID` = 'ALFKI')
FROM `Customers` AS `c0`
WHERE `c0`.`CustomerID` LIKE 'A' & '%'");
WHERE `c0`.`CustomerID` LIKE 'A%'");
}
public override async Task Collection_select_nav_prop_single_or_default_then_nav_prop_nested(bool isAsync)
@ -719,7 +719,7 @@ WHERE `c0`.`CustomerID` LIKE 'A' & '%'");
LEFT JOIN `Customers` AS `c` ON `o`.`CustomerID` = `c`.`CustomerID`
WHERE `o`.`OrderID` = 10643)
FROM `Customers` AS `c0`
WHERE `c0`.`CustomerID` LIKE 'A' & '%'");
WHERE `c0`.`CustomerID` LIKE 'A%'");
}
public override async Task Collection_select_nav_prop_first_or_default_then_nav_prop_nested_using_property_method(bool isAsync)
@ -733,7 +733,7 @@ WHERE `c0`.`CustomerID` LIKE 'A' & '%'");
LEFT JOIN `Customers` AS `c` ON `o`.`CustomerID` = `c`.`CustomerID`
WHERE `o`.`CustomerID` = 'ALFKI')
FROM `Customers` AS `c0`
WHERE `c0`.`CustomerID` LIKE 'A' & '%'");
WHERE `c0`.`CustomerID` LIKE 'A%'");
}
public override async Task Collection_select_nav_prop_first_or_default_then_nav_prop_nested_with_orderby(bool isAsync)
@ -748,7 +748,7 @@ WHERE `c0`.`CustomerID` LIKE 'A' & '%'");
WHERE `o`.`CustomerID` = 'ALFKI'
ORDER BY `o`.`CustomerID`)
FROM `Customers` AS `c0`
WHERE `c0`.`CustomerID` LIKE 'A' & '%'");
WHERE `c0`.`CustomerID` LIKE 'A%'");
}
public override async Task Navigation_fk_based_inside_contains(bool isAsync)
@ -884,7 +884,7 @@ LEFT JOIN (
) AS `t`
WHERE `t`.`row` <= 1
) AS `t0` ON `c`.`CustomerID` = `t0`.`CustomerID`
WHERE `c`.`CustomerID` LIKE 'A' & '%'
WHERE `c`.`CustomerID` LIKE 'A%'
ORDER BY `c`.`CustomerID`");
}

@ -297,7 +297,7 @@ OUTER APPLY (
FROM `Orders` AS `o`
WHERE `c`.`CustomerID` = `o`.`CustomerID` AND `o`.`OrderID` < 10500
) AS `t`
WHERE `c`.`CustomerID` LIKE 'A' & '%'
WHERE `c`.`CustomerID` LIKE 'A%'
ORDER BY `c`.`CustomerID`, `t`.`OrderID`");
}
@ -311,7 +311,7 @@ ORDER BY `c`.`CustomerID`, `t`.`OrderID`");
FROM `Orders` AS `o`
WHERE `c`.`CustomerID` = `o`.`CustomerID` AND `o`.`OrderID` < 10500 AS `OrderDates`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'A' & '%'");
WHERE `c`.`CustomerID` LIKE 'A%'");
}
public override async Task Select_nested_collection_multi_level3(bool isAsync)
@ -324,7 +324,7 @@ WHERE `c`.`CustomerID` LIKE 'A' & '%'");
FROM `Orders` AS `o`
WHERE `o`.`OrderID` < 10500 AND `c`.`CustomerID` = `o`.`CustomerID`) AS `OrderDates`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'A' & '%'");
WHERE `c`.`CustomerID` LIKE 'A%'");
}
public override async Task Select_nested_collection_multi_level4(bool isAsync)
@ -340,7 +340,7 @@ WHERE `c`.`CustomerID` LIKE 'A' & '%'");
FROM `Orders` AS `o0`
WHERE `c`.`CustomerID` = `o0`.`CustomerID` AND `o0`.`OrderID` < 10500) AS `Order`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'A' & '%'");
WHERE `c`.`CustomerID` LIKE 'A%'");
}
public override async Task Select_nested_collection_multi_level5(bool isAsync)
@ -362,7 +362,7 @@ WHERE `c`.`CustomerID` LIKE 'A' & '%'");
FROM `Orders` AS `o1`
WHERE (`c`.`CustomerID` = `o1`.`CustomerID`) AND (`o1`.`OrderID` < 10500)) AS `Order`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'A' & '%'");
WHERE `c`.`CustomerID` LIKE 'A%'");
}
public override async Task Select_nested_collection_multi_level6(bool isAsync)
@ -1646,7 +1646,7 @@ LEFT JOIN (
WHERE `t1`.`row` <= 1
) AS `t0` ON `c`.`CustomerID` = `t0`.`CustomerID`
LEFT JOIN `Order Details` AS `o2` ON `t0`.`OrderID` = `o2`.`OrderID`
WHERE `c`.`CustomerID` LIKE 'F' & '%'
WHERE `c`.`CustomerID` LIKE 'F%'
ORDER BY `c`.`CustomerID`, `t`.`OrderID`, `t`.`OrderID0`, `t`.`ProductID`, `t0`.`OrderID`, `o2`.`OrderID`");
}
@ -1660,7 +1660,7 @@ SELECT `t`.`CustomerID`, `t0`.`CustomerID`, `t0`.`Address`, `t0`.`City`, `t0`.`C
FROM (
SELECT TOP(@__p_0) `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'F' & '%'
WHERE `c`.`CustomerID` LIKE 'F%'
ORDER BY `c`.`CustomerID`
) AS `t`
OUTER APPLY (
@ -1685,7 +1685,7 @@ ORDER BY `t`.`CustomerID`, `t0`.`OrderID`");
FROM (
SELECT TOP 1 `o`.`OrderID`, `o`.`OrderDate`
FROM `Orders` AS `o`
WHERE (`o`.`CustomerID` IS NOT NULL) AND (`o`.`CustomerID` LIKE 'F' & '%')
WHERE (`o`.`CustomerID` IS NOT NULL) AND (`o`.`CustomerID` LIKE 'F%')
) AS `t`
OUTER APPLY (
SELECT `t1`.`OrderID`, `p`.`ProductID`, `p`.`Discontinued`, `p`.`ProductName`, `p`.`SupplierID`, `p`.`UnitPrice`, `p`.`UnitsInStock`, `t1`.`UnitPrice` AS `UnitPrice0`, `t1`.`ProductID` AS `ProductID0`
@ -1710,7 +1710,7 @@ ORDER BY `t`.`OrderID`, `t0`.`OrderID` DESC, `t0`.`ProductID0`");
FROM (
SELECT TOP 1 `c`.`CustomerID`
FROM `Customers` AS `c`
WHERE `c`.`CustomerID` LIKE 'F' & '%'
WHERE `c`.`CustomerID` LIKE 'F%'
ORDER BY `c`.`CustomerID`
) AS `t`
OUTER APPLY (

@ -275,11 +275,11 @@ FROM (
FROM (
SELECT `c`.`CustomerID`, `c`.`Address`, `c`.`City`, `c`.`CompanyName`, `c`.`ContactName`, `c`.`ContactTitle`, `c`.`Country`, `c`.`Fax`, `c`.`Phone`, `c`.`PostalCode`, `c`.`Region`
FROM `Customers` AS `c`
WHERE `c`.`CompanyName` IS NOT NULL AND (`c`.`CompanyName` LIKE 'A' & '%')
WHERE `c`.`CompanyName` IS NOT NULL AND (`c`.`CompanyName` LIKE 'A%')
UNION
SELECT `c0`.`CustomerID`, `c0`.`Address`, `c0`.`City`, `c0`.`CompanyName`, `c0`.`ContactName`, `c0`.`ContactTitle`, `c0`.`Country`, `c0`.`Fax`, `c0`.`Phone`, `c0`.`PostalCode`, `c0`.`Region`
FROM `Customers` AS `c0`
WHERE `c0`.`CompanyName` IS NOT NULL AND (`c0`.`CompanyName` LIKE 'B' & '%')
WHERE `c0`.`CompanyName` IS NOT NULL AND (`c0`.`CompanyName` LIKE 'B%')
) AS `t`");
}
@ -296,7 +296,7 @@ FROM (
SELECT `p`.`ProductName` AS `ContactName`
FROM `Products` AS `p`
) AS `t`
WHERE `t`.`ContactName` IS NOT NULL AND (`t`.`ContactName` LIKE 'C' & '%')
WHERE `t`.`ContactName` IS NOT NULL AND (`t`.`ContactName` LIKE 'C%')
ORDER BY `t`.`ContactName`");
}

Loading…
Cancel
Save