You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1517 lines
77 KiB
C#
1517 lines
77 KiB
C#
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Linq.Expressions;
|
|
using System.Threading.Tasks;
|
|
using EntityFrameworkCore.Jet.FunctionalTests.TestUtilities;
|
|
using Microsoft.EntityFrameworkCore.TestModels.Northwind;
|
|
using Xunit;
|
|
|
|
namespace EntityFrameworkCore.Jet.FunctionalTests.Query
|
|
{
|
|
public partial class SimpleQueryJetTest
|
|
{
|
|
public override async Task String_StartsWith_Literal(bool isAsync)
|
|
{
|
|
await base.String_StartsWith_Literal(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE `c`.`ContactName` IS NOT NULL AND (`c`.`ContactName` LIKE 'M' & '%')");
|
|
}
|
|
|
|
public override async Task String_StartsWith_Identity(bool isAsync)
|
|
{
|
|
await base.String_StartsWith_Identity(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE (`c`.`ContactName` = '') OR (`c`.`ContactName` IS NOT NULL AND (`c`.`ContactName` IS NOT NULL AND (LEFT(`c`.`ContactName`, LEN(`c`.`ContactName`)) = `c`.`ContactName`)))");
|
|
}
|
|
|
|
public override async Task String_StartsWith_Column(bool isAsync)
|
|
{
|
|
await base.String_StartsWith_Column(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE (`c`.`ContactName` = '') OR (`c`.`ContactName` IS NOT NULL AND (`c`.`ContactName` IS NOT NULL AND (LEFT(`c`.`ContactName`, LEN(`c`.`ContactName`)) = `c`.`ContactName`)))");
|
|
}
|
|
|
|
public override async Task String_StartsWith_MethodCall(bool isAsync)
|
|
{
|
|
await base.String_StartsWith_MethodCall(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE `c`.`ContactName` IS NOT NULL AND (`c`.`ContactName` LIKE 'M' & '%')");
|
|
}
|
|
|
|
public override async Task String_EndsWith_Literal(bool isAsync)
|
|
{
|
|
await base.String_EndsWith_Literal(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE `c`.`ContactName` IS NOT NULL AND (`c`.`ContactName` LIKE '%b')");
|
|
}
|
|
|
|
public override async Task String_EndsWith_Identity(bool isAsync)
|
|
{
|
|
await base.String_EndsWith_Identity(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE (`c`.`ContactName` = '') OR (`c`.`ContactName` IS NOT NULL AND (`c`.`ContactName` IS NOT NULL AND (RIGHT(`c`.`ContactName`, LEN(`c`.`ContactName`)) = `c`.`ContactName`)))");
|
|
}
|
|
|
|
public override async Task String_EndsWith_Column(bool isAsync)
|
|
{
|
|
await base.String_EndsWith_Column(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE (`c`.`ContactName` = '') OR (`c`.`ContactName` IS NOT NULL AND (`c`.`ContactName` IS NOT NULL AND (RIGHT(`c`.`ContactName`, LEN(`c`.`ContactName`)) = `c`.`ContactName`)))");
|
|
}
|
|
|
|
public override async Task String_EndsWith_MethodCall(bool isAsync)
|
|
{
|
|
await base.String_EndsWith_MethodCall(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE `c`.`ContactName` IS NOT NULL AND (`c`.`ContactName` LIKE '%m')");
|
|
}
|
|
|
|
public override async Task String_Contains_Literal(bool isAsync)
|
|
{
|
|
await AssertQuery(
|
|
isAsync,
|
|
ss => ss.Set<Customer>().Where(c => c.ContactName.Contains("M")), // case-insensitive
|
|
ss => ss.Set<Customer>().Where(c => c.ContactName.Contains("M") || c.ContactName.Contains("m")), // case-sensitive
|
|
entryCount: 34);
|
|
|
|
// issue #15994
|
|
// 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 CHARINDEX('M', `c`.`ContactName`) > 0");
|
|
}
|
|
|
|
public override async Task String_Contains_Identity(bool isAsync)
|
|
{
|
|
await base.String_Contains_Identity(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE (`c`.`ContactName` = '') OR (CHARINDEX(`c`.`ContactName`, `c`.`ContactName`) > 0)");
|
|
}
|
|
|
|
public override async Task String_Contains_Column(bool isAsync)
|
|
{
|
|
await base.String_Contains_Column(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE (`c`.`ContactName` = '') OR (CHARINDEX(`c`.`ContactName`, `c`.`ContactName`) > 0)");
|
|
}
|
|
|
|
public override async Task String_Contains_MethodCall(bool isAsync)
|
|
{
|
|
await AssertQuery(
|
|
isAsync,
|
|
ss => ss.Set<Customer>().Where(c => c.ContactName.Contains(LocalMethod1())), // case-insensitive
|
|
ss => ss.Set<Customer>().Where(
|
|
c => c.ContactName.Contains(LocalMethod1().ToLower())
|
|
|| c.ContactName.Contains(LocalMethod1().ToUpper())), // case-sensitive
|
|
entryCount: 34);
|
|
|
|
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 CHARINDEX('M', `c`.`ContactName`) > 0");
|
|
}
|
|
|
|
public override async Task String_Compare_simple_zero(bool isAsync)
|
|
{
|
|
await base.String_Compare_simple_zero(isAsync);
|
|
|
|
// issue #15994
|
|
// 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` = 'ALFKI'",
|
|
// //
|
|
// $@"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` <> 'ALFKI'",
|
|
// //
|
|
// $@"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` > 'ALFKI'",
|
|
// //
|
|
// $@"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` <= 'ALFKI'",
|
|
// //
|
|
// $@"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` > 'ALFKI'",
|
|
// //
|
|
// $@"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` <= 'ALFKI'");
|
|
}
|
|
|
|
public override async Task String_Compare_simple_one(bool isAsync)
|
|
{
|
|
await base.String_Compare_simple_one(isAsync);
|
|
|
|
// issue #15994
|
|
// 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` > 'ALFKI'",
|
|
// //
|
|
// $@"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` < 'ALFKI'",
|
|
// //
|
|
// $@"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` <= 'ALFKI'",
|
|
// //
|
|
// $@"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` <= 'ALFKI'",
|
|
// //
|
|
// $@"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` >= 'ALFKI'",
|
|
// //
|
|
// $@"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` >= 'ALFKI'");
|
|
}
|
|
|
|
public override async Task String_compare_with_parameter(bool isAsync)
|
|
{
|
|
await base.String_compare_with_parameter(isAsync);
|
|
|
|
// issue #15994
|
|
// AssertSql(
|
|
// $@"{AssertSqlHelper.Declaration("@__customer_CustomerID_0='ALFKI' (Size = 4000)")}
|
|
|
|
//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` > @__customer_CustomerID_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__customer_CustomerID_0='ALFKI' (Size = 4000)")}
|
|
|
|
//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` < @__customer_CustomerID_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__customer_CustomerID_0='ALFKI' (Size = 4000)")}
|
|
|
|
//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` <= @__customer_CustomerID_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__customer_CustomerID_0='ALFKI' (Size = 4000)")}
|
|
|
|
//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` <= @__customer_CustomerID_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__customer_CustomerID_0='ALFKI' (Size = 4000)")}
|
|
|
|
//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` >= @__customer_CustomerID_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__customer_CustomerID_0='ALFKI' (Size = 4000)")}
|
|
|
|
//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` >= @__customer_CustomerID_0");
|
|
}
|
|
|
|
public override async Task String_Compare_simple_more_than_one(bool isAsync)
|
|
{
|
|
await base.String_Compare_simple_more_than_one(isAsync);
|
|
|
|
// issue #15994
|
|
// 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`",
|
|
// //
|
|
// $@"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`",
|
|
// //
|
|
// $@"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`");
|
|
}
|
|
|
|
public override async Task String_Compare_nested(bool isAsync)
|
|
{
|
|
await base.String_Compare_nested(isAsync);
|
|
|
|
// issue #15994
|
|
// 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` = 'M' + `c`.`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` <> UPPER(`c`.`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` > REPLACE('ALFKI', 'ALF', `c`.`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` <= 'M' + `c`.`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` > UPPER(`c`.`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` < REPLACE('ALFKI', 'ALF', `c`.`CustomerID`)");
|
|
}
|
|
|
|
public override async Task String_Compare_multi_predicate(bool isAsync)
|
|
{
|
|
await base.String_Compare_multi_predicate(isAsync);
|
|
|
|
// issue #15994
|
|
// 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` >= 'ALFKI' AND `c`.`CustomerID` < 'CACTU'",
|
|
// //
|
|
// $@"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`.`ContactTitle` = 'Owner' AND `c`.`Country` <> 'USA'");
|
|
}
|
|
|
|
public override async Task String_Compare_to_simple_zero(bool isAsync)
|
|
{
|
|
await base.String_Compare_to_simple_zero(isAsync);
|
|
|
|
// issue #15994
|
|
// 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` = 'ALFKI'",
|
|
// //
|
|
// $@"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` <> 'ALFKI'",
|
|
// //
|
|
// $@"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` > 'ALFKI'",
|
|
// //
|
|
// $@"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` <= 'ALFKI'",
|
|
// //
|
|
// $@"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` > 'ALFKI'",
|
|
// //
|
|
// $@"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` <= 'ALFKI'");
|
|
}
|
|
|
|
public override async Task String_Compare_to_simple_one(bool isAsync)
|
|
{
|
|
await base.String_Compare_to_simple_one(isAsync);
|
|
|
|
// issue #15994
|
|
// 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` > 'ALFKI'",
|
|
// //
|
|
// $@"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` < 'ALFKI'",
|
|
// //
|
|
// $@"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` <= 'ALFKI'",
|
|
// //
|
|
// $@"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` <= 'ALFKI'",
|
|
// //
|
|
// $@"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` >= 'ALFKI'",
|
|
// //
|
|
// $@"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` >= 'ALFKI'");
|
|
}
|
|
|
|
public override async Task String_compare_to_with_parameter(bool isAsync)
|
|
{
|
|
await base.String_compare_to_with_parameter(isAsync);
|
|
|
|
// issue #15994
|
|
// AssertSql(
|
|
// $@"{AssertSqlHelper.Declaration("@__customer_CustomerID_0='ALFKI' (Size = 4000)")}
|
|
|
|
//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` > @__customer_CustomerID_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__customer_CustomerID_0='ALFKI' (Size = 4000)")}
|
|
|
|
//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` < @__customer_CustomerID_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__customer_CustomerID_0='ALFKI' (Size = 4000)")}
|
|
|
|
//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` <= @__customer_CustomerID_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__customer_CustomerID_0='ALFKI' (Size = 4000)")}
|
|
|
|
//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` <= @__customer_CustomerID_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__customer_CustomerID_0='ALFKI' (Size = 4000)")}
|
|
|
|
//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` >= @__customer_CustomerID_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__customer_CustomerID_0='ALFKI' (Size = 4000)")}
|
|
|
|
//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` >= @__customer_CustomerID_0");
|
|
}
|
|
|
|
public override async Task String_Compare_to_simple_more_than_one(bool isAsync)
|
|
{
|
|
await base.String_Compare_to_simple_more_than_one(isAsync);
|
|
|
|
// issue #15994
|
|
// 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`",
|
|
// //
|
|
// $@"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`",
|
|
// //
|
|
// $@"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`");
|
|
}
|
|
|
|
public override async Task String_Compare_to_nested(bool isAsync)
|
|
{
|
|
await base.String_Compare_to_nested(isAsync);
|
|
|
|
//issue #15994
|
|
// 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` = 'M' + `c`.`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` <> UPPER(`c`.`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` > REPLACE('ALFKI', 'ALF', `c`.`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` <= 'M' + `c`.`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` > UPPER(`c`.`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` < REPLACE('ALFKI', 'ALF', `c`.`CustomerID`)");
|
|
}
|
|
|
|
public override async Task String_Compare_to_multi_predicate(bool isAsync)
|
|
{
|
|
await base.String_Compare_to_multi_predicate(isAsync);
|
|
|
|
// issue #15994
|
|
// 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` >= 'ALFKI' AND `c`.`CustomerID` < 'CACTU'",
|
|
// //
|
|
// $@"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`.`ContactTitle` = 'Owner' AND `c`.`Country` <> 'USA'");
|
|
}
|
|
|
|
public override async Task DateTime_Compare_to_simple_zero(bool isAsync, bool compareTo)
|
|
{
|
|
await base.DateTime_Compare_to_simple_zero(isAsync, compareTo);
|
|
|
|
// issue #15994
|
|
// AssertSql(
|
|
// $@"{AssertSqlHelper.Declaration("@__myDatetime_0='1998-05-04T00:00:00'")}
|
|
|
|
//SELECT `c`.`OrderID`, `c`.`CustomerID`, `c`.`EmployeeID`, `c`.`OrderDate`
|
|
//FROM `Orders` AS `c`
|
|
//WHERE `c`.`OrderDate` = @__myDatetime_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__myDatetime_0='1998-05-04T00:00:00'")}
|
|
|
|
//SELECT `c`.`OrderID`, `c`.`CustomerID`, `c`.`EmployeeID`, `c`.`OrderDate`
|
|
//FROM `Orders` AS `c`
|
|
//WHERE `c`.`OrderDate` <> @__myDatetime_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__myDatetime_0='1998-05-04T00:00:00'")}
|
|
|
|
//SELECT `c`.`OrderID`, `c`.`CustomerID`, `c`.`EmployeeID`, `c`.`OrderDate`
|
|
//FROM `Orders` AS `c`
|
|
//WHERE `c`.`OrderDate` > @__myDatetime_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__myDatetime_0='1998-05-04T00:00:00'")}
|
|
|
|
//SELECT `c`.`OrderID`, `c`.`CustomerID`, `c`.`EmployeeID`, `c`.`OrderDate`
|
|
//FROM `Orders` AS `c`
|
|
//WHERE `c`.`OrderDate` <= @__myDatetime_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__myDatetime_0='1998-05-04T00:00:00'")}
|
|
|
|
//SELECT `c`.`OrderID`, `c`.`CustomerID`, `c`.`EmployeeID`, `c`.`OrderDate`
|
|
//FROM `Orders` AS `c`
|
|
//WHERE `c`.`OrderDate` > @__myDatetime_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__myDatetime_0='1998-05-04T00:00:00'")}
|
|
|
|
//SELECT `c`.`OrderID`, `c`.`CustomerID`, `c`.`EmployeeID`, `c`.`OrderDate`
|
|
//FROM `Orders` AS `c`
|
|
//WHERE `c`.`OrderDate` <= @__myDatetime_0");
|
|
}
|
|
|
|
public override async Task Int_Compare_to_simple_zero(bool isAsync)
|
|
{
|
|
await base.Int_Compare_to_simple_zero(isAsync);
|
|
|
|
// issue #15994
|
|
// AssertSql(
|
|
// $@"{AssertSqlHelper.Declaration("@__orderId_0='10250'")}
|
|
|
|
//SELECT `c`.`OrderID`, `c`.`CustomerID`, `c`.`EmployeeID`, `c`.`OrderDate`
|
|
//FROM `Orders` AS `c`
|
|
//WHERE `c`.`OrderID` = @__orderId_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__orderId_0='10250'")}
|
|
|
|
//SELECT `c`.`OrderID`, `c`.`CustomerID`, `c`.`EmployeeID`, `c`.`OrderDate`
|
|
//FROM `Orders` AS `c`
|
|
//WHERE `c`.`OrderID` <> @__orderId_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__orderId_0='10250'")}
|
|
|
|
//SELECT `c`.`OrderID`, `c`.`CustomerID`, `c`.`EmployeeID`, `c`.`OrderDate`
|
|
//FROM `Orders` AS `c`
|
|
//WHERE `c`.`OrderID` > @__orderId_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__orderId_0='10250'")}
|
|
|
|
//SELECT `c`.`OrderID`, `c`.`CustomerID`, `c`.`EmployeeID`, `c`.`OrderDate`
|
|
//FROM `Orders` AS `c`
|
|
//WHERE `c`.`OrderID` <= @__orderId_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__orderId_0='10250'")}
|
|
|
|
//SELECT `c`.`OrderID`, `c`.`CustomerID`, `c`.`EmployeeID`, `c`.`OrderDate`
|
|
//FROM `Orders` AS `c`
|
|
//WHERE `c`.`OrderID` > @__orderId_0",
|
|
// //
|
|
// $@"{AssertSqlHelper.Declaration("@__orderId_0='10250'")}
|
|
|
|
//SELECT `c`.`OrderID`, `c`.`CustomerID`, `c`.`EmployeeID`, `c`.`OrderDate`
|
|
//FROM `Orders` AS `c`
|
|
//WHERE `c`.`OrderID` <= @__orderId_0");
|
|
}
|
|
|
|
public override async Task Where_math_abs1(bool isAsync)
|
|
{
|
|
await base.Where_math_abs1(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE ABS(`o`.`ProductID`) > 10");
|
|
}
|
|
|
|
public override async Task Where_math_abs2(bool isAsync)
|
|
{
|
|
await base.Where_math_abs2(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE ABS(`o`.`Quantity`) > 10");
|
|
}
|
|
|
|
public override async Task Where_math_abs3(bool isAsync)
|
|
{
|
|
await base.Where_math_abs3(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE ABS(`o`.`UnitPrice`) > 10.0");
|
|
}
|
|
|
|
public override async Task Where_math_abs_uncorrelated(bool isAsync)
|
|
{
|
|
await base.Where_math_abs_uncorrelated(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE 10 < `o`.`ProductID`");
|
|
}
|
|
|
|
public override async Task Where_math_ceiling1(bool isAsync)
|
|
{
|
|
await base.Where_math_ceiling1(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE CEILING(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`))) > 0.0E0");
|
|
}
|
|
|
|
public override async Task Where_math_ceiling2(bool isAsync)
|
|
{
|
|
await base.Where_math_ceiling2(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE CEILING(`o`.`UnitPrice`) > 10.0");
|
|
}
|
|
|
|
public override async Task Where_math_floor(bool isAsync)
|
|
{
|
|
await base.Where_math_floor(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE FLOOR(`o`.`UnitPrice`) > 10.0");
|
|
}
|
|
|
|
public override async Task Where_math_power(bool isAsync)
|
|
{
|
|
await base.Where_math_power(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE POWER(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`)), 2.0E0) > 0.05000000074505806E0");
|
|
}
|
|
|
|
public override async Task Where_math_round(bool isAsync)
|
|
{
|
|
await base.Where_math_round(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE ROUND(`o`.`UnitPrice`, 0) > 10.0");
|
|
}
|
|
|
|
public override async Task Select_math_round_int(bool isAsync)
|
|
{
|
|
await base.Select_math_round_int(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT ROUND(IIf(`o`.`OrderID` IS NULL, NULL, CDBL(`o`.`OrderID`)), 0) AS `A`
|
|
FROM `Orders` AS `o`
|
|
WHERE `o`.`OrderID` < 10250");
|
|
}
|
|
|
|
public override async Task Select_math_truncate_int(bool isAsync)
|
|
{
|
|
await base.Select_math_truncate_int(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT ROUND(IIf(`o`.`OrderID` IS NULL, NULL, CDBL(`o`.`OrderID`)), 0, 1) AS `A`
|
|
FROM `Orders` AS `o`
|
|
WHERE `o`.`OrderID` < 10250");
|
|
}
|
|
|
|
public override async Task Where_math_round2(bool isAsync)
|
|
{
|
|
await base.Where_math_round2(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE ROUND(`o`.`UnitPrice`, 2) > 100.0");
|
|
}
|
|
|
|
public override async Task Where_math_truncate(bool isAsync)
|
|
{
|
|
await base.Where_math_truncate(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE ROUND(`o`.`UnitPrice`, 0, 1) > 10.0");
|
|
}
|
|
|
|
public override async Task Where_math_exp(bool isAsync)
|
|
{
|
|
await base.Where_math_exp(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE (`o`.`OrderID` = 11077) AND (EXP(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`))) > 1.0E0)");
|
|
}
|
|
|
|
public override async Task Where_math_log10(bool isAsync)
|
|
{
|
|
await base.Where_math_log10(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE ((`o`.`OrderID` = 11077) AND (`o`.`Discount` > IIf(0 IS NULL, NULL, CSNG(0)))) AND (LOG10(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`))) < 0.0E0)");
|
|
}
|
|
|
|
public override async Task Where_math_log(bool isAsync)
|
|
{
|
|
await base.Where_math_log(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE ((`o`.`OrderID` = 11077) AND (`o`.`Discount` > IIf(0 IS NULL, NULL, CSNG(0)))) AND (LOG(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`))) < 0.0E0)");
|
|
}
|
|
|
|
public override async Task Where_math_log_new_base(bool isAsync)
|
|
{
|
|
await base.Where_math_log_new_base(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE ((`o`.`OrderID` = 11077) AND (`o`.`Discount` > IIf(0 IS NULL, NULL, CSNG(0)))) AND (LOG(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`)), 7.0E0) < 0.0E0)");
|
|
}
|
|
|
|
public override async Task Where_math_sqrt(bool isAsync)
|
|
{
|
|
await base.Where_math_sqrt(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE (`o`.`OrderID` = 11077) AND (SQRT(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`))) > 0.0E0)");
|
|
}
|
|
|
|
public override async Task Where_math_acos(bool isAsync)
|
|
{
|
|
await base.Where_math_acos(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE (`o`.`OrderID` = 11077) AND (ACOS(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`))) > 1.0E0)");
|
|
}
|
|
|
|
public override async Task Where_math_asin(bool isAsync)
|
|
{
|
|
await base.Where_math_asin(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE (`o`.`OrderID` = 11077) AND (ASIN(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`))) > 0.0E0)");
|
|
}
|
|
|
|
public override async Task Where_math_atan(bool isAsync)
|
|
{
|
|
await base.Where_math_atan(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE (`o`.`OrderID` = 11077) AND (ATAN(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`))) > 0.0E0)");
|
|
}
|
|
|
|
public override async Task Where_math_atan2(bool isAsync)
|
|
{
|
|
await base.Where_math_atan2(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE (`o`.`OrderID` = 11077) AND (ATN2(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`)), 1.0E0) > 0.0E0)");
|
|
}
|
|
|
|
public override async Task Where_math_cos(bool isAsync)
|
|
{
|
|
await base.Where_math_cos(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE (`o`.`OrderID` = 11077) AND (COS(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`))) > 0.0E0)");
|
|
}
|
|
|
|
public override async Task Where_math_sin(bool isAsync)
|
|
{
|
|
await base.Where_math_sin(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE (`o`.`OrderID` = 11077) AND (SIN(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`))) > 0.0E0)");
|
|
}
|
|
|
|
public override async Task Where_math_tan(bool isAsync)
|
|
{
|
|
await base.Where_math_tan(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE (`o`.`OrderID` = 11077) AND (TAN(IIf(`o`.`Discount` IS NULL, NULL, CDBL(`o`.`Discount`))) > 0.0E0)");
|
|
}
|
|
|
|
public override async Task Where_math_sign(bool isAsync)
|
|
{
|
|
await base.Where_math_sign(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE (`o`.`OrderID` = 11077) AND (SIGN(`o`.`Discount`) > 0)");
|
|
}
|
|
|
|
[ConditionalTheory(Skip = "Issue#17328")]
|
|
public override Task Where_math_min(bool isAsync) => base.Where_math_min(isAsync);
|
|
|
|
[ConditionalTheory(Skip = "Issue#17328")]
|
|
public override Task Where_math_max(bool isAsync) => base.Where_math_max(isAsync);
|
|
|
|
public override async Task Where_guid_newguid(bool isAsync)
|
|
{
|
|
await base.Where_guid_newguid(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`ProductID`, `o`.`Discount`, `o`.`Quantity`, `o`.`UnitPrice`
|
|
FROM `Order Details` AS `o`
|
|
WHERE (NEWID() <> '00000000-0000-0000-0000-000000000000') OR NEWID() IS NULL");
|
|
}
|
|
|
|
public override async Task Where_string_to_upper(bool isAsync)
|
|
{
|
|
await base.Where_string_to_upper(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE UPPER(`c`.`CustomerID`) = 'ALFKI'");
|
|
}
|
|
|
|
public override async Task Where_string_to_lower(bool isAsync)
|
|
{
|
|
await base.Where_string_to_lower(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE LOWER(`c`.`CustomerID`) = 'alfki'");
|
|
}
|
|
|
|
public override async Task Where_functions_nested(bool isAsync)
|
|
{
|
|
await base.Where_functions_nested(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE POWER(IIf(CAST(LEN(`c`.`CustomerID`) AS int) IS NULL, NULL, CDBL(CAST(LEN(`c`.`CustomerID`) AS int))), 2.0E0) = 25.0E0");
|
|
}
|
|
|
|
public override async Task Convert_ToByte(bool isAsync)
|
|
{
|
|
var convertMethods = new List<Expression<Func<Order, bool>>>
|
|
{
|
|
o => Convert.ToByte(Convert.ToByte(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToByte(Convert.ToDecimal(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToByte(Convert.ToDouble(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToByte((float)Convert.ToDouble(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToByte(Convert.ToInt16(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToByte(Convert.ToInt32(o.OrderID % 1)) >= 0,
|
|
// o => Convert.ToByte(Convert.ToInt64(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToByte(Convert.ToString(o.OrderID % 1)) >= 0
|
|
};
|
|
|
|
foreach (var convertMethod in convertMethods)
|
|
{
|
|
await AssertQuery(
|
|
isAsync,
|
|
ss => ss.Set<Order>().Where(o => o.CustomerID == "ALFKI")
|
|
.Where(convertMethod),
|
|
entryCount: 6);
|
|
}
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CBYTE(`o`.`OrderID` MOD 1)) IS NULL, NULL, CBYTE(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CBYTE(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CCUR(`o`.`OrderID` MOD 1)) IS NULL, NULL, CBYTE(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CCUR(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CBYTE(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CSNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))) IS NULL, NULL, CBYTE(IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CSNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CINT(`o`.`OrderID` MOD 1)) IS NULL, NULL, CBYTE(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CINT(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CLNG(`o`.`OrderID` MOD 1)) IS NULL, NULL, CBYTE(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CLNG(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf((`o`.`OrderID` MOD 1 & '') IS NULL, NULL, CBYTE((`o`.`OrderID` MOD 1 & ''))) >= 0)");
|
|
}
|
|
|
|
public override async Task Convert_ToDecimal(bool isAsync)
|
|
{
|
|
var convertMethods = new List<Expression<Func<Order, bool>>>
|
|
{
|
|
o => Convert.ToDecimal(Convert.ToByte(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToDecimal(Convert.ToDecimal(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToDecimal(Convert.ToDouble(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToDecimal((float)Convert.ToDouble(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToDecimal(Convert.ToInt16(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToDecimal(Convert.ToInt32(o.OrderID % 1)) >= 0,
|
|
// o => Convert.ToDecimal(Convert.ToInt64(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToDecimal(Convert.ToString(o.OrderID % 1)) >= 0
|
|
};
|
|
|
|
foreach (var convertMethod in convertMethods)
|
|
{
|
|
await AssertQuery(
|
|
isAsync,
|
|
ss => ss.Set<Order>().Where(o => o.CustomerID == "ALFKI")
|
|
.Where(convertMethod),
|
|
entryCount: 6);
|
|
}
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CBYTE(`o`.`OrderID` MOD 1)) IS NULL, NULL, CCUR(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CBYTE(`o`.`OrderID` MOD 1)))) >= 0.0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CCUR(`o`.`OrderID` MOD 1)) IS NULL, NULL, CCUR(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CCUR(`o`.`OrderID` MOD 1)))) >= 0.0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CCUR(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))) >= 0.0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CSNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))) IS NULL, NULL, CCUR(IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CSNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))))) >= 0.0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CINT(`o`.`OrderID` MOD 1)) IS NULL, NULL, CCUR(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CINT(`o`.`OrderID` MOD 1)))) >= 0.0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CLNG(`o`.`OrderID` MOD 1)) IS NULL, NULL, CCUR(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CLNG(`o`.`OrderID` MOD 1)))) >= 0.0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf((`o`.`OrderID` MOD 1 & '') IS NULL, NULL, CCUR((`o`.`OrderID` MOD 1 & ''))) >= 0.0)");
|
|
}
|
|
|
|
public override async Task Convert_ToDouble(bool isAsync)
|
|
{
|
|
var convertMethods = new List<Expression<Func<Order, bool>>>
|
|
{
|
|
o => Convert.ToDouble(Convert.ToByte(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToDouble(Convert.ToDecimal(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToDouble(Convert.ToDouble(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToDouble((float)Convert.ToDouble(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToDouble(Convert.ToInt16(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToDouble(Convert.ToInt32(o.OrderID % 1)) >= 0,
|
|
// o => Convert.ToDouble(Convert.ToInt64(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToDouble(Convert.ToString(o.OrderID % 1)) >= 0
|
|
};
|
|
|
|
foreach (var convertMethod in convertMethods)
|
|
{
|
|
await AssertQuery(
|
|
isAsync,
|
|
ss => ss.Set<Order>().Where(o => o.CustomerID == "ALFKI")
|
|
.Where(convertMethod),
|
|
entryCount: 6);
|
|
}
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CBYTE(`o`.`OrderID` MOD 1)) IS NULL, NULL, CDBL(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CBYTE(`o`.`OrderID` MOD 1)))) >= 0.0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CCUR(`o`.`OrderID` MOD 1)) IS NULL, NULL, CDBL(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CCUR(`o`.`OrderID` MOD 1)))) >= 0.0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CDBL(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))) >= 0.0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CSNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))) IS NULL, NULL, CDBL(IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CSNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))))) >= 0.0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CINT(`o`.`OrderID` MOD 1)) IS NULL, NULL, CDBL(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CINT(`o`.`OrderID` MOD 1)))) >= 0.0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CLNG(`o`.`OrderID` MOD 1)) IS NULL, NULL, CDBL(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CLNG(`o`.`OrderID` MOD 1)))) >= 0.0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf((`o`.`OrderID` MOD 1 & '') IS NULL, NULL, CDBL((`o`.`OrderID` MOD 1 & ''))) >= 0.0)");
|
|
}
|
|
|
|
public override async Task Convert_ToInt16(bool isAsync)
|
|
{
|
|
var convertMethods = new List<Expression<Func<Order, bool>>>
|
|
{
|
|
o => Convert.ToInt16(Convert.ToByte(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToInt16(Convert.ToDecimal(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToInt16(Convert.ToDouble(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToInt16((float)Convert.ToDouble(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToInt16(Convert.ToInt16(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToInt16(Convert.ToInt32(o.OrderID % 1)) >= 0,
|
|
// o => Convert.ToInt16(Convert.ToInt64(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToInt16(Convert.ToString(o.OrderID % 1)) >= 0
|
|
};
|
|
|
|
foreach (var convertMethod in convertMethods)
|
|
{
|
|
await AssertQuery(
|
|
isAsync,
|
|
ss => ss.Set<Order>().Where(o => o.CustomerID == "ALFKI")
|
|
.Where(convertMethod),
|
|
entryCount: 6);
|
|
}
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CBYTE(`o`.`OrderID` MOD 1)) IS NULL, NULL, CINT(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CBYTE(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CCUR(`o`.`OrderID` MOD 1)) IS NULL, NULL, CINT(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CCUR(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CINT(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CSNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))) IS NULL, NULL, CINT(IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CSNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CINT(`o`.`OrderID` MOD 1)) IS NULL, NULL, CINT(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CINT(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CLNG(`o`.`OrderID` MOD 1)) IS NULL, NULL, CINT(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CLNG(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf((`o`.`OrderID` MOD 1 & '') IS NULL, NULL, CINT((`o`.`OrderID` MOD 1 & ''))) >= 0)");
|
|
}
|
|
|
|
public override async Task Convert_ToInt32(bool isAsync)
|
|
{
|
|
var convertMethods = new List<Expression<Func<Order, bool>>>
|
|
{
|
|
o => Convert.ToInt32(Convert.ToByte(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToInt32(Convert.ToDecimal(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToInt32(Convert.ToDouble(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToInt32((float)Convert.ToDouble(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToInt32(Convert.ToInt16(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToInt32(Convert.ToInt32(o.OrderID % 1)) >= 0,
|
|
// o => Convert.ToInt32(Convert.ToInt64(o.OrderID % 1)) >= 0,
|
|
o => Convert.ToInt32(Convert.ToString(o.OrderID % 1)) >= 0
|
|
};
|
|
|
|
foreach (var convertMethod in convertMethods)
|
|
{
|
|
await AssertQuery(
|
|
isAsync,
|
|
ss => ss.Set<Order>().Where(o => o.CustomerID == "ALFKI")
|
|
.Where(convertMethod),
|
|
entryCount: 6);
|
|
}
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CBYTE(`o`.`OrderID` MOD 1)) IS NULL, NULL, CLNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CBYTE(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CCUR(`o`.`OrderID` MOD 1)) IS NULL, NULL, CLNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CCUR(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CLNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CSNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))) IS NULL, NULL, CLNG(IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CSNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)))))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CINT(`o`.`OrderID` MOD 1)) IS NULL, NULL, CLNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CINT(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CLNG(`o`.`OrderID` MOD 1)) IS NULL, NULL, CLNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CLNG(`o`.`OrderID` MOD 1)))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (IIf((`o`.`OrderID` MOD 1 & '') IS NULL, NULL, CLNG((`o`.`OrderID` MOD 1 & ''))) >= 0)"); }
|
|
|
|
[ConditionalTheory(Skip = "Int64 support has not been implemented yet.")]
|
|
public override async Task Convert_ToInt64(bool isAsync)
|
|
{
|
|
await base.Convert_ToInt64(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (CONVERT(bigint, IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CBYTE(`o`.`OrderID` MOD 1))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (CONVERT(bigint, IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CCUR(`o`.`OrderID` MOD 1))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (CONVERT(bigint, IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (CONVERT(bigint, IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CSNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1))))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (CONVERT(bigint, IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CINT(`o`.`OrderID` MOD 1))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (CONVERT(bigint, IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CLNG(`o`.`OrderID` MOD 1))) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (CONVERT(bigint, CONVERT(bigint, `o`.`OrderID` MOD 1)) >= 0)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (CONVERT(bigint, CONVERT(nvarchar(max), `o`.`OrderID` MOD 1)) >= 0)");
|
|
}
|
|
|
|
public override async Task Convert_ToString(bool isAsync)
|
|
{
|
|
var convertMethods = new List<Expression<Func<Order, bool>>>
|
|
{
|
|
o => Convert.ToString(Convert.ToByte(o.OrderID % 1)) != "10",
|
|
o => Convert.ToString(Convert.ToDecimal(o.OrderID % 1)) != "10",
|
|
o => Convert.ToString(Convert.ToDouble(o.OrderID % 1)) != "10",
|
|
o => Convert.ToString((float)Convert.ToDouble(o.OrderID % 1)) != "10",
|
|
o => Convert.ToString(Convert.ToInt16(o.OrderID % 1)) != "10",
|
|
o => Convert.ToString(Convert.ToInt32(o.OrderID % 1)) != "10",
|
|
// o => Convert.ToString(Convert.ToInt64(o.OrderID % 1)) != "10",
|
|
o => Convert.ToString(Convert.ToString(o.OrderID % 1)) != "10",
|
|
o => Convert.ToString(o.OrderDate.Value).Contains("1997") || Convert.ToString(o.OrderDate.Value).Contains("1998")
|
|
};
|
|
|
|
foreach (var convertMethod in convertMethods)
|
|
{
|
|
await AssertQuery(
|
|
isAsync,
|
|
ss => ss.Set<Order>().Where(o => o.CustomerID == "ALFKI")
|
|
.Where(convertMethod),
|
|
entryCount: 6);
|
|
}
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (((IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CBYTE(`o`.`OrderID` MOD 1)) & '') <> '10') OR (IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CBYTE(`o`.`OrderID` MOD 1)) & '') IS NULL)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (((IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CCUR(`o`.`OrderID` MOD 1)) & '') <> '10') OR (IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CCUR(`o`.`OrderID` MOD 1)) & '') IS NULL)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (((IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) & '') <> '10') OR (IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) & '') IS NULL)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND ((CONVERT(nvarchar(max), IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CSNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1))))) <> '10') OR CONVERT(nvarchar(max), IIf(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1)) IS NULL, NULL, CSNG(IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CDBL(`o`.`OrderID` MOD 1))))) IS NULL)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (((IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CINT(`o`.`OrderID` MOD 1)) & '') <> '10') OR (IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CINT(`o`.`OrderID` MOD 1)) & '') IS NULL)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (((IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CLNG(`o`.`OrderID` MOD 1)) & '') <> '10') OR (IIf(`o`.`OrderID` MOD 1 IS NULL, NULL, CLNG(`o`.`OrderID` MOD 1)) & '') IS NULL)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (((CONVERT(bigint, `o`.`OrderID` MOD 1) & '') <> '10') OR (CONVERT(bigint, `o`.`OrderID` MOD 1) & '') IS NULL)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND (((CONVERT(nvarchar(max), `o`.`OrderID` MOD 1) & '') <> '10') OR (CONVERT(nvarchar(max), `o`.`OrderID` MOD 1) & '') IS NULL)",
|
|
//
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE (`o`.`CustomerID` = 'ALFKI') AND ((CHARINDEX('1997', CONVERT(nvarchar(max), `o`.`OrderDate`)) > 0) OR (CHARINDEX('1998', CONVERT(nvarchar(max), `o`.`OrderDate`)) > 0))");
|
|
}
|
|
|
|
public override async Task Indexof_with_emptystring(bool isAsync)
|
|
{
|
|
await base.Indexof_with_emptystring(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT CASE
|
|
WHEN '' = '' THEN 0
|
|
ELSE CHARINDEX('', `c`.`ContactName`) - 1
|
|
END
|
|
FROM `Customers` AS `c`
|
|
WHERE `c`.`CustomerID` = 'ALFKI'");
|
|
}
|
|
|
|
public override async Task Replace_with_emptystring(bool isAsync)
|
|
{
|
|
await base.Replace_with_emptystring(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT REPLACE(`c`.`ContactName`, 'ari', '')
|
|
FROM `Customers` AS `c`
|
|
WHERE `c`.`CustomerID` = 'ALFKI'");
|
|
}
|
|
|
|
public override async Task Substring_with_zero_startindex(bool isAsync)
|
|
{
|
|
await base.Substring_with_zero_startindex(isAsync);
|
|
|
|
// issue #15994
|
|
// AssertSql(
|
|
// $@"SELECT SUBSTRING(`c`.`ContactName`, 1, 3)
|
|
//FROM `Customers` AS `c`
|
|
//WHERE `c`.`CustomerID` = 'ALFKI'");
|
|
}
|
|
|
|
public override async Task Substring_with_zero_length(bool isAsync)
|
|
{
|
|
await base.Substring_with_zero_length(isAsync);
|
|
|
|
// issue #15994
|
|
// AssertSql(
|
|
// $@"SELECT SUBSTRING(`c`.`ContactName`, 3, 0)
|
|
//FROM `Customers` AS `c`
|
|
//WHERE `c`.`CustomerID` = 'ALFKI'");
|
|
}
|
|
|
|
public override async Task Substring_with_constant(bool isAsync)
|
|
{
|
|
await base.Substring_with_constant(isAsync);
|
|
|
|
// issue #15994
|
|
// AssertSql(
|
|
// $@"SELECT SUBSTRING(`c`.`ContactName`, 2, 3)
|
|
//FROM `Customers` AS `c`
|
|
//WHERE `c`.`CustomerID` = 'ALFKI'");
|
|
}
|
|
|
|
public override async Task Substring_with_closure(bool isAsync)
|
|
{
|
|
await base.Substring_with_closure(isAsync);
|
|
|
|
AssertSql(
|
|
$@"{AssertSqlHelper.Declaration("@__start_0='2'")}
|
|
|
|
SELECT SUBSTRING(`c`.`ContactName`, {AssertSqlHelper.Parameter("@__start_0")} + 1, 3)
|
|
FROM `Customers` AS `c`
|
|
WHERE `c`.`CustomerID` = 'ALFKI'");
|
|
}
|
|
|
|
public override async Task Substring_with_Index_of(bool isAsync)
|
|
{
|
|
await base.Substring_with_Index_of(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT SUBSTRING(`c`.`ContactName`, CASE
|
|
WHEN 'a' = '' THEN 0
|
|
ELSE CHARINDEX('a', `c`.`ContactName`) - 1
|
|
END + 1, 3)
|
|
FROM `Customers` AS `c`
|
|
WHERE `c`.`CustomerID` = 'ALFKI'");
|
|
}
|
|
|
|
public override async Task IsNullOrEmpty_in_predicate(bool isAsync)
|
|
{
|
|
await base.IsNullOrEmpty_in_predicate(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE `c`.`Region` IS NULL OR (`c`.`Region` = '')");
|
|
}
|
|
|
|
public override void IsNullOrEmpty_in_projection()
|
|
{
|
|
base.IsNullOrEmpty_in_projection();
|
|
|
|
AssertSql(
|
|
$@"SELECT `c`.`CustomerID` AS `Id`, CASE
|
|
WHEN `c`.`Region` IS NULL OR ((`c`.`Region` = '') AND `c`.`Region` IS NOT NULL) THEN 1
|
|
ELSE 0
|
|
END AS `Value`
|
|
FROM `Customers` AS `c`");
|
|
}
|
|
|
|
public override void IsNullOrEmpty_negated_in_projection()
|
|
{
|
|
base.IsNullOrEmpty_negated_in_projection();
|
|
|
|
AssertSql(
|
|
$@"SELECT `c`.`CustomerID` AS `Id`, CASE
|
|
WHEN `c`.`Region` IS NOT NULL AND ((`c`.`Region` <> '') OR `c`.`Region` IS NULL) THEN 1
|
|
ELSE 0
|
|
END AS `Value`
|
|
FROM `Customers` AS `c`");
|
|
}
|
|
|
|
public override async Task IsNullOrWhiteSpace_in_predicate(bool isAsync)
|
|
{
|
|
await base.IsNullOrWhiteSpace_in_predicate(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE `c`.`Region` IS NULL OR (LTRIM(RTRIM(`c`.`Region`)) = '')");
|
|
}
|
|
|
|
public override async Task IsNullOrWhiteSpace_in_predicate_on_non_nullable_column(bool isAsync)
|
|
{
|
|
await base.IsNullOrWhiteSpace_in_predicate_on_non_nullable_column(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE LTRIM(RTRIM(`c`.`CustomerID`)) = ''");
|
|
}
|
|
|
|
public override async Task TrimStart_without_arguments_in_predicate(bool isAsync)
|
|
{
|
|
await base.TrimStart_without_arguments_in_predicate(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE LTRIM(`c`.`ContactTitle`) = 'Owner'");
|
|
}
|
|
|
|
[ConditionalTheory(Skip = "Issue#17328")]
|
|
public override Task TrimStart_with_char_argument_in_predicate(bool isAsync)
|
|
=> base.TrimStart_with_char_argument_in_predicate(isAsync);
|
|
|
|
[ConditionalTheory(Skip = "Issue#17328")]
|
|
public override Task TrimStart_with_char_array_argument_in_predicate(bool isAsync)
|
|
=> base.TrimStart_with_char_array_argument_in_predicate(isAsync);
|
|
|
|
public override async Task TrimEnd_without_arguments_in_predicate(bool isAsync)
|
|
{
|
|
await base.TrimEnd_without_arguments_in_predicate(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE RTRIM(`c`.`ContactTitle`) = 'Owner'");
|
|
}
|
|
|
|
[ConditionalTheory(Skip = "Issue#17328")]
|
|
public override Task TrimEnd_with_char_argument_in_predicate(bool isAsync)
|
|
=> base.TrimEnd_with_char_argument_in_predicate(isAsync);
|
|
|
|
[ConditionalTheory(Skip = "Issue#17328")]
|
|
public override Task TrimEnd_with_char_array_argument_in_predicate(bool isAsync)
|
|
=> base.TrimEnd_with_char_array_argument_in_predicate(isAsync);
|
|
|
|
public override async Task Trim_without_argument_in_predicate(bool isAsync)
|
|
{
|
|
await base.Trim_without_argument_in_predicate(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE LTRIM(RTRIM(`c`.`ContactTitle`)) = 'Owner'");
|
|
}
|
|
|
|
[ConditionalTheory(Skip = "Issue#17328")]
|
|
public override Task Trim_with_char_argument_in_predicate(bool isAsync)
|
|
=> base.Trim_with_char_argument_in_predicate(isAsync);
|
|
|
|
[ConditionalTheory(Skip = "Issue#17328")]
|
|
public override Task Trim_with_char_array_argument_in_predicate(bool isAsync)
|
|
=> base.Trim_with_char_array_argument_in_predicate(isAsync);
|
|
|
|
public override async Task Order_by_length_twice(bool isAsync)
|
|
{
|
|
await base.Order_by_length_twice(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`
|
|
FROM `Customers` AS `c`
|
|
ORDER BY CAST(LEN(`c`.`CustomerID`) AS int), `c`.`CustomerID`");
|
|
}
|
|
|
|
public override async Task Order_by_length_twice_followed_by_projection_of_naked_collection_navigation(bool isAsync)
|
|
{
|
|
await base.Order_by_length_twice_followed_by_projection_of_naked_collection_navigation(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `c`.`CustomerID`, `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Customers` AS `c`
|
|
LEFT JOIN `Orders` AS `o` ON `c`.`CustomerID` = `o`.`CustomerID`
|
|
ORDER BY CAST(LEN(`c`.`CustomerID`) AS int), `c`.`CustomerID`, `o`.`OrderID`");
|
|
}
|
|
|
|
public override async Task Static_string_equals_in_predicate(bool isAsync)
|
|
{
|
|
await base.Static_string_equals_in_predicate(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`
|
|
FROM `Customers` AS `c`
|
|
WHERE `c`.`CustomerID` = 'ANATR'");
|
|
}
|
|
|
|
public override async Task Static_equals_nullable_datetime_compared_to_non_nullable(bool isAsync)
|
|
{
|
|
await base.Static_equals_nullable_datetime_compared_to_non_nullable(isAsync);
|
|
|
|
AssertSql(
|
|
$@"{AssertSqlHelper.Declaration("@__arg_0='1996-07-04T00:00:00'")}
|
|
|
|
SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE `o`.`OrderDate` = {AssertSqlHelper.Parameter("@__arg_0")}");
|
|
}
|
|
|
|
public override async Task Static_equals_int_compared_to_long(bool isAsync)
|
|
{
|
|
await base.Static_equals_int_compared_to_long(isAsync);
|
|
|
|
AssertSql(
|
|
$@"SELECT `o`.`OrderID`, `o`.`CustomerID`, `o`.`EmployeeID`, `o`.`OrderDate`
|
|
FROM `Orders` AS `o`
|
|
WHERE 0 = 1");
|
|
}
|
|
|
|
public override async Task Projecting_Math_Truncate_and_ordering_by_it_twice(bool isAsync)
|
|
{
|
|
await base.Projecting_Math_Truncate_and_ordering_by_it_twice(isAsync);
|
|
|
|
// issue #16038
|
|
// AssertSql(
|
|
// $@"SELECT ROUND(IIf(`o`.`OrderID` IS NULL, NULL, CDBL(`o`.`OrderID`)), 0, 1) AS `A`
|
|
//FROM `Orders` AS `o`
|
|
//WHERE `o`.`OrderID` < 10250
|
|
//ORDER BY `A`");
|
|
}
|
|
|
|
public override async Task Projecting_Math_Truncate_and_ordering_by_it_twice2(bool isAsync)
|
|
{
|
|
await base.Projecting_Math_Truncate_and_ordering_by_it_twice2(isAsync);
|
|
|
|
// issue #16038
|
|
// AssertSql(
|
|
// $@"SELECT ROUND(IIf(`o`.`OrderID` IS NULL, NULL, CDBL(`o`.`OrderID`)), 0, 1) AS `A`
|
|
//FROM `Orders` AS `o`
|
|
//WHERE `o`.`OrderID` < 10250
|
|
//ORDER BY `A` DESC");
|
|
}
|
|
|
|
public override async Task Projecting_Math_Truncate_and_ordering_by_it_twice3(bool isAsync)
|
|
{
|
|
await base.Projecting_Math_Truncate_and_ordering_by_it_twice3(isAsync);
|
|
|
|
// issue #16038
|
|
// AssertSql(
|
|
// $@"SELECT ROUND(IIf(`o`.`OrderID` IS NULL, NULL, CDBL(`o`.`OrderID`)), 0, 1) AS `A`
|
|
//FROM `Orders` AS `o`
|
|
//WHERE `o`.`OrderID` < 10250
|
|
//ORDER BY `A` DESC");
|
|
}
|
|
}
|
|
}
|