Up date to latest ef core dependency (#244)

pull/247/head
Christopher Jolly 2 years ago committed by GitHub
parent 4a11689835
commit 2d5930abc9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<EFCoreVersion>[8.0.3,8.0.999]</EFCoreVersion>
<EFCoreVersion>[8.0.6,8.0.999]</EFCoreVersion>
</PropertyGroup>
<ItemGroup>
@ -10,7 +10,7 @@
<PackageReference Update="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
<PackageReference Update="Microsoft.EntityFrameworkCore" Version="$(EFCoreVersion)" />
<PackageReference Update="Microsoft.EntityFrameworkCore.Relational" Version="$(EFCoreVersion)" />
<PackageReference Update="System.Diagnostics.DiagnosticSource" Version="8.0.0" />
<PackageReference Update="System.Diagnostics.DiagnosticSource" Version="8.0.1" />
<PackageReference Update="DotNetAnalyzers.DocumentationAnalyzers" Version="1.0.0-beta.59" />
<PackageReference Update="Microsoft.SourceLink.GitHub" Version="8.0.0" />
@ -28,9 +28,9 @@
<PackageReference Update="Microsoft.EntityFrameworkCore.Design" Version="$(EFCoreVersion)" />
<PackageReference Update="Microsoft.EntityFrameworkCore.Relational.Specification.Tests" Version="$(EFCoreVersion)" />
<PackageReference Update="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
<PackageReference Update="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageReference Update="MSTest.TestAdapter" Version="3.2.2" />
<PackageReference Update="MSTest.TestFramework" Version="3.2.2" />
<PackageReference Update="Microsoft.NET.Test.Sdk" Version="17.10.0" />
<PackageReference Update="MSTest.TestAdapter" Version="3.4.3" />
<PackageReference Update="MSTest.TestFramework" Version="3.4.3" />
<PackageReference Update="coverlet.collector" Version="6.0.2" />
<PackageReference Update="Newtonsoft.Json" Version="13.0.3" />

@ -128,9 +128,9 @@ public class JetLiftOrderByPostprocessor : ExpressionVisitor
selectExpression.PushdownIntoSubquery();
}
for (int j = 0; j < columnsToRewrite.Count; j++)
foreach (var colr in columnsToRewrite)
{
(int? index, OrderingExpression? oexp, bool ascending, bool rewrite, bool referstocurouter) = columnsToRewrite[j];
(int? index, OrderingExpression? oexp, bool ascending, bool rewrite, bool referstocurouter) = colr.Value;
if (index.HasValue)
{
var proj = selectExpression.Projection[index.Value];
@ -145,20 +145,9 @@ public class JetLiftOrderByPostprocessor : ExpressionVisitor
}
}
if (isscalarselect)
if (isscalarselect && selectExpression.Projection.Count > 1)
{
List<ProjectionExpression> newProjections = new List<ProjectionExpression>();
for (int j = 0; j < selectExpression.Projection.Count; j++)
{
var proj = selectExpression.Projection[j];
var item = columnsToRewrite.SingleOrDefault(c => c.Value.indexcol == j);
if (item.Value.indexcol == null)
{
newProjections.Add(proj);
}
}
List<ProjectionExpression> newProjections = [selectExpression.Projection[0]];
selectExpression = selectExpression.Update(newProjections, selectExpression.Tables, selectExpression.Predicate,
selectExpression.GroupBy, selectExpression.Having, selectExpression.Orderings,
selectExpression.Limit, selectExpression.Offset);

@ -2,13 +2,16 @@
// The .NET Foundation licenses this file to you under the MIT license.
using System;
using System.Linq;
using System.Threading.Tasks;
using EntityFrameworkCore.Jet.FunctionalTests.TestUtilities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Diagnostics;
using Microsoft.EntityFrameworkCore.Query;
using Microsoft.EntityFrameworkCore.TestUtilities;
using Xunit;
using Xunit.Abstractions;
using Microsoft.EntityFrameworkCore.TestModels.ComplexTypeModel;
namespace EntityFrameworkCore.Jet.FunctionalTests.Query;
@ -747,6 +750,442 @@ FROM `ValuedCustomer` AS `v0`
AssertSql();
}
[ConditionalTheory]
[MemberData(nameof(IsAsyncData))]
public virtual Task Filter_on_property_inside_complex_type_with_FromSql(bool async)
=> AssertQuery(
async,
ss => ((DbSet<Customer>)ss.Set<Customer>()).FromSqlRaw(
"""
SELECT [c].[Id], [c].[Name], [c].[BillingAddress_AddressLine1], [c].[BillingAddress_AddressLine2], [c].[BillingAddress_ZipCode], [c].[BillingAddress_Country_Code], [c].[BillingAddress_Country_FullName], [c].[ShippingAddress_AddressLine1], [c].[ShippingAddress_AddressLine2], [c].[ShippingAddress_ZipCode], [c].[ShippingAddress_Country_Code], [c].[ShippingAddress_Country_FullName]
FROM [Customer] AS [c]
WHERE [c].[ShippingAddress_ZipCode] = 7728
"""),
ss => ss.Set<Customer>().Where(c => c.ShippingAddress.ZipCode == 07728));
[ConditionalTheory]
[MemberData(nameof(IsAsyncData))]
public virtual Task Filter_on_property_inside_complex_type_after_subquery_with_FromSql(bool async)
=> AssertQuery(
async,
ss => ((DbSet<Customer>)ss.Set<Customer>()).FromSql(
$"""
SELECT DISTINCT [t].[Id], [t].[Name], [t].[BillingAddress_AddressLine1], [t].[BillingAddress_AddressLine2], [t].[BillingAddress_ZipCode], [t].[BillingAddress_Country_Code], [t].[BillingAddress_Country_FullName], [t].[ShippingAddress_AddressLine1], [t].[ShippingAddress_AddressLine2], [t].[ShippingAddress_ZipCode], [t].[ShippingAddress_Country_Code], [t].[ShippingAddress_Country_FullName]
FROM (
SELECT [c].[Id], [c].[Name], [c].[BillingAddress_AddressLine1], [c].[BillingAddress_AddressLine2], [c].[BillingAddress_ZipCode], [c].[BillingAddress_Country_Code], [c].[BillingAddress_Country_FullName], [c].[ShippingAddress_AddressLine1], [c].[ShippingAddress_AddressLine2], [c].[ShippingAddress_ZipCode], [c].[ShippingAddress_Country_Code], [c].[ShippingAddress_Country_FullName]
FROM [Customer] AS [c]
ORDER BY [c].[Id]
OFFSET {1} ROWS
) AS [t]
WHERE [t].[ShippingAddress_ZipCode] = 7728
"""),
ss => ss.Set<Customer>()
.OrderBy(c => c.Id)
.Skip(1)
.Distinct()
.Where(c => c.ShippingAddress.ZipCode == 07728));
[ConditionalTheory]
[MemberData(nameof(IsAsyncData))]
public virtual Task Load_complex_type_after_subquery_on_entity_type_with_FromSql(bool async)
=> AssertQuery(
async,
ss => ((DbSet<Customer>)ss.Set<Customer>()).FromSql(
$"""
SELECT DISTINCT [t].[Id], [t].[Name], [t].[BillingAddress_AddressLine1], [t].[BillingAddress_AddressLine2], [t].[BillingAddress_ZipCode], [t].[BillingAddress_Country_Code], [t].[BillingAddress_Country_FullName], [t].[ShippingAddress_AddressLine1], [t].[ShippingAddress_AddressLine2], [t].[ShippingAddress_ZipCode], [t].[ShippingAddress_Country_Code], [t].[ShippingAddress_Country_FullName]
FROM (
SELECT [c].[Id], [c].[Name], [c].[BillingAddress_AddressLine1], [c].[BillingAddress_AddressLine2], [c].[BillingAddress_ZipCode], [c].[BillingAddress_Country_Code], [c].[BillingAddress_Country_FullName], [c].[ShippingAddress_AddressLine1], [c].[ShippingAddress_AddressLine2], [c].[ShippingAddress_ZipCode], [c].[ShippingAddress_Country_Code], [c].[ShippingAddress_Country_FullName]
FROM [Customer] AS [c]
ORDER BY [c].[Id]
OFFSET {1} ROWS
) AS [t]
"""),
ss => ss.Set<Customer>()
.OrderBy(c => c.Id)
.Skip(1)
.Distinct());
[ConditionalTheory]
[MemberData(nameof(IsAsyncData))]
public virtual Task Select_complex_type_with_FromSql(bool async)
=> AssertQuery(
async,
ss => ((DbSet<Customer>)ss.Set<Customer>()).FromSqlRaw(
"""
SELECT [c].[ShippingAddress_AddressLine1], [c].[ShippingAddress_AddressLine2], [c].[ShippingAddress_ZipCode], [c].[ShippingAddress_Country_Code], [c].[ShippingAddress_Country_FullName]
FROM [Customer] AS [c]
""").Select(c => c.ShippingAddress),
ss => ss.Set<Customer>().Select(c => c.ShippingAddress));
[ConditionalTheory]
[MemberData(nameof(IsAsyncData))]
public virtual Task Select_nested_complex_type_with_FromSql(bool async)
=> AssertQuery(
async,
ss => ((DbSet<Customer>)ss.Set<Customer>()).FromSqlRaw(
"""
SELECT [c].[ShippingAddress_Country_Code], [c].[ShippingAddress_Country_FullName]
FROM [Customer] AS [c]
""").Select(c => c.ShippingAddress.Country),
ss => ss.Set<Customer>().Select(c => c.ShippingAddress.Country));
[ConditionalTheory]
[MemberData(nameof(IsAsyncData))]
public virtual Task Select_single_property_on_nested_complex_type_with_FromSql(bool async)
=> AssertQuery(
async,
ss => ((DbSet<Customer>)ss.Set<Customer>()).FromSqlRaw(
"""
SELECT [c].[ShippingAddress_Country_FullName]
FROM [Customer] AS [c]
""").Select(c => c.ShippingAddress.Country.FullName),
ss => ss.Set<Customer>().Select(c => c.ShippingAddress.Country.FullName));
[ConditionalTheory]
[MemberData(nameof(IsAsyncData))]
public virtual Task Select_complex_type_Where_with_FromSql(bool async)
=> AssertQuery(
async,
ss => ((DbSet<Customer>)ss.Set<Customer>()).FromSqlRaw(
"""
SELECT [c].[ShippingAddress_AddressLine1], [c].[ShippingAddress_AddressLine2], [c].[ShippingAddress_ZipCode], [c].[ShippingAddress_Country_Code], [c].[ShippingAddress_Country_FullName]
FROM [Customer] AS [c]
WHERE [c].[ShippingAddress_ZipCode] = 7728
""").Select(c => c.ShippingAddress).Where(a => a.ZipCode == 07728),
ss => ss.Set<Customer>().Select(c => c.ShippingAddress).Where(a => a.ZipCode == 07728));
[ConditionalTheory]
[MemberData(nameof(IsAsyncData))]
public virtual Task Select_complex_type_Distinct_with_FromSql(bool async)
=> AssertQuery(
async,
ss => ((DbSet<Customer>)ss.Set<Customer>()).FromSqlRaw(
"""
SELECT DISTINCT [c].[ShippingAddress_AddressLine1], [c].[ShippingAddress_AddressLine2], [c].[ShippingAddress_ZipCode], [c].[ShippingAddress_Country_Code], [c].[ShippingAddress_Country_FullName]
FROM [Customer] AS [c]
""").Select(c => c.ShippingAddress).Distinct(),
ss => ss.Set<Customer>().Select(c => c.ShippingAddress).Distinct());
public override async Task Project_same_entity_with_nested_complex_type_twice_with_pushdown(bool async)
{
await base.Project_same_entity_with_nested_complex_type_twice_with_pushdown(async);
AssertSql(
"""
SELECT `t`.`Id`, `t`.`Name`, `t`.`BillingAddress_AddressLine1`, `t`.`BillingAddress_AddressLine2`, `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_Country_Code`, `t`.`BillingAddress_Country_FullName`, `t`.`ShippingAddress_AddressLine1`, `t`.`ShippingAddress_AddressLine2`, `t`.`ShippingAddress_ZipCode`, `t`.`ShippingAddress_Country_Code`, `t`.`ShippingAddress_Country_FullName`, `t`.`Id0`, `t`.`Name0`, `t`.`BillingAddress_AddressLine10`, `t`.`BillingAddress_AddressLine20`, `t`.`BillingAddress_ZipCode0`, `t`.`BillingAddress_Country_Code0`, `t`.`BillingAddress_Country_FullName0`, `t`.`ShippingAddress_AddressLine10`, `t`.`ShippingAddress_AddressLine20`, `t`.`ShippingAddress_ZipCode0`, `t`.`ShippingAddress_Country_Code0`, `t`.`ShippingAddress_Country_FullName0`
FROM (
SELECT DISTINCT `c`.`Id`, `c`.`Name`, `c`.`BillingAddress_AddressLine1`, `c`.`BillingAddress_AddressLine2`, `c`.`BillingAddress_ZipCode`, `c`.`BillingAddress_Country_Code`, `c`.`BillingAddress_Country_FullName`, `c`.`ShippingAddress_AddressLine1`, `c`.`ShippingAddress_AddressLine2`, `c`.`ShippingAddress_ZipCode`, `c`.`ShippingAddress_Country_Code`, `c`.`ShippingAddress_Country_FullName`, `c0`.`Id` AS `Id0`, `c0`.`Name` AS `Name0`, `c0`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `c0`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `c0`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `c0`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `c0`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`, `c0`.`ShippingAddress_AddressLine1` AS `ShippingAddress_AddressLine10`, `c0`.`ShippingAddress_AddressLine2` AS `ShippingAddress_AddressLine20`, `c0`.`ShippingAddress_ZipCode` AS `ShippingAddress_ZipCode0`, `c0`.`ShippingAddress_Country_Code` AS `ShippingAddress_Country_Code0`, `c0`.`ShippingAddress_Country_FullName` AS `ShippingAddress_Country_FullName0`
FROM `Customer` AS `c`,
`Customer` AS `c0`
) AS `t`
""");
}
public override async Task Project_same_nested_complex_type_twice_with_pushdown(bool async)
{
await base.Project_same_nested_complex_type_twice_with_pushdown(async);
AssertSql(
"""
SELECT `t`.`BillingAddress_AddressLine1`, `t`.`BillingAddress_AddressLine2`, `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_Country_Code`, `t`.`BillingAddress_Country_FullName`, `t`.`BillingAddress_AddressLine10`, `t`.`BillingAddress_AddressLine20`, `t`.`BillingAddress_ZipCode0`, `t`.`BillingAddress_Country_Code0`, `t`.`BillingAddress_Country_FullName0`
FROM (
SELECT DISTINCT `c`.`BillingAddress_AddressLine1`, `c`.`BillingAddress_AddressLine2`, `c`.`BillingAddress_ZipCode`, `c`.`BillingAddress_Country_Code`, `c`.`BillingAddress_Country_FullName`, `c0`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `c0`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `c0`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `c0`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `c0`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`
FROM `Customer` AS `c`,
`Customer` AS `c0`
) AS `t`
""");
}
public override async Task Project_same_entity_with_nested_complex_type_twice_with_double_pushdown(bool async)
{
await base.Project_same_entity_with_nested_complex_type_twice_with_double_pushdown(async);
AssertSql(
"""
SELECT `t0`.`Id`, `t0`.`Name`, `t0`.`BillingAddress_AddressLine1`, `t0`.`BillingAddress_AddressLine2`, `t0`.`BillingAddress_ZipCode`, `t0`.`BillingAddress_Country_Code`, `t0`.`BillingAddress_Country_FullName`, `t0`.`ShippingAddress_AddressLine1`, `t0`.`ShippingAddress_AddressLine2`, `t0`.`ShippingAddress_ZipCode`, `t0`.`ShippingAddress_Country_Code`, `t0`.`ShippingAddress_Country_FullName`, `t0`.`Id0`, `t0`.`Name0`, `t0`.`BillingAddress_AddressLine10`, `t0`.`BillingAddress_AddressLine20`, `t0`.`BillingAddress_ZipCode0`, `t0`.`BillingAddress_Country_Code0`, `t0`.`BillingAddress_Country_FullName0`, `t0`.`ShippingAddress_AddressLine10`, `t0`.`ShippingAddress_AddressLine20`, `t0`.`ShippingAddress_ZipCode0`, `t0`.`ShippingAddress_Country_Code0`, `t0`.`ShippingAddress_Country_FullName0`
FROM (
SELECT DISTINCT `t`.`Id`, `t`.`Name`, `t`.`BillingAddress_AddressLine1`, `t`.`BillingAddress_AddressLine2`, `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_Country_Code`, `t`.`BillingAddress_Country_FullName`, `t`.`ShippingAddress_AddressLine1`, `t`.`ShippingAddress_AddressLine2`, `t`.`ShippingAddress_ZipCode`, `t`.`ShippingAddress_Country_Code`, `t`.`ShippingAddress_Country_FullName`, `t`.`Id0`, `t`.`Name0`, `t`.`BillingAddress_AddressLine10`, `t`.`BillingAddress_AddressLine20`, `t`.`BillingAddress_ZipCode0`, `t`.`BillingAddress_Country_Code0`, `t`.`BillingAddress_Country_FullName0`, `t`.`ShippingAddress_AddressLine10`, `t`.`ShippingAddress_AddressLine20`, `t`.`ShippingAddress_ZipCode0`, `t`.`ShippingAddress_Country_Code0`, `t`.`ShippingAddress_Country_FullName0`
FROM (
SELECT TOP 50 `c`.`Id`, `c`.`Name`, `c`.`BillingAddress_AddressLine1`, `c`.`BillingAddress_AddressLine2`, `c`.`BillingAddress_ZipCode`, `c`.`BillingAddress_Country_Code`, `c`.`BillingAddress_Country_FullName`, `c`.`ShippingAddress_AddressLine1`, `c`.`ShippingAddress_AddressLine2`, `c`.`ShippingAddress_ZipCode`, `c`.`ShippingAddress_Country_Code`, `c`.`ShippingAddress_Country_FullName`, `c0`.`Id` AS `Id0`, `c0`.`Name` AS `Name0`, `c0`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `c0`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `c0`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `c0`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `c0`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`, `c0`.`ShippingAddress_AddressLine1` AS `ShippingAddress_AddressLine10`, `c0`.`ShippingAddress_AddressLine2` AS `ShippingAddress_AddressLine20`, `c0`.`ShippingAddress_ZipCode` AS `ShippingAddress_ZipCode0`, `c0`.`ShippingAddress_Country_Code` AS `ShippingAddress_Country_Code0`, `c0`.`ShippingAddress_Country_FullName` AS `ShippingAddress_Country_FullName0`
FROM `Customer` AS `c`,
`Customer` AS `c0`
ORDER BY `c`.`Id`, `c0`.`Id`
) AS `t`
) AS `t0`
""");
}
public override async Task Project_same_nested_complex_type_twice_with_double_pushdown(bool async)
{
await base.Project_same_nested_complex_type_twice_with_double_pushdown(async);
AssertSql(
"""
SELECT `t0`.`BillingAddress_AddressLine1`, `t0`.`BillingAddress_AddressLine2`, `t0`.`BillingAddress_ZipCode`, `t0`.`BillingAddress_Country_Code`, `t0`.`BillingAddress_Country_FullName`, `t0`.`BillingAddress_AddressLine10`, `t0`.`BillingAddress_AddressLine20`, `t0`.`BillingAddress_ZipCode0`, `t0`.`BillingAddress_Country_Code0`, `t0`.`BillingAddress_Country_FullName0`
FROM (
SELECT DISTINCT `t`.`BillingAddress_AddressLine1`, `t`.`BillingAddress_AddressLine2`, `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_Country_Code`, `t`.`BillingAddress_Country_FullName`, `t`.`BillingAddress_AddressLine10`, `t`.`BillingAddress_AddressLine20`, `t`.`BillingAddress_ZipCode0`, `t`.`BillingAddress_Country_Code0`, `t`.`BillingAddress_Country_FullName0`
FROM (
SELECT TOP 50 `c`.`BillingAddress_AddressLine1`, `c`.`BillingAddress_AddressLine2`, `c`.`BillingAddress_ZipCode`, `c`.`BillingAddress_Country_Code`, `c`.`BillingAddress_Country_FullName`, `c0`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `c0`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `c0`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `c0`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `c0`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`
FROM `Customer` AS `c`,
`Customer` AS `c0`
ORDER BY `c`.`Id`, `c0`.`Id`
) AS `t`
) AS `t0`
""");
}
public override async Task Project_same_entity_with_struct_nested_complex_type_twice_with_pushdown(bool async)
{
await base.Project_same_entity_with_struct_nested_complex_type_twice_with_pushdown(async);
AssertSql(
"""
SELECT `t`.`Id`, `t`.`Name`, `t`.`BillingAddress_AddressLine1`, `t`.`BillingAddress_AddressLine2`, `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_Country_Code`, `t`.`BillingAddress_Country_FullName`, `t`.`ShippingAddress_AddressLine1`, `t`.`ShippingAddress_AddressLine2`, `t`.`ShippingAddress_ZipCode`, `t`.`ShippingAddress_Country_Code`, `t`.`ShippingAddress_Country_FullName`, `t`.`Id0`, `t`.`Name0`, `t`.`BillingAddress_AddressLine10`, `t`.`BillingAddress_AddressLine20`, `t`.`BillingAddress_ZipCode0`, `t`.`BillingAddress_Country_Code0`, `t`.`BillingAddress_Country_FullName0`, `t`.`ShippingAddress_AddressLine10`, `t`.`ShippingAddress_AddressLine20`, `t`.`ShippingAddress_ZipCode0`, `t`.`ShippingAddress_Country_Code0`, `t`.`ShippingAddress_Country_FullName0`
FROM (
SELECT DISTINCT `v`.`Id`, `v`.`Name`, `v`.`BillingAddress_AddressLine1`, `v`.`BillingAddress_AddressLine2`, `v`.`BillingAddress_ZipCode`, `v`.`BillingAddress_Country_Code`, `v`.`BillingAddress_Country_FullName`, `v`.`ShippingAddress_AddressLine1`, `v`.`ShippingAddress_AddressLine2`, `v`.`ShippingAddress_ZipCode`, `v`.`ShippingAddress_Country_Code`, `v`.`ShippingAddress_Country_FullName`, `v0`.`Id` AS `Id0`, `v0`.`Name` AS `Name0`, `v0`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `v0`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `v0`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `v0`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `v0`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`, `v0`.`ShippingAddress_AddressLine1` AS `ShippingAddress_AddressLine10`, `v0`.`ShippingAddress_AddressLine2` AS `ShippingAddress_AddressLine20`, `v0`.`ShippingAddress_ZipCode` AS `ShippingAddress_ZipCode0`, `v0`.`ShippingAddress_Country_Code` AS `ShippingAddress_Country_Code0`, `v0`.`ShippingAddress_Country_FullName` AS `ShippingAddress_Country_FullName0`
FROM `ValuedCustomer` AS `v`,
`ValuedCustomer` AS `v0`
) AS `t`
""");
}
public override async Task Project_same_struct_nested_complex_type_twice_with_pushdown(bool async)
{
await base.Project_same_struct_nested_complex_type_twice_with_pushdown(async);
AssertSql(
"""
SELECT `t`.`BillingAddress_AddressLine1`, `t`.`BillingAddress_AddressLine2`, `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_Country_Code`, `t`.`BillingAddress_Country_FullName`, `t`.`BillingAddress_AddressLine10`, `t`.`BillingAddress_AddressLine20`, `t`.`BillingAddress_ZipCode0`, `t`.`BillingAddress_Country_Code0`, `t`.`BillingAddress_Country_FullName0`
FROM (
SELECT DISTINCT `v`.`BillingAddress_AddressLine1`, `v`.`BillingAddress_AddressLine2`, `v`.`BillingAddress_ZipCode`, `v`.`BillingAddress_Country_Code`, `v`.`BillingAddress_Country_FullName`, `v0`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `v0`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `v0`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `v0`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `v0`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`
FROM `ValuedCustomer` AS `v`,
`ValuedCustomer` AS `v0`
) AS `t`
""");
}
public override async Task Project_same_entity_with_struct_nested_complex_type_twice_with_double_pushdown(bool async)
{
await base.Project_same_entity_with_struct_nested_complex_type_twice_with_double_pushdown(async);
AssertSql(
"""
SELECT `t0`.`Id`, `t0`.`Name`, `t0`.`BillingAddress_AddressLine1`, `t0`.`BillingAddress_AddressLine2`, `t0`.`BillingAddress_ZipCode`, `t0`.`BillingAddress_Country_Code`, `t0`.`BillingAddress_Country_FullName`, `t0`.`ShippingAddress_AddressLine1`, `t0`.`ShippingAddress_AddressLine2`, `t0`.`ShippingAddress_ZipCode`, `t0`.`ShippingAddress_Country_Code`, `t0`.`ShippingAddress_Country_FullName`, `t0`.`Id0`, `t0`.`Name0`, `t0`.`BillingAddress_AddressLine10`, `t0`.`BillingAddress_AddressLine20`, `t0`.`BillingAddress_ZipCode0`, `t0`.`BillingAddress_Country_Code0`, `t0`.`BillingAddress_Country_FullName0`, `t0`.`ShippingAddress_AddressLine10`, `t0`.`ShippingAddress_AddressLine20`, `t0`.`ShippingAddress_ZipCode0`, `t0`.`ShippingAddress_Country_Code0`, `t0`.`ShippingAddress_Country_FullName0`
FROM (
SELECT DISTINCT `t`.`Id`, `t`.`Name`, `t`.`BillingAddress_AddressLine1`, `t`.`BillingAddress_AddressLine2`, `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_Country_Code`, `t`.`BillingAddress_Country_FullName`, `t`.`ShippingAddress_AddressLine1`, `t`.`ShippingAddress_AddressLine2`, `t`.`ShippingAddress_ZipCode`, `t`.`ShippingAddress_Country_Code`, `t`.`ShippingAddress_Country_FullName`, `t`.`Id0`, `t`.`Name0`, `t`.`BillingAddress_AddressLine10`, `t`.`BillingAddress_AddressLine20`, `t`.`BillingAddress_ZipCode0`, `t`.`BillingAddress_Country_Code0`, `t`.`BillingAddress_Country_FullName0`, `t`.`ShippingAddress_AddressLine10`, `t`.`ShippingAddress_AddressLine20`, `t`.`ShippingAddress_ZipCode0`, `t`.`ShippingAddress_Country_Code0`, `t`.`ShippingAddress_Country_FullName0`
FROM (
SELECT TOP 50 `v`.`Id`, `v`.`Name`, `v`.`BillingAddress_AddressLine1`, `v`.`BillingAddress_AddressLine2`, `v`.`BillingAddress_ZipCode`, `v`.`BillingAddress_Country_Code`, `v`.`BillingAddress_Country_FullName`, `v`.`ShippingAddress_AddressLine1`, `v`.`ShippingAddress_AddressLine2`, `v`.`ShippingAddress_ZipCode`, `v`.`ShippingAddress_Country_Code`, `v`.`ShippingAddress_Country_FullName`, `v0`.`Id` AS `Id0`, `v0`.`Name` AS `Name0`, `v0`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `v0`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `v0`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `v0`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `v0`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`, `v0`.`ShippingAddress_AddressLine1` AS `ShippingAddress_AddressLine10`, `v0`.`ShippingAddress_AddressLine2` AS `ShippingAddress_AddressLine20`, `v0`.`ShippingAddress_ZipCode` AS `ShippingAddress_ZipCode0`, `v0`.`ShippingAddress_Country_Code` AS `ShippingAddress_Country_Code0`, `v0`.`ShippingAddress_Country_FullName` AS `ShippingAddress_Country_FullName0`
FROM `ValuedCustomer` AS `v`,
`ValuedCustomer` AS `v0`
ORDER BY `v`.`Id`, `v0`.`Id`
) AS `t`
) AS `t0`
""");
}
public override async Task Project_same_struct_nested_complex_type_twice_with_double_pushdown(bool async)
{
await base.Project_same_struct_nested_complex_type_twice_with_double_pushdown(async);
AssertSql(
"""
SELECT `t0`.`BillingAddress_AddressLine1`, `t0`.`BillingAddress_AddressLine2`, `t0`.`BillingAddress_ZipCode`, `t0`.`BillingAddress_Country_Code`, `t0`.`BillingAddress_Country_FullName`, `t0`.`BillingAddress_AddressLine10`, `t0`.`BillingAddress_AddressLine20`, `t0`.`BillingAddress_ZipCode0`, `t0`.`BillingAddress_Country_Code0`, `t0`.`BillingAddress_Country_FullName0`
FROM (
SELECT DISTINCT `t`.`BillingAddress_AddressLine1`, `t`.`BillingAddress_AddressLine2`, `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_Country_Code`, `t`.`BillingAddress_Country_FullName`, `t`.`BillingAddress_AddressLine10`, `t`.`BillingAddress_AddressLine20`, `t`.`BillingAddress_ZipCode0`, `t`.`BillingAddress_Country_Code0`, `t`.`BillingAddress_Country_FullName0`
FROM (
SELECT TOP 50 `v`.`BillingAddress_AddressLine1`, `v`.`BillingAddress_AddressLine2`, `v`.`BillingAddress_ZipCode`, `v`.`BillingAddress_Country_Code`, `v`.`BillingAddress_Country_FullName`, `v0`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `v0`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `v0`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `v0`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `v0`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`
FROM `ValuedCustomer` AS `v`,
`ValuedCustomer` AS `v0`
ORDER BY `v`.`Id`, `v0`.`Id`
) AS `t`
) AS `t0`
""");
}
public override async Task Union_of_same_entity_with_nested_complex_type_projected_twice_with_pushdown(bool async)
{
await base.Union_of_same_entity_with_nested_complex_type_projected_twice_with_pushdown(async);
AssertSql(
"""
SELECT TOP 50 `t`.`Id`, `t`.`Name`, `t`.`BillingAddress_AddressLine1`, `t`.`BillingAddress_AddressLine2`, `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_Country_Code`, `t`.`BillingAddress_Country_FullName`, `t`.`ShippingAddress_AddressLine1`, `t`.`ShippingAddress_AddressLine2`, `t`.`ShippingAddress_ZipCode`, `t`.`ShippingAddress_Country_Code`, `t`.`ShippingAddress_Country_FullName`, `t`.`Id0`, `t`.`Name0`, `t`.`BillingAddress_AddressLine10`, `t`.`BillingAddress_AddressLine20`, `t`.`BillingAddress_ZipCode0`, `t`.`BillingAddress_Country_Code0`, `t`.`BillingAddress_Country_FullName0`, `t`.`ShippingAddress_AddressLine10`, `t`.`ShippingAddress_AddressLine20`, `t`.`ShippingAddress_ZipCode0`, `t`.`ShippingAddress_Country_Code0`, `t`.`ShippingAddress_Country_FullName0`
FROM (
SELECT `c`.`Id`, `c`.`Name`, `c`.`BillingAddress_AddressLine1`, `c`.`BillingAddress_AddressLine2`, `c`.`BillingAddress_ZipCode`, `c`.`BillingAddress_Country_Code`, `c`.`BillingAddress_Country_FullName`, `c`.`ShippingAddress_AddressLine1`, `c`.`ShippingAddress_AddressLine2`, `c`.`ShippingAddress_ZipCode`, `c`.`ShippingAddress_Country_Code`, `c`.`ShippingAddress_Country_FullName`, `c0`.`Id` AS `Id0`, `c0`.`Name` AS `Name0`, `c0`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `c0`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `c0`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `c0`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `c0`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`, `c0`.`ShippingAddress_AddressLine1` AS `ShippingAddress_AddressLine10`, `c0`.`ShippingAddress_AddressLine2` AS `ShippingAddress_AddressLine20`, `c0`.`ShippingAddress_ZipCode` AS `ShippingAddress_ZipCode0`, `c0`.`ShippingAddress_Country_Code` AS `ShippingAddress_Country_Code0`, `c0`.`ShippingAddress_Country_FullName` AS `ShippingAddress_Country_FullName0`
FROM `Customer` AS `c`,
`Customer` AS `c0`
UNION
SELECT `c1`.`Id`, `c1`.`Name`, `c1`.`BillingAddress_AddressLine1`, `c1`.`BillingAddress_AddressLine2`, `c1`.`BillingAddress_ZipCode`, `c1`.`BillingAddress_Country_Code`, `c1`.`BillingAddress_Country_FullName`, `c1`.`ShippingAddress_AddressLine1`, `c1`.`ShippingAddress_AddressLine2`, `c1`.`ShippingAddress_ZipCode`, `c1`.`ShippingAddress_Country_Code`, `c1`.`ShippingAddress_Country_FullName`, `c2`.`Id` AS `Id0`, `c2`.`Name` AS `Name0`, `c2`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `c2`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `c2`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `c2`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `c2`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`, `c2`.`ShippingAddress_AddressLine1` AS `ShippingAddress_AddressLine10`, `c2`.`ShippingAddress_AddressLine2` AS `ShippingAddress_AddressLine20`, `c2`.`ShippingAddress_ZipCode` AS `ShippingAddress_ZipCode0`, `c2`.`ShippingAddress_Country_Code` AS `ShippingAddress_Country_Code0`, `c2`.`ShippingAddress_Country_FullName` AS `ShippingAddress_Country_FullName0`
FROM `Customer` AS `c1`,
`Customer` AS `c2`
) AS `t`
ORDER BY `t`.`Id`, `t`.`Id0`
""");
}
public override async Task Union_of_same_entity_with_nested_complex_type_projected_twice_with_double_pushdown(bool async)
{
await base.Union_of_same_entity_with_nested_complex_type_projected_twice_with_double_pushdown(async);
AssertSql(
"""
SELECT TOP 50 `t1`.`Id`, `t1`.`Name`, `t1`.`BillingAddress_AddressLine1`, `t1`.`BillingAddress_AddressLine2`, `t1`.`BillingAddress_ZipCode`, `t1`.`BillingAddress_Country_Code`, `t1`.`BillingAddress_Country_FullName`, `t1`.`ShippingAddress_AddressLine1`, `t1`.`ShippingAddress_AddressLine2`, `t1`.`ShippingAddress_ZipCode`, `t1`.`ShippingAddress_Country_Code`, `t1`.`ShippingAddress_Country_FullName`, `t1`.`Id0`, `t1`.`Name0`, `t1`.`BillingAddress_AddressLine10`, `t1`.`BillingAddress_AddressLine20`, `t1`.`BillingAddress_ZipCode0`, `t1`.`BillingAddress_Country_Code0`, `t1`.`BillingAddress_Country_FullName0`, `t1`.`ShippingAddress_AddressLine10`, `t1`.`ShippingAddress_AddressLine20`, `t1`.`ShippingAddress_ZipCode0`, `t1`.`ShippingAddress_Country_Code0`, `t1`.`ShippingAddress_Country_FullName0`
FROM (
SELECT DISTINCT `t0`.`Id`, `t0`.`Name`, `t0`.`BillingAddress_AddressLine1`, `t0`.`BillingAddress_AddressLine2`, `t0`.`BillingAddress_ZipCode`, `t0`.`BillingAddress_Country_Code`, `t0`.`BillingAddress_Country_FullName`, `t0`.`ShippingAddress_AddressLine1`, `t0`.`ShippingAddress_AddressLine2`, `t0`.`ShippingAddress_ZipCode`, `t0`.`ShippingAddress_Country_Code`, `t0`.`ShippingAddress_Country_FullName`, `t0`.`Id0`, `t0`.`Name0`, `t0`.`BillingAddress_AddressLine10`, `t0`.`BillingAddress_AddressLine20`, `t0`.`BillingAddress_ZipCode0`, `t0`.`BillingAddress_Country_Code0`, `t0`.`BillingAddress_Country_FullName0`, `t0`.`ShippingAddress_AddressLine10`, `t0`.`ShippingAddress_AddressLine20`, `t0`.`ShippingAddress_ZipCode0`, `t0`.`ShippingAddress_Country_Code0`, `t0`.`ShippingAddress_Country_FullName0`
FROM (
SELECT TOP 50 `t`.`Id`, `t`.`Name`, `t`.`BillingAddress_AddressLine1`, `t`.`BillingAddress_AddressLine2`, `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_Country_Code`, `t`.`BillingAddress_Country_FullName`, `t`.`ShippingAddress_AddressLine1`, `t`.`ShippingAddress_AddressLine2`, `t`.`ShippingAddress_ZipCode`, `t`.`ShippingAddress_Country_Code`, `t`.`ShippingAddress_Country_FullName`, `t`.`Id0`, `t`.`Name0`, `t`.`BillingAddress_AddressLine10`, `t`.`BillingAddress_AddressLine20`, `t`.`BillingAddress_ZipCode0`, `t`.`BillingAddress_Country_Code0`, `t`.`BillingAddress_Country_FullName0`, `t`.`ShippingAddress_AddressLine10`, `t`.`ShippingAddress_AddressLine20`, `t`.`ShippingAddress_ZipCode0`, `t`.`ShippingAddress_Country_Code0`, `t`.`ShippingAddress_Country_FullName0`
FROM (
SELECT `c`.`Id`, `c`.`Name`, `c`.`BillingAddress_AddressLine1`, `c`.`BillingAddress_AddressLine2`, `c`.`BillingAddress_ZipCode`, `c`.`BillingAddress_Country_Code`, `c`.`BillingAddress_Country_FullName`, `c`.`ShippingAddress_AddressLine1`, `c`.`ShippingAddress_AddressLine2`, `c`.`ShippingAddress_ZipCode`, `c`.`ShippingAddress_Country_Code`, `c`.`ShippingAddress_Country_FullName`, `c0`.`Id` AS `Id0`, `c0`.`Name` AS `Name0`, `c0`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `c0`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `c0`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `c0`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `c0`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`, `c0`.`ShippingAddress_AddressLine1` AS `ShippingAddress_AddressLine10`, `c0`.`ShippingAddress_AddressLine2` AS `ShippingAddress_AddressLine20`, `c0`.`ShippingAddress_ZipCode` AS `ShippingAddress_ZipCode0`, `c0`.`ShippingAddress_Country_Code` AS `ShippingAddress_Country_Code0`, `c0`.`ShippingAddress_Country_FullName` AS `ShippingAddress_Country_FullName0`
FROM `Customer` AS `c`,
`Customer` AS `c0`
UNION
SELECT `c1`.`Id`, `c1`.`Name`, `c1`.`BillingAddress_AddressLine1`, `c1`.`BillingAddress_AddressLine2`, `c1`.`BillingAddress_ZipCode`, `c1`.`BillingAddress_Country_Code`, `c1`.`BillingAddress_Country_FullName`, `c1`.`ShippingAddress_AddressLine1`, `c1`.`ShippingAddress_AddressLine2`, `c1`.`ShippingAddress_ZipCode`, `c1`.`ShippingAddress_Country_Code`, `c1`.`ShippingAddress_Country_FullName`, `c2`.`Id` AS `Id0`, `c2`.`Name` AS `Name0`, `c2`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `c2`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `c2`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `c2`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `c2`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`, `c2`.`ShippingAddress_AddressLine1` AS `ShippingAddress_AddressLine10`, `c2`.`ShippingAddress_AddressLine2` AS `ShippingAddress_AddressLine20`, `c2`.`ShippingAddress_ZipCode` AS `ShippingAddress_ZipCode0`, `c2`.`ShippingAddress_Country_Code` AS `ShippingAddress_Country_Code0`, `c2`.`ShippingAddress_Country_FullName` AS `ShippingAddress_Country_FullName0`
FROM `Customer` AS `c1`,
`Customer` AS `c2`
) AS `t`
ORDER BY `t`.`Id`, `t`.`Id0`
) AS `t0`
) AS `t1`
ORDER BY `t1`.`Id`, `t1`.`Id0`
""");
}
public override async Task Union_of_same_nested_complex_type_projected_twice_with_pushdown(bool async)
{
await base.Union_of_same_nested_complex_type_projected_twice_with_pushdown(async);
AssertSql(
"""
SELECT TOP 50 `t`.`BillingAddress_AddressLine1`, `t`.`BillingAddress_AddressLine2`, `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_Country_Code`, `t`.`BillingAddress_Country_FullName`, `t`.`BillingAddress_AddressLine10`, `t`.`BillingAddress_AddressLine20`, `t`.`BillingAddress_ZipCode0`, `t`.`BillingAddress_Country_Code0`, `t`.`BillingAddress_Country_FullName0`
FROM (
SELECT `c`.`BillingAddress_AddressLine1`, `c`.`BillingAddress_AddressLine2`, `c`.`BillingAddress_ZipCode`, `c`.`BillingAddress_Country_Code`, `c`.`BillingAddress_Country_FullName`, `c0`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `c0`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `c0`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `c0`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `c0`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`
FROM `Customer` AS `c`,
`Customer` AS `c0`
UNION
SELECT `c1`.`BillingAddress_AddressLine1`, `c1`.`BillingAddress_AddressLine2`, `c1`.`BillingAddress_ZipCode`, `c1`.`BillingAddress_Country_Code`, `c1`.`BillingAddress_Country_FullName`, `c2`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `c2`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `c2`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `c2`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `c2`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`
FROM `Customer` AS `c1`,
`Customer` AS `c2`
) AS `t`
ORDER BY `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_ZipCode0`
""");
}
public override async Task Union_of_same_nested_complex_type_projected_twice_with_double_pushdown(bool async)
{
await base.Union_of_same_nested_complex_type_projected_twice_with_double_pushdown(async);
AssertSql(
"""
SELECT TOP 50 `t1`.`BillingAddress_AddressLine1`, `t1`.`BillingAddress_AddressLine2`, `t1`.`BillingAddress_ZipCode`, `t1`.`BillingAddress_Country_Code`, `t1`.`BillingAddress_Country_FullName`, `t1`.`BillingAddress_AddressLine10`, `t1`.`BillingAddress_AddressLine20`, `t1`.`BillingAddress_ZipCode0`, `t1`.`BillingAddress_Country_Code0`, `t1`.`BillingAddress_Country_FullName0`
FROM (
SELECT DISTINCT `t0`.`BillingAddress_AddressLine1`, `t0`.`BillingAddress_AddressLine2`, `t0`.`BillingAddress_ZipCode`, `t0`.`BillingAddress_Country_Code`, `t0`.`BillingAddress_Country_FullName`, `t0`.`BillingAddress_AddressLine10`, `t0`.`BillingAddress_AddressLine20`, `t0`.`BillingAddress_ZipCode0`, `t0`.`BillingAddress_Country_Code0`, `t0`.`BillingAddress_Country_FullName0`
FROM (
SELECT TOP 50 `t`.`BillingAddress_AddressLine1`, `t`.`BillingAddress_AddressLine2`, `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_Country_Code`, `t`.`BillingAddress_Country_FullName`, `t`.`BillingAddress_AddressLine10`, `t`.`BillingAddress_AddressLine20`, `t`.`BillingAddress_ZipCode0`, `t`.`BillingAddress_Country_Code0`, `t`.`BillingAddress_Country_FullName0`
FROM (
SELECT `c`.`BillingAddress_AddressLine1`, `c`.`BillingAddress_AddressLine2`, `c`.`BillingAddress_ZipCode`, `c`.`BillingAddress_Country_Code`, `c`.`BillingAddress_Country_FullName`, `c0`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `c0`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `c0`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `c0`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `c0`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`
FROM `Customer` AS `c`,
`Customer` AS `c0`
UNION
SELECT `c1`.`BillingAddress_AddressLine1`, `c1`.`BillingAddress_AddressLine2`, `c1`.`BillingAddress_ZipCode`, `c1`.`BillingAddress_Country_Code`, `c1`.`BillingAddress_Country_FullName`, `c2`.`BillingAddress_AddressLine1` AS `BillingAddress_AddressLine10`, `c2`.`BillingAddress_AddressLine2` AS `BillingAddress_AddressLine20`, `c2`.`BillingAddress_ZipCode` AS `BillingAddress_ZipCode0`, `c2`.`BillingAddress_Country_Code` AS `BillingAddress_Country_Code0`, `c2`.`BillingAddress_Country_FullName` AS `BillingAddress_Country_FullName0`
FROM `Customer` AS `c1`,
`Customer` AS `c2`
) AS `t`
ORDER BY `t`.`BillingAddress_ZipCode`, `t`.`BillingAddress_ZipCode0`
) AS `t0`
) AS `t1`
ORDER BY `t1`.`BillingAddress_ZipCode`, `t1`.`BillingAddress_ZipCode0`
""");
}
public override async Task Same_entity_with_complex_type_projected_twice_with_pushdown_as_part_of_another_projection(bool async)
{
await base.Same_entity_with_complex_type_projected_twice_with_pushdown_as_part_of_another_projection(async);
AssertSql(
"""
SELECT [c].[Id], [t].[Id], [t].[Name], [t].[BillingAddress_AddressLine1], [t].[BillingAddress_AddressLine2], [t].[BillingAddress_ZipCode], [t].[BillingAddress_Country_Code], [t].[BillingAddress_Country_FullName], [t].[ShippingAddress_AddressLine1], [t].[ShippingAddress_AddressLine2], [t].[ShippingAddress_ZipCode], [t].[ShippingAddress_Country_Code], [t].[ShippingAddress_Country_FullName], [t].[Id0], [t].[Name0], [t].[BillingAddress_AddressLine10], [t].[BillingAddress_AddressLine20], [t].[BillingAddress_ZipCode0], [t].[BillingAddress_Country_Code0], [t].[BillingAddress_Country_FullName0], [t].[ShippingAddress_AddressLine10], [t].[ShippingAddress_AddressLine20], [t].[ShippingAddress_ZipCode0], [t].[ShippingAddress_Country_Code0], [t].[ShippingAddress_Country_FullName0], [t].[c]
FROM [Customer] AS [c]
OUTER APPLY (
SELECT TOP(1) [c0].[Id], [c0].[Name], [c0].[BillingAddress_AddressLine1], [c0].[BillingAddress_AddressLine2], [c0].[BillingAddress_ZipCode], [c0].[BillingAddress_Country_Code], [c0].[BillingAddress_Country_FullName], [c0].[ShippingAddress_AddressLine1], [c0].[ShippingAddress_AddressLine2], [c0].[ShippingAddress_ZipCode], [c0].[ShippingAddress_Country_Code], [c0].[ShippingAddress_Country_FullName], [c1].[Id] AS [Id0], [c1].[Name] AS [Name0], [c1].[BillingAddress_AddressLine1] AS [BillingAddress_AddressLine10], [c1].[BillingAddress_AddressLine2] AS [BillingAddress_AddressLine20], [c1].[BillingAddress_ZipCode] AS [BillingAddress_ZipCode0], [c1].[BillingAddress_Country_Code] AS [BillingAddress_Country_Code0], [c1].[BillingAddress_Country_FullName] AS [BillingAddress_Country_FullName0], [c1].[ShippingAddress_AddressLine1] AS [ShippingAddress_AddressLine10], [c1].[ShippingAddress_AddressLine2] AS [ShippingAddress_AddressLine20], [c1].[ShippingAddress_ZipCode] AS [ShippingAddress_ZipCode0], [c1].[ShippingAddress_Country_Code] AS [ShippingAddress_Country_Code0], [c1].[ShippingAddress_Country_FullName] AS [ShippingAddress_Country_FullName0], 1 AS [c]
FROM [Customer] AS [c0]
CROSS JOIN [Customer] AS [c1]
ORDER BY [c0].[Id], [c1].[Id] DESC
) AS [t]
""");
}
public override async Task Same_complex_type_projected_twice_with_pushdown_as_part_of_another_projection(bool async)
{
await base.Same_complex_type_projected_twice_with_pushdown_as_part_of_another_projection(async);
AssertSql("");
}
/*public override async Task Projecting_property_of_complex_type_using_left_join_with_pushdown(bool async)
{
await base.Projecting_property_of_complex_type_using_left_join_with_pushdown(async);
AssertSql(
"""
SELECT [t].[BillingAddress_ZipCode]
FROM [CustomerGroup] AS [c]
LEFT JOIN (
SELECT [c0].[Id], [c0].[BillingAddress_ZipCode]
FROM [Customer] AS [c0]
WHERE [c0].[Id] > 5
) AS [t] ON [c].[Id] = [t].[Id]
""");
}
public override async Task Projecting_complex_from_optional_navigation_using_conditional(bool async)
{
await base.Projecting_complex_from_optional_navigation_using_conditional(async);
AssertSql(
"""
@__p_0='20'
SELECT [t0].[ShippingAddress_ZipCode]
FROM (
SELECT DISTINCT [t].[ShippingAddress_AddressLine1], [t].[ShippingAddress_AddressLine2], [t].[ShippingAddress_ZipCode], [t].[ShippingAddress_Country_Code], [t].[ShippingAddress_Country_FullName]
FROM (
SELECT TOP(@__p_0) [c0].[ShippingAddress_AddressLine1], [c0].[ShippingAddress_AddressLine2], [c0].[ShippingAddress_ZipCode], [c0].[ShippingAddress_Country_Code], [c0].[ShippingAddress_Country_FullName]
FROM [CustomerGroup] AS [c]
LEFT JOIN [Customer] AS [c0] ON [c].[OptionalCustomerId] = [c0].[Id]
ORDER BY [c0].[ShippingAddress_ZipCode]
) AS [t]
) AS [t0]
""");
}
public override async Task Project_entity_with_complex_type_pushdown_and_then_left_join(bool async)
{
await base.Project_entity_with_complex_type_pushdown_and_then_left_join(async);
AssertSql(
"""
@__p_0='20'
@__p_1='30'
SELECT [t0].[BillingAddress_ZipCode] AS [Zip1], [t1].[ShippingAddress_ZipCode] AS [Zip2]
FROM (
SELECT DISTINCT [t].[Id], [t].[Name], [t].[BillingAddress_AddressLine1], [t].[BillingAddress_AddressLine2], [t].[BillingAddress_ZipCode], [t].[BillingAddress_Country_Code], [t].[BillingAddress_Country_FullName], [t].[ShippingAddress_AddressLine1], [t].[ShippingAddress_AddressLine2], [t].[ShippingAddress_ZipCode], [t].[ShippingAddress_Country_Code], [t].[ShippingAddress_Country_FullName]
FROM (
SELECT TOP(@__p_0) [c].[Id], [c].[Name], [c].[BillingAddress_AddressLine1], [c].[BillingAddress_AddressLine2], [c].[BillingAddress_ZipCode], [c].[BillingAddress_Country_Code], [c].[BillingAddress_Country_FullName], [c].[ShippingAddress_AddressLine1], [c].[ShippingAddress_AddressLine2], [c].[ShippingAddress_ZipCode], [c].[ShippingAddress_Country_Code], [c].[ShippingAddress_Country_FullName]
FROM [Customer] AS [c]
ORDER BY [c].[Id]
) AS [t]
) AS [t0]
LEFT JOIN (
SELECT DISTINCT [t2].[Id], [t2].[Name], [t2].[BillingAddress_AddressLine1], [t2].[BillingAddress_AddressLine2], [t2].[BillingAddress_ZipCode], [t2].[BillingAddress_Country_Code], [t2].[BillingAddress_Country_FullName], [t2].[ShippingAddress_AddressLine1], [t2].[ShippingAddress_AddressLine2], [t2].[ShippingAddress_ZipCode], [t2].[ShippingAddress_Country_Code], [t2].[ShippingAddress_Country_FullName]
FROM (
SELECT TOP(@__p_1) [c0].[Id], [c0].[Name], [c0].[BillingAddress_AddressLine1], [c0].[BillingAddress_AddressLine2], [c0].[BillingAddress_ZipCode], [c0].[BillingAddress_Country_Code], [c0].[BillingAddress_Country_FullName], [c0].[ShippingAddress_AddressLine1], [c0].[ShippingAddress_AddressLine2], [c0].[ShippingAddress_ZipCode], [c0].[ShippingAddress_Country_Code], [c0].[ShippingAddress_Country_FullName]
FROM [Customer] AS [c0]
ORDER BY [c0].[Id] DESC
) AS [t2]
) AS [t1] ON [t0].[Id] = [t1].[Id]
""");
}*/
[ConditionalFact]
public virtual void Check_all_tests_overridden()
=> TestHelpers.AssertAllMethodsOverridden(GetType());

Loading…
Cancel
Save