From 0a0a9bb543754e1266b232d986574e52165b9960 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 22 Feb 2025 17:20:06 +0000 Subject: [PATCH 01/40] [Windows / SQLite (specialized tests)] baselines --- ...ToMany(SQLite.Classic.MPM.LinqService).sql | 24 +- ...ection(SQLite.Classic.MPM.LinqService).sql | 27 +- ...est1(SQLite.Classic.MPM.LinqService,1).sql | 63 ++- ...est1(SQLite.Classic.MPM.LinqService,2).sql | 63 ++- ...rQuery(SQLite.Classic.MPM.LinqService).sql | 25 +- ...Join52(SQLite.Classic.MPM.LinqService).sql | 17 +- ...Join53(SQLite.Classic.MPM.LinqService).sql | 17 +- ...Select(SQLite.Classic.MPM.LinqService).sql | 60 ++- ...Select(SQLite.Classic.MPM.LinqService).sql | 75 ++- ...Select(SQLite.Classic.MPM.LinqService).sql | 14 +- ...bquery(SQLite.Classic.MPM.LinqService).sql | 12 +- ...ilter1(SQLite.Classic.MPM.LinqService).sql | 22 +- ...ilter2(SQLite.Classic.MPM.LinqService).sql | 26 +- ...ilter3(SQLite.Classic.MPM.LinqService).sql | 34 +- ...ueryWithManyToMany(SQLite.Classic.MPM).sql | 24 +- ...ry.FieldProjection(SQLite.Classic.MPM).sql | 27 +- ....ComparisonTest1(SQLite.Classic.MPM,1).sql | 63 ++- ....ComparisonTest1(SQLite.Classic.MPM,2).sql | 63 ++- ...ByTests.InnerQuery(SQLite.Classic.MPM).sql | 25 +- ...nTests.GroupJoin52(SQLite.Classic.MPM).sql | 17 +- ...nTests.GroupJoin53(SQLite.Classic.MPM).sql | 17 +- ...ts.CompareToSelect(SQLite.Classic.MPM).sql | 60 ++- ...ests.EqualToSelect(SQLite.Classic.MPM).sql | 75 ++- ...ts.UpdateRowSelect(SQLite.Classic.MPM).sql | 14 +- ...ests.Issue383Test2(SQLite.Classic.MPM).sql | 10 +- ...ts.BooleanSubquery(SQLite.Classic.MPM).sql | 12 +- ...ue_SubQueryFilter1(SQLite.Classic.MPM).sql | 22 +- ...ue_SubQueryFilter2(SQLite.Classic.MPM).sql | 26 +- ...ue_SubQueryFilter3(SQLite.Classic.MPM).sql | 34 +- ...ryTakesForever4394(SQLite.Classic.MPM).sql | 440 ++++++------------ ...ToMany(SQLite.Classic.MPU.LinqService).sql | 24 +- ...ection(SQLite.Classic.MPU.LinqService).sql | 27 +- ...est1(SQLite.Classic.MPU.LinqService,1).sql | 63 ++- ...est1(SQLite.Classic.MPU.LinqService,2).sql | 63 ++- ...rQuery(SQLite.Classic.MPU.LinqService).sql | 25 +- ...Join52(SQLite.Classic.MPU.LinqService).sql | 17 +- ...Join53(SQLite.Classic.MPU.LinqService).sql | 17 +- ...Select(SQLite.Classic.MPU.LinqService).sql | 60 ++- ...Select(SQLite.Classic.MPU.LinqService).sql | 75 ++- ...Select(SQLite.Classic.MPU.LinqService).sql | 14 +- ...bquery(SQLite.Classic.MPU.LinqService).sql | 12 +- ...ilter1(SQLite.Classic.MPU.LinqService).sql | 22 +- ...ilter2(SQLite.Classic.MPU.LinqService).sql | 26 +- ...ilter3(SQLite.Classic.MPU.LinqService).sql | 34 +- ...ueryWithManyToMany(SQLite.Classic.MPU).sql | 24 +- ...ry.FieldProjection(SQLite.Classic.MPU).sql | 27 +- ....ComparisonTest1(SQLite.Classic.MPU,1).sql | 63 ++- ....ComparisonTest1(SQLite.Classic.MPU,2).sql | 63 ++- ...ByTests.InnerQuery(SQLite.Classic.MPU).sql | 25 +- ...nTests.GroupJoin52(SQLite.Classic.MPU).sql | 17 +- ...nTests.GroupJoin53(SQLite.Classic.MPU).sql | 17 +- ...ts.CompareToSelect(SQLite.Classic.MPU).sql | 60 ++- ...ests.EqualToSelect(SQLite.Classic.MPU).sql | 75 ++- ...ts.UpdateRowSelect(SQLite.Classic.MPU).sql | 14 +- ...ests.Issue383Test2(SQLite.Classic.MPU).sql | 10 +- ...ts.BooleanSubquery(SQLite.Classic.MPU).sql | 12 +- ...ue_SubQueryFilter1(SQLite.Classic.MPU).sql | 22 +- ...ue_SubQueryFilter2(SQLite.Classic.MPU).sql | 26 +- ...ue_SubQueryFilter3(SQLite.Classic.MPU).sql | 34 +- ...ryTakesForever4394(SQLite.Classic.MPU).sql | 440 ++++++------------ 60 files changed, 1432 insertions(+), 1384 deletions(-) diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM.LinqService).sql index 8cbc49778888..bced603805d8 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM.LinqService).sql @@ -14,13 +14,25 @@ WHERE SELECT * FROM - [Parent] [li] - INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] - INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + ( + SELECT + ( + SELECT + [a_Parent].[ParentID] + FROM + [GrandChild] [a_Child] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + WHERE + [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + ) as [ParentID] + FROM + [Parent] [t2] + INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] + WHERE + [t2].[ParentID] = @id + ) [li] WHERE - [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND - [a_Parent].[ParentID] = @id1 + [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPM.LinqService).sql index 4f4ff21c55e0..113e43f99f26 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPM.LinqService).sql @@ -14,21 +14,22 @@ BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - [t2].[ID] + ( + SELECT + [t1].[ID] + FROM + ( + SELECT NULL [ID] WHERE 1 = 0 + UNION ALL + VALUES + (1), (2), (3), (4) + ) [t1] + WHERE + [t1].[ID] = [x].[PersonID] + LIMIT 1 + ) FROM [Person] [x] - INNER JOIN ( - SELECT - [t1].[ID], - ROW_NUMBER() OVER (PARTITION BY [t1].[ID] ORDER BY [t1].[ID]) as [rn] - FROM - ( - SELECT NULL [ID] WHERE 1 = 0 - UNION ALL - VALUES - (1), (2), (3), (4) - ) [t1] - ) [t2] ON [t2].[ID] = [x].[PersonID] AND [t2].[rn] <= 1 BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM.LinqService,1).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM.LinqService,1).sql index 712df5328682..24a886346a1c 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM.LinqService,1).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM.LinqService,2).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM.LinqService,2).sql index 712df5328682..24a886346a1c 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM.LinqService,2).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM.LinqService).sql index f5dd4f0e180f..0a9472c500bb 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM.LinqService).sql @@ -2,22 +2,17 @@ -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - [t1].[Taxonomy] -FROM ( SELECT - [s].[PersonID] + [s_1].[Taxonomy] FROM - [Doctor] [s] - GROUP BY - [s].[PersonID] - ) [s_2] - INNER JOIN ( - SELECT - [s_1].[Taxonomy], - ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], - [s_1].[PersonID] - FROM - [Doctor] [s_1] - ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 + [Doctor] [s_1] + WHERE + [s].[PersonID] = [s_1].[PersonID] + LIMIT 1 + ) +FROM + [Doctor] [s] +GROUP BY + [s].[PersonID] diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM.LinqService).sql index 4b7dfbfebcfa..13e1d167e96f 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM.LinqService).sql @@ -2,16 +2,17 @@ -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM.LinqService).sql index 4b7dfbfebcfa..13e1d167e96f 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM.LinqService).sql @@ -2,16 +2,17 @@ -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPM.LinqService).sql index 3ccb06678b41..e68dbcca75c3 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPM.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) > ([y].[One], [y].[One], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) > ( + SELECT + [y].[One], + [y].[One], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) >= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) >= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) < ([y].[One], [y].[Three], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) < ( + SELECT + [y].[One], + [y].[Three], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPM.LinqService).sql index 0f0018e175f9..3b3cb252d725 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPM.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([y].[One], [y].[One] + 1, 3) = ([x].[One], [x].[Two], [x].[Three]) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPM.LinqService).sql index c3a883904919..44e3ae4c2dff 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPM.LinqService).sql @@ -5,12 +5,18 @@ UPDATE [Ints] SET [One] = [Ints].[Two] * 5, - ([Two], [Three]) = ([Ints].[Two] * 10, [j].[Three] * 100), + ([Two], [Three]) = ( + SELECT + [Ints].[Two] * 10, + [j].[Three] * 100 + FROM + [Ints] [j] + WHERE + [j].[One] = 1 + ), ([Four], [Nil]) = ([Ints].[One] * [Ints].[Four], 600) -FROM - [Ints] [j] WHERE - [Ints].[One] = 10 AND [j].[One] = 1 + [Ints].[One] = 10 BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPM.LinqService).sql index 4340b5f4d86f..3af5960ac0c1 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPM.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPM.LinqService).sql index fbeec4a95307..62a904ee69af 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPM.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPM.LinqService).sql index 34a8dcd04668..e06e3e59f618 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPM.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND + [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND + [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPM.LinqService).sql index ee674de05455..23aad8eb057a 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPM.LinqService).sql @@ -16,30 +16,32 @@ WHERE * FROM [Person] [p] - INNER JOIN ( - SELECT - [d].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d].[PersonID] ORDER BY [d].[PersonID]) as [rn] - FROM - [Person] [d] - ) [t1] ON [t1].[cond] = [patient_1].[PersonID] AND [t1].[rn] <= 1 WHERE - [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = ( + SELECT + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - INNER JOIN ( - SELECT - [d_1].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d_1].[PersonID] ORDER BY [d_1].[PersonID]) as [rn] - FROM - [Person] [d_1] - ) [t2] ON [t2].[cond] = [patient_1].[PersonID] AND [t2].[rn] <= 1 WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = ( + SELECT + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SQLite.Classic.MPM/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM).sql index 8cbc49778888..bced603805d8 100644 --- a/SQLite.Classic.MPM/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM).sql @@ -14,13 +14,25 @@ WHERE SELECT * FROM - [Parent] [li] - INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] - INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + ( + SELECT + ( + SELECT + [a_Parent].[ParentID] + FROM + [GrandChild] [a_Child] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + WHERE + [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + ) as [ParentID] + FROM + [Parent] [t2] + INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] + WHERE + [t2].[ParentID] = @id + ) [li] WHERE - [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND - [a_Parent].[ParentID] = @id1 + [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.Classic.MPM/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPM).sql index 4f4ff21c55e0..113e43f99f26 100644 --- a/SQLite.Classic.MPM/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPM).sql @@ -14,21 +14,22 @@ BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - [t2].[ID] + ( + SELECT + [t1].[ID] + FROM + ( + SELECT NULL [ID] WHERE 1 = 0 + UNION ALL + VALUES + (1), (2), (3), (4) + ) [t1] + WHERE + [t1].[ID] = [x].[PersonID] + LIMIT 1 + ) FROM [Person] [x] - INNER JOIN ( - SELECT - [t1].[ID], - ROW_NUMBER() OVER (PARTITION BY [t1].[ID] ORDER BY [t1].[ID]) as [rn] - FROM - ( - SELECT NULL [ID] WHERE 1 = 0 - UNION ALL - VALUES - (1), (2), (3), (4) - ) [t1] - ) [t2] ON [t2].[ID] = [x].[PersonID] AND [t2].[rn] <= 1 BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite diff --git a/SQLite.Classic.MPM/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM,1).sql b/SQLite.Classic.MPM/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM,1).sql index 712df5328682..24a886346a1c 100644 --- a/SQLite.Classic.MPM/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM,1).sql +++ b/SQLite.Classic.MPM/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.Classic.MPM/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM,2).sql b/SQLite.Classic.MPM/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM,2).sql index 712df5328682..24a886346a1c 100644 --- a/SQLite.Classic.MPM/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM,2).sql +++ b/SQLite.Classic.MPM/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPM,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.Classic.MPM/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM).sql index f5dd4f0e180f..0a9472c500bb 100644 --- a/SQLite.Classic.MPM/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM).sql @@ -2,22 +2,17 @@ -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - [t1].[Taxonomy] -FROM ( SELECT - [s].[PersonID] + [s_1].[Taxonomy] FROM - [Doctor] [s] - GROUP BY - [s].[PersonID] - ) [s_2] - INNER JOIN ( - SELECT - [s_1].[Taxonomy], - ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], - [s_1].[PersonID] - FROM - [Doctor] [s_1] - ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 + [Doctor] [s_1] + WHERE + [s].[PersonID] = [s_1].[PersonID] + LIMIT 1 + ) +FROM + [Doctor] [s] +GROUP BY + [s].[PersonID] diff --git a/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM).sql index 4b7dfbfebcfa..13e1d167e96f 100644 --- a/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM).sql @@ -2,16 +2,17 @@ -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM).sql index 4b7dfbfebcfa..13e1d167e96f 100644 --- a/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM).sql @@ -2,16 +2,17 @@ -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPM/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPM).sql index 3ccb06678b41..e68dbcca75c3 100644 --- a/SQLite.Classic.MPM/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPM).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) > ([y].[One], [y].[One], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) > ( + SELECT + [y].[One], + [y].[One], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) >= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) >= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) < ([y].[One], [y].[Three], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) < ( + SELECT + [y].[One], + [y].[Three], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.Classic.MPM/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPM).sql index 0f0018e175f9..3b3cb252d725 100644 --- a/SQLite.Classic.MPM/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPM).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([y].[One], [y].[One] + 1, 3) = ([x].[One], [x].[Two], [x].[Three]) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.Classic.MPM/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPM).sql index c3a883904919..44e3ae4c2dff 100644 --- a/SQLite.Classic.MPM/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPM).sql @@ -5,12 +5,18 @@ UPDATE [Ints] SET [One] = [Ints].[Two] * 5, - ([Two], [Three]) = ([Ints].[Two] * 10, [j].[Three] * 100), + ([Two], [Three]) = ( + SELECT + [Ints].[Two] * 10, + [j].[Three] * 100 + FROM + [Ints] [j] + WHERE + [j].[One] = 1 + ), ([Four], [Nil]) = ([Ints].[One] * [Ints].[Four], 600) -FROM - [Ints] [j] WHERE - [Ints].[One] = 10 AND [j].[One] = 1 + [Ints].[One] = 10 BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite diff --git a/SQLite.Classic.MPM/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.Classic.MPM).sql index e6cae63e0e0d..833d7ffbd2bd 100644 --- a/SQLite.Classic.MPM/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.Classic.MPM).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = 'CC' AND diff --git a/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPM).sql index 4340b5f4d86f..3af5960ac0c1 100644 --- a/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPM).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPM).sql index fbeec4a95307..62a904ee69af 100644 --- a/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPM).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPM).sql index 34a8dcd04668..e06e3e59f618 100644 --- a/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPM).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND + [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND + [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPM).sql index ee674de05455..23aad8eb057a 100644 --- a/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPM).sql @@ -16,30 +16,32 @@ WHERE * FROM [Person] [p] - INNER JOIN ( - SELECT - [d].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d].[PersonID] ORDER BY [d].[PersonID]) as [rn] - FROM - [Person] [d] - ) [t1] ON [t1].[cond] = [patient_1].[PersonID] AND [t1].[rn] <= 1 WHERE - [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = ( + SELECT + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - INNER JOIN ( - SELECT - [d_1].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d_1].[PersonID] ORDER BY [d_1].[PersonID]) as [rn] - FROM - [Person] [d_1] - ) [t2] ON [t2].[cond] = [patient_1].[PersonID] AND [t2].[rn] <= 1 WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = ( + SELECT + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SQLite.Classic.MPM/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.Classic.MPM).sql index 152fb6596aac..598d544d8844 100644 --- a/SQLite.Classic.MPM/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.Classic.MPM).sql @@ -2,9 +2,9 @@ -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -49,211 +49,139 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x].[ResourceID] ORDER BY [x].[ResourceID]) as [rn], - [x].[ResourceID] - FROM - [InventoryResourceDTO] [x] - WHERE - [x].[Status] < 0 - ) [t1] ON [t1].[ResourceID] = [b1].[ResourceID] AND [t1].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT - [x_1].[Id] + [x].[Id] FROM - [InventoryResourceDTO] [x_1] + [InventoryResourceDTO] [x] WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] + [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] LIMIT 1 ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_2].[ResourceID] ORDER BY [x_2].[ResourceID]) as [rn], - [x_2].[ResourceID] - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 - ) [t2] ON [t2].[ResourceID] = [b2].[ResourceID] AND [t2].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] LIMIT 1 ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_4].[ResourceID] ORDER BY [x_4].[ResourceID]) as [rn], - [x_4].[ResourceID] - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 - ) [t3] ON [t3].[ResourceID] = [b3].[ResourceID] AND [t3].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] LIMIT 1 ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_6].[ResourceID] ORDER BY [x_6].[ResourceID]) as [rn], - [x_6].[ResourceID] - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 - ) [t4] ON [t4].[ResourceID] = [b4].[ResourceID] AND [t4].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] LIMIT 1 ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_8].[ResourceID] ORDER BY [x_8].[ResourceID]) as [rn], - [x_8].[ResourceID] - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 - ) [t5] ON [t5].[ResourceID] = [b5].[ResourceID] AND [t5].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] LIMIT 1 ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_10].[ResourceID] ORDER BY [x_10].[ResourceID]) as [rn], - [x_10].[ResourceID] - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 - ) [t6] ON [t6].[ResourceID] = [b6].[ResourceID] AND [t6].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] LIMIT 1 ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_12].[ResourceID] ORDER BY [x_12].[ResourceID]) as [rn], - [x_12].[ResourceID] - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 - ) [t7] ON [t7].[ResourceID] = [b7].[ResourceID] AND [t7].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] LIMIT 1 ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_14].[ResourceID] ORDER BY [x_14].[ResourceID]) as [rn], - [x_14].[ResourceID] - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 - ) [t8] ON [t8].[ResourceID] = [b8].[ResourceID] AND [t8].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] LIMIT 1 ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -262,9 +190,9 @@ BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -309,32 +237,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), CASE @@ -367,32 +295,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), CASE @@ -425,32 +353,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), CASE @@ -483,32 +411,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), CASE @@ -541,32 +469,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), CASE @@ -599,32 +527,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), CASE @@ -657,32 +585,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), CASE @@ -715,211 +643,139 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x].[ResourceID] ORDER BY [x].[ResourceID]) as [rn], - [x].[ResourceID] - FROM - [InventoryResourceDTO] [x] - WHERE - [x].[Status] < 0 - ) [t1] ON [t1].[ResourceID] = [b1].[ResourceID] AND [t1].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT - [x_1].[Id] + [x].[Id] FROM - [InventoryResourceDTO] [x_1] + [InventoryResourceDTO] [x] WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] + [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] LIMIT 1 ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_2].[ResourceID] ORDER BY [x_2].[ResourceID]) as [rn], - [x_2].[ResourceID] - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 - ) [t2] ON [t2].[ResourceID] = [b2].[ResourceID] AND [t2].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] LIMIT 1 ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_4].[ResourceID] ORDER BY [x_4].[ResourceID]) as [rn], - [x_4].[ResourceID] - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 - ) [t3] ON [t3].[ResourceID] = [b3].[ResourceID] AND [t3].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] LIMIT 1 ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_6].[ResourceID] ORDER BY [x_6].[ResourceID]) as [rn], - [x_6].[ResourceID] - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 - ) [t4] ON [t4].[ResourceID] = [b4].[ResourceID] AND [t4].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] LIMIT 1 ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_8].[ResourceID] ORDER BY [x_8].[ResourceID]) as [rn], - [x_8].[ResourceID] - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 - ) [t5] ON [t5].[ResourceID] = [b5].[ResourceID] AND [t5].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] LIMIT 1 ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_10].[ResourceID] ORDER BY [x_10].[ResourceID]) as [rn], - [x_10].[ResourceID] - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 - ) [t6] ON [t6].[ResourceID] = [b6].[ResourceID] AND [t6].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] LIMIT 1 ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_12].[ResourceID] ORDER BY [x_12].[ResourceID]) as [rn], - [x_12].[ResourceID] - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 - ) [t7] ON [t7].[ResourceID] = [b7].[ResourceID] AND [t7].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] LIMIT 1 ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_14].[ResourceID] ORDER BY [x_14].[ResourceID]) as [rn], - [x_14].[ResourceID] - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 - ) [t8] ON [t8].[ResourceID] = [b8].[ResourceID] AND [t8].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] LIMIT 1 ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU.LinqService).sql index 1b59751a5a35..c017576a6863 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU.LinqService).sql @@ -14,13 +14,25 @@ WHERE SELECT * FROM - [Parent] [li] - INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] - INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + ( + SELECT + ( + SELECT + [a_Parent].[ParentID] + FROM + [GrandChild] [a_Child] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + WHERE + [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + ) as [ParentID] + FROM + [Parent] [t2] + INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] + WHERE + [t2].[ParentID] = @id + ) [li] WHERE - [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND - [a_Parent].[ParentID] = @id1 + [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPU.LinqService).sql index bf8b6ca8ed73..68b8aaf755ea 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPU.LinqService).sql @@ -14,21 +14,22 @@ BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - [t2].[ID] + ( + SELECT + [t1].[ID] + FROM + ( + SELECT NULL [ID] WHERE 1 = 0 + UNION ALL + VALUES + (1), (2), (3), (4) + ) [t1] + WHERE + [t1].[ID] = [x].[PersonID] + LIMIT 1 + ) FROM [Person] [x] - INNER JOIN ( - SELECT - [t1].[ID], - ROW_NUMBER() OVER (PARTITION BY [t1].[ID] ORDER BY [t1].[ID]) as [rn] - FROM - ( - SELECT NULL [ID] WHERE 1 = 0 - UNION ALL - VALUES - (1), (2), (3), (4) - ) [t1] - ) [t2] ON [t2].[ID] = [x].[PersonID] AND [t2].[rn] <= 1 BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU.LinqService,1).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU.LinqService,1).sql index a9f2234526c1..9e80bb1a982d 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU.LinqService,1).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU.LinqService,2).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU.LinqService,2).sql index a9f2234526c1..9e80bb1a982d 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU.LinqService,2).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU.LinqService).sql index 6004c4778b50..63f2c1b4d5d9 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU.LinqService).sql @@ -2,22 +2,17 @@ -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - [t1].[Taxonomy] -FROM ( SELECT - [s].[PersonID] + [s_1].[Taxonomy] FROM - [Doctor] [s] - GROUP BY - [s].[PersonID] - ) [s_2] - INNER JOIN ( - SELECT - [s_1].[Taxonomy], - ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], - [s_1].[PersonID] - FROM - [Doctor] [s_1] - ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 + [Doctor] [s_1] + WHERE + [s].[PersonID] = [s_1].[PersonID] + LIMIT 1 + ) +FROM + [Doctor] [s] +GROUP BY + [s].[PersonID] diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU.LinqService).sql index e299042d29c0..0bf90ed46b48 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU.LinqService).sql @@ -2,16 +2,17 @@ -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU.LinqService).sql index e299042d29c0..0bf90ed46b48 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU.LinqService).sql @@ -2,16 +2,17 @@ -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPU.LinqService).sql index 64f1456241ae..5c6245bc6438 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPU.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) > ([y].[One], [y].[One], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) > ( + SELECT + [y].[One], + [y].[One], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) >= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) >= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) < ([y].[One], [y].[Three], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) < ( + SELECT + [y].[One], + [y].[Three], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPU.LinqService).sql index 8d4eab7adeb7..35fac0e007ce 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPU.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([y].[One], [y].[One] + 1, 3) = ([x].[One], [x].[Two], [x].[Three]) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPU.LinqService).sql index c5303dcb1b77..6fcb05b8d7e3 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPU.LinqService).sql @@ -5,12 +5,18 @@ UPDATE [Ints] SET [One] = [Ints].[Two] * 5, - ([Two], [Three]) = ([Ints].[Two] * 10, [j].[Three] * 100), + ([Two], [Three]) = ( + SELECT + [Ints].[Two] * 10, + [j].[Three] * 100 + FROM + [Ints] [j] + WHERE + [j].[One] = 1 + ), ([Four], [Nil]) = ([Ints].[One] * [Ints].[Four], 600) -FROM - [Ints] [j] WHERE - [Ints].[One] = 10 AND [j].[One] = 1 + [Ints].[One] = 10 BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPU.LinqService).sql index de98cbfc47e1..fb7f73921309 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPU.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPU.LinqService).sql index 20053690678b..4b0e70e7b696 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPU.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPU.LinqService).sql index 202c52576190..085311b8d82d 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPU.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND + [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND + [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPU.LinqService).sql index 0c76bf5b7a7f..9cb88cef80a7 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPU.LinqService).sql @@ -16,30 +16,32 @@ WHERE * FROM [Person] [p] - INNER JOIN ( - SELECT - [d].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d].[PersonID] ORDER BY [d].[PersonID]) as [rn] - FROM - [Person] [d] - ) [t1] ON [t1].[cond] = [patient_1].[PersonID] AND [t1].[rn] <= 1 WHERE - [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = ( + SELECT + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - INNER JOIN ( - SELECT - [d_1].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d_1].[PersonID] ORDER BY [d_1].[PersonID]) as [rn] - FROM - [Person] [d_1] - ) [t2] ON [t2].[cond] = [patient_1].[PersonID] AND [t2].[rn] <= 1 WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = ( + SELECT + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SQLite.Classic.MPU/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU).sql index 1b59751a5a35..c017576a6863 100644 --- a/SQLite.Classic.MPU/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU).sql @@ -14,13 +14,25 @@ WHERE SELECT * FROM - [Parent] [li] - INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] - INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + ( + SELECT + ( + SELECT + [a_Parent].[ParentID] + FROM + [GrandChild] [a_Child] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + WHERE + [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + ) as [ParentID] + FROM + [Parent] [t2] + INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] + WHERE + [t2].[ParentID] = @id + ) [li] WHERE - [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND - [a_Parent].[ParentID] = @id1 + [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.Classic.MPU/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPU).sql index bf8b6ca8ed73..68b8aaf755ea 100644 --- a/SQLite.Classic.MPU/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.MPU).sql @@ -14,21 +14,22 @@ BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - [t2].[ID] + ( + SELECT + [t1].[ID] + FROM + ( + SELECT NULL [ID] WHERE 1 = 0 + UNION ALL + VALUES + (1), (2), (3), (4) + ) [t1] + WHERE + [t1].[ID] = [x].[PersonID] + LIMIT 1 + ) FROM [Person] [x] - INNER JOIN ( - SELECT - [t1].[ID], - ROW_NUMBER() OVER (PARTITION BY [t1].[ID] ORDER BY [t1].[ID]) as [rn] - FROM - ( - SELECT NULL [ID] WHERE 1 = 0 - UNION ALL - VALUES - (1), (2), (3), (4) - ) [t1] - ) [t2] ON [t2].[ID] = [x].[PersonID] AND [t2].[rn] <= 1 BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite diff --git a/SQLite.Classic.MPU/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU,1).sql b/SQLite.Classic.MPU/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU,1).sql index a9f2234526c1..9e80bb1a982d 100644 --- a/SQLite.Classic.MPU/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU,1).sql +++ b/SQLite.Classic.MPU/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.Classic.MPU/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU,2).sql b/SQLite.Classic.MPU/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU,2).sql index a9f2234526c1..9e80bb1a982d 100644 --- a/SQLite.Classic.MPU/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU,2).sql +++ b/SQLite.Classic.MPU/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.MPU,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.Classic.MPU/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU).sql index 6004c4778b50..63f2c1b4d5d9 100644 --- a/SQLite.Classic.MPU/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU).sql @@ -2,22 +2,17 @@ -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - [t1].[Taxonomy] -FROM ( SELECT - [s].[PersonID] + [s_1].[Taxonomy] FROM - [Doctor] [s] - GROUP BY - [s].[PersonID] - ) [s_2] - INNER JOIN ( - SELECT - [s_1].[Taxonomy], - ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], - [s_1].[PersonID] - FROM - [Doctor] [s_1] - ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 + [Doctor] [s_1] + WHERE + [s].[PersonID] = [s_1].[PersonID] + LIMIT 1 + ) +FROM + [Doctor] [s] +GROUP BY + [s].[PersonID] diff --git a/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU).sql index e299042d29c0..0bf90ed46b48 100644 --- a/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU).sql @@ -2,16 +2,17 @@ -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU).sql index e299042d29c0..0bf90ed46b48 100644 --- a/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU).sql @@ -2,16 +2,17 @@ -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPU/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPU).sql index 64f1456241ae..5c6245bc6438 100644 --- a/SQLite.Classic.MPU/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.MPU).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) > ([y].[One], [y].[One], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) > ( + SELECT + [y].[One], + [y].[One], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) >= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) >= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) < ([y].[One], [y].[Three], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) < ( + SELECT + [y].[One], + [y].[Three], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.Classic.MPU/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPU).sql index 8d4eab7adeb7..35fac0e007ce 100644 --- a/SQLite.Classic.MPU/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.MPU).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([y].[One], [y].[One] + 1, 3) = ([x].[One], [x].[Two], [x].[Three]) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.Classic.MPU/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPU).sql index c5303dcb1b77..6fcb05b8d7e3 100644 --- a/SQLite.Classic.MPU/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.MPU).sql @@ -5,12 +5,18 @@ UPDATE [Ints] SET [One] = [Ints].[Two] * 5, - ([Two], [Three]) = ([Ints].[Two] * 10, [j].[Three] * 100), + ([Two], [Three]) = ( + SELECT + [Ints].[Two] * 10, + [j].[Three] * 100 + FROM + [Ints] [j] + WHERE + [j].[One] = 1 + ), ([Four], [Nil]) = ([Ints].[One] * [Ints].[Four], 600) -FROM - [Ints] [j] WHERE - [Ints].[One] = 10 AND [j].[One] = 1 + [Ints].[One] = 10 BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite diff --git a/SQLite.Classic.MPU/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.Classic.MPU).sql index 5cdc55389dcd..803f3d6c3d66 100644 --- a/SQLite.Classic.MPU/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.Classic.MPU).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = 'CC' AND diff --git a/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPU).sql index de98cbfc47e1..fb7f73921309 100644 --- a/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.MPU).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPU).sql index 20053690678b..4b0e70e7b696 100644 --- a/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.MPU).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPU).sql index 202c52576190..085311b8d82d 100644 --- a/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.MPU).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND + [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND + [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPU).sql index 0c76bf5b7a7f..9cb88cef80a7 100644 --- a/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.MPU).sql @@ -16,30 +16,32 @@ WHERE * FROM [Person] [p] - INNER JOIN ( - SELECT - [d].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d].[PersonID] ORDER BY [d].[PersonID]) as [rn] - FROM - [Person] [d] - ) [t1] ON [t1].[cond] = [patient_1].[PersonID] AND [t1].[rn] <= 1 WHERE - [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = ( + SELECT + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - INNER JOIN ( - SELECT - [d_1].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d_1].[PersonID] ORDER BY [d_1].[PersonID]) as [rn] - FROM - [Person] [d_1] - ) [t2] ON [t2].[cond] = [patient_1].[PersonID] AND [t2].[rn] <= 1 WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = ( + SELECT + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SQLite.Classic.MPU/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.Classic.MPU).sql index 2db1b4b78761..b0a0c2153064 100644 --- a/SQLite.Classic.MPU/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.Classic.MPU).sql @@ -2,9 +2,9 @@ -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -49,211 +49,139 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x].[ResourceID] ORDER BY [x].[ResourceID]) as [rn], - [x].[ResourceID] - FROM - [InventoryResourceDTO] [x] - WHERE - [x].[Status] < 0 - ) [t1] ON [t1].[ResourceID] = [b1].[ResourceID] AND [t1].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT - [x_1].[Id] + [x].[Id] FROM - [InventoryResourceDTO] [x_1] + [InventoryResourceDTO] [x] WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] + [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] LIMIT 1 ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_2].[ResourceID] ORDER BY [x_2].[ResourceID]) as [rn], - [x_2].[ResourceID] - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 - ) [t2] ON [t2].[ResourceID] = [b2].[ResourceID] AND [t2].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] LIMIT 1 ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_4].[ResourceID] ORDER BY [x_4].[ResourceID]) as [rn], - [x_4].[ResourceID] - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 - ) [t3] ON [t3].[ResourceID] = [b3].[ResourceID] AND [t3].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] LIMIT 1 ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_6].[ResourceID] ORDER BY [x_6].[ResourceID]) as [rn], - [x_6].[ResourceID] - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 - ) [t4] ON [t4].[ResourceID] = [b4].[ResourceID] AND [t4].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] LIMIT 1 ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_8].[ResourceID] ORDER BY [x_8].[ResourceID]) as [rn], - [x_8].[ResourceID] - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 - ) [t5] ON [t5].[ResourceID] = [b5].[ResourceID] AND [t5].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] LIMIT 1 ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_10].[ResourceID] ORDER BY [x_10].[ResourceID]) as [rn], - [x_10].[ResourceID] - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 - ) [t6] ON [t6].[ResourceID] = [b6].[ResourceID] AND [t6].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] LIMIT 1 ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_12].[ResourceID] ORDER BY [x_12].[ResourceID]) as [rn], - [x_12].[ResourceID] - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 - ) [t7] ON [t7].[ResourceID] = [b7].[ResourceID] AND [t7].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] LIMIT 1 ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_14].[ResourceID] ORDER BY [x_14].[ResourceID]) as [rn], - [x_14].[ResourceID] - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 - ) [t8] ON [t8].[ResourceID] = [b8].[ResourceID] AND [t8].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] LIMIT 1 ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -262,9 +190,9 @@ BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -309,32 +237,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), CASE @@ -367,32 +295,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), CASE @@ -425,32 +353,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), CASE @@ -483,32 +411,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), CASE @@ -541,32 +469,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), CASE @@ -599,32 +527,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), CASE @@ -657,32 +585,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), CASE @@ -715,211 +643,139 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x].[ResourceID] ORDER BY [x].[ResourceID]) as [rn], - [x].[ResourceID] - FROM - [InventoryResourceDTO] [x] - WHERE - [x].[Status] < 0 - ) [t1] ON [t1].[ResourceID] = [b1].[ResourceID] AND [t1].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT - [x_1].[Id] + [x].[Id] FROM - [InventoryResourceDTO] [x_1] + [InventoryResourceDTO] [x] WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] + [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] LIMIT 1 ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_2].[ResourceID] ORDER BY [x_2].[ResourceID]) as [rn], - [x_2].[ResourceID] - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 - ) [t2] ON [t2].[ResourceID] = [b2].[ResourceID] AND [t2].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] LIMIT 1 ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_4].[ResourceID] ORDER BY [x_4].[ResourceID]) as [rn], - [x_4].[ResourceID] - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 - ) [t3] ON [t3].[ResourceID] = [b3].[ResourceID] AND [t3].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] LIMIT 1 ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_6].[ResourceID] ORDER BY [x_6].[ResourceID]) as [rn], - [x_6].[ResourceID] - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 - ) [t4] ON [t4].[ResourceID] = [b4].[ResourceID] AND [t4].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] LIMIT 1 ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_8].[ResourceID] ORDER BY [x_8].[ResourceID]) as [rn], - [x_8].[ResourceID] - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 - ) [t5] ON [t5].[ResourceID] = [b5].[ResourceID] AND [t5].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] LIMIT 1 ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_10].[ResourceID] ORDER BY [x_10].[ResourceID]) as [rn], - [x_10].[ResourceID] - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 - ) [t6] ON [t6].[ResourceID] = [b6].[ResourceID] AND [t6].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] LIMIT 1 ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_12].[ResourceID] ORDER BY [x_12].[ResourceID]) as [rn], - [x_12].[ResourceID] - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 - ) [t7] ON [t7].[ResourceID] = [b7].[ResourceID] AND [t7].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] LIMIT 1 ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_14].[ResourceID] ORDER BY [x_14].[ResourceID]) as [rn], - [x_14].[ResourceID] - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 - ) [t8] ON [t8].[ResourceID] = [b8].[ResourceID] AND [t8].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] LIMIT 1 ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] From 57f0c252401fc9985761f409a8b8ce133451fa74 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 22 Feb 2025 17:33:05 +0000 Subject: [PATCH 02/40] [Windows / SQLite (both providers)] baselines --- ...ManyToMany(SQLite.Classic.LinqService).sql | 24 +- ...Projection(SQLite.Classic.LinqService).sql | 27 +- ...sonTest1(SQLite.Classic.LinqService,1).sql | 63 ++- ...sonTest1(SQLite.Classic.LinqService,2).sql | 63 ++- ...InnerQuery(SQLite.Classic.LinqService).sql | 25 +- ...roupJoin52(SQLite.Classic.LinqService).sql | 17 +- ...roupJoin53(SQLite.Classic.LinqService).sql | 17 +- ...reToSelect(SQLite.Classic.LinqService).sql | 60 ++- ...alToSelect(SQLite.Classic.LinqService).sql | 75 ++- ...eRowSelect(SQLite.Classic.LinqService).sql | 14 +- ...anSubquery(SQLite.Classic.LinqService).sql | 12 +- ...eryFilter1(SQLite.Classic.LinqService).sql | 22 +- ...eryFilter2(SQLite.Classic.LinqService).sql | 26 +- ...eryFilter3(SQLite.Classic.LinqService).sql | 34 +- ...lexQueryWithManyToMany(SQLite.Classic).sql | 24 +- ...nQuery.FieldProjection(SQLite.Classic).sql | 27 +- ...ests.ComparisonTest1(SQLite.Classic,1).sql | 63 ++- ...ests.ComparisonTest1(SQLite.Classic,2).sql | 63 ++- ...roupByTests.InnerQuery(SQLite.Classic).sql | 25 +- ....JoinTests.GroupJoin52(SQLite.Classic).sql | 17 +- ....JoinTests.GroupJoin53(SQLite.Classic).sql | 17 +- ...wTests.CompareToSelect(SQLite.Classic).sql | 60 ++- ...RowTests.EqualToSelect(SQLite.Classic).sql | 75 ++- ...wTests.UpdateRowSelect(SQLite.Classic).sql | 14 +- ...eryTests.Issue383Test2(SQLite.Classic).sql | 10 +- ...eTests.BooleanSubquery(SQLite.Classic).sql | 12 +- ....Issue_SubQueryFilter1(SQLite.Classic).sql | 22 +- ....Issue_SubQueryFilter2(SQLite.Classic).sql | 26 +- ....Issue_SubQueryFilter3(SQLite.Classic).sql | 34 +- ....QueryTakesForever4394(SQLite.Classic).sql | 440 ++++++------------ ...yWithManyToMany(SQLite.MS.LinqService).sql | 24 +- ...FieldProjection(SQLite.MS.LinqService).sql | 27 +- ...mparisonTest1(SQLite.MS.LinqService,1).sql | 63 ++- ...mparisonTest1(SQLite.MS.LinqService,2).sql | 63 ++- ...ests.InnerQuery(SQLite.MS.LinqService).sql | 25 +- ...sts.GroupJoin52(SQLite.MS.LinqService).sql | 17 +- ...sts.GroupJoin53(SQLite.MS.LinqService).sql | 17 +- ...CompareToSelect(SQLite.MS.LinqService).sql | 60 ++- ...s.EqualToSelect(SQLite.MS.LinqService).sql | 75 ++- ...UpdateRowSelect(SQLite.MS.LinqService).sql | 14 +- ...BooleanSubquery(SQLite.MS.LinqService).sql | 12 +- ...SubQueryFilter1(SQLite.MS.LinqService).sql | 22 +- ...SubQueryFilter2(SQLite.MS.LinqService).sql | 26 +- ...SubQueryFilter3(SQLite.MS.LinqService).sql | 34 +- ....ComplexQueryWithManyToMany(SQLite.MS).sql | 24 +- ...ableInQuery.FieldProjection(SQLite.MS).sql | 27 +- ...ionsTests.ComparisonTest1(SQLite.MS,1).sql | 63 ++- ...ionsTests.ComparisonTest1(SQLite.MS,2).sql | 63 ++- ...inq.GroupByTests.InnerQuery(SQLite.MS).sql | 25 +- ....Linq.JoinTests.GroupJoin52(SQLite.MS).sql | 17 +- ....Linq.JoinTests.GroupJoin53(SQLite.MS).sql | 17 +- ...SqlRowTests.CompareToSelect(SQLite.MS).sql | 60 ++- ...q.SqlRowTests.EqualToSelect(SQLite.MS).sql | 75 ++- ...SqlRowTests.UpdateRowSelect(SQLite.MS).sql | 14 +- ...SubQueryTests.Issue383Test2(SQLite.MS).sql | 10 +- ....WhereTests.BooleanSubquery(SQLite.MS).sql | 12 +- ...Tests.Issue_SubQueryFilter1(SQLite.MS).sql | 22 +- ...Tests.Issue_SubQueryFilter2(SQLite.MS).sql | 26 +- ...Tests.Issue_SubQueryFilter3(SQLite.MS).sql | 34 +- ...sue4337_TestComplexQueryWms(SQLite.MS).sql | 180 +++---- ...Tests.QueryTakesForever4394(SQLite.MS).sql | 440 ++++++------------ 61 files changed, 1486 insertions(+), 1510 deletions(-) diff --git a/SQLite.Classic.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.LinqService).sql index 6abbfb3e79ac..59cbf4da1d3f 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.LinqService).sql @@ -14,13 +14,25 @@ WHERE SELECT * FROM - [Parent] [li] - INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] - INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + ( + SELECT + ( + SELECT + [a_Parent].[ParentID] + FROM + [GrandChild] [a_Child] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + WHERE + [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + ) as [ParentID] + FROM + [Parent] [t2] + INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] + WHERE + [t2].[ParentID] = @id + ) [li] WHERE - [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND - [a_Parent].[ParentID] = @id1 + [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.Classic.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.LinqService).sql index 219968ea081b..9415cecf9ab2 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic.LinqService).sql @@ -14,21 +14,22 @@ BeforeExecute -- SQLite.Classic SQLite SELECT - [t2].[ID] + ( + SELECT + [t1].[ID] + FROM + ( + SELECT NULL [ID] WHERE 1 = 0 + UNION ALL + VALUES + (1), (2), (3), (4) + ) [t1] + WHERE + [t1].[ID] = [x].[PersonID] + LIMIT 1 + ) FROM [Person] [x] - INNER JOIN ( - SELECT - [t1].[ID], - ROW_NUMBER() OVER (PARTITION BY [t1].[ID] ORDER BY [t1].[ID]) as [rn] - FROM - ( - SELECT NULL [ID] WHERE 1 = 0 - UNION ALL - VALUES - (1), (2), (3), (4) - ) [t1] - ) [t2] ON [t2].[ID] = [x].[PersonID] AND [t2].[rn] <= 1 BeforeExecute -- SQLite.Classic SQLite diff --git a/SQLite.Classic.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.LinqService,1).sql b/SQLite.Classic.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.LinqService,1).sql index 676ab0a33ca7..359c9aa6b0d4 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.LinqService,1).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.Classic.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.LinqService,2).sql b/SQLite.Classic.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.LinqService,2).sql index 676ab0a33ca7..359c9aa6b0d4 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.LinqService,2).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.Classic.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.LinqService).sql index 6aa709c3601f..91c6661c972f 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.LinqService).sql @@ -2,22 +2,17 @@ -- SQLite.Classic SQLite SELECT - [t1].[Taxonomy] -FROM ( SELECT - [s].[PersonID] + [s_1].[Taxonomy] FROM - [Doctor] [s] - GROUP BY - [s].[PersonID] - ) [s_2] - INNER JOIN ( - SELECT - [s_1].[Taxonomy], - ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], - [s_1].[PersonID] - FROM - [Doctor] [s_1] - ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 + [Doctor] [s_1] + WHERE + [s].[PersonID] = [s_1].[PersonID] + LIMIT 1 + ) +FROM + [Doctor] [s] +GROUP BY + [s].[PersonID] diff --git a/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.LinqService).sql index 1e2c7d928542..ca101168e7c0 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.LinqService).sql @@ -2,16 +2,17 @@ -- SQLite.Classic SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.LinqService).sql index 1e2c7d928542..ca101168e7c0 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.LinqService).sql @@ -2,16 +2,17 @@ -- SQLite.Classic SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.LinqService).sql index 238ace4da81a..eb53bc3d6a4a 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) > ([y].[One], [y].[One], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) > ( + SELECT + [y].[One], + [y].[One], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) >= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) >= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) < ([y].[One], [y].[Three], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) < ( + SELECT + [y].[One], + [y].[Three], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.Classic.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.LinqService).sql index 515b62b13d6f..157ca5397097 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([y].[One], [y].[One] + 1, 3) = ([x].[One], [x].[Two], [x].[Three]) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.Classic.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.LinqService).sql index a06bb3b49600..893412811eb8 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic.LinqService).sql @@ -5,12 +5,18 @@ UPDATE [Ints] SET [One] = [Ints].[Two] * 5, - ([Two], [Three]) = ([Ints].[Two] * 10, [j].[Three] * 100), + ([Two], [Three]) = ( + SELECT + [Ints].[Two] * 10, + [j].[Three] * 100 + FROM + [Ints] [j] + WHERE + [j].[One] = 1 + ), ([Four], [Nil]) = ([Ints].[One] * [Ints].[Four], 600) -FROM - [Ints] [j] WHERE - [Ints].[One] = 10 AND [j].[One] = 1 + [Ints].[One] = 10 BeforeExecute -- SQLite.Classic SQLite diff --git a/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.LinqService).sql index bf455c46e534..9a94709c0781 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.LinqService).sql index 3a093f659c5d..bdc8bf915f20 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.LinqService).sql index 03a798c1135e..0a85d3f5b56b 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND + [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND + [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.LinqService).sql index 2ef5a663413a..53ca6d84634f 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic.LinqService).sql @@ -16,30 +16,32 @@ WHERE * FROM [Person] [p] - INNER JOIN ( - SELECT - [d].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d].[PersonID] ORDER BY [d].[PersonID]) as [rn] - FROM - [Person] [d] - ) [t1] ON [t1].[cond] = [patient_1].[PersonID] AND [t1].[rn] <= 1 WHERE - [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = ( + SELECT + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - INNER JOIN ( - SELECT - [d_1].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d_1].[PersonID] ORDER BY [d_1].[PersonID]) as [rn] - FROM - [Person] [d_1] - ) [t2] ON [t2].[cond] = [patient_1].[PersonID] AND [t2].[rn] <= 1 WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = ( + SELECT + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SQLite.Classic/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic).sql index 6abbfb3e79ac..59cbf4da1d3f 100644 --- a/SQLite.Classic/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic).sql @@ -14,13 +14,25 @@ WHERE SELECT * FROM - [Parent] [li] - INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] - INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + ( + SELECT + ( + SELECT + [a_Parent].[ParentID] + FROM + [GrandChild] [a_Child] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + WHERE + [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + ) as [ParentID] + FROM + [Parent] [t2] + INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] + WHERE + [t2].[ParentID] = @id + ) [li] WHERE - [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND - [a_Parent].[ParentID] = @id1 + [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.Classic/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic).sql index 219968ea081b..9415cecf9ab2 100644 --- a/SQLite.Classic/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.Classic).sql @@ -14,21 +14,22 @@ BeforeExecute -- SQLite.Classic SQLite SELECT - [t2].[ID] + ( + SELECT + [t1].[ID] + FROM + ( + SELECT NULL [ID] WHERE 1 = 0 + UNION ALL + VALUES + (1), (2), (3), (4) + ) [t1] + WHERE + [t1].[ID] = [x].[PersonID] + LIMIT 1 + ) FROM [Person] [x] - INNER JOIN ( - SELECT - [t1].[ID], - ROW_NUMBER() OVER (PARTITION BY [t1].[ID] ORDER BY [t1].[ID]) as [rn] - FROM - ( - SELECT NULL [ID] WHERE 1 = 0 - UNION ALL - VALUES - (1), (2), (3), (4) - ) [t1] - ) [t2] ON [t2].[ID] = [x].[PersonID] AND [t2].[rn] <= 1 BeforeExecute -- SQLite.Classic SQLite diff --git a/SQLite.Classic/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic,1).sql b/SQLite.Classic/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic,1).sql index 676ab0a33ca7..359c9aa6b0d4 100644 --- a/SQLite.Classic/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic,1).sql +++ b/SQLite.Classic/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.Classic/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic,2).sql b/SQLite.Classic/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic,2).sql index 676ab0a33ca7..359c9aa6b0d4 100644 --- a/SQLite.Classic/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic,2).sql +++ b/SQLite.Classic/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.Classic,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.Classic/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic).sql index 6aa709c3601f..91c6661c972f 100644 --- a/SQLite.Classic/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic).sql @@ -2,22 +2,17 @@ -- SQLite.Classic SQLite SELECT - [t1].[Taxonomy] -FROM ( SELECT - [s].[PersonID] + [s_1].[Taxonomy] FROM - [Doctor] [s] - GROUP BY - [s].[PersonID] - ) [s_2] - INNER JOIN ( - SELECT - [s_1].[Taxonomy], - ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], - [s_1].[PersonID] - FROM - [Doctor] [s_1] - ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 + [Doctor] [s_1] + WHERE + [s].[PersonID] = [s_1].[PersonID] + LIMIT 1 + ) +FROM + [Doctor] [s] +GROUP BY + [s].[PersonID] diff --git a/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic).sql index 1e2c7d928542..ca101168e7c0 100644 --- a/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic).sql @@ -2,16 +2,17 @@ -- SQLite.Classic SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic).sql index 1e2c7d928542..ca101168e7c0 100644 --- a/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic).sql @@ -2,16 +2,17 @@ -- SQLite.Classic SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic).sql index 238ace4da81a..eb53bc3d6a4a 100644 --- a/SQLite.Classic/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.Classic).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) > ([y].[One], [y].[One], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) > ( + SELECT + [y].[One], + [y].[One], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) >= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) >= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) < ([y].[One], [y].[Three], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) < ( + SELECT + [y].[One], + [y].[Three], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.Classic/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic).sql index 515b62b13d6f..157ca5397097 100644 --- a/SQLite.Classic/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.Classic).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([y].[One], [y].[One] + 1, 3) = ([x].[One], [x].[Two], [x].[Three]) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.Classic SQLite @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.Classic/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic).sql index a06bb3b49600..893412811eb8 100644 --- a/SQLite.Classic/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.Classic).sql @@ -5,12 +5,18 @@ UPDATE [Ints] SET [One] = [Ints].[Two] * 5, - ([Two], [Three]) = ([Ints].[Two] * 10, [j].[Three] * 100), + ([Two], [Three]) = ( + SELECT + [Ints].[Two] * 10, + [j].[Three] * 100 + FROM + [Ints] [j] + WHERE + [j].[One] = 1 + ), ([Four], [Nil]) = ([Ints].[One] * [Ints].[Four], 600) -FROM - [Ints] [j] WHERE - [Ints].[One] = 10 AND [j].[One] = 1 + [Ints].[One] = 10 BeforeExecute -- SQLite.Classic SQLite diff --git a/SQLite.Classic/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.Classic).sql index 28b9db97f1d0..a5da94e9a070 100644 --- a/SQLite.Classic/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.Classic).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = 'CC' AND diff --git a/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic).sql index bf455c46e534..9a94709c0781 100644 --- a/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.Classic).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic).sql index 3a093f659c5d..bdc8bf915f20 100644 --- a/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.Classic).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic).sql index 03a798c1135e..0a85d3f5b56b 100644 --- a/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.Classic).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND + [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND + [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic).sql index 2ef5a663413a..53ca6d84634f 100644 --- a/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.Classic).sql @@ -16,30 +16,32 @@ WHERE * FROM [Person] [p] - INNER JOIN ( - SELECT - [d].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d].[PersonID] ORDER BY [d].[PersonID]) as [rn] - FROM - [Person] [d] - ) [t1] ON [t1].[cond] = [patient_1].[PersonID] AND [t1].[rn] <= 1 WHERE - [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = ( + SELECT + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - INNER JOIN ( - SELECT - [d_1].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d_1].[PersonID] ORDER BY [d_1].[PersonID]) as [rn] - FROM - [Person] [d_1] - ) [t2] ON [t2].[cond] = [patient_1].[PersonID] AND [t2].[rn] <= 1 WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = ( + SELECT + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SQLite.Classic/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.Classic).sql b/SQLite.Classic/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.Classic).sql index 9b5d2f0b04e6..0e138aef97af 100644 --- a/SQLite.Classic/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.Classic).sql @@ -2,9 +2,9 @@ -- SQLite.Classic SQLite SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -49,211 +49,139 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x].[ResourceID] ORDER BY [x].[ResourceID]) as [rn], - [x].[ResourceID] - FROM - [InventoryResourceDTO] [x] - WHERE - [x].[Status] < 0 - ) [t1] ON [t1].[ResourceID] = [b1].[ResourceID] AND [t1].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT - [x_1].[Id] + [x].[Id] FROM - [InventoryResourceDTO] [x_1] + [InventoryResourceDTO] [x] WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] + [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] LIMIT 1 ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_2].[ResourceID] ORDER BY [x_2].[ResourceID]) as [rn], - [x_2].[ResourceID] - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 - ) [t2] ON [t2].[ResourceID] = [b2].[ResourceID] AND [t2].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] LIMIT 1 ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_4].[ResourceID] ORDER BY [x_4].[ResourceID]) as [rn], - [x_4].[ResourceID] - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 - ) [t3] ON [t3].[ResourceID] = [b3].[ResourceID] AND [t3].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] LIMIT 1 ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_6].[ResourceID] ORDER BY [x_6].[ResourceID]) as [rn], - [x_6].[ResourceID] - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 - ) [t4] ON [t4].[ResourceID] = [b4].[ResourceID] AND [t4].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] LIMIT 1 ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_8].[ResourceID] ORDER BY [x_8].[ResourceID]) as [rn], - [x_8].[ResourceID] - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 - ) [t5] ON [t5].[ResourceID] = [b5].[ResourceID] AND [t5].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] LIMIT 1 ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_10].[ResourceID] ORDER BY [x_10].[ResourceID]) as [rn], - [x_10].[ResourceID] - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 - ) [t6] ON [t6].[ResourceID] = [b6].[ResourceID] AND [t6].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] LIMIT 1 ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_12].[ResourceID] ORDER BY [x_12].[ResourceID]) as [rn], - [x_12].[ResourceID] - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 - ) [t7] ON [t7].[ResourceID] = [b7].[ResourceID] AND [t7].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] LIMIT 1 ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_14].[ResourceID] ORDER BY [x_14].[ResourceID]) as [rn], - [x_14].[ResourceID] - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 - ) [t8] ON [t8].[ResourceID] = [b8].[ResourceID] AND [t8].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] LIMIT 1 ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -262,9 +190,9 @@ BeforeExecute -- SQLite.Classic SQLite SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -309,32 +237,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), CASE @@ -367,32 +295,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), CASE @@ -425,32 +353,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), CASE @@ -483,32 +411,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), CASE @@ -541,32 +469,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), CASE @@ -599,32 +527,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), CASE @@ -657,32 +585,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), CASE @@ -715,211 +643,139 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x].[ResourceID] ORDER BY [x].[ResourceID]) as [rn], - [x].[ResourceID] - FROM - [InventoryResourceDTO] [x] - WHERE - [x].[Status] < 0 - ) [t1] ON [t1].[ResourceID] = [b1].[ResourceID] AND [t1].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT - [x_1].[Id] + [x].[Id] FROM - [InventoryResourceDTO] [x_1] + [InventoryResourceDTO] [x] WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] + [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] LIMIT 1 ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_2].[ResourceID] ORDER BY [x_2].[ResourceID]) as [rn], - [x_2].[ResourceID] - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 - ) [t2] ON [t2].[ResourceID] = [b2].[ResourceID] AND [t2].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] LIMIT 1 ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_4].[ResourceID] ORDER BY [x_4].[ResourceID]) as [rn], - [x_4].[ResourceID] - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 - ) [t3] ON [t3].[ResourceID] = [b3].[ResourceID] AND [t3].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] LIMIT 1 ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_6].[ResourceID] ORDER BY [x_6].[ResourceID]) as [rn], - [x_6].[ResourceID] - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 - ) [t4] ON [t4].[ResourceID] = [b4].[ResourceID] AND [t4].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] LIMIT 1 ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_8].[ResourceID] ORDER BY [x_8].[ResourceID]) as [rn], - [x_8].[ResourceID] - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 - ) [t5] ON [t5].[ResourceID] = [b5].[ResourceID] AND [t5].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] LIMIT 1 ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_10].[ResourceID] ORDER BY [x_10].[ResourceID]) as [rn], - [x_10].[ResourceID] - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 - ) [t6] ON [t6].[ResourceID] = [b6].[ResourceID] AND [t6].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] LIMIT 1 ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_12].[ResourceID] ORDER BY [x_12].[ResourceID]) as [rn], - [x_12].[ResourceID] - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 - ) [t7] ON [t7].[ResourceID] = [b7].[ResourceID] AND [t7].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] LIMIT 1 ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_14].[ResourceID] ORDER BY [x_14].[ResourceID]) as [rn], - [x_14].[ResourceID] - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 - ) [t8] ON [t8].[ResourceID] = [b8].[ResourceID] AND [t8].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] LIMIT 1 ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SQLite.MS.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS.LinqService).sql index bd1cef442741..aa0208ac8b65 100644 --- a/SQLite.MS.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS.LinqService).sql @@ -14,13 +14,25 @@ WHERE SELECT * FROM - [Parent] [li] - INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] - INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + ( + SELECT + ( + SELECT + [a_Parent].[ParentID] + FROM + [GrandChild] [a_Child] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + WHERE + [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + ) as [ParentID] + FROM + [Parent] [t2] + INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] + WHERE + [t2].[ParentID] = @id + ) [li] WHERE - [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND - [a_Parent].[ParentID] = @id1 + [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.MS.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.MS.LinqService).sql index cf077ae1f8b5..a8b16995448c 100644 --- a/SQLite.MS.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.MS.LinqService).sql @@ -14,21 +14,22 @@ BeforeExecute -- SQLite.MS SQLite SELECT - [t2].[ID] + ( + SELECT + [t1].[ID] + FROM + ( + SELECT NULL [ID] WHERE 1 = 0 + UNION ALL + VALUES + (1), (2), (3), (4) + ) [t1] + WHERE + [t1].[ID] = [x].[PersonID] + LIMIT 1 + ) FROM [Person] [x] - INNER JOIN ( - SELECT - [t1].[ID], - ROW_NUMBER() OVER (PARTITION BY [t1].[ID] ORDER BY [t1].[ID]) as [rn] - FROM - ( - SELECT NULL [ID] WHERE 1 = 0 - UNION ALL - VALUES - (1), (2), (3), (4) - ) [t1] - ) [t2] ON [t2].[ID] = [x].[PersonID] AND [t2].[rn] <= 1 BeforeExecute -- SQLite.MS SQLite diff --git a/SQLite.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS.LinqService,1).sql b/SQLite.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS.LinqService,1).sql index c52effc54296..b0fd47b0e04f 100644 --- a/SQLite.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS.LinqService,1).sql +++ b/SQLite.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS.LinqService,2).sql b/SQLite.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS.LinqService,2).sql index c52effc54296..b0fd47b0e04f 100644 --- a/SQLite.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS.LinqService,2).sql +++ b/SQLite.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.MS.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS.LinqService).sql index bf0b627ea44e..8263e08f3484 100644 --- a/SQLite.MS.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS.LinqService).sql @@ -2,22 +2,17 @@ -- SQLite.MS SQLite SELECT - [t1].[Taxonomy] -FROM ( SELECT - [s].[PersonID] + [s_1].[Taxonomy] FROM - [Doctor] [s] - GROUP BY - [s].[PersonID] - ) [s_2] - INNER JOIN ( - SELECT - [s_1].[Taxonomy], - ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], - [s_1].[PersonID] - FROM - [Doctor] [s_1] - ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 + [Doctor] [s_1] + WHERE + [s].[PersonID] = [s_1].[PersonID] + LIMIT 1 + ) +FROM + [Doctor] [s] +GROUP BY + [s].[PersonID] diff --git a/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS.LinqService).sql index 3f1d8d3e9a52..1935e03099eb 100644 --- a/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS.LinqService).sql @@ -2,16 +2,17 @@ -- SQLite.MS SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS.LinqService).sql index 3f1d8d3e9a52..1935e03099eb 100644 --- a/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS.LinqService).sql @@ -2,16 +2,17 @@ -- SQLite.MS SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.MS.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.MS.LinqService).sql index 4c74513daa62..092424c488ab 100644 --- a/SQLite.MS.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.MS.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) > ([y].[One], [y].[One], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) > ( + SELECT + [y].[One], + [y].[One], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) >= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) >= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) < ([y].[One], [y].[Three], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) < ( + SELECT + [y].[One], + [y].[Three], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.MS.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.MS.LinqService).sql index f05e64c2c377..c0f0682c4c49 100644 --- a/SQLite.MS.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.MS.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([y].[One], [y].[One] + 1, 3) = ([x].[One], [x].[Two], [x].[Three]) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.MS.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.MS.LinqService).sql index 17b0d73e3f28..f456c014860d 100644 --- a/SQLite.MS.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.MS.LinqService).sql @@ -5,12 +5,18 @@ UPDATE [Ints] SET [One] = [Ints].[Two] * 5, - ([Two], [Three]) = ([Ints].[Two] * 10, [j].[Three] * 100), + ([Two], [Three]) = ( + SELECT + [Ints].[Two] * 10, + [j].[Three] * 100 + FROM + [Ints] [j] + WHERE + [j].[One] = 1 + ), ([Four], [Nil]) = ([Ints].[One] * [Ints].[Four], 600) -FROM - [Ints] [j] WHERE - [Ints].[One] = 10 AND [j].[One] = 1 + [Ints].[One] = 10 BeforeExecute -- SQLite.MS SQLite diff --git a/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.MS.LinqService).sql index 007743fe6ad7..515f4061bde2 100644 --- a/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.MS.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.MS.LinqService).sql index f07db42d4070..36891bd34bc0 100644 --- a/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.MS.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.MS.LinqService).sql index 34eb25a90187..7ae6b80bcb86 100644 --- a/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.MS.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND + [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND + [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.MS.LinqService).sql index 3e9ec5cd871e..db83da08ad15 100644 --- a/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.MS.LinqService).sql @@ -16,30 +16,32 @@ WHERE * FROM [Person] [p] - INNER JOIN ( - SELECT - [d].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d].[PersonID] ORDER BY [d].[PersonID]) as [rn] - FROM - [Person] [d] - ) [t1] ON [t1].[cond] = [patient_1].[PersonID] AND [t1].[rn] <= 1 WHERE - [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = ( + SELECT + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - INNER JOIN ( - SELECT - [d_1].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d_1].[PersonID] ORDER BY [d_1].[PersonID]) as [rn] - FROM - [Person] [d_1] - ) [t2] ON [t2].[cond] = [patient_1].[PersonID] AND [t2].[rn] <= 1 WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = ( + SELECT + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SQLite.MS/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS).sql b/SQLite.MS/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS).sql index bd1cef442741..aa0208ac8b65 100644 --- a/SQLite.MS/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS).sql @@ -14,13 +14,25 @@ WHERE SELECT * FROM - [Parent] [li] - INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] - INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + ( + SELECT + ( + SELECT + [a_Parent].[ParentID] + FROM + [GrandChild] [a_Child] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] + WHERE + [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + ) as [ParentID] + FROM + [Parent] [t2] + INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] + WHERE + [t2].[ParentID] = @id + ) [li] WHERE - [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND - [a_Parent].[ParentID] = @id1 + [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.MS/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.MS).sql b/SQLite.MS/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.MS).sql index cf077ae1f8b5..a8b16995448c 100644 --- a/SQLite.MS/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/EnumerableInQuery/Tests.Linq.EnumerableInQuery.FieldProjection(SQLite.MS).sql @@ -14,21 +14,22 @@ BeforeExecute -- SQLite.MS SQLite SELECT - [t2].[ID] + ( + SELECT + [t1].[ID] + FROM + ( + SELECT NULL [ID] WHERE 1 = 0 + UNION ALL + VALUES + (1), (2), (3), (4) + ) [t1] + WHERE + [t1].[ID] = [x].[PersonID] + LIMIT 1 + ) FROM [Person] [x] - INNER JOIN ( - SELECT - [t1].[ID], - ROW_NUMBER() OVER (PARTITION BY [t1].[ID] ORDER BY [t1].[ID]) as [rn] - FROM - ( - SELECT NULL [ID] WHERE 1 = 0 - UNION ALL - VALUES - (1), (2), (3), (4) - ) [t1] - ) [t2] ON [t2].[ID] = [x].[PersonID] AND [t2].[rn] <= 1 BeforeExecute -- SQLite.MS SQLite diff --git a/SQLite.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS,1).sql b/SQLite.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS,1).sql index c52effc54296..b0fd47b0e04f 100644 --- a/SQLite.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS,1).sql +++ b/SQLite.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS,2).sql b/SQLite.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS,2).sql index c52effc54296..b0fd47b0e04f 100644 --- a/SQLite.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS,2).sql +++ b/SQLite.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SQLite.MS,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) diff --git a/SQLite.MS/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS).sql b/SQLite.MS/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS).sql index bf0b627ea44e..8263e08f3484 100644 --- a/SQLite.MS/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS).sql @@ -2,22 +2,17 @@ -- SQLite.MS SQLite SELECT - [t1].[Taxonomy] -FROM ( SELECT - [s].[PersonID] + [s_1].[Taxonomy] FROM - [Doctor] [s] - GROUP BY - [s].[PersonID] - ) [s_2] - INNER JOIN ( - SELECT - [s_1].[Taxonomy], - ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], - [s_1].[PersonID] - FROM - [Doctor] [s_1] - ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 + [Doctor] [s_1] + WHERE + [s].[PersonID] = [s_1].[PersonID] + LIMIT 1 + ) +FROM + [Doctor] [s] +GROUP BY + [s].[PersonID] diff --git a/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS).sql b/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS).sql index 3f1d8d3e9a52..1935e03099eb 100644 --- a/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS).sql @@ -2,16 +2,17 @@ -- SQLite.MS SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS).sql b/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS).sql index 3f1d8d3e9a52..1935e03099eb 100644 --- a/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS).sql @@ -2,16 +2,17 @@ -- SQLite.MS SQLite SELECT - [t1].[ParentID] + ( + SELECT + [ch].[ParentID] + FROM + [Child] [ch] + WHERE + [p].[ParentID] = [ch].[ParentID] + LIMIT 1 + ) FROM [Parent] [p] - INNER JOIN ( - SELECT - [ch].[ParentID], - ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] - FROM - [Child] [ch] - ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.MS/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.MS).sql b/SQLite.MS/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.MS).sql index 4c74513daa62..092424c488ab 100644 --- a/SQLite.MS/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(SQLite.MS).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) > ([y].[One], [y].[One], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) > ( + SELECT + [y].[One], + [y].[One], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) >= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) >= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Nil]) < ([y].[One], [y].[Three], 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Nil]) < ( + SELECT + [y].[One], + [y].[Three], + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <= ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <= ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.MS/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.MS).sql b/SQLite.MS/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.MS).sql index f05e64c2c377..c0f0682c4c49 100644 --- a/SQLite.MS/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(SQLite.MS).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) = ([y].[One], [y].[One] + 1, 3) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([y].[One], [y].[One] + 1, 3) = ([x].[One], [x].[Two], [x].[Three]) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) = ( + SELECT + [y].[One], + [y].[One] + 1, + 3 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) BeforeExecute -- SQLite.MS SQLite @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - [Ints] [x], - [Ints2] [y] + [Ints] [x] WHERE - ([x].[One], [x].[Two], [x].[Three]) <> ([y].[One], [y].[One] + 1, 4) AND - [y].[Nil] IS NULL + ([x].[One], [x].[Two], [x].[Three]) <> ( + SELECT + [y].[One], + [y].[One] + 1, + 4 + FROM + [Ints2] [y] + WHERE + [y].[Nil] IS NULL + ) diff --git a/SQLite.MS/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.MS).sql b/SQLite.MS/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.MS).sql index 17b0d73e3f28..f456c014860d 100644 --- a/SQLite.MS/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(SQLite.MS).sql @@ -5,12 +5,18 @@ UPDATE [Ints] SET [One] = [Ints].[Two] * 5, - ([Two], [Three]) = ([Ints].[Two] * 10, [j].[Three] * 100), + ([Two], [Three]) = ( + SELECT + [Ints].[Two] * 10, + [j].[Three] * 100 + FROM + [Ints] [j] + WHERE + [j].[One] = 1 + ), ([Four], [Nil]) = ([Ints].[One] * [Ints].[Four], 600) -FROM - [Ints] [j] WHERE - [Ints].[One] = 10 AND [j].[One] = 1 + [Ints].[One] = 10 BeforeExecute -- SQLite.MS SQLite diff --git a/SQLite.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.MS).sql b/SQLite.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.MS).sql index 2d3215bfecc9..5f33b5ddd688 100644 --- a/SQLite.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SQLite.MS).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = 'CC' AND diff --git a/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.MS).sql b/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.MS).sql index 007743fe6ad7..515f4061bde2 100644 --- a/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SQLite.MS).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.MS).sql b/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.MS).sql index f07db42d4070..36891bd34bc0 100644 --- a/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SQLite.MS).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE '~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.MS).sql b/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.MS).sql index 34eb25a90187..7ae6b80bcb86 100644 --- a/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SQLite.MS).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND + [e].[PersonID] = ( SELECT - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] LIMIT 1 - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE '~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND + [e_1].[PersonID] = ( SELECT - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] LIMIT 1 - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE '~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.MS).sql b/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.MS).sql index 3e9ec5cd871e..db83da08ad15 100644 --- a/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SQLite.MS).sql @@ -16,30 +16,32 @@ WHERE * FROM [Person] [p] - INNER JOIN ( - SELECT - [d].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d].[PersonID] ORDER BY [d].[PersonID]) as [rn] - FROM - [Person] [d] - ) [t1] ON [t1].[cond] = [patient_1].[PersonID] AND [t1].[rn] <= 1 WHERE - [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE '~' AND [p].[PersonID] = ( + SELECT + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - INNER JOIN ( - SELECT - [d_1].[PersonID] as [cond], - ROW_NUMBER() OVER (PARTITION BY [d_1].[PersonID] ORDER BY [d_1].[PersonID]) as [rn] - FROM - [Person] [d_1] - ) [t2] ON [t2].[cond] = [patient_1].[PersonID] AND [t2].[rn] <= 1 WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE '~' AND [p_1].[PersonID] = ( + SELECT + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + LIMIT 1 + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SQLite.MS/Tests/UserTests/Issue4337Tests/Tests.UserTests.Issue4337Tests.Issue4337_TestComplexQueryWms(SQLite.MS).sql b/SQLite.MS/Tests/UserTests/Issue4337Tests/Tests.UserTests.Issue4337Tests.Issue4337_TestComplexQueryWms(SQLite.MS).sql index 397a1af3fa60..9e3d81bda324 100644 --- a/SQLite.MS/Tests/UserTests/Issue4337Tests/Tests.UserTests.Issue4337Tests.Issue4337_TestComplexQueryWms(SQLite.MS).sql +++ b/SQLite.MS/Tests/UserTests/Issue4337Tests/Tests.UserTests.Issue4337Tests.Issue4337_TestComplexQueryWms(SQLite.MS).sql @@ -2,9 +2,9 @@ -- SQLite.MS SQLite SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -49,32 +49,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 99 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 99 AND [x_9].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 99 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 99 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 10 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 10 )) ), CASE @@ -107,211 +107,139 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 99 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 99 AND [x_12].[ResourceID] = [c2].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 99 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 99 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 10 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 10 )) ) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x].[ResourceID] ORDER BY [x].[ResourceID]) as [rn], - [x].[ResourceID] - FROM - [InventoryResourceDTO] [x] - WHERE - [x].[Status] < 99 - ) [t1] ON [t1].[ResourceID] = [b1].[ResourceID] AND [t1].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT - [x_1].[Id] + [x].[Id] FROM - [InventoryResourceDTO] [x_1] + [InventoryResourceDTO] [x] WHERE - [x_1].[Status] < 99 AND [x_1].[ResourceID] = [b1].[ResourceID] + [x].[Status] < 99 AND [x].[ResourceID] = [b1].[ResourceID] LIMIT 1 ) = [i1].[Id] AND [i1].[Status] < 99 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_2].[ResourceID] ORDER BY [x_2].[ResourceID]) as [rn], - [x_2].[ResourceID] - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 99 - ) [t2] ON [t2].[ResourceID] = [b2].[ResourceID] AND [t2].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 99 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 99 AND [x_1].[ResourceID] = [b2].[ResourceID] LIMIT 1 ) = [i2].[Id] AND [i2].[Status] < 99 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_4].[ResourceID] ORDER BY [x_4].[ResourceID]) as [rn], - [x_4].[ResourceID] - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 99 - ) [t3] ON [t3].[ResourceID] = [b3].[ResourceID] AND [t3].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 99 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 99 AND [x_2].[ResourceID] = [b3].[ResourceID] LIMIT 1 ) = [i3].[Id] AND [i3].[Status] < 99 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_6].[ResourceID] ORDER BY [x_6].[ResourceID]) as [rn], - [x_6].[ResourceID] - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 99 - ) [t4] ON [t4].[ResourceID] = [b4].[ResourceID] AND [t4].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 99 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 99 AND [x_3].[ResourceID] = [b4].[ResourceID] LIMIT 1 ) = [i4].[Id] AND [i4].[Status] < 99 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_8].[ResourceID] ORDER BY [x_8].[ResourceID]) as [rn], - [x_8].[ResourceID] - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 99 - ) [t5] ON [t5].[ResourceID] = [b5].[ResourceID] AND [t5].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 99 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 99 AND [x_4].[ResourceID] = [b5].[ResourceID] LIMIT 1 ) = [i5].[Id] AND [i5].[Status] < 99 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_10].[ResourceID] ORDER BY [x_10].[ResourceID]) as [rn], - [x_10].[ResourceID] - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 99 - ) [t6] ON [t6].[ResourceID] = [b6].[ResourceID] AND [t6].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 99 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 99 AND [x_5].[ResourceID] = [b6].[ResourceID] LIMIT 1 ) = [i6].[Id] AND [i6].[Status] < 99 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_12].[ResourceID] ORDER BY [x_12].[ResourceID]) as [rn], - [x_12].[ResourceID] - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 99 - ) [t7] ON [t7].[ResourceID] = [b7].[ResourceID] AND [t7].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 99 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 99 AND [x_6].[ResourceID] = [b7].[ResourceID] LIMIT 1 ) = [i7].[Id] AND [i7].[Status] < 99 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_14].[ResourceID] ORDER BY [x_14].[ResourceID]) as [rn], - [x_14].[ResourceID] - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 99 - ) [t8] ON [t8].[ResourceID] = [b8].[ResourceID] AND [t8].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 99 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 99 AND [x_7].[ResourceID] = [b8].[ResourceID] LIMIT 1 ) = [i8].[Id] AND [i8].[Status] < 99 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SQLite.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.MS).sql b/SQLite.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.MS).sql index ab68ad49ea71..aabf805c9ee0 100644 --- a/SQLite.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.MS).sql +++ b/SQLite.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SQLite.MS).sql @@ -2,9 +2,9 @@ -- SQLite.MS SQLite SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -49,211 +49,139 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x].[ResourceID] ORDER BY [x].[ResourceID]) as [rn], - [x].[ResourceID] - FROM - [InventoryResourceDTO] [x] - WHERE - [x].[Status] < 0 - ) [t1] ON [t1].[ResourceID] = [b1].[ResourceID] AND [t1].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT - [x_1].[Id] + [x].[Id] FROM - [InventoryResourceDTO] [x_1] + [InventoryResourceDTO] [x] WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] + [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] LIMIT 1 ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_2].[ResourceID] ORDER BY [x_2].[ResourceID]) as [rn], - [x_2].[ResourceID] - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 - ) [t2] ON [t2].[ResourceID] = [b2].[ResourceID] AND [t2].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] LIMIT 1 ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_4].[ResourceID] ORDER BY [x_4].[ResourceID]) as [rn], - [x_4].[ResourceID] - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 - ) [t3] ON [t3].[ResourceID] = [b3].[ResourceID] AND [t3].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] LIMIT 1 ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_6].[ResourceID] ORDER BY [x_6].[ResourceID]) as [rn], - [x_6].[ResourceID] - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 - ) [t4] ON [t4].[ResourceID] = [b4].[ResourceID] AND [t4].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] LIMIT 1 ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_8].[ResourceID] ORDER BY [x_8].[ResourceID]) as [rn], - [x_8].[ResourceID] - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 - ) [t5] ON [t5].[ResourceID] = [b5].[ResourceID] AND [t5].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] LIMIT 1 ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_10].[ResourceID] ORDER BY [x_10].[ResourceID]) as [rn], - [x_10].[ResourceID] - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 - ) [t6] ON [t6].[ResourceID] = [b6].[ResourceID] AND [t6].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] LIMIT 1 ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_12].[ResourceID] ORDER BY [x_12].[ResourceID]) as [rn], - [x_12].[ResourceID] - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 - ) [t7] ON [t7].[ResourceID] = [b7].[ResourceID] AND [t7].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] LIMIT 1 ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_14].[ResourceID] ORDER BY [x_14].[ResourceID]) as [rn], - [x_14].[ResourceID] - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 - ) [t8] ON [t8].[ResourceID] = [b8].[ResourceID] AND [t8].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] LIMIT 1 ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -262,9 +190,9 @@ BeforeExecute -- SQLite.MS SQLite SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -309,32 +237,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), CASE @@ -367,32 +295,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), CASE @@ -425,32 +353,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), CASE @@ -483,32 +411,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), CASE @@ -541,32 +469,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), CASE @@ -599,32 +527,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), CASE @@ -657,32 +585,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), CASE @@ -715,211 +643,139 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x].[ResourceID] ORDER BY [x].[ResourceID]) as [rn], - [x].[ResourceID] - FROM - [InventoryResourceDTO] [x] - WHERE - [x].[Status] < 0 - ) [t1] ON [t1].[ResourceID] = [b1].[ResourceID] AND [t1].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT - [x_1].[Id] + [x].[Id] FROM - [InventoryResourceDTO] [x_1] + [InventoryResourceDTO] [x] WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] + [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] LIMIT 1 ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_2].[ResourceID] ORDER BY [x_2].[ResourceID]) as [rn], - [x_2].[ResourceID] - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 - ) [t2] ON [t2].[ResourceID] = [b2].[ResourceID] AND [t2].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] LIMIT 1 ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_4].[ResourceID] ORDER BY [x_4].[ResourceID]) as [rn], - [x_4].[ResourceID] - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 - ) [t3] ON [t3].[ResourceID] = [b3].[ResourceID] AND [t3].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] LIMIT 1 ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_6].[ResourceID] ORDER BY [x_6].[ResourceID]) as [rn], - [x_6].[ResourceID] - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 - ) [t4] ON [t4].[ResourceID] = [b4].[ResourceID] AND [t4].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] LIMIT 1 ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_8].[ResourceID] ORDER BY [x_8].[ResourceID]) as [rn], - [x_8].[ResourceID] - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 - ) [t5] ON [t5].[ResourceID] = [b5].[ResourceID] AND [t5].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] LIMIT 1 ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_10].[ResourceID] ORDER BY [x_10].[ResourceID]) as [rn], - [x_10].[ResourceID] - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 - ) [t6] ON [t6].[ResourceID] = [b6].[ResourceID] AND [t6].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] LIMIT 1 ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_12].[ResourceID] ORDER BY [x_12].[ResourceID]) as [rn], - [x_12].[ResourceID] - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 - ) [t7] ON [t7].[ResourceID] = [b7].[ResourceID] AND [t7].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] LIMIT 1 ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - INNER JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY [x_14].[ResourceID] ORDER BY [x_14].[ResourceID]) as [rn], - [x_14].[ResourceID] - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 - ) [t8] ON [t8].[ResourceID] = [b8].[ResourceID] AND [t8].[rn] <= 1 LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] LIMIT 1 ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] From 091ff44fc9f7798845ec9836713afb9b29be4242 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 22 Feb 2025 17:53:01 +0000 Subject: [PATCH 03/40] [Linux / ClickHouse MySql] baselines --- ...Subquery(ClickHouse.MySql.LinqService).sql | 12 +++++++--- ...yFilter1(ClickHouse.MySql.LinqService).sql | 22 +++++++++---------- ...ests.BooleanSubquery(ClickHouse.MySql).sql | 12 +++++++--- ...ssue_SubQueryFilter1(ClickHouse.MySql).sql | 22 +++++++++---------- 4 files changed, 38 insertions(+), 30 deletions(-) diff --git a/ClickHouse.MySql.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.MySql.LinqService).sql b/ClickHouse.MySql.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.MySql.LinqService).sql index 3978feaa9c21..573cc3993bb2 100644 --- a/ClickHouse.MySql.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.MySql.LinqService).sql +++ b/ClickHouse.MySql.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.MySql.LinqService).sql @@ -5,8 +5,14 @@ SELECT t.Id, t.BoolValue FROM - WhereWithBool t, - WhereWithBool x + WhereWithBool t WHERE - x.BoolValue AND x.Id = 1 + ( + SELECT + x.BoolValue + FROM + WhereWithBool x + WHERE + x.Id = 1 + ) diff --git a/ClickHouse.MySql.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.MySql.LinqService).sql b/ClickHouse.MySql.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.MySql.LinqService).sql index a0f6a5ceea9b..53597bf59bf3 100644 --- a/ClickHouse.MySql.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.MySql.LinqService).sql +++ b/ClickHouse.MySql.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.MySql.LinqService).sql @@ -11,31 +11,29 @@ WHERE SELECT * FROM - Person e, - ( + Person e + WHERE + position(e.FirstName, 'John') > 0 AND e.PersonID = ( SELECT - d.PersonID as cond + d.PersonID FROM Patient d LIMIT 1 - ) t2 - WHERE - position(e.FirstName, 'John') > 0 AND e.PersonID = t2.cond + ) ) OR EXISTS( SELECT * FROM - Person e_1, - ( + Person e_1 + WHERE + position(e_1.FirstName, 'Tester') > 0 AND e_1.PersonID = ( SELECT - d_1.PersonID as cond + d_1.PersonID FROM Patient d_1 LIMIT 1 - ) t3 - WHERE - position(e_1.FirstName, 'Tester') > 0 AND e_1.PersonID = t3.cond + ) ) ORDER BY t1.PersonID diff --git a/ClickHouse.MySql/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.MySql).sql b/ClickHouse.MySql/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.MySql).sql index 3978feaa9c21..573cc3993bb2 100644 --- a/ClickHouse.MySql/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.MySql).sql +++ b/ClickHouse.MySql/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.MySql).sql @@ -5,8 +5,14 @@ SELECT t.Id, t.BoolValue FROM - WhereWithBool t, - WhereWithBool x + WhereWithBool t WHERE - x.BoolValue AND x.Id = 1 + ( + SELECT + x.BoolValue + FROM + WhereWithBool x + WHERE + x.Id = 1 + ) diff --git a/ClickHouse.MySql/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.MySql).sql b/ClickHouse.MySql/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.MySql).sql index a0f6a5ceea9b..53597bf59bf3 100644 --- a/ClickHouse.MySql/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.MySql).sql +++ b/ClickHouse.MySql/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.MySql).sql @@ -11,31 +11,29 @@ WHERE SELECT * FROM - Person e, - ( + Person e + WHERE + position(e.FirstName, 'John') > 0 AND e.PersonID = ( SELECT - d.PersonID as cond + d.PersonID FROM Patient d LIMIT 1 - ) t2 - WHERE - position(e.FirstName, 'John') > 0 AND e.PersonID = t2.cond + ) ) OR EXISTS( SELECT * FROM - Person e_1, - ( + Person e_1 + WHERE + position(e_1.FirstName, 'Tester') > 0 AND e_1.PersonID = ( SELECT - d_1.PersonID as cond + d_1.PersonID FROM Patient d_1 LIMIT 1 - ) t3 - WHERE - position(e_1.FirstName, 'Tester') > 0 AND e_1.PersonID = t3.cond + ) ) ORDER BY t1.PersonID From d547e2169c64784e31e377acee2785d40cba682d Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 22 Feb 2025 17:54:45 +0000 Subject: [PATCH 04/40] [Linux / ClickHouse Client] baselines --- ...ubquery(ClickHouse.Client.LinqService).sql | 12 +++++++--- ...Filter1(ClickHouse.Client.LinqService).sql | 22 +++++++++---------- ...sts.BooleanSubquery(ClickHouse.Client).sql | 12 +++++++--- ...sue_SubQueryFilter1(ClickHouse.Client).sql | 22 +++++++++---------- 4 files changed, 38 insertions(+), 30 deletions(-) diff --git a/ClickHouse.Client.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Client.LinqService).sql b/ClickHouse.Client.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Client.LinqService).sql index 177bfab6042b..3ca69e3663c1 100644 --- a/ClickHouse.Client.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Client.LinqService).sql +++ b/ClickHouse.Client.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Client.LinqService).sql @@ -5,8 +5,14 @@ SELECT t.Id, t.BoolValue FROM - WhereWithBool t, - WhereWithBool x + WhereWithBool t WHERE - x.BoolValue AND x.Id = 1 + ( + SELECT + x.BoolValue + FROM + WhereWithBool x + WHERE + x.Id = 1 + ) diff --git a/ClickHouse.Client.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Client.LinqService).sql b/ClickHouse.Client.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Client.LinqService).sql index 13b509ba0a09..7f383c3626d1 100644 --- a/ClickHouse.Client.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Client.LinqService).sql +++ b/ClickHouse.Client.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Client.LinqService).sql @@ -11,31 +11,29 @@ WHERE SELECT * FROM - Person e, - ( + Person e + WHERE + position(e.FirstName, 'John') > 0 AND e.PersonID = ( SELECT - d.PersonID as cond + d.PersonID FROM Patient d LIMIT 1 - ) t2 - WHERE - position(e.FirstName, 'John') > 0 AND e.PersonID = t2.cond + ) ) OR EXISTS( SELECT * FROM - Person e_1, - ( + Person e_1 + WHERE + position(e_1.FirstName, 'Tester') > 0 AND e_1.PersonID = ( SELECT - d_1.PersonID as cond + d_1.PersonID FROM Patient d_1 LIMIT 1 - ) t3 - WHERE - position(e_1.FirstName, 'Tester') > 0 AND e_1.PersonID = t3.cond + ) ) ORDER BY t1.PersonID diff --git a/ClickHouse.Client/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Client).sql b/ClickHouse.Client/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Client).sql index 177bfab6042b..3ca69e3663c1 100644 --- a/ClickHouse.Client/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Client).sql +++ b/ClickHouse.Client/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Client).sql @@ -5,8 +5,14 @@ SELECT t.Id, t.BoolValue FROM - WhereWithBool t, - WhereWithBool x + WhereWithBool t WHERE - x.BoolValue AND x.Id = 1 + ( + SELECT + x.BoolValue + FROM + WhereWithBool x + WHERE + x.Id = 1 + ) diff --git a/ClickHouse.Client/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Client).sql b/ClickHouse.Client/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Client).sql index 13b509ba0a09..7f383c3626d1 100644 --- a/ClickHouse.Client/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Client).sql +++ b/ClickHouse.Client/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Client).sql @@ -11,31 +11,29 @@ WHERE SELECT * FROM - Person e, - ( + Person e + WHERE + position(e.FirstName, 'John') > 0 AND e.PersonID = ( SELECT - d.PersonID as cond + d.PersonID FROM Patient d LIMIT 1 - ) t2 - WHERE - position(e.FirstName, 'John') > 0 AND e.PersonID = t2.cond + ) ) OR EXISTS( SELECT * FROM - Person e_1, - ( + Person e_1 + WHERE + position(e_1.FirstName, 'Tester') > 0 AND e_1.PersonID = ( SELECT - d_1.PersonID as cond + d_1.PersonID FROM Patient d_1 LIMIT 1 - ) t3 - WHERE - position(e_1.FirstName, 'Tester') > 0 AND e_1.PersonID = t3.cond + ) ) ORDER BY t1.PersonID From 4b4e3845353c0b5dde0f7c9113bb3a40e39a6ab6 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 22 Feb 2025 18:21:31 +0000 Subject: [PATCH 05/40] [Linux / ClickHouse Octonica] baselines --- ...query(ClickHouse.Octonica.LinqService).sql | 12 +++++++--- ...lter1(ClickHouse.Octonica.LinqService).sql | 22 +++++++++---------- ...s.BooleanSubquery(ClickHouse.Octonica).sql | 12 +++++++--- ...e_SubQueryFilter1(ClickHouse.Octonica).sql | 22 +++++++++---------- 4 files changed, 38 insertions(+), 30 deletions(-) diff --git a/ClickHouse.Octonica.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Octonica.LinqService).sql b/ClickHouse.Octonica.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Octonica.LinqService).sql index 25c1c128c7d3..b7f3f0c52d98 100644 --- a/ClickHouse.Octonica.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Octonica.LinqService).sql +++ b/ClickHouse.Octonica.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Octonica.LinqService).sql @@ -5,8 +5,14 @@ SELECT t.Id, t.BoolValue FROM - WhereWithBool t, - WhereWithBool x + WhereWithBool t WHERE - x.BoolValue AND x.Id = 1 + ( + SELECT + x.BoolValue + FROM + WhereWithBool x + WHERE + x.Id = 1 + ) diff --git a/ClickHouse.Octonica.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Octonica.LinqService).sql b/ClickHouse.Octonica.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Octonica.LinqService).sql index e5f66f20b691..484253ed64e0 100644 --- a/ClickHouse.Octonica.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Octonica.LinqService).sql +++ b/ClickHouse.Octonica.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Octonica.LinqService).sql @@ -11,31 +11,29 @@ WHERE SELECT * FROM - Person e, - ( + Person e + WHERE + position(e.FirstName, 'John') > 0 AND e.PersonID = ( SELECT - d.PersonID as cond + d.PersonID FROM Patient d LIMIT 1 - ) t2 - WHERE - position(e.FirstName, 'John') > 0 AND e.PersonID = t2.cond + ) ) OR EXISTS( SELECT * FROM - Person e_1, - ( + Person e_1 + WHERE + position(e_1.FirstName, 'Tester') > 0 AND e_1.PersonID = ( SELECT - d_1.PersonID as cond + d_1.PersonID FROM Patient d_1 LIMIT 1 - ) t3 - WHERE - position(e_1.FirstName, 'Tester') > 0 AND e_1.PersonID = t3.cond + ) ) ORDER BY t1.PersonID diff --git a/ClickHouse.Octonica/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Octonica).sql b/ClickHouse.Octonica/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Octonica).sql index 25c1c128c7d3..b7f3f0c52d98 100644 --- a/ClickHouse.Octonica/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Octonica).sql +++ b/ClickHouse.Octonica/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(ClickHouse.Octonica).sql @@ -5,8 +5,14 @@ SELECT t.Id, t.BoolValue FROM - WhereWithBool t, - WhereWithBool x + WhereWithBool t WHERE - x.BoolValue AND x.Id = 1 + ( + SELECT + x.BoolValue + FROM + WhereWithBool x + WHERE + x.Id = 1 + ) diff --git a/ClickHouse.Octonica/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Octonica).sql b/ClickHouse.Octonica/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Octonica).sql index e5f66f20b691..484253ed64e0 100644 --- a/ClickHouse.Octonica/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Octonica).sql +++ b/ClickHouse.Octonica/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(ClickHouse.Octonica).sql @@ -11,31 +11,29 @@ WHERE SELECT * FROM - Person e, - ( + Person e + WHERE + position(e.FirstName, 'John') > 0 AND e.PersonID = ( SELECT - d.PersonID as cond + d.PersonID FROM Patient d LIMIT 1 - ) t2 - WHERE - position(e.FirstName, 'John') > 0 AND e.PersonID = t2.cond + ) ) OR EXISTS( SELECT * FROM - Person e_1, - ( + Person e_1 + WHERE + position(e_1.FirstName, 'Tester') > 0 AND e_1.PersonID = ( SELECT - d_1.PersonID as cond + d_1.PersonID FROM Patient d_1 LIMIT 1 - ) t3 - WHERE - position(e_1.FirstName, 'Tester') > 0 AND e_1.PersonID = t3.cond + ) ) ORDER BY t1.PersonID From d2b5b2755f750ebfb1147952b3045a786985959b Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 19:31:07 +0000 Subject: [PATCH 06/40] [Windows / SQL Server 2005] baselines --- ...sonTest1(SqlServer.2005.LinqService,1).sql | 63 ++- ...sonTest1(SqlServer.2005.LinqService,2).sql | 63 ++- ...anSubquery(SqlServer.2005.LinqService).sql | 12 +- ...eryFilter1(SqlServer.2005.LinqService).sql | 22 +- ...eryFilter2(SqlServer.2005.LinqService).sql | 26 +- ...eryFilter3(SqlServer.2005.LinqService).sql | 34 +- ...Test1(SqlServer.2005.MS.LinqService,1).sql | 63 ++- ...Test1(SqlServer.2005.MS.LinqService,2).sql | 63 ++- ...ubquery(SqlServer.2005.MS.LinqService).sql | 12 +- ...Filter1(SqlServer.2005.MS.LinqService).sql | 22 +- ...Filter2(SqlServer.2005.MS.LinqService).sql | 26 +- ...Filter3(SqlServer.2005.MS.LinqService).sql | 34 +- ...s.ComparisonTest1(SqlServer.2005.MS,1).sql | 63 ++- ...s.ComparisonTest1(SqlServer.2005.MS,2).sql | 63 ++- ...Tests.Issue383Test2(SqlServer.2005.MS).sql | 10 +- ...sts.BooleanSubquery(SqlServer.2005.MS).sql | 12 +- ...sue_SubQueryFilter1(SqlServer.2005.MS).sql | 22 +- ...sue_SubQueryFilter2(SqlServer.2005.MS).sql | 26 +- ...sue_SubQueryFilter3(SqlServer.2005.MS).sql | 34 +- ...eryTakesForever4394(SqlServer.2005.MS).sql | 420 ++++++------------ ...ests.ComparisonTest1(SqlServer.2005,1).sql | 63 ++- ...ests.ComparisonTest1(SqlServer.2005,2).sql | 63 ++- ...eryTests.Issue383Test2(SqlServer.2005).sql | 10 +- ...eTests.BooleanSubquery(SqlServer.2005).sql | 12 +- ....Issue_SubQueryFilter1(SqlServer.2005).sql | 22 +- ....Issue_SubQueryFilter2(SqlServer.2005).sql | 26 +- ....Issue_SubQueryFilter3(SqlServer.2005).sql | 34 +- ....QueryTakesForever4394(SqlServer.2005).sql | 420 ++++++------------ 28 files changed, 744 insertions(+), 996 deletions(-) diff --git a/SqlServer.2005.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.LinqService,1).sql b/SqlServer.2005.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.LinqService,1).sql index 99471d8b557d..899651c2644b 100644 --- a/SqlServer.2005.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.LinqService,1).sql +++ b/SqlServer.2005.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.LinqService,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2005.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.LinqService,2).sql b/SqlServer.2005.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.LinqService,2).sql index 99471d8b557d..899651c2644b 100644 --- a/SqlServer.2005.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.LinqService,2).sql +++ b/SqlServer.2005.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.LinqService,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005.LinqService).sql b/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005.LinqService).sql index 65ad44db40ec..4aa9460bbbec 100644 --- a/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005.LinqService).sql +++ b/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005.LinqService).sql b/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005.LinqService).sql index 8b48c56e7873..a0f9696026bc 100644 --- a/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005.LinqService).sql +++ b/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005.LinqService).sql b/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005.LinqService).sql index 5260c7816d21..882c1845f55c 100644 --- a/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005.LinqService).sql +++ b/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005.LinqService).sql b/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005.LinqService).sql index 16017c59fb45..3589a5039efd 100644 --- a/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005.LinqService).sql +++ b/SqlServer.2005.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2005.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS.LinqService,1).sql b/SqlServer.2005.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS.LinqService,1).sql index 7927eee81b9b..0b1bf7fbe2f8 100644 --- a/SqlServer.2005.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS.LinqService,1).sql +++ b/SqlServer.2005.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS.LinqService,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2005.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS.LinqService,2).sql b/SqlServer.2005.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS.LinqService,2).sql index 7927eee81b9b..0b1bf7fbe2f8 100644 --- a/SqlServer.2005.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS.LinqService,2).sql +++ b/SqlServer.2005.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS.LinqService,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005.MS.LinqService).sql b/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005.MS.LinqService).sql index 7060f098a490..0bbc777d008a 100644 --- a/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005.MS.LinqService).sql +++ b/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005.MS.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005.MS.LinqService).sql b/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005.MS.LinqService).sql index aca9e7930e9a..1c609e847630 100644 --- a/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005.MS.LinqService).sql +++ b/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005.MS.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005.MS.LinqService).sql b/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005.MS.LinqService).sql index cc77a95fc4ec..4a03f9ecf10f 100644 --- a/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005.MS.LinqService).sql +++ b/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005.MS.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005.MS.LinqService).sql b/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005.MS.LinqService).sql index 6bd634d6108d..58a3962f0258 100644 --- a/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005.MS.LinqService).sql +++ b/SqlServer.2005.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005.MS.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2005.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS,1).sql b/SqlServer.2005.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS,1).sql index 7927eee81b9b..0b1bf7fbe2f8 100644 --- a/SqlServer.2005.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS,1).sql +++ b/SqlServer.2005.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2005.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS,2).sql b/SqlServer.2005.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS,2).sql index 7927eee81b9b..0b1bf7fbe2f8 100644 --- a/SqlServer.2005.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS,2).sql +++ b/SqlServer.2005.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005.MS,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2005.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2005.MS).sql b/SqlServer.2005.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2005.MS).sql index aedca53f8784..26a0c8786a45 100644 --- a/SqlServer.2005.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2005.MS).sql +++ b/SqlServer.2005.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2005.MS).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005.MS).sql b/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005.MS).sql index 7060f098a490..0bbc777d008a 100644 --- a/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005.MS).sql +++ b/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005.MS).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005.MS).sql b/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005.MS).sql index aca9e7930e9a..1c609e847630 100644 --- a/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005.MS).sql +++ b/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005.MS).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005.MS).sql b/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005.MS).sql index cc77a95fc4ec..4a03f9ecf10f 100644 --- a/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005.MS).sql +++ b/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005.MS).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005.MS).sql b/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005.MS).sql index 6bd634d6108d..58a3962f0258 100644 --- a/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005.MS).sql +++ b/SqlServer.2005.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005.MS).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2005.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2005.MS).sql b/SqlServer.2005.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2005.MS).sql index e7fc4e2bded3..951475569a5c 100644 --- a/SqlServer.2005.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2005.MS).sql +++ b/SqlServer.2005.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2005.MS).sql @@ -2,9 +2,9 @@ -- SqlServer.2005.MS SqlServer.2005 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -49,18 +49,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ) THEN 1 ELSE 0 @@ -70,183 +70,119 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ) THEN 1 ELSE 0 END FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -254,9 +190,9 @@ BeforeExecute -- SqlServer.2005.MS SqlServer.2005 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -301,18 +237,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ) THEN 1 ELSE 0 @@ -322,16 +258,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -367,18 +303,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ) THEN 1 ELSE 0 @@ -388,16 +324,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -433,18 +369,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ) THEN 1 ELSE 0 @@ -454,16 +390,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -499,18 +435,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ) THEN 1 ELSE 0 @@ -520,16 +456,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -565,18 +501,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ) THEN 1 ELSE 0 @@ -586,16 +522,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -631,18 +567,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ) THEN 1 ELSE 0 @@ -652,16 +588,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -697,18 +633,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ) THEN 1 ELSE 0 @@ -718,16 +654,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -763,18 +699,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ) THEN 1 ELSE 0 @@ -784,183 +720,119 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ) THEN 1 ELSE 0 END FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2005/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005,1).sql b/SqlServer.2005/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005,1).sql index 99471d8b557d..899651c2644b 100644 --- a/SqlServer.2005/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005,1).sql +++ b/SqlServer.2005/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2005/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005,2).sql b/SqlServer.2005/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005,2).sql index 99471d8b557d..899651c2644b 100644 --- a/SqlServer.2005/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005,2).sql +++ b/SqlServer.2005/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2005,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2005/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2005).sql b/SqlServer.2005/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2005).sql index a74d2c674d6e..7e3203b51444 100644 --- a/SqlServer.2005/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2005).sql +++ b/SqlServer.2005/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2005).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005).sql b/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005).sql index 65ad44db40ec..4aa9460bbbec 100644 --- a/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005).sql +++ b/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2005).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005).sql b/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005).sql index 8b48c56e7873..a0f9696026bc 100644 --- a/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005).sql +++ b/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2005).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005).sql b/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005).sql index 5260c7816d21..882c1845f55c 100644 --- a/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005).sql +++ b/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2005).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005).sql b/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005).sql index 16017c59fb45..3589a5039efd 100644 --- a/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005).sql +++ b/SqlServer.2005/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2005).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2005/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2005).sql b/SqlServer.2005/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2005).sql index 4054c639c6ac..b14e80af2477 100644 --- a/SqlServer.2005/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2005).sql +++ b/SqlServer.2005/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2005).sql @@ -2,9 +2,9 @@ -- SqlServer.2005 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -49,18 +49,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ) THEN 1 ELSE 0 @@ -70,183 +70,119 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ) THEN 1 ELSE 0 END FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -254,9 +190,9 @@ BeforeExecute -- SqlServer.2005 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -301,18 +237,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ) THEN 1 ELSE 0 @@ -322,16 +258,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -367,18 +303,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ) THEN 1 ELSE 0 @@ -388,16 +324,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -433,18 +369,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ) THEN 1 ELSE 0 @@ -454,16 +390,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -499,18 +435,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ) THEN 1 ELSE 0 @@ -520,16 +456,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -565,18 +501,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ) THEN 1 ELSE 0 @@ -586,16 +522,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -631,18 +567,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ) THEN 1 ELSE 0 @@ -652,16 +588,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -697,18 +633,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ) THEN 1 ELSE 0 @@ -718,16 +654,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -763,18 +699,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ) THEN 1 ELSE 0 @@ -784,183 +720,119 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ) THEN 1 ELSE 0 END FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] From 2b8111bdd168000c3f3fd6da0027a8c99603558f Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 19:31:08 +0000 Subject: [PATCH 07/40] [Windows / SQLite (specialized tests)] baselines --- ...ToMany(SQLite.Classic.MPM.LinqService).sql | 24 +++++------------- ...rQuery(SQLite.Classic.MPM.LinqService).sql | 25 +++++++++++-------- ...Join52(SQLite.Classic.MPM.LinqService).sql | 17 ++++++------- ...Join53(SQLite.Classic.MPM.LinqService).sql | 17 ++++++------- ...ueryWithManyToMany(SQLite.Classic.MPM).sql | 24 +++++------------- ...ByTests.InnerQuery(SQLite.Classic.MPM).sql | 25 +++++++++++-------- ...nTests.GroupJoin52(SQLite.Classic.MPM).sql | 17 ++++++------- ...nTests.GroupJoin53(SQLite.Classic.MPM).sql | 17 ++++++------- ...ToMany(SQLite.Classic.MPU.LinqService).sql | 24 +++++------------- ...rQuery(SQLite.Classic.MPU.LinqService).sql | 25 +++++++++++-------- ...Join52(SQLite.Classic.MPU.LinqService).sql | 17 ++++++------- ...Join53(SQLite.Classic.MPU.LinqService).sql | 17 ++++++------- ...ueryWithManyToMany(SQLite.Classic.MPU).sql | 24 +++++------------- ...ByTests.InnerQuery(SQLite.Classic.MPU).sql | 25 +++++++++++-------- ...nTests.GroupJoin52(SQLite.Classic.MPU).sql | 17 ++++++------- ...nTests.GroupJoin53(SQLite.Classic.MPU).sql | 17 ++++++------- 16 files changed, 148 insertions(+), 184 deletions(-) diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM.LinqService).sql index bced603805d8..8cbc49778888 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM.LinqService).sql @@ -14,25 +14,13 @@ WHERE SELECT * FROM - ( - SELECT - ( - SELECT - [a_Parent].[ParentID] - FROM - [GrandChild] [a_Child] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] - WHERE - [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - ) as [ParentID] - FROM - [Parent] [t2] - INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] - WHERE - [t2].[ParentID] = @id - ) [li] + [Parent] [li] + INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] + INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] WHERE - [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 + [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND + [a_Parent].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM.LinqService).sql index 0a9472c500bb..f5dd4f0e180f 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM.LinqService).sql @@ -2,17 +2,22 @@ -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT + [t1].[Taxonomy] +FROM ( SELECT - [s_1].[Taxonomy] + [s].[PersonID] FROM - [Doctor] [s_1] - WHERE - [s].[PersonID] = [s_1].[PersonID] - LIMIT 1 - ) -FROM - [Doctor] [s] -GROUP BY - [s].[PersonID] + [Doctor] [s] + GROUP BY + [s].[PersonID] + ) [s_2] + INNER JOIN ( + SELECT + [s_1].[Taxonomy], + ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], + [s_1].[PersonID] + FROM + [Doctor] [s_1] + ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM.LinqService).sql index 13e1d167e96f..4b7dfbfebcfa 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM.LinqService).sql @@ -2,17 +2,16 @@ -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM.LinqService).sql b/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM.LinqService).sql index 13e1d167e96f..4b7dfbfebcfa 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM.LinqService).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM.LinqService).sql @@ -2,17 +2,16 @@ -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPM/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM).sql index bced603805d8..8cbc49778888 100644 --- a/SQLite.Classic.MPM/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPM).sql @@ -14,25 +14,13 @@ WHERE SELECT * FROM - ( - SELECT - ( - SELECT - [a_Parent].[ParentID] - FROM - [GrandChild] [a_Child] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] - WHERE - [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - ) as [ParentID] - FROM - [Parent] [t2] - INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] - WHERE - [t2].[ParentID] = @id - ) [li] + [Parent] [li] + INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] + INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] WHERE - [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 + [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND + [a_Parent].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.Classic.MPM/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM).sql index 0a9472c500bb..f5dd4f0e180f 100644 --- a/SQLite.Classic.MPM/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPM).sql @@ -2,17 +2,22 @@ -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT + [t1].[Taxonomy] +FROM ( SELECT - [s_1].[Taxonomy] + [s].[PersonID] FROM - [Doctor] [s_1] - WHERE - [s].[PersonID] = [s_1].[PersonID] - LIMIT 1 - ) -FROM - [Doctor] [s] -GROUP BY - [s].[PersonID] + [Doctor] [s] + GROUP BY + [s].[PersonID] + ) [s_2] + INNER JOIN ( + SELECT + [s_1].[Taxonomy], + ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], + [s_1].[PersonID] + FROM + [Doctor] [s_1] + ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 diff --git a/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM).sql index 13e1d167e96f..4b7dfbfebcfa 100644 --- a/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPM).sql @@ -2,17 +2,16 @@ -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM).sql index 13e1d167e96f..4b7dfbfebcfa 100644 --- a/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM).sql +++ b/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPM).sql @@ -2,17 +2,16 @@ -- SQLite.Classic.MPM SQLite.Classic SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU.LinqService).sql index c017576a6863..1b59751a5a35 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU.LinqService).sql @@ -14,25 +14,13 @@ WHERE SELECT * FROM - ( - SELECT - ( - SELECT - [a_Parent].[ParentID] - FROM - [GrandChild] [a_Child] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] - WHERE - [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - ) as [ParentID] - FROM - [Parent] [t2] - INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] - WHERE - [t2].[ParentID] = @id - ) [li] + [Parent] [li] + INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] + INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] WHERE - [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 + [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND + [a_Parent].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU.LinqService).sql index 63f2c1b4d5d9..6004c4778b50 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU.LinqService).sql @@ -2,17 +2,22 @@ -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT + [t1].[Taxonomy] +FROM ( SELECT - [s_1].[Taxonomy] + [s].[PersonID] FROM - [Doctor] [s_1] - WHERE - [s].[PersonID] = [s_1].[PersonID] - LIMIT 1 - ) -FROM - [Doctor] [s] -GROUP BY - [s].[PersonID] + [Doctor] [s] + GROUP BY + [s].[PersonID] + ) [s_2] + INNER JOIN ( + SELECT + [s_1].[Taxonomy], + ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], + [s_1].[PersonID] + FROM + [Doctor] [s_1] + ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU.LinqService).sql index 0bf90ed46b48..e299042d29c0 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU.LinqService).sql @@ -2,17 +2,16 @@ -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU.LinqService).sql b/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU.LinqService).sql index 0bf90ed46b48..e299042d29c0 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU.LinqService).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU.LinqService).sql @@ -2,17 +2,16 @@ -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPU/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU).sql index c017576a6863..1b59751a5a35 100644 --- a/SQLite.Classic.MPU/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.MPU).sql @@ -14,25 +14,13 @@ WHERE SELECT * FROM - ( - SELECT - ( - SELECT - [a_Parent].[ParentID] - FROM - [GrandChild] [a_Child] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] - WHERE - [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - ) as [ParentID] - FROM - [Parent] [t2] - INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] - WHERE - [t2].[ParentID] = @id - ) [li] + [Parent] [li] + INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] + INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] WHERE - [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 + [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND + [a_Parent].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.Classic.MPU/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU).sql index 63f2c1b4d5d9..6004c4778b50 100644 --- a/SQLite.Classic.MPU/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.MPU).sql @@ -2,17 +2,22 @@ -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT + [t1].[Taxonomy] +FROM ( SELECT - [s_1].[Taxonomy] + [s].[PersonID] FROM - [Doctor] [s_1] - WHERE - [s].[PersonID] = [s_1].[PersonID] - LIMIT 1 - ) -FROM - [Doctor] [s] -GROUP BY - [s].[PersonID] + [Doctor] [s] + GROUP BY + [s].[PersonID] + ) [s_2] + INNER JOIN ( + SELECT + [s_1].[Taxonomy], + ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], + [s_1].[PersonID] + FROM + [Doctor] [s_1] + ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 diff --git a/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU).sql index 0bf90ed46b48..e299042d29c0 100644 --- a/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.MPU).sql @@ -2,17 +2,16 @@ -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU).sql index 0bf90ed46b48..e299042d29c0 100644 --- a/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU).sql +++ b/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.MPU).sql @@ -2,17 +2,16 @@ -- SQLite.Classic.MPU SQLite.Classic SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 From ade89f766e3476ba446c7d324c68a682af01abde Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 19:39:08 +0000 Subject: [PATCH 08/40] [Windows / SQLite (both providers)] baselines --- ...ManyToMany(SQLite.Classic.LinqService).sql | 24 +++++------------- ...InnerQuery(SQLite.Classic.LinqService).sql | 25 +++++++++++-------- ...roupJoin52(SQLite.Classic.LinqService).sql | 17 ++++++------- ...roupJoin53(SQLite.Classic.LinqService).sql | 17 ++++++------- ...lexQueryWithManyToMany(SQLite.Classic).sql | 24 +++++------------- ...roupByTests.InnerQuery(SQLite.Classic).sql | 25 +++++++++++-------- ....JoinTests.GroupJoin52(SQLite.Classic).sql | 17 ++++++------- ....JoinTests.GroupJoin53(SQLite.Classic).sql | 17 ++++++------- ...yWithManyToMany(SQLite.MS.LinqService).sql | 24 +++++------------- ...ests.InnerQuery(SQLite.MS.LinqService).sql | 25 +++++++++++-------- ...sts.GroupJoin52(SQLite.MS.LinqService).sql | 17 ++++++------- ...sts.GroupJoin53(SQLite.MS.LinqService).sql | 17 ++++++------- ....ComplexQueryWithManyToMany(SQLite.MS).sql | 24 +++++------------- ...inq.GroupByTests.InnerQuery(SQLite.MS).sql | 25 +++++++++++-------- ....Linq.JoinTests.GroupJoin52(SQLite.MS).sql | 17 ++++++------- ....Linq.JoinTests.GroupJoin53(SQLite.MS).sql | 17 ++++++------- 16 files changed, 148 insertions(+), 184 deletions(-) diff --git a/SQLite.Classic.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.LinqService).sql index 59cbf4da1d3f..6abbfb3e79ac 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic.LinqService).sql @@ -14,25 +14,13 @@ WHERE SELECT * FROM - ( - SELECT - ( - SELECT - [a_Parent].[ParentID] - FROM - [GrandChild] [a_Child] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] - WHERE - [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - ) as [ParentID] - FROM - [Parent] [t2] - INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] - WHERE - [t2].[ParentID] = @id - ) [li] + [Parent] [li] + INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] + INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] WHERE - [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 + [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND + [a_Parent].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.Classic.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.LinqService).sql index 91c6661c972f..6aa709c3601f 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic.LinqService).sql @@ -2,17 +2,22 @@ -- SQLite.Classic SQLite SELECT + [t1].[Taxonomy] +FROM ( SELECT - [s_1].[Taxonomy] + [s].[PersonID] FROM - [Doctor] [s_1] - WHERE - [s].[PersonID] = [s_1].[PersonID] - LIMIT 1 - ) -FROM - [Doctor] [s] -GROUP BY - [s].[PersonID] + [Doctor] [s] + GROUP BY + [s].[PersonID] + ) [s_2] + INNER JOIN ( + SELECT + [s_1].[Taxonomy], + ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], + [s_1].[PersonID] + FROM + [Doctor] [s_1] + ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 diff --git a/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.LinqService).sql index ca101168e7c0..1e2c7d928542 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic.LinqService).sql @@ -2,17 +2,16 @@ -- SQLite.Classic SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.LinqService).sql b/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.LinqService).sql index ca101168e7c0..1e2c7d928542 100644 --- a/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.LinqService).sql +++ b/SQLite.Classic.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic.LinqService).sql @@ -2,17 +2,16 @@ -- SQLite.Classic SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic).sql index 59cbf4da1d3f..6abbfb3e79ac 100644 --- a/SQLite.Classic/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.Classic).sql @@ -14,25 +14,13 @@ WHERE SELECT * FROM - ( - SELECT - ( - SELECT - [a_Parent].[ParentID] - FROM - [GrandChild] [a_Child] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] - WHERE - [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - ) as [ParentID] - FROM - [Parent] [t2] - INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] - WHERE - [t2].[ParentID] = @id - ) [li] + [Parent] [li] + INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] + INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] WHERE - [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 + [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND + [a_Parent].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.Classic/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic).sql index 91c6661c972f..6aa709c3601f 100644 --- a/SQLite.Classic/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.Classic).sql @@ -2,17 +2,22 @@ -- SQLite.Classic SQLite SELECT + [t1].[Taxonomy] +FROM ( SELECT - [s_1].[Taxonomy] + [s].[PersonID] FROM - [Doctor] [s_1] - WHERE - [s].[PersonID] = [s_1].[PersonID] - LIMIT 1 - ) -FROM - [Doctor] [s] -GROUP BY - [s].[PersonID] + [Doctor] [s] + GROUP BY + [s].[PersonID] + ) [s_2] + INNER JOIN ( + SELECT + [s_1].[Taxonomy], + ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], + [s_1].[PersonID] + FROM + [Doctor] [s_1] + ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 diff --git a/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic).sql index ca101168e7c0..1e2c7d928542 100644 --- a/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.Classic).sql @@ -2,17 +2,16 @@ -- SQLite.Classic SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic).sql index ca101168e7c0..1e2c7d928542 100644 --- a/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic).sql +++ b/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.Classic).sql @@ -2,17 +2,16 @@ -- SQLite.Classic SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.MS.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS.LinqService).sql index aa0208ac8b65..bd1cef442741 100644 --- a/SQLite.MS.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS.LinqService).sql @@ -14,25 +14,13 @@ WHERE SELECT * FROM - ( - SELECT - ( - SELECT - [a_Parent].[ParentID] - FROM - [GrandChild] [a_Child] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] - WHERE - [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - ) as [ParentID] - FROM - [Parent] [t2] - INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] - WHERE - [t2].[ParentID] = @id - ) [li] + [Parent] [li] + INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] + INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] WHERE - [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 + [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND + [a_Parent].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.MS.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS.LinqService).sql index 8263e08f3484..bf0b627ea44e 100644 --- a/SQLite.MS.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS.LinqService).sql @@ -2,17 +2,22 @@ -- SQLite.MS SQLite SELECT + [t1].[Taxonomy] +FROM ( SELECT - [s_1].[Taxonomy] + [s].[PersonID] FROM - [Doctor] [s_1] - WHERE - [s].[PersonID] = [s_1].[PersonID] - LIMIT 1 - ) -FROM - [Doctor] [s] -GROUP BY - [s].[PersonID] + [Doctor] [s] + GROUP BY + [s].[PersonID] + ) [s_2] + INNER JOIN ( + SELECT + [s_1].[Taxonomy], + ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], + [s_1].[PersonID] + FROM + [Doctor] [s_1] + ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 diff --git a/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS.LinqService).sql index 1935e03099eb..3f1d8d3e9a52 100644 --- a/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS.LinqService).sql @@ -2,17 +2,16 @@ -- SQLite.MS SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS.LinqService).sql b/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS.LinqService).sql index 1935e03099eb..3f1d8d3e9a52 100644 --- a/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS.LinqService).sql +++ b/SQLite.MS.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS.LinqService).sql @@ -2,17 +2,16 @@ -- SQLite.MS SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.MS/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS).sql b/SQLite.MS/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS).sql index aa0208ac8b65..bd1cef442741 100644 --- a/SQLite.MS/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.ComplexQueryWithManyToMany(SQLite.MS).sql @@ -14,25 +14,13 @@ WHERE SELECT * FROM - ( - SELECT - ( - SELECT - [a_Parent].[ParentID] - FROM - [GrandChild] [a_Child] - LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] - WHERE - [a_ManyToMany].[ChildID] = [a_Child].[ChildID] - ) as [ParentID] - FROM - [Parent] [t2] - INNER JOIN [Child] [a_ManyToMany] ON [t2].[ParentID] = [a_ManyToMany].[ParentID] - WHERE - [t2].[ParentID] = @id - ) [li] + [Parent] [li] + INNER JOIN [Child] [a_ManyToMany] ON [li].[ParentID] = [a_ManyToMany].[ParentID] + INNER JOIN [GrandChild] [a_Child] ON [a_ManyToMany].[ChildID] = [a_Child].[ChildID] + LEFT JOIN [Parent] [a_Parent] ON [a_Child].[ParentID] = [a_Parent].[ParentID] WHERE - [li].[ParentID] IS NOT NULL AND [li].[ParentID] = @id1 + [li].[ParentID] = @id AND [a_Parent].[ParentID] IS NOT NULL AND + [a_Parent].[ParentID] = @id1 ) ORDER BY [t1].[ChildID] diff --git a/SQLite.MS/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS).sql b/SQLite.MS/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS).sql index 8263e08f3484..bf0b627ea44e 100644 --- a/SQLite.MS/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.InnerQuery(SQLite.MS).sql @@ -2,17 +2,22 @@ -- SQLite.MS SQLite SELECT + [t1].[Taxonomy] +FROM ( SELECT - [s_1].[Taxonomy] + [s].[PersonID] FROM - [Doctor] [s_1] - WHERE - [s].[PersonID] = [s_1].[PersonID] - LIMIT 1 - ) -FROM - [Doctor] [s] -GROUP BY - [s].[PersonID] + [Doctor] [s] + GROUP BY + [s].[PersonID] + ) [s_2] + INNER JOIN ( + SELECT + [s_1].[Taxonomy], + ROW_NUMBER() OVER (PARTITION BY [s_1].[PersonID] ORDER BY [s_1].[PersonID]) as [rn], + [s_1].[PersonID] + FROM + [Doctor] [s_1] + ) [t1] ON [s_2].[PersonID] = [t1].[PersonID] AND [t1].[rn] <= 1 diff --git a/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS).sql b/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS).sql index 1935e03099eb..3f1d8d3e9a52 100644 --- a/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin52(SQLite.MS).sql @@ -2,17 +2,16 @@ -- SQLite.MS SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 diff --git a/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS).sql b/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS).sql index 1935e03099eb..3f1d8d3e9a52 100644 --- a/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS).sql +++ b/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.GroupJoin53(SQLite.MS).sql @@ -2,17 +2,16 @@ -- SQLite.MS SQLite SELECT - ( - SELECT - [ch].[ParentID] - FROM - [Child] [ch] - WHERE - [p].[ParentID] = [ch].[ParentID] - LIMIT 1 - ) + [t1].[ParentID] FROM [Parent] [p] + INNER JOIN ( + SELECT + [ch].[ParentID], + ROW_NUMBER() OVER (PARTITION BY [ch].[ParentID] ORDER BY [ch].[ParentID]) as [rn] + FROM + [Child] [ch] + ) [t1] ON [p].[ParentID] = [t1].[ParentID] AND [t1].[rn] <= 1 WHERE [p].[ParentID] = 1 From c0337cd7773e3e2d719dc832b05b345883b8a099 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 19:43:10 +0000 Subject: [PATCH 09/40] [Windows / SQL Server 2014] baselines --- ...sonTest1(SqlServer.2014.LinqService,1).sql | 63 ++- ...sonTest1(SqlServer.2014.LinqService,2).sql | 63 ++- ...anSubquery(SqlServer.2014.LinqService).sql | 12 +- ...eryFilter1(SqlServer.2014.LinqService).sql | 22 +- ...eryFilter2(SqlServer.2014.LinqService).sql | 26 +- ...eryFilter3(SqlServer.2014.LinqService).sql | 34 +- ...Test1(SqlServer.2014.MS.LinqService,1).sql | 63 ++- ...Test1(SqlServer.2014.MS.LinqService,2).sql | 63 ++- ...ubquery(SqlServer.2014.MS.LinqService).sql | 12 +- ...Filter1(SqlServer.2014.MS.LinqService).sql | 22 +- ...Filter2(SqlServer.2014.MS.LinqService).sql | 26 +- ...Filter3(SqlServer.2014.MS.LinqService).sql | 34 +- ...s.ComparisonTest1(SqlServer.2014.MS,1).sql | 63 ++- ...s.ComparisonTest1(SqlServer.2014.MS,2).sql | 63 ++- ...Tests.Issue383Test2(SqlServer.2014.MS).sql | 10 +- ...sts.BooleanSubquery(SqlServer.2014.MS).sql | 12 +- ...sue_SubQueryFilter1(SqlServer.2014.MS).sql | 22 +- ...sue_SubQueryFilter2(SqlServer.2014.MS).sql | 26 +- ...sue_SubQueryFilter3(SqlServer.2014.MS).sql | 34 +- ...eryTakesForever4394(SqlServer.2014.MS).sql | 420 ++++++------------ ...sts.MergeSubquery(SqlServer.2014.MS,1).sql | 61 +++ ...sts.MergeSubquery(SqlServer.2014.MS,2).sql | 61 +++ ...ests.ComparisonTest1(SqlServer.2014,1).sql | 63 ++- ...ests.ComparisonTest1(SqlServer.2014,2).sql | 63 ++- ...eryTests.Issue383Test2(SqlServer.2014).sql | 10 +- ...eTests.BooleanSubquery(SqlServer.2014).sql | 12 +- ....Issue_SubQueryFilter1(SqlServer.2014).sql | 22 +- ....Issue_SubQueryFilter2(SqlServer.2014).sql | 26 +- ....Issue_SubQueryFilter3(SqlServer.2014).sql | 34 +- ....QueryTakesForever4394(SqlServer.2014).sql | 420 ++++++------------ ...eTests.MergeSubquery(SqlServer.2014,1).sql | 61 +++ ...eTests.MergeSubquery(SqlServer.2014,2).sql | 61 +++ 32 files changed, 988 insertions(+), 996 deletions(-) create mode 100644 SqlServer.2014.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014.MS,1).sql create mode 100644 SqlServer.2014.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014.MS,2).sql create mode 100644 SqlServer.2014/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014,1).sql create mode 100644 SqlServer.2014/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014,2).sql diff --git a/SqlServer.2014.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.LinqService,1).sql b/SqlServer.2014.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.LinqService,1).sql index 78464755ceb6..fa068dd20bdc 100644 --- a/SqlServer.2014.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.LinqService,1).sql +++ b/SqlServer.2014.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2014.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.LinqService,2).sql b/SqlServer.2014.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.LinqService,2).sql index 78464755ceb6..fa068dd20bdc 100644 --- a/SqlServer.2014.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.LinqService,2).sql +++ b/SqlServer.2014.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014.LinqService).sql b/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014.LinqService).sql index a6b13b12ab59..97522a8012f5 100644 --- a/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014.LinqService).sql +++ b/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014.LinqService).sql b/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014.LinqService).sql index c9e4872a7043..323b6220a24b 100644 --- a/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014.LinqService).sql +++ b/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014.LinqService).sql b/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014.LinqService).sql index 309526bf062b..09bd10ee8d8d 100644 --- a/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014.LinqService).sql +++ b/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014.LinqService).sql b/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014.LinqService).sql index 3535134ad8a0..d7d1e6403d4c 100644 --- a/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014.LinqService).sql +++ b/SqlServer.2014.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2014.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS.LinqService,1).sql b/SqlServer.2014.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS.LinqService,1).sql index 300147a0e313..ae93defcdb5f 100644 --- a/SqlServer.2014.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS.LinqService,1).sql +++ b/SqlServer.2014.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2014.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS.LinqService,2).sql b/SqlServer.2014.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS.LinqService,2).sql index 300147a0e313..ae93defcdb5f 100644 --- a/SqlServer.2014.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS.LinqService,2).sql +++ b/SqlServer.2014.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014.MS.LinqService).sql b/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014.MS.LinqService).sql index f3bd3717b2ac..6c3b7f9a269e 100644 --- a/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014.MS.LinqService).sql +++ b/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014.MS.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014.MS.LinqService).sql b/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014.MS.LinqService).sql index d8188495e7ab..6596bdd2236c 100644 --- a/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014.MS.LinqService).sql +++ b/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014.MS.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014.MS.LinqService).sql b/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014.MS.LinqService).sql index 8a348e4b0467..0f81e70f33ee 100644 --- a/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014.MS.LinqService).sql +++ b/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014.MS.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014.MS.LinqService).sql b/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014.MS.LinqService).sql index 3f0ccffb0214..b3bdaac6c841 100644 --- a/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014.MS.LinqService).sql +++ b/SqlServer.2014.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014.MS.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2014.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS,1).sql b/SqlServer.2014.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS,1).sql index 300147a0e313..ae93defcdb5f 100644 --- a/SqlServer.2014.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS,1).sql +++ b/SqlServer.2014.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2014.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS,2).sql b/SqlServer.2014.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS,2).sql index 300147a0e313..ae93defcdb5f 100644 --- a/SqlServer.2014.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS,2).sql +++ b/SqlServer.2014.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014.MS,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2014.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2014.MS).sql b/SqlServer.2014.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2014.MS).sql index a223e2c31293..555a0c15fe8e 100644 --- a/SqlServer.2014.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2014.MS).sql +++ b/SqlServer.2014.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2014.MS).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014.MS).sql b/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014.MS).sql index f3bd3717b2ac..6c3b7f9a269e 100644 --- a/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014.MS).sql +++ b/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014.MS).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014.MS).sql b/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014.MS).sql index d8188495e7ab..6596bdd2236c 100644 --- a/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014.MS).sql +++ b/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014.MS).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014.MS).sql b/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014.MS).sql index 8a348e4b0467..0f81e70f33ee 100644 --- a/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014.MS).sql +++ b/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014.MS).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014.MS).sql b/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014.MS).sql index 3f0ccffb0214..b3bdaac6c841 100644 --- a/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014.MS).sql +++ b/SqlServer.2014.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014.MS).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2014.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2014.MS).sql b/SqlServer.2014.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2014.MS).sql index 57f362c29035..c5851d8c35bb 100644 --- a/SqlServer.2014.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2014.MS).sql +++ b/SqlServer.2014.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2014.MS).sql @@ -2,9 +2,9 @@ -- SqlServer.2014.MS SqlServer.2014 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.2014.MS SqlServer.2014 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2014.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014.MS,1).sql b/SqlServer.2014.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014.MS,1).sql new file mode 100644 index 000000000000..591e2181b9ab --- /dev/null +++ b/SqlServer.2014.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014.MS,1).sql @@ -0,0 +1,61 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +IF (OBJECT_ID(N'[tempdb]..[#MergeTemp]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2014.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014.MS,2).sql b/SqlServer.2014.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014.MS,2).sql new file mode 100644 index 000000000000..591e2181b9ab --- /dev/null +++ b/SqlServer.2014.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014.MS,2).sql @@ -0,0 +1,61 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +IF (OBJECT_ID(N'[tempdb]..[#MergeTemp]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2014/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014,1).sql b/SqlServer.2014/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014,1).sql index 78464755ceb6..fa068dd20bdc 100644 --- a/SqlServer.2014/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014,1).sql +++ b/SqlServer.2014/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2014/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014,2).sql b/SqlServer.2014/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014,2).sql index 78464755ceb6..fa068dd20bdc 100644 --- a/SqlServer.2014/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014,2).sql +++ b/SqlServer.2014/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2014,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2014/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2014).sql b/SqlServer.2014/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2014).sql index 560cd9dae8de..3227f62cdaa5 100644 --- a/SqlServer.2014/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2014).sql +++ b/SqlServer.2014/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2014).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014).sql b/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014).sql index a6b13b12ab59..97522a8012f5 100644 --- a/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014).sql +++ b/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2014).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014).sql b/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014).sql index c9e4872a7043..323b6220a24b 100644 --- a/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014).sql +++ b/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2014).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014).sql b/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014).sql index 309526bf062b..09bd10ee8d8d 100644 --- a/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014).sql +++ b/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2014).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014).sql b/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014).sql index 3535134ad8a0..d7d1e6403d4c 100644 --- a/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014).sql +++ b/SqlServer.2014/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2014).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2014/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2014).sql b/SqlServer.2014/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2014).sql index 6c63b4fceb7f..17081d022d83 100644 --- a/SqlServer.2014/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2014).sql +++ b/SqlServer.2014/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2014).sql @@ -2,9 +2,9 @@ -- SqlServer.2014 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.2014 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2014/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014,1).sql b/SqlServer.2014/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014,1).sql new file mode 100644 index 000000000000..5741fd7a0dc9 --- /dev/null +++ b/SqlServer.2014/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014,1).sql @@ -0,0 +1,61 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2014 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2014 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2014 + +IF (OBJECT_ID(N'[tempdb]..[#MergeTemp]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2014/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014,2).sql b/SqlServer.2014/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014,2).sql new file mode 100644 index 000000000000..5741fd7a0dc9 --- /dev/null +++ b/SqlServer.2014/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2014,2).sql @@ -0,0 +1,61 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2014 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2014 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2014 + +IF (OBJECT_ID(N'[tempdb]..[#MergeTemp]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#MergeTemp] + From 12e91a52edb44d72653a1bc62f130012f8902018 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 19:44:10 +0000 Subject: [PATCH 10/40] [Windows / SQL Server 2012] baselines --- ...sonTest1(SqlServer.2012.LinqService,1).sql | 63 ++- ...sonTest1(SqlServer.2012.LinqService,2).sql | 63 ++- ...anSubquery(SqlServer.2012.LinqService).sql | 12 +- ...eryFilter1(SqlServer.2012.LinqService).sql | 22 +- ...eryFilter2(SqlServer.2012.LinqService).sql | 26 +- ...eryFilter3(SqlServer.2012.LinqService).sql | 34 +- ...Test1(SqlServer.2012.MS.LinqService,1).sql | 63 ++- ...Test1(SqlServer.2012.MS.LinqService,2).sql | 63 ++- ...ubquery(SqlServer.2012.MS.LinqService).sql | 12 +- ...Filter1(SqlServer.2012.MS.LinqService).sql | 22 +- ...Filter2(SqlServer.2012.MS.LinqService).sql | 26 +- ...Filter3(SqlServer.2012.MS.LinqService).sql | 34 +- ...s.ComparisonTest1(SqlServer.2012.MS,1).sql | 63 ++- ...s.ComparisonTest1(SqlServer.2012.MS,2).sql | 63 ++- ...Tests.Issue383Test2(SqlServer.2012.MS).sql | 10 +- ...sts.BooleanSubquery(SqlServer.2012.MS).sql | 12 +- ...sue_SubQueryFilter1(SqlServer.2012.MS).sql | 22 +- ...sue_SubQueryFilter2(SqlServer.2012.MS).sql | 26 +- ...sue_SubQueryFilter3(SqlServer.2012.MS).sql | 34 +- ...eryTakesForever4394(SqlServer.2012.MS).sql | 420 ++++++------------ ...sts.MergeSubquery(SqlServer.2012.MS,1).sql | 61 +++ ...sts.MergeSubquery(SqlServer.2012.MS,2).sql | 61 +++ ...ests.ComparisonTest1(SqlServer.2012,1).sql | 63 ++- ...ests.ComparisonTest1(SqlServer.2012,2).sql | 63 ++- ...eryTests.Issue383Test2(SqlServer.2012).sql | 10 +- ...eTests.BooleanSubquery(SqlServer.2012).sql | 12 +- ....Issue_SubQueryFilter1(SqlServer.2012).sql | 22 +- ....Issue_SubQueryFilter2(SqlServer.2012).sql | 26 +- ....Issue_SubQueryFilter3(SqlServer.2012).sql | 34 +- ....QueryTakesForever4394(SqlServer.2012).sql | 420 ++++++------------ ...eTests.MergeSubquery(SqlServer.2012,1).sql | 61 +++ ...eTests.MergeSubquery(SqlServer.2012,2).sql | 61 +++ 32 files changed, 988 insertions(+), 996 deletions(-) create mode 100644 SqlServer.2012.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012.MS,1).sql create mode 100644 SqlServer.2012.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012.MS,2).sql create mode 100644 SqlServer.2012/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012,1).sql create mode 100644 SqlServer.2012/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012,2).sql diff --git a/SqlServer.2012.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.LinqService,1).sql b/SqlServer.2012.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.LinqService,1).sql index 6ad00c86f181..6efc5e423677 100644 --- a/SqlServer.2012.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.LinqService,1).sql +++ b/SqlServer.2012.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2012.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.LinqService,2).sql b/SqlServer.2012.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.LinqService,2).sql index 6ad00c86f181..6efc5e423677 100644 --- a/SqlServer.2012.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.LinqService,2).sql +++ b/SqlServer.2012.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012.LinqService).sql b/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012.LinqService).sql index 971cf5f154b9..8b07cff36706 100644 --- a/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012.LinqService).sql +++ b/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012.LinqService).sql b/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012.LinqService).sql index 7664d0fcb703..ba2e66b787a2 100644 --- a/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012.LinqService).sql +++ b/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012.LinqService).sql b/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012.LinqService).sql index 02657f2dd2ff..9d43190ab9fe 100644 --- a/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012.LinqService).sql +++ b/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012.LinqService).sql b/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012.LinqService).sql index 81271ecf59e8..c86ff906334a 100644 --- a/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012.LinqService).sql +++ b/SqlServer.2012.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2012.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS.LinqService,1).sql b/SqlServer.2012.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS.LinqService,1).sql index 96021d574cd6..0b43a2b7c9ae 100644 --- a/SqlServer.2012.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS.LinqService,1).sql +++ b/SqlServer.2012.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2012.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS.LinqService,2).sql b/SqlServer.2012.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS.LinqService,2).sql index 96021d574cd6..0b43a2b7c9ae 100644 --- a/SqlServer.2012.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS.LinqService,2).sql +++ b/SqlServer.2012.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012.MS.LinqService).sql b/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012.MS.LinqService).sql index 9396a378575b..a7e852408941 100644 --- a/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012.MS.LinqService).sql +++ b/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012.MS.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012.MS.LinqService).sql b/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012.MS.LinqService).sql index 22814c2aec35..aea99b8a3b50 100644 --- a/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012.MS.LinqService).sql +++ b/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012.MS.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012.MS.LinqService).sql b/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012.MS.LinqService).sql index c280a58b83c1..a78ac6eec119 100644 --- a/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012.MS.LinqService).sql +++ b/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012.MS.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012.MS.LinqService).sql b/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012.MS.LinqService).sql index b6f3b8be2fd5..11053aebe982 100644 --- a/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012.MS.LinqService).sql +++ b/SqlServer.2012.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012.MS.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2012.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS,1).sql b/SqlServer.2012.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS,1).sql index 96021d574cd6..0b43a2b7c9ae 100644 --- a/SqlServer.2012.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS,1).sql +++ b/SqlServer.2012.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2012.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS,2).sql b/SqlServer.2012.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS,2).sql index 96021d574cd6..0b43a2b7c9ae 100644 --- a/SqlServer.2012.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS,2).sql +++ b/SqlServer.2012.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012.MS,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2012.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2012.MS).sql b/SqlServer.2012.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2012.MS).sql index 61888d925e49..6708af21b866 100644 --- a/SqlServer.2012.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2012.MS).sql +++ b/SqlServer.2012.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2012.MS).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012.MS).sql b/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012.MS).sql index 9396a378575b..a7e852408941 100644 --- a/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012.MS).sql +++ b/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012.MS).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012.MS).sql b/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012.MS).sql index 22814c2aec35..aea99b8a3b50 100644 --- a/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012.MS).sql +++ b/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012.MS).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012.MS).sql b/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012.MS).sql index c280a58b83c1..a78ac6eec119 100644 --- a/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012.MS).sql +++ b/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012.MS).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012.MS).sql b/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012.MS).sql index b6f3b8be2fd5..11053aebe982 100644 --- a/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012.MS).sql +++ b/SqlServer.2012.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012.MS).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2012.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2012.MS).sql b/SqlServer.2012.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2012.MS).sql index bde6e1e1a773..3ddbb98d9809 100644 --- a/SqlServer.2012.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2012.MS).sql +++ b/SqlServer.2012.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2012.MS).sql @@ -2,9 +2,9 @@ -- SqlServer.2012.MS SqlServer.2012 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.2012.MS SqlServer.2012 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2012.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012.MS,1).sql b/SqlServer.2012.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012.MS,1).sql new file mode 100644 index 000000000000..ef0567837a45 --- /dev/null +++ b/SqlServer.2012.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012.MS,1).sql @@ -0,0 +1,61 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +IF (OBJECT_ID(N'[tempdb]..[#MergeTemp]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2012.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012.MS,2).sql b/SqlServer.2012.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012.MS,2).sql new file mode 100644 index 000000000000..ef0567837a45 --- /dev/null +++ b/SqlServer.2012.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012.MS,2).sql @@ -0,0 +1,61 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +IF (OBJECT_ID(N'[tempdb]..[#MergeTemp]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2012/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012,1).sql b/SqlServer.2012/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012,1).sql index 6ad00c86f181..6efc5e423677 100644 --- a/SqlServer.2012/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012,1).sql +++ b/SqlServer.2012/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2012/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012,2).sql b/SqlServer.2012/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012,2).sql index 6ad00c86f181..6efc5e423677 100644 --- a/SqlServer.2012/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012,2).sql +++ b/SqlServer.2012/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2012,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2012/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2012).sql b/SqlServer.2012/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2012).sql index 558289ccc6d6..ca8584b3587e 100644 --- a/SqlServer.2012/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2012).sql +++ b/SqlServer.2012/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2012).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012).sql b/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012).sql index 971cf5f154b9..8b07cff36706 100644 --- a/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012).sql +++ b/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2012).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012).sql b/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012).sql index 7664d0fcb703..ba2e66b787a2 100644 --- a/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012).sql +++ b/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2012).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012).sql b/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012).sql index 02657f2dd2ff..9d43190ab9fe 100644 --- a/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012).sql +++ b/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2012).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012).sql b/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012).sql index 81271ecf59e8..c86ff906334a 100644 --- a/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012).sql +++ b/SqlServer.2012/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2012).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2012/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2012).sql b/SqlServer.2012/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2012).sql index 2be062805606..a9939d5e36ad 100644 --- a/SqlServer.2012/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2012).sql +++ b/SqlServer.2012/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2012).sql @@ -2,9 +2,9 @@ -- SqlServer.2012 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.2012 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2012/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012,1).sql b/SqlServer.2012/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012,1).sql new file mode 100644 index 000000000000..08d0dbd2a66b --- /dev/null +++ b/SqlServer.2012/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012,1).sql @@ -0,0 +1,61 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2012 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2012 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2012 + +IF (OBJECT_ID(N'[tempdb]..[#MergeTemp]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2012/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012,2).sql b/SqlServer.2012/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012,2).sql new file mode 100644 index 000000000000..08d0dbd2a66b --- /dev/null +++ b/SqlServer.2012/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2012,2).sql @@ -0,0 +1,61 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2012 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2012 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2012 + +IF (OBJECT_ID(N'[tempdb]..[#MergeTemp]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#MergeTemp] + From bad39fd94f49e814dc09ee44d77d3d96ffe27bd6 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 19:46:37 +0000 Subject: [PATCH 11/40] [Windows / SQL Server 2016] baselines --- ...sonTest1(SqlServer.2016.LinqService,1).sql | 63 ++- ...sonTest1(SqlServer.2016.LinqService,2).sql | 63 ++- ...anSubquery(SqlServer.2016.LinqService).sql | 12 +- ...eryFilter1(SqlServer.2016.LinqService).sql | 22 +- ...eryFilter2(SqlServer.2016.LinqService).sql | 26 +- ...eryFilter3(SqlServer.2016.LinqService).sql | 34 +- ...Test1(SqlServer.2016.MS.LinqService,1).sql | 63 ++- ...Test1(SqlServer.2016.MS.LinqService,2).sql | 63 ++- ...ubquery(SqlServer.2016.MS.LinqService).sql | 12 +- ...Filter1(SqlServer.2016.MS.LinqService).sql | 22 +- ...Filter2(SqlServer.2016.MS.LinqService).sql | 26 +- ...Filter3(SqlServer.2016.MS.LinqService).sql | 34 +- ...s.ComparisonTest1(SqlServer.2016.MS,1).sql | 63 ++- ...s.ComparisonTest1(SqlServer.2016.MS,2).sql | 63 ++- ...Tests.Issue383Test2(SqlServer.2016.MS).sql | 10 +- ...sts.BooleanSubquery(SqlServer.2016.MS).sql | 12 +- ...sue_SubQueryFilter1(SqlServer.2016.MS).sql | 22 +- ...sue_SubQueryFilter2(SqlServer.2016.MS).sql | 26 +- ...sue_SubQueryFilter3(SqlServer.2016.MS).sql | 34 +- ...eryTakesForever4394(SqlServer.2016.MS).sql | 420 ++++++------------ ...sts.MergeSubquery(SqlServer.2016.MS,1).sql | 60 +++ ...sts.MergeSubquery(SqlServer.2016.MS,2).sql | 60 +++ ...ests.ComparisonTest1(SqlServer.2016,1).sql | 63 ++- ...ests.ComparisonTest1(SqlServer.2016,2).sql | 63 ++- ...eryTests.Issue383Test2(SqlServer.2016).sql | 10 +- ...eTests.BooleanSubquery(SqlServer.2016).sql | 12 +- ....Issue_SubQueryFilter1(SqlServer.2016).sql | 22 +- ....Issue_SubQueryFilter2(SqlServer.2016).sql | 26 +- ....Issue_SubQueryFilter3(SqlServer.2016).sql | 34 +- ....QueryTakesForever4394(SqlServer.2016).sql | 420 ++++++------------ ...eTests.MergeSubquery(SqlServer.2016,1).sql | 60 +++ ...eTests.MergeSubquery(SqlServer.2016,2).sql | 60 +++ 32 files changed, 984 insertions(+), 996 deletions(-) create mode 100644 SqlServer.2016.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016.MS,1).sql create mode 100644 SqlServer.2016.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016.MS,2).sql create mode 100644 SqlServer.2016/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016,1).sql create mode 100644 SqlServer.2016/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016,2).sql diff --git a/SqlServer.2016.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.LinqService,1).sql b/SqlServer.2016.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.LinqService,1).sql index 2d0ab7573dbc..6137e05745d7 100644 --- a/SqlServer.2016.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.LinqService,1).sql +++ b/SqlServer.2016.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2016.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.LinqService,2).sql b/SqlServer.2016.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.LinqService,2).sql index 2d0ab7573dbc..6137e05745d7 100644 --- a/SqlServer.2016.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.LinqService,2).sql +++ b/SqlServer.2016.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016.LinqService).sql b/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016.LinqService).sql index fc74e7511322..ec006912555b 100644 --- a/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016.LinqService).sql +++ b/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016.LinqService).sql b/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016.LinqService).sql index 5f3950472dd5..aa0a54053bf4 100644 --- a/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016.LinqService).sql +++ b/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016.LinqService).sql b/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016.LinqService).sql index 4f97321a4e34..fd87a0cbf163 100644 --- a/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016.LinqService).sql +++ b/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016.LinqService).sql b/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016.LinqService).sql index 9c8b4b1f6362..fed2b65cd343 100644 --- a/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016.LinqService).sql +++ b/SqlServer.2016.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2016.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS.LinqService,1).sql b/SqlServer.2016.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS.LinqService,1).sql index 034bf540fd5a..89f9b74f2192 100644 --- a/SqlServer.2016.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS.LinqService,1).sql +++ b/SqlServer.2016.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2016.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS.LinqService,2).sql b/SqlServer.2016.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS.LinqService,2).sql index 034bf540fd5a..89f9b74f2192 100644 --- a/SqlServer.2016.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS.LinqService,2).sql +++ b/SqlServer.2016.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016.MS.LinqService).sql b/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016.MS.LinqService).sql index 627b24e4e54d..41623b227cc2 100644 --- a/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016.MS.LinqService).sql +++ b/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016.MS.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016.MS.LinqService).sql b/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016.MS.LinqService).sql index 7a34ffa51385..0724ad025098 100644 --- a/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016.MS.LinqService).sql +++ b/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016.MS.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016.MS.LinqService).sql b/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016.MS.LinqService).sql index 66b3a4e90ab8..ecdd09d5789f 100644 --- a/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016.MS.LinqService).sql +++ b/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016.MS.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016.MS.LinqService).sql b/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016.MS.LinqService).sql index eeb865c9a472..377540fdaf98 100644 --- a/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016.MS.LinqService).sql +++ b/SqlServer.2016.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016.MS.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2016.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS,1).sql b/SqlServer.2016.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS,1).sql index 034bf540fd5a..89f9b74f2192 100644 --- a/SqlServer.2016.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS,1).sql +++ b/SqlServer.2016.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2016.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS,2).sql b/SqlServer.2016.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS,2).sql index 034bf540fd5a..89f9b74f2192 100644 --- a/SqlServer.2016.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS,2).sql +++ b/SqlServer.2016.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016.MS,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2016.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2016.MS).sql b/SqlServer.2016.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2016.MS).sql index 937c2a7e1b27..d14b861df6ad 100644 --- a/SqlServer.2016.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2016.MS).sql +++ b/SqlServer.2016.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2016.MS).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016.MS).sql b/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016.MS).sql index 627b24e4e54d..41623b227cc2 100644 --- a/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016.MS).sql +++ b/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016.MS).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016.MS).sql b/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016.MS).sql index 7a34ffa51385..0724ad025098 100644 --- a/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016.MS).sql +++ b/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016.MS).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016.MS).sql b/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016.MS).sql index 66b3a4e90ab8..ecdd09d5789f 100644 --- a/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016.MS).sql +++ b/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016.MS).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016.MS).sql b/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016.MS).sql index eeb865c9a472..377540fdaf98 100644 --- a/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016.MS).sql +++ b/SqlServer.2016.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016.MS).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2016.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2016.MS).sql b/SqlServer.2016.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2016.MS).sql index b4d8cb5cb232..16aa39f6c6be 100644 --- a/SqlServer.2016.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2016.MS).sql +++ b/SqlServer.2016.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2016.MS).sql @@ -2,9 +2,9 @@ -- SqlServer.2016.MS SqlServer.2016 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.2016.MS SqlServer.2016 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2016.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016.MS,1).sql b/SqlServer.2016.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016.MS,1).sql new file mode 100644 index 000000000000..81198f925938 --- /dev/null +++ b/SqlServer.2016.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016.MS,1).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2016.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016.MS,2).sql b/SqlServer.2016.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016.MS,2).sql new file mode 100644 index 000000000000..81198f925938 --- /dev/null +++ b/SqlServer.2016.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016.MS,2).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2016/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016,1).sql b/SqlServer.2016/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016,1).sql index 2d0ab7573dbc..6137e05745d7 100644 --- a/SqlServer.2016/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016,1).sql +++ b/SqlServer.2016/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2016/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016,2).sql b/SqlServer.2016/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016,2).sql index 2d0ab7573dbc..6137e05745d7 100644 --- a/SqlServer.2016/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016,2).sql +++ b/SqlServer.2016/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2016,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2016/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2016).sql b/SqlServer.2016/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2016).sql index 178575008c53..672765c965b9 100644 --- a/SqlServer.2016/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2016).sql +++ b/SqlServer.2016/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2016).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016).sql b/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016).sql index fc74e7511322..ec006912555b 100644 --- a/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016).sql +++ b/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2016).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016).sql b/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016).sql index 5f3950472dd5..aa0a54053bf4 100644 --- a/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016).sql +++ b/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2016).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016).sql b/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016).sql index 4f97321a4e34..fd87a0cbf163 100644 --- a/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016).sql +++ b/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2016).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016).sql b/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016).sql index 9c8b4b1f6362..fed2b65cd343 100644 --- a/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016).sql +++ b/SqlServer.2016/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2016).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2016/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2016).sql b/SqlServer.2016/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2016).sql index 8235ff946b90..add8a53ccfbc 100644 --- a/SqlServer.2016/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2016).sql +++ b/SqlServer.2016/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2016).sql @@ -2,9 +2,9 @@ -- SqlServer.2016 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.2016 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2016/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016,1).sql b/SqlServer.2016/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016,1).sql new file mode 100644 index 000000000000..cd2f82a956a3 --- /dev/null +++ b/SqlServer.2016/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016,1).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2016 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2016 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2016 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2016/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016,2).sql b/SqlServer.2016/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016,2).sql new file mode 100644 index 000000000000..cd2f82a956a3 --- /dev/null +++ b/SqlServer.2016/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2016,2).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2016 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2016 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2016 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + From 358b19083fffd43415d4d0fb4d7c70fb19822adb Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 19:49:56 +0000 Subject: [PATCH 12/40] [Windows / SQL Server 2008] baselines --- ...sonTest1(SqlServer.2008.LinqService,1).sql | 63 ++- ...sonTest1(SqlServer.2008.LinqService,2).sql | 63 ++- ...anSubquery(SqlServer.2008.LinqService).sql | 12 +- ...eryFilter1(SqlServer.2008.LinqService).sql | 22 +- ...eryFilter2(SqlServer.2008.LinqService).sql | 26 +- ...eryFilter3(SqlServer.2008.LinqService).sql | 34 +- ...Test1(SqlServer.2008.MS.LinqService,1).sql | 63 ++- ...Test1(SqlServer.2008.MS.LinqService,2).sql | 63 ++- ...ubquery(SqlServer.2008.MS.LinqService).sql | 12 +- ...Filter1(SqlServer.2008.MS.LinqService).sql | 22 +- ...Filter2(SqlServer.2008.MS.LinqService).sql | 26 +- ...Filter3(SqlServer.2008.MS.LinqService).sql | 34 +- ...s.ComparisonTest1(SqlServer.2008.MS,1).sql | 63 ++- ...s.ComparisonTest1(SqlServer.2008.MS,2).sql | 63 ++- ...Tests.Issue383Test2(SqlServer.2008.MS).sql | 10 +- ...sts.BooleanSubquery(SqlServer.2008.MS).sql | 12 +- ...sue_SubQueryFilter1(SqlServer.2008.MS).sql | 22 +- ...sue_SubQueryFilter2(SqlServer.2008.MS).sql | 26 +- ...sue_SubQueryFilter3(SqlServer.2008.MS).sql | 34 +- ...eryTakesForever4394(SqlServer.2008.MS).sql | 420 ++++++------------ ...sts.MergeSubquery(SqlServer.2008.MS,1).sql | 61 +++ ...sts.MergeSubquery(SqlServer.2008.MS,2).sql | 61 +++ ...ests.ComparisonTest1(SqlServer.2008,1).sql | 63 ++- ...ests.ComparisonTest1(SqlServer.2008,2).sql | 63 ++- ...eryTests.Issue383Test2(SqlServer.2008).sql | 10 +- ...eTests.BooleanSubquery(SqlServer.2008).sql | 12 +- ....Issue_SubQueryFilter1(SqlServer.2008).sql | 22 +- ....Issue_SubQueryFilter2(SqlServer.2008).sql | 26 +- ....Issue_SubQueryFilter3(SqlServer.2008).sql | 34 +- ....QueryTakesForever4394(SqlServer.2008).sql | 420 ++++++------------ ...eTests.MergeSubquery(SqlServer.2008,1).sql | 61 +++ ...eTests.MergeSubquery(SqlServer.2008,2).sql | 61 +++ 32 files changed, 988 insertions(+), 996 deletions(-) create mode 100644 SqlServer.2008.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008.MS,1).sql create mode 100644 SqlServer.2008.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008.MS,2).sql create mode 100644 SqlServer.2008/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008,1).sql create mode 100644 SqlServer.2008/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008,2).sql diff --git a/SqlServer.2008.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.LinqService,1).sql b/SqlServer.2008.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.LinqService,1).sql index dc46abbe23ed..a39bdafda405 100644 --- a/SqlServer.2008.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.LinqService,1).sql +++ b/SqlServer.2008.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.LinqService,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2008.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.LinqService,2).sql b/SqlServer.2008.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.LinqService,2).sql index dc46abbe23ed..a39bdafda405 100644 --- a/SqlServer.2008.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.LinqService,2).sql +++ b/SqlServer.2008.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.LinqService,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008.LinqService).sql b/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008.LinqService).sql index 672941da9ac5..75afaa2a2970 100644 --- a/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008.LinqService).sql +++ b/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008.LinqService).sql b/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008.LinqService).sql index 475c4304b76f..0431de38de02 100644 --- a/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008.LinqService).sql +++ b/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008.LinqService).sql b/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008.LinqService).sql index 41cd8a548c62..cc044044bcc9 100644 --- a/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008.LinqService).sql +++ b/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008.LinqService).sql b/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008.LinqService).sql index c9bd6a2d1174..64601eb7a27c 100644 --- a/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008.LinqService).sql +++ b/SqlServer.2008.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2008.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS.LinqService,1).sql b/SqlServer.2008.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS.LinqService,1).sql index 03ac8f4d7e67..c5e7bf02860a 100644 --- a/SqlServer.2008.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS.LinqService,1).sql +++ b/SqlServer.2008.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS.LinqService,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2008.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS.LinqService,2).sql b/SqlServer.2008.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS.LinqService,2).sql index 03ac8f4d7e67..c5e7bf02860a 100644 --- a/SqlServer.2008.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS.LinqService,2).sql +++ b/SqlServer.2008.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS.LinqService,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008.MS.LinqService).sql b/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008.MS.LinqService).sql index 2fdda3d0dc83..f4c29a55a4d2 100644 --- a/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008.MS.LinqService).sql +++ b/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008.MS.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008.MS.LinqService).sql b/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008.MS.LinqService).sql index 7b13cefb8932..2dcc85d744a5 100644 --- a/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008.MS.LinqService).sql +++ b/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008.MS.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008.MS.LinqService).sql b/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008.MS.LinqService).sql index 23c40f299f56..44c33a8a80cf 100644 --- a/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008.MS.LinqService).sql +++ b/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008.MS.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008.MS.LinqService).sql b/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008.MS.LinqService).sql index 97bb08c355ba..799b2b5fe0a9 100644 --- a/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008.MS.LinqService).sql +++ b/SqlServer.2008.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008.MS.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2008.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS,1).sql b/SqlServer.2008.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS,1).sql index 03ac8f4d7e67..c5e7bf02860a 100644 --- a/SqlServer.2008.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS,1).sql +++ b/SqlServer.2008.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2008.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS,2).sql b/SqlServer.2008.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS,2).sql index 03ac8f4d7e67..c5e7bf02860a 100644 --- a/SqlServer.2008.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS,2).sql +++ b/SqlServer.2008.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008.MS,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2008.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2008.MS).sql b/SqlServer.2008.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2008.MS).sql index ab0686c1e2e1..3a511a683516 100644 --- a/SqlServer.2008.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2008.MS).sql +++ b/SqlServer.2008.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2008.MS).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008.MS).sql b/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008.MS).sql index 2fdda3d0dc83..f4c29a55a4d2 100644 --- a/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008.MS).sql +++ b/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008.MS).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008.MS).sql b/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008.MS).sql index 7b13cefb8932..2dcc85d744a5 100644 --- a/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008.MS).sql +++ b/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008.MS).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008.MS).sql b/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008.MS).sql index 23c40f299f56..44c33a8a80cf 100644 --- a/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008.MS).sql +++ b/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008.MS).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008.MS).sql b/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008.MS).sql index 97bb08c355ba..799b2b5fe0a9 100644 --- a/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008.MS).sql +++ b/SqlServer.2008.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008.MS).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2008.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2008.MS).sql b/SqlServer.2008.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2008.MS).sql index 80bce061c636..2e83f11d96c4 100644 --- a/SqlServer.2008.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2008.MS).sql +++ b/SqlServer.2008.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2008.MS).sql @@ -2,9 +2,9 @@ -- SqlServer.2008.MS SqlServer.2008 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -49,18 +49,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ) THEN 1 ELSE 0 @@ -70,183 +70,119 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ) THEN 1 ELSE 0 END FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -254,9 +190,9 @@ BeforeExecute -- SqlServer.2008.MS SqlServer.2008 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -301,18 +237,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ) THEN 1 ELSE 0 @@ -322,16 +258,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -367,18 +303,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ) THEN 1 ELSE 0 @@ -388,16 +324,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -433,18 +369,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ) THEN 1 ELSE 0 @@ -454,16 +390,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -499,18 +435,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ) THEN 1 ELSE 0 @@ -520,16 +456,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -565,18 +501,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ) THEN 1 ELSE 0 @@ -586,16 +522,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -631,18 +567,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ) THEN 1 ELSE 0 @@ -652,16 +588,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -697,18 +633,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ) THEN 1 ELSE 0 @@ -718,16 +654,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -763,18 +699,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ) THEN 1 ELSE 0 @@ -784,183 +720,119 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ) THEN 1 ELSE 0 END FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2008.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008.MS,1).sql b/SqlServer.2008.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008.MS,1).sql new file mode 100644 index 000000000000..fbde9ca91d36 --- /dev/null +++ b/SqlServer.2008.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008.MS,1).sql @@ -0,0 +1,61 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +IF (OBJECT_ID(N'[tempdb]..[#MergeTemp]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2008.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008.MS,2).sql b/SqlServer.2008.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008.MS,2).sql new file mode 100644 index 000000000000..fbde9ca91d36 --- /dev/null +++ b/SqlServer.2008.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008.MS,2).sql @@ -0,0 +1,61 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +IF (OBJECT_ID(N'[tempdb]..[#MergeTemp]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2008/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008,1).sql b/SqlServer.2008/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008,1).sql index dc46abbe23ed..a39bdafda405 100644 --- a/SqlServer.2008/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008,1).sql +++ b/SqlServer.2008/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2008/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008,2).sql b/SqlServer.2008/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008,2).sql index dc46abbe23ed..a39bdafda405 100644 --- a/SqlServer.2008/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008,2).sql +++ b/SqlServer.2008/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2008,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SqlServer.2008/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2008).sql b/SqlServer.2008/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2008).sql index 64b6da4a16ef..cb91a06bdd59 100644 --- a/SqlServer.2008/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2008).sql +++ b/SqlServer.2008/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2008).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008).sql b/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008).sql index 672941da9ac5..75afaa2a2970 100644 --- a/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008).sql +++ b/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2008).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008).sql b/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008).sql index 475c4304b76f..0431de38de02 100644 --- a/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008).sql +++ b/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2008).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008).sql b/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008).sql index 41cd8a548c62..cc044044bcc9 100644 --- a/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008).sql +++ b/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2008).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008).sql b/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008).sql index c9bd6a2d1174..64601eb7a27c 100644 --- a/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008).sql +++ b/SqlServer.2008/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2008).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2008/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2008).sql b/SqlServer.2008/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2008).sql index 65eb85e1d0b7..bcc4ebbc42c6 100644 --- a/SqlServer.2008/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2008).sql +++ b/SqlServer.2008/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2008).sql @@ -2,9 +2,9 @@ -- SqlServer.2008 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -49,18 +49,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ) THEN 1 ELSE 0 @@ -70,183 +70,119 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ) THEN 1 ELSE 0 END FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -254,9 +190,9 @@ BeforeExecute -- SqlServer.2008 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -301,18 +237,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ) THEN 1 ELSE 0 @@ -322,16 +258,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -367,18 +303,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ) THEN 1 ELSE 0 @@ -388,16 +324,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -433,18 +369,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ) THEN 1 ELSE 0 @@ -454,16 +390,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -499,18 +435,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ) THEN 1 ELSE 0 @@ -520,16 +456,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -565,18 +501,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ) THEN 1 ELSE 0 @@ -586,16 +522,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -631,18 +567,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ) THEN 1 ELSE 0 @@ -652,16 +588,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -697,18 +633,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ) THEN 1 ELSE 0 @@ -718,16 +654,16 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ) THEN 1 @@ -763,18 +699,18 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), CASE WHEN EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ) THEN 1 ELSE 0 @@ -784,183 +720,119 @@ SELECT SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ) THEN 1 ELSE 0 END FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2008/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008,1).sql b/SqlServer.2008/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008,1).sql new file mode 100644 index 000000000000..b477629ff37d --- /dev/null +++ b/SqlServer.2008/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008,1).sql @@ -0,0 +1,61 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2008 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2008 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2008 + +IF (OBJECT_ID(N'[tempdb]..[#MergeTemp]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2008/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008,2).sql b/SqlServer.2008/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008,2).sql new file mode 100644 index 000000000000..b477629ff37d --- /dev/null +++ b/SqlServer.2008/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2008,2).sql @@ -0,0 +1,61 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2008 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2008 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2008 + +IF (OBJECT_ID(N'[tempdb]..[#MergeTemp]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#MergeTemp] + From a6acf210130036042b5b4bd99c9dd4657c635900 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 19:55:56 +0000 Subject: [PATCH 13/40] [Linux / DB2 LUW 11.5] baselines --- ...sts.ComparisonTest1(DB2.LinqService,1).sql | 23 +++--- ...sts.ComparisonTest1(DB2.LinqService,2).sql | 23 +++--- ...Tests.UpdateRowSelect(DB2.LinqService).sql | 39 +++-------- ...Tests.BooleanSubquery(DB2.LinqService).sql | 12 +++- ...Issue_SubQueryFilter1(DB2.LinqService).sql | 22 +++--- ...Issue_SubQueryFilter2(DB2.LinqService).sql | 26 ++++--- ...Issue_SubQueryFilter3(DB2.LinqService).sql | 34 ++++----- ...xpressionsTests.ComparisonTest1(DB2,1).sql | 23 +++--- ...xpressionsTests.ComparisonTest1(DB2,2).sql | 23 +++--- ....Linq.SqlRowTests.UpdateRowSelect(DB2).sql | 39 +++-------- ....Linq.SubQueryTests.Issue383Test2(DB2).sql | 10 ++- ...s.Linq.WhereTests.BooleanSubquery(DB2).sql | 12 +++- ....WhereTests.Issue_SubQueryFilter1(DB2).sql | 22 +++--- ....WhereTests.Issue_SubQueryFilter2(DB2).sql | 26 ++++--- ....WhereTests.Issue_SubQueryFilter3(DB2).sql | 34 ++++----- ...Update.MergeTests.MergeSubquery(DB2,1).sql | 70 +++++++++++++++++++ ...Update.MergeTests.MergeSubquery(DB2,2).sql | 70 +++++++++++++++++++ 17 files changed, 306 insertions(+), 202 deletions(-) create mode 100644 DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(DB2,1).sql create mode 100644 DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(DB2,2).sql diff --git a/DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2.LinqService,1).sql b/DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2.LinqService,1).sql index efe8c8e3f2cf..35544b85fb72 100644 --- a/DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2.LinqService,1).sql +++ b/DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2.LinqService,1).sql @@ -10,10 +10,11 @@ SELECT SELECT * FROM - "Person" "t1", + "Person" "t1" + WHERE ( SELECT - COUNT("t2"."PersonID") as "cond" + COUNT("t2"."PersonID") FROM "Patient" "t2" WHERE @@ -25,24 +26,22 @@ SELECT WHERE "t3"."PersonID" = @personId_1 ) - ) "t4", + ) = 0 AND ( SELECT - COUNT("t5"."PersonID") as "cond" + COUNT("t4"."PersonID") FROM - "Patient" "t5" + "Patient" "t4" WHERE - "t5"."PersonID" = @personId_1 AND "t5"."PersonID" NOT IN ( + "t4"."PersonID" = @personId_1 AND "t4"."PersonID" NOT IN ( SELECT - "t6"."PersonID" + "t5"."PersonID" FROM - "Patient" "t6" + "Patient" "t5" WHERE - "t6"."PersonID" = @personId + "t5"."PersonID" = @personId ) - ) "t7" - WHERE - "t4"."cond" = 0 AND "t7"."cond" = 0 + ) = 0 ) AS smallint) FROM SYSIBM.SYSDUMMY1 diff --git a/DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2.LinqService,2).sql b/DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2.LinqService,2).sql index efe8c8e3f2cf..35544b85fb72 100644 --- a/DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2.LinqService,2).sql +++ b/DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2.LinqService,2).sql @@ -10,10 +10,11 @@ SELECT SELECT * FROM - "Person" "t1", + "Person" "t1" + WHERE ( SELECT - COUNT("t2"."PersonID") as "cond" + COUNT("t2"."PersonID") FROM "Patient" "t2" WHERE @@ -25,24 +26,22 @@ SELECT WHERE "t3"."PersonID" = @personId_1 ) - ) "t4", + ) = 0 AND ( SELECT - COUNT("t5"."PersonID") as "cond" + COUNT("t4"."PersonID") FROM - "Patient" "t5" + "Patient" "t4" WHERE - "t5"."PersonID" = @personId_1 AND "t5"."PersonID" NOT IN ( + "t4"."PersonID" = @personId_1 AND "t4"."PersonID" NOT IN ( SELECT - "t6"."PersonID" + "t5"."PersonID" FROM - "Patient" "t6" + "Patient" "t5" WHERE - "t6"."PersonID" = @personId + "t5"."PersonID" = @personId ) - ) "t7" - WHERE - "t4"."cond" = 0 AND "t7"."cond" = 0 + ) = 0 ) AS smallint) FROM SYSIBM.SYSDUMMY1 diff --git a/DB2.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(DB2.LinqService).sql index 21bae9a16da5..6ac1cb90b7b6 100644 --- a/DB2.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(DB2.LinqService).sql @@ -2,44 +2,21 @@ -- DB2 DB2.LUW DB2LUW UPDATE - "Ints" + "Ints" "i" SET - "One" = "Ints"."Two" * 5, + "One" = "i"."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - "j_1"."Three" * 100 + "i"."Two" * 10, + "j"."Three" * 100 FROM - "Ints" "i_1", - "Ints" "j_1" + "Ints" "j" WHERE - "i_1"."One" = 10 AND - "j_1"."One" = 1 AND - "Ints"."One" = "i_1"."One" AND - "Ints"."Two" = "i_1"."Two" AND - "Ints"."Three" = "i_1"."Three" AND - "Ints"."Four" = "i_1"."Four" AND - "Ints"."Five" = "i_1"."Five" AND - ("Ints"."Nil" = "i_1"."Nil" OR "Ints"."Nil" IS NULL AND "i_1"."Nil" IS NULL) + "j"."One" = 1 ), - ("Four", "Nil") = ("Ints"."One" * "Ints"."Four", 600) + ("Four", "Nil") = ("i"."One" * "i"."Four", 600) WHERE - EXISTS( - SELECT - * - FROM - "Ints" "i", - "Ints" "j" - WHERE - "i"."One" = 10 AND - "j"."One" = 1 AND - "Ints"."One" = "i"."One" AND - "Ints"."Two" = "i"."Two" AND - "Ints"."Three" = "i"."Three" AND - "Ints"."Four" = "i"."Four" AND - "Ints"."Five" = "i"."Five" AND - ("Ints"."Nil" = "i"."Nil" OR "Ints"."Nil" IS NULL AND "i"."Nil" IS NULL) - ) + "i"."One" = 10 BeforeExecute -- DB2 DB2.LUW DB2LUW diff --git a/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(DB2.LinqService).sql index 82776278b717..a50757b1ec62 100644 --- a/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(DB2.LinqService).sql @@ -5,8 +5,14 @@ SELECT "t"."Id", "t"."BoolValue" FROM - "WhereWithBool" "t", - "WhereWithBool" "x" + "WhereWithBool" "t" WHERE - "x"."BoolValue" AND "x"."Id" = 1 + ( + SELECT + "x"."BoolValue" + FROM + "WhereWithBool" "x" + WHERE + "x"."Id" = 1 + ) diff --git a/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(DB2.LinqService).sql index b115a70bdd17..7403d89d7921 100644 --- a/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(DB2.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = "t2"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t3" - WHERE - "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = "t3"."cond" + ) ) ORDER BY "t1"."PersonID" diff --git a/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(DB2.LinqService).sql index 200e689e276f..c21eda1894b4 100644 --- a/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(DB2.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND + "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t1" - WHERE - "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND - "e"."PersonID" = "t1"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND + "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND - "e_1"."PersonID" = "t2"."cond" + ) ) ORDER BY "p"."PersonID" diff --git a/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(DB2.LinqService).sql index c9ea08406868..b9e1f8916d90 100644 --- a/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(DB2.LinqService).sql @@ -16,30 +16,32 @@ WHERE * FROM "Person" "p" - INNER JOIN ( - SELECT - "d"."PersonID" as "cond", - ROW_NUMBER() OVER (PARTITION BY "d"."PersonID" ORDER BY "d"."PersonID") as "rn" - FROM - "Person" "d" - ) "t1" ON "t1"."cond" = "patient_1"."PersonID" AND "t1"."rn" <= 1 WHERE - "p"."FirstName" LIKE @filter ESCAPE '~' AND "p"."PersonID" = "t1"."cond" + "p"."FirstName" LIKE @filter ESCAPE '~' AND "p"."PersonID" = ( + SELECT + "d"."PersonID" + FROM + "Person" "d" + WHERE + "d"."PersonID" = "patient_1"."PersonID" + FETCH NEXT 1 ROWS ONLY + ) ) AND EXISTS( SELECT * FROM "Person" "p_1" - INNER JOIN ( - SELECT - "d_1"."PersonID" as "cond", - ROW_NUMBER() OVER (PARTITION BY "d_1"."PersonID" ORDER BY "d_1"."PersonID") as "rn" - FROM - "Person" "d_1" - ) "t2" ON "t2"."cond" = "patient_1"."PersonID" AND "t2"."rn" <= 1 WHERE - "p_1"."FirstName" LIKE @filter_1 ESCAPE '~' AND "p_1"."PersonID" = "t2"."cond" + "p_1"."FirstName" LIKE @filter_1 ESCAPE '~' AND "p_1"."PersonID" = ( + SELECT + "d_1"."PersonID" + FROM + "Person" "d_1" + WHERE + "d_1"."PersonID" = "patient_1"."PersonID" + FETCH NEXT 1 ROWS ONLY + ) ) ORDER BY "patient_1"."PersonID" diff --git a/DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2,1).sql b/DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2,1).sql index efe8c8e3f2cf..35544b85fb72 100644 --- a/DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2,1).sql +++ b/DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2,1).sql @@ -10,10 +10,11 @@ SELECT SELECT * FROM - "Person" "t1", + "Person" "t1" + WHERE ( SELECT - COUNT("t2"."PersonID") as "cond" + COUNT("t2"."PersonID") FROM "Patient" "t2" WHERE @@ -25,24 +26,22 @@ SELECT WHERE "t3"."PersonID" = @personId_1 ) - ) "t4", + ) = 0 AND ( SELECT - COUNT("t5"."PersonID") as "cond" + COUNT("t4"."PersonID") FROM - "Patient" "t5" + "Patient" "t4" WHERE - "t5"."PersonID" = @personId_1 AND "t5"."PersonID" NOT IN ( + "t4"."PersonID" = @personId_1 AND "t4"."PersonID" NOT IN ( SELECT - "t6"."PersonID" + "t5"."PersonID" FROM - "Patient" "t6" + "Patient" "t5" WHERE - "t6"."PersonID" = @personId + "t5"."PersonID" = @personId ) - ) "t7" - WHERE - "t4"."cond" = 0 AND "t7"."cond" = 0 + ) = 0 ) AS smallint) FROM SYSIBM.SYSDUMMY1 diff --git a/DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2,2).sql b/DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2,2).sql index efe8c8e3f2cf..35544b85fb72 100644 --- a/DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2,2).sql +++ b/DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(DB2,2).sql @@ -10,10 +10,11 @@ SELECT SELECT * FROM - "Person" "t1", + "Person" "t1" + WHERE ( SELECT - COUNT("t2"."PersonID") as "cond" + COUNT("t2"."PersonID") FROM "Patient" "t2" WHERE @@ -25,24 +26,22 @@ SELECT WHERE "t3"."PersonID" = @personId_1 ) - ) "t4", + ) = 0 AND ( SELECT - COUNT("t5"."PersonID") as "cond" + COUNT("t4"."PersonID") FROM - "Patient" "t5" + "Patient" "t4" WHERE - "t5"."PersonID" = @personId_1 AND "t5"."PersonID" NOT IN ( + "t4"."PersonID" = @personId_1 AND "t4"."PersonID" NOT IN ( SELECT - "t6"."PersonID" + "t5"."PersonID" FROM - "Patient" "t6" + "Patient" "t5" WHERE - "t6"."PersonID" = @personId + "t5"."PersonID" = @personId ) - ) "t7" - WHERE - "t4"."cond" = 0 AND "t7"."cond" = 0 + ) = 0 ) AS smallint) FROM SYSIBM.SYSDUMMY1 diff --git a/DB2/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(DB2).sql b/DB2/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(DB2).sql index 21bae9a16da5..6ac1cb90b7b6 100644 --- a/DB2/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(DB2).sql +++ b/DB2/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(DB2).sql @@ -2,44 +2,21 @@ -- DB2 DB2.LUW DB2LUW UPDATE - "Ints" + "Ints" "i" SET - "One" = "Ints"."Two" * 5, + "One" = "i"."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - "j_1"."Three" * 100 + "i"."Two" * 10, + "j"."Three" * 100 FROM - "Ints" "i_1", - "Ints" "j_1" + "Ints" "j" WHERE - "i_1"."One" = 10 AND - "j_1"."One" = 1 AND - "Ints"."One" = "i_1"."One" AND - "Ints"."Two" = "i_1"."Two" AND - "Ints"."Three" = "i_1"."Three" AND - "Ints"."Four" = "i_1"."Four" AND - "Ints"."Five" = "i_1"."Five" AND - ("Ints"."Nil" = "i_1"."Nil" OR "Ints"."Nil" IS NULL AND "i_1"."Nil" IS NULL) + "j"."One" = 1 ), - ("Four", "Nil") = ("Ints"."One" * "Ints"."Four", 600) + ("Four", "Nil") = ("i"."One" * "i"."Four", 600) WHERE - EXISTS( - SELECT - * - FROM - "Ints" "i", - "Ints" "j" - WHERE - "i"."One" = 10 AND - "j"."One" = 1 AND - "Ints"."One" = "i"."One" AND - "Ints"."Two" = "i"."Two" AND - "Ints"."Three" = "i"."Three" AND - "Ints"."Four" = "i"."Four" AND - "Ints"."Five" = "i"."Five" AND - ("Ints"."Nil" = "i"."Nil" OR "Ints"."Nil" IS NULL AND "i"."Nil" IS NULL) - ) + "i"."One" = 10 BeforeExecute -- DB2 DB2.LUW DB2LUW diff --git a/DB2/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(DB2).sql b/DB2/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(DB2).sql index 34cc3425f9dc..fd5b070a4f98 100644 --- a/DB2/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(DB2).sql +++ b/DB2/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(DB2).sql @@ -7,7 +7,14 @@ SELECT "d"."Distributor_Name", "cp"."Street_Number", "cp"."Street_Name", - "c_1"."City_Name", + ( + SELECT + "c_1"."City_Name" + FROM + "Cities" "c_1" + WHERE + "c_1"."City_Code" = "cp"."City_Code" OR "c_1"."City_Code" IS NULL AND "cp"."City_Code" IS NULL + ), "cp"."State", "cp"."Zip_Code", "cp"."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" "dcp" ON "d"."Distributor_Id" = "dcp"."Distributor_Id" INNER JOIN "Commercial_Property" "cp" ON "dcp"."Commercial_Property_Id" = "cp"."Commercial_Property_Id" INNER JOIN "Contract_Dates" "cd" ON "cda"."Contract_Id" = "cd"."Contract_Id" - INNER JOIN "Cities" "c_1" ON "c_1"."City_Code" = "cp"."City_Code" OR "c_1"."City_Code" IS NULL AND "cp"."City_Code" IS NULL WHERE "cda"."Contract_Id" = 198827882 AND "cda"."Distributor_Type_Code" = 'CC' AND diff --git a/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(DB2).sql b/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(DB2).sql index 82776278b717..a50757b1ec62 100644 --- a/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(DB2).sql +++ b/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(DB2).sql @@ -5,8 +5,14 @@ SELECT "t"."Id", "t"."BoolValue" FROM - "WhereWithBool" "t", - "WhereWithBool" "x" + "WhereWithBool" "t" WHERE - "x"."BoolValue" AND "x"."Id" = 1 + ( + SELECT + "x"."BoolValue" + FROM + "WhereWithBool" "x" + WHERE + "x"."Id" = 1 + ) diff --git a/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(DB2).sql b/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(DB2).sql index b115a70bdd17..7403d89d7921 100644 --- a/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(DB2).sql +++ b/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(DB2).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = "t2"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t3" - WHERE - "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = "t3"."cond" + ) ) ORDER BY "t1"."PersonID" diff --git a/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(DB2).sql b/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(DB2).sql index 200e689e276f..c21eda1894b4 100644 --- a/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(DB2).sql +++ b/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(DB2).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND + "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t1" - WHERE - "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND - "e"."PersonID" = "t1"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND + "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND - "e_1"."PersonID" = "t2"."cond" + ) ) ORDER BY "p"."PersonID" diff --git a/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(DB2).sql b/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(DB2).sql index c9ea08406868..b9e1f8916d90 100644 --- a/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(DB2).sql +++ b/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(DB2).sql @@ -16,30 +16,32 @@ WHERE * FROM "Person" "p" - INNER JOIN ( - SELECT - "d"."PersonID" as "cond", - ROW_NUMBER() OVER (PARTITION BY "d"."PersonID" ORDER BY "d"."PersonID") as "rn" - FROM - "Person" "d" - ) "t1" ON "t1"."cond" = "patient_1"."PersonID" AND "t1"."rn" <= 1 WHERE - "p"."FirstName" LIKE @filter ESCAPE '~' AND "p"."PersonID" = "t1"."cond" + "p"."FirstName" LIKE @filter ESCAPE '~' AND "p"."PersonID" = ( + SELECT + "d"."PersonID" + FROM + "Person" "d" + WHERE + "d"."PersonID" = "patient_1"."PersonID" + FETCH NEXT 1 ROWS ONLY + ) ) AND EXISTS( SELECT * FROM "Person" "p_1" - INNER JOIN ( - SELECT - "d_1"."PersonID" as "cond", - ROW_NUMBER() OVER (PARTITION BY "d_1"."PersonID" ORDER BY "d_1"."PersonID") as "rn" - FROM - "Person" "d_1" - ) "t2" ON "t2"."cond" = "patient_1"."PersonID" AND "t2"."rn" <= 1 WHERE - "p_1"."FirstName" LIKE @filter_1 ESCAPE '~' AND "p_1"."PersonID" = "t2"."cond" + "p_1"."FirstName" LIKE @filter_1 ESCAPE '~' AND "p_1"."PersonID" = ( + SELECT + "d_1"."PersonID" + FROM + "Person" "d_1" + WHERE + "d_1"."PersonID" = "patient_1"."PersonID" + FETCH NEXT 1 ROWS ONLY + ) ) ORDER BY "patient_1"."PersonID" diff --git a/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(DB2,1).sql b/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(DB2,1).sql new file mode 100644 index 000000000000..f4148297e277 --- /dev/null +++ b/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(DB2,1).sql @@ -0,0 +1,70 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +DECLARE GLOBAL TEMPORARY TABLE SESSION."MergeTemp" +( + ID Int NOT NULL, + "Name" NVarChar(20) NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +INSERT INTO SESSION."MergeTemp" +( + ID, + "Name" +) +VALUES +(1,'John') + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +MERGE INTO SESSION."MergeTemp" "t1" +USING (SELECT ( + SELECT + "t".ID + FROM + SESSION."MergeTemp" "t" + WHERE + "t"."Name" = 'John' +) AS ID FROM SYSIBM.SYSDUMMY1 FETCH FIRST 1 ROW ONLY) "s" ON +( + "t1".ID = "s".ID +) +WHEN MATCHED THEN + UPDATE + SET + ID = "t1".ID, + "Name" = "t1"."Name" +WHEN NOT MATCHED THEN + INSERT + ( + ID, + "Name" + ) + VALUES + ( + ( + SELECT + "t".ID + FROM + SESSION."MergeTemp" "t" + WHERE + "t"."Name" = 'John' + ), + 'John II' + ) + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +BEGIN + DECLARE CONTINUE HANDLER FOR SQLSTATE '42704' BEGIN END; + EXECUTE IMMEDIATE 'DROP TABLE SESSION."MergeTemp"'; +END + diff --git a/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(DB2,2).sql b/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(DB2,2).sql new file mode 100644 index 000000000000..f4148297e277 --- /dev/null +++ b/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(DB2,2).sql @@ -0,0 +1,70 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +DECLARE GLOBAL TEMPORARY TABLE SESSION."MergeTemp" +( + ID Int NOT NULL, + "Name" NVarChar(20) NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +INSERT INTO SESSION."MergeTemp" +( + ID, + "Name" +) +VALUES +(1,'John') + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +MERGE INTO SESSION."MergeTemp" "t1" +USING (SELECT ( + SELECT + "t".ID + FROM + SESSION."MergeTemp" "t" + WHERE + "t"."Name" = 'John' +) AS ID FROM SYSIBM.SYSDUMMY1 FETCH FIRST 1 ROW ONLY) "s" ON +( + "t1".ID = "s".ID +) +WHEN MATCHED THEN + UPDATE + SET + ID = "t1".ID, + "Name" = "t1"."Name" +WHEN NOT MATCHED THEN + INSERT + ( + ID, + "Name" + ) + VALUES + ( + ( + SELECT + "t".ID + FROM + SESSION."MergeTemp" "t" + WHERE + "t"."Name" = 'John' + ), + 'John II' + ) + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +BEGIN + DECLARE CONTINUE HANDLER FOR SQLSTATE '42704' BEGIN END; + EXECUTE IMMEDIATE 'DROP TABLE SESSION."MergeTemp"'; +END + From 2f331a002b87ee2147ade0d134aa93aec0747716 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:03:03 +0000 Subject: [PATCH 14/40] [Linux / Informix 14.10] baselines --- ...risonTest1(Informix.DB2.LinqService,1).sql | 63 +++++++++---------- ...risonTest1(Informix.DB2.LinqService,2).sql | 63 +++++++++---------- ...leanSubquery(Informix.DB2.LinqService).sql | 12 +++- ...ertOrUpdate1(Informix.DB2.LinqService).sql | 8 +-- ...ertOrUpdate2(Informix.DB2.LinqService).sql | 6 +- ...ertOrUpdate3(Informix.DB2.LinqService).sql | 8 +-- ...ertOrUpdate4(Informix.DB2.LinqService).sql | 8 +-- ...sTests.ComparisonTest1(Informix.DB2,1).sql | 63 +++++++++---------- ...sTests.ComparisonTest1(Informix.DB2,2).sql | 63 +++++++++---------- ...QueryTests.Issue383Test2(Informix.DB2).sql | 10 ++- ...ereTests.BooleanSubquery(Informix.DB2).sql | 12 +++- ...ertTests.InsertOrUpdate1(Informix.DB2).sql | 8 +-- ...ertTests.InsertOrUpdate2(Informix.DB2).sql | 6 +- ...ertTests.InsertOrUpdate3(Informix.DB2).sql | 8 +-- ...sts.InsertOrUpdate3Async(Informix.DB2).sql | 8 +-- ...ts.InsertOrUpdate3xAsync(Informix.DB2).sql | 2 +- ...ertTests.InsertOrUpdate4(Informix.DB2).sql | 8 +-- ...rgeTests.MergeSubquery(Informix.DB2,1).sql | 54 ++++++++++++++++ ...rgeTests.MergeSubquery(Informix.DB2,2).sql | 54 ++++++++++++++++ 19 files changed, 293 insertions(+), 171 deletions(-) create mode 100644 Informix.DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(Informix.DB2,1).sql create mode 100644 Informix.DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(Informix.DB2,2).sql diff --git a/Informix.DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2.LinqService,1).sql b/Informix.DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2.LinqService,1).sql index f35fe63d66ad..8145cef9cb31 100644 --- a/Informix.DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2.LinqService,1).sql +++ b/Informix.DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2.LinqService,1).sql @@ -6,39 +6,38 @@ SELECT SELECT * FROM - Person t7 - CROSS JOIN ( - SELECT - COUNT(t1.PersonID) as cond - FROM - Patient t1 - WHERE - t1.PersonID = 0 AND NOT EXISTS( - SELECT - * - FROM - Patient t2 - WHERE - t2.PersonID = 2 AND t1.PersonID = t2.PersonID - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4.PersonID) as cond - FROM - Patient t4 - WHERE - t4.PersonID = 2 AND NOT EXISTS( - SELECT - * - FROM - Patient t5 - WHERE - t5.PersonID = 0 AND t4.PersonID = t5.PersonID - ) - ) t6 + Person t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2.PersonID) + FROM + Patient t2 + WHERE + t2.PersonID = 0 AND NOT EXISTS( + SELECT + * + FROM + Patient t3 + WHERE + t3.PersonID = 2 AND t2.PersonID = t3.PersonID + ) + ) = 0 AND + ( + SELECT + COUNT(t4.PersonID) + FROM + Patient t4 + WHERE + t4.PersonID = 2 AND NOT EXISTS( + SELECT + * + FROM + Patient t5 + WHERE + t5.PersonID = 0 AND t4.PersonID = t5.PersonID + ) + ) = 0 ) FROM table(set{1}) diff --git a/Informix.DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2.LinqService,2).sql b/Informix.DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2.LinqService,2).sql index f35fe63d66ad..8145cef9cb31 100644 --- a/Informix.DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2.LinqService,2).sql +++ b/Informix.DB2.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2.LinqService,2).sql @@ -6,39 +6,38 @@ SELECT SELECT * FROM - Person t7 - CROSS JOIN ( - SELECT - COUNT(t1.PersonID) as cond - FROM - Patient t1 - WHERE - t1.PersonID = 0 AND NOT EXISTS( - SELECT - * - FROM - Patient t2 - WHERE - t2.PersonID = 2 AND t1.PersonID = t2.PersonID - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4.PersonID) as cond - FROM - Patient t4 - WHERE - t4.PersonID = 2 AND NOT EXISTS( - SELECT - * - FROM - Patient t5 - WHERE - t5.PersonID = 0 AND t4.PersonID = t5.PersonID - ) - ) t6 + Person t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2.PersonID) + FROM + Patient t2 + WHERE + t2.PersonID = 0 AND NOT EXISTS( + SELECT + * + FROM + Patient t3 + WHERE + t3.PersonID = 2 AND t2.PersonID = t3.PersonID + ) + ) = 0 AND + ( + SELECT + COUNT(t4.PersonID) + FROM + Patient t4 + WHERE + t4.PersonID = 2 AND NOT EXISTS( + SELECT + * + FROM + Patient t5 + WHERE + t5.PersonID = 0 AND t4.PersonID = t5.PersonID + ) + ) = 0 ) FROM table(set{1}) diff --git a/Informix.DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Informix.DB2.LinqService).sql b/Informix.DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Informix.DB2.LinqService).sql index 20451c3caed1..3d812d310e9e 100644 --- a/Informix.DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Informix.DB2.LinqService).sql +++ b/Informix.DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Informix.DB2.LinqService).sql @@ -5,8 +5,14 @@ SELECT t.Id, t.BoolValue FROM - WhereWithBool t, - WhereWithBool x + WhereWithBool t WHERE - x.BoolValue AND x.Id = 1 + ( + SELECT + x.BoolValue + FROM + WhereWithBool x + WHERE + x.Id = 1 + ) diff --git a/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate1(Informix.DB2.LinqService).sql b/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate1(Informix.DB2.LinqService).sql index 2686515b5874..02214fe535b4 100644 --- a/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate1(Informix.DB2.LinqService).sql +++ b/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate1(Informix.DB2.LinqService).sql @@ -71,7 +71,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -85,7 +85,7 @@ INSERT INTO Patient ) VALUES ( - @id, + @id::Int, 'abc' ) @@ -101,7 +101,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -115,7 +115,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix diff --git a/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate2(Informix.DB2.LinqService).sql b/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate2(Informix.DB2.LinqService).sql index 807ef3ac0c3a..8471ca52a8e7 100644 --- a/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate2(Informix.DB2.LinqService).sql +++ b/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate2(Informix.DB2.LinqService).sql @@ -69,7 +69,7 @@ SELECT FROM Patient t1 WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -83,7 +83,7 @@ INSERT INTO Patient ) VALUES ( - @id, + @id::Int, 'negative' ) @@ -110,7 +110,7 @@ SELECT FROM Patient t1 WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix diff --git a/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3(Informix.DB2.LinqService).sql b/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3(Informix.DB2.LinqService).sql index 2686515b5874..02214fe535b4 100644 --- a/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3(Informix.DB2.LinqService).sql +++ b/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3(Informix.DB2.LinqService).sql @@ -71,7 +71,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -85,7 +85,7 @@ INSERT INTO Patient ) VALUES ( - @id, + @id::Int, 'abc' ) @@ -101,7 +101,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -115,7 +115,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix diff --git a/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate4(Informix.DB2.LinqService).sql b/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate4(Informix.DB2.LinqService).sql index 934b4272500b..d91cd672ec5b 100644 --- a/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate4(Informix.DB2.LinqService).sql +++ b/Informix.DB2.LinqService/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate4(Informix.DB2.LinqService).sql @@ -71,7 +71,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -89,7 +89,7 @@ INSERT INTO Patient ) VALUES ( - @id, + @id::Int, To_Char(CHAR_LENGTH(@diagnosis::NVarChar(3)) + @i::Int) ) @@ -105,7 +105,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -119,7 +119,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix diff --git a/Informix.DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2,1).sql b/Informix.DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2,1).sql index f35fe63d66ad..8145cef9cb31 100644 --- a/Informix.DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2,1).sql +++ b/Informix.DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2,1).sql @@ -6,39 +6,38 @@ SELECT SELECT * FROM - Person t7 - CROSS JOIN ( - SELECT - COUNT(t1.PersonID) as cond - FROM - Patient t1 - WHERE - t1.PersonID = 0 AND NOT EXISTS( - SELECT - * - FROM - Patient t2 - WHERE - t2.PersonID = 2 AND t1.PersonID = t2.PersonID - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4.PersonID) as cond - FROM - Patient t4 - WHERE - t4.PersonID = 2 AND NOT EXISTS( - SELECT - * - FROM - Patient t5 - WHERE - t5.PersonID = 0 AND t4.PersonID = t5.PersonID - ) - ) t6 + Person t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2.PersonID) + FROM + Patient t2 + WHERE + t2.PersonID = 0 AND NOT EXISTS( + SELECT + * + FROM + Patient t3 + WHERE + t3.PersonID = 2 AND t2.PersonID = t3.PersonID + ) + ) = 0 AND + ( + SELECT + COUNT(t4.PersonID) + FROM + Patient t4 + WHERE + t4.PersonID = 2 AND NOT EXISTS( + SELECT + * + FROM + Patient t5 + WHERE + t5.PersonID = 0 AND t4.PersonID = t5.PersonID + ) + ) = 0 ) FROM table(set{1}) diff --git a/Informix.DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2,2).sql b/Informix.DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2,2).sql index f35fe63d66ad..8145cef9cb31 100644 --- a/Informix.DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2,2).sql +++ b/Informix.DB2/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Informix.DB2,2).sql @@ -6,39 +6,38 @@ SELECT SELECT * FROM - Person t7 - CROSS JOIN ( - SELECT - COUNT(t1.PersonID) as cond - FROM - Patient t1 - WHERE - t1.PersonID = 0 AND NOT EXISTS( - SELECT - * - FROM - Patient t2 - WHERE - t2.PersonID = 2 AND t1.PersonID = t2.PersonID - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4.PersonID) as cond - FROM - Patient t4 - WHERE - t4.PersonID = 2 AND NOT EXISTS( - SELECT - * - FROM - Patient t5 - WHERE - t5.PersonID = 0 AND t4.PersonID = t5.PersonID - ) - ) t6 + Person t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2.PersonID) + FROM + Patient t2 + WHERE + t2.PersonID = 0 AND NOT EXISTS( + SELECT + * + FROM + Patient t3 + WHERE + t3.PersonID = 2 AND t2.PersonID = t3.PersonID + ) + ) = 0 AND + ( + SELECT + COUNT(t4.PersonID) + FROM + Patient t4 + WHERE + t4.PersonID = 2 AND NOT EXISTS( + SELECT + * + FROM + Patient t5 + WHERE + t5.PersonID = 0 AND t4.PersonID = t5.PersonID + ) + ) = 0 ) FROM table(set{1}) diff --git a/Informix.DB2/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Informix.DB2).sql b/Informix.DB2/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Informix.DB2).sql index 58bd47c0368c..806ab1d84e4e 100644 --- a/Informix.DB2/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Informix.DB2).sql +++ b/Informix.DB2/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Informix.DB2).sql @@ -7,7 +7,14 @@ SELECT d.Distributor_Name, cp.Street_Number, cp.Street_Name, - c_1.City_Name, + ( + SELECT + c_1.City_Name + FROM + Cities c_1 + WHERE + c_1.City_Code = cp.City_Code OR c_1.City_Code IS NULL AND cp.City_Code IS NULL + ), cp."State", cp.Zip_Code, cp.Zip_Plus_4, @@ -19,7 +26,6 @@ FROM INNER JOIN Distributor_Commercial_Propert dcp ON d.Distributor_Id = dcp.Distributor_Id INNER JOIN Commercial_Property cp ON dcp.Commercial_Property_Id = cp.Commercial_Property_Id INNER JOIN Contract_Dates cd ON cda.Contract_Id = cd.Contract_Id - INNER JOIN Cities c_1 ON c_1.City_Code = cp.City_Code OR c_1.City_Code IS NULL AND cp.City_Code IS NULL WHERE cda.Contract_Id = 198827882 AND cda.Distributor_Type_Code = 'CC' AND diff --git a/Informix.DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Informix.DB2).sql b/Informix.DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Informix.DB2).sql index 20451c3caed1..3d812d310e9e 100644 --- a/Informix.DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Informix.DB2).sql +++ b/Informix.DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Informix.DB2).sql @@ -5,8 +5,14 @@ SELECT t.Id, t.BoolValue FROM - WhereWithBool t, - WhereWithBool x + WhereWithBool t WHERE - x.BoolValue AND x.Id = 1 + ( + SELECT + x.BoolValue + FROM + WhereWithBool x + WHERE + x.Id = 1 + ) diff --git a/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate1(Informix.DB2).sql b/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate1(Informix.DB2).sql index 2686515b5874..02214fe535b4 100644 --- a/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate1(Informix.DB2).sql +++ b/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate1(Informix.DB2).sql @@ -71,7 +71,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -85,7 +85,7 @@ INSERT INTO Patient ) VALUES ( - @id, + @id::Int, 'abc' ) @@ -101,7 +101,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -115,7 +115,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix diff --git a/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate2(Informix.DB2).sql b/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate2(Informix.DB2).sql index 807ef3ac0c3a..8471ca52a8e7 100644 --- a/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate2(Informix.DB2).sql +++ b/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate2(Informix.DB2).sql @@ -69,7 +69,7 @@ SELECT FROM Patient t1 WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -83,7 +83,7 @@ INSERT INTO Patient ) VALUES ( - @id, + @id::Int, 'negative' ) @@ -110,7 +110,7 @@ SELECT FROM Patient t1 WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix diff --git a/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3(Informix.DB2).sql b/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3(Informix.DB2).sql index 2686515b5874..02214fe535b4 100644 --- a/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3(Informix.DB2).sql +++ b/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3(Informix.DB2).sql @@ -71,7 +71,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -85,7 +85,7 @@ INSERT INTO Patient ) VALUES ( - @id, + @id::Int, 'abc' ) @@ -101,7 +101,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -115,7 +115,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix diff --git a/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3Async(Informix.DB2).sql b/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3Async(Informix.DB2).sql index 6e13041c813e..1b3d78b93749 100644 --- a/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3Async(Informix.DB2).sql +++ b/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3Async(Informix.DB2).sql @@ -71,7 +71,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix (asynchronously) @@ -85,7 +85,7 @@ INSERT INTO Patient ) VALUES ( - @id, + @id::Int, 'abc' ) @@ -101,7 +101,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix (asynchronously) @@ -115,7 +115,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix (asynchronously) diff --git a/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3xAsync(Informix.DB2).sql b/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3xAsync(Informix.DB2).sql index def75374973c..5adbfdc0943a 100644 --- a/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3xAsync(Informix.DB2).sql +++ b/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate3xAsync(Informix.DB2).sql @@ -85,7 +85,7 @@ INSERT INTO Patient ) VALUES ( - @id, + @id::Int, 'abc' ) diff --git a/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate4(Informix.DB2).sql b/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate4(Informix.DB2).sql index 934b4272500b..d91cd672ec5b 100644 --- a/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate4(Informix.DB2).sql +++ b/Informix.DB2/Tests/xUpdate/InsertTests/Tests.xUpdate.InsertTests.InsertOrUpdate4(Informix.DB2).sql @@ -71,7 +71,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -89,7 +89,7 @@ INSERT INTO Patient ) VALUES ( - @id, + @id::Int, To_Char(CHAR_LENGTH(@diagnosis::NVarChar(3)) + @i::Int) ) @@ -105,7 +105,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix @@ -119,7 +119,7 @@ UPDATE SET Diagnosis = To_Char(CHAR_LENGTH(t1.Diagnosis) + @i::Int) WHERE - t1.PersonID = @id + t1.PersonID = @id::Int BeforeExecute -- Informix.DB2 Informix diff --git a/Informix.DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(Informix.DB2,1).sql b/Informix.DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(Informix.DB2,1).sql new file mode 100644 index 000000000000..237bf9d32343 --- /dev/null +++ b/Informix.DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(Informix.DB2,1).sql @@ -0,0 +1,54 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- Informix.DB2 Informix + +CREATE TEMP TABLE MergeTemp +( + ID Int NOT NULL, + Name NVarChar(20) NULL, + + PRIMARY KEY (ID) +) + +BeforeExecute +-- Informix.DB2 Informix +DECLARE @ID Integer(4) -- Int32 +SET @ID = 1 +DECLARE @Name VarChar(4) -- String +SET @Name = 'John' + +INSERT INTO MergeTemp +( + ID, + Name +) +VALUES +( + @ID, + @Name +) + +BeforeExecute +-- Informix.DB2 Informix + +UPDATE + MergeTemp t1 +SET + ID = t1.ID, + Name = t1.Name +WHERE + t1.ID = ( + SELECT + t.ID + FROM + MergeTemp t + WHERE + t.Name = 'John' + ) + +BeforeExecute +-- Informix.DB2 Informix + +DROP TABLE IF EXISTS MergeTemp + diff --git a/Informix.DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(Informix.DB2,2).sql b/Informix.DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(Informix.DB2,2).sql new file mode 100644 index 000000000000..237bf9d32343 --- /dev/null +++ b/Informix.DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(Informix.DB2,2).sql @@ -0,0 +1,54 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- Informix.DB2 Informix + +CREATE TEMP TABLE MergeTemp +( + ID Int NOT NULL, + Name NVarChar(20) NULL, + + PRIMARY KEY (ID) +) + +BeforeExecute +-- Informix.DB2 Informix +DECLARE @ID Integer(4) -- Int32 +SET @ID = 1 +DECLARE @Name VarChar(4) -- String +SET @Name = 'John' + +INSERT INTO MergeTemp +( + ID, + Name +) +VALUES +( + @ID, + @Name +) + +BeforeExecute +-- Informix.DB2 Informix + +UPDATE + MergeTemp t1 +SET + ID = t1.ID, + Name = t1.Name +WHERE + t1.ID = ( + SELECT + t.ID + FROM + MergeTemp t + WHERE + t.Name = 'John' + ) + +BeforeExecute +-- Informix.DB2 Informix + +DROP TABLE IF EXISTS MergeTemp + From 571a10eefa38d32016d404002954f79b0c1d8a10 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:08:04 +0000 Subject: [PATCH 15/40] [Windows / SQL Server 2017] baselines --- ...sonTest1(SqlServer.2017.LinqService,1).sql | 63 ++- ...sonTest1(SqlServer.2017.LinqService,2).sql | 63 ++- ...anSubquery(SqlServer.2017.LinqService).sql | 12 +- ...eryFilter1(SqlServer.2017.LinqService).sql | 22 +- ...eryFilter2(SqlServer.2017.LinqService).sql | 26 +- ...eryFilter3(SqlServer.2017.LinqService).sql | 34 +- ...Test1(SqlServer.2017.MS.LinqService,1).sql | 63 ++- ...Test1(SqlServer.2017.MS.LinqService,2).sql | 63 ++- ...ubquery(SqlServer.2017.MS.LinqService).sql | 12 +- ...Filter1(SqlServer.2017.MS.LinqService).sql | 22 +- ...Filter2(SqlServer.2017.MS.LinqService).sql | 26 +- ...Filter3(SqlServer.2017.MS.LinqService).sql | 34 +- ...s.ComparisonTest1(SqlServer.2017.MS,1).sql | 63 ++- ...s.ComparisonTest1(SqlServer.2017.MS,2).sql | 63 ++- ...Tests.Issue383Test2(SqlServer.2017.MS).sql | 10 +- ...sts.BooleanSubquery(SqlServer.2017.MS).sql | 12 +- ...sue_SubQueryFilter1(SqlServer.2017.MS).sql | 22 +- ...sue_SubQueryFilter2(SqlServer.2017.MS).sql | 26 +- ...sue_SubQueryFilter3(SqlServer.2017.MS).sql | 34 +- ...eryTakesForever4394(SqlServer.2017.MS).sql | 420 ++++++------------ ...sts.MergeSubquery(SqlServer.2017.MS,1).sql | 60 +++ ...sts.MergeSubquery(SqlServer.2017.MS,2).sql | 60 +++ ...ests.ComparisonTest1(SqlServer.2017,1).sql | 63 ++- ...ests.ComparisonTest1(SqlServer.2017,2).sql | 63 ++- ...eryTests.Issue383Test2(SqlServer.2017).sql | 10 +- ...eTests.BooleanSubquery(SqlServer.2017).sql | 12 +- ....Issue_SubQueryFilter1(SqlServer.2017).sql | 22 +- ....Issue_SubQueryFilter2(SqlServer.2017).sql | 26 +- ....Issue_SubQueryFilter3(SqlServer.2017).sql | 34 +- ....QueryTakesForever4394(SqlServer.2017).sql | 420 ++++++------------ ...eTests.MergeSubquery(SqlServer.2017,1).sql | 60 +++ ...eTests.MergeSubquery(SqlServer.2017,2).sql | 60 +++ 32 files changed, 984 insertions(+), 996 deletions(-) create mode 100644 SqlServer.2017.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017.MS,1).sql create mode 100644 SqlServer.2017.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017.MS,2).sql create mode 100644 SqlServer.2017/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017,1).sql create mode 100644 SqlServer.2017/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017,2).sql diff --git a/SqlServer.2017.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.LinqService,1).sql b/SqlServer.2017.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.LinqService,1).sql index d9443353a732..0331f5554ed4 100644 --- a/SqlServer.2017.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.LinqService,1).sql +++ b/SqlServer.2017.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2017.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.LinqService,2).sql b/SqlServer.2017.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.LinqService,2).sql index d9443353a732..0331f5554ed4 100644 --- a/SqlServer.2017.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.LinqService,2).sql +++ b/SqlServer.2017.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017.LinqService).sql b/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017.LinqService).sql index af8cb4584164..c606ad55908b 100644 --- a/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017.LinqService).sql +++ b/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017.LinqService).sql b/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017.LinqService).sql index f388407f1359..6bbd2d961cd4 100644 --- a/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017.LinqService).sql +++ b/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017.LinqService).sql b/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017.LinqService).sql index ca06b404fe09..da307cd59cfb 100644 --- a/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017.LinqService).sql +++ b/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017.LinqService).sql b/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017.LinqService).sql index 65b60e4d51fc..f00a06cb23fd 100644 --- a/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017.LinqService).sql +++ b/SqlServer.2017.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2017.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS.LinqService,1).sql b/SqlServer.2017.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS.LinqService,1).sql index b2a0be76b3af..fe9a0be3dac6 100644 --- a/SqlServer.2017.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS.LinqService,1).sql +++ b/SqlServer.2017.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2017.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS.LinqService,2).sql b/SqlServer.2017.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS.LinqService,2).sql index b2a0be76b3af..fe9a0be3dac6 100644 --- a/SqlServer.2017.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS.LinqService,2).sql +++ b/SqlServer.2017.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017.MS.LinqService).sql b/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017.MS.LinqService).sql index d11d8aafca0e..d93facac6b3f 100644 --- a/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017.MS.LinqService).sql +++ b/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017.MS.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017.MS.LinqService).sql b/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017.MS.LinqService).sql index 9f3c701f983e..f4cd64bed518 100644 --- a/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017.MS.LinqService).sql +++ b/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017.MS.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017.MS.LinqService).sql b/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017.MS.LinqService).sql index 2763c534f92a..2b7c27fe3903 100644 --- a/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017.MS.LinqService).sql +++ b/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017.MS.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017.MS.LinqService).sql b/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017.MS.LinqService).sql index 3d5d17f17090..b1cb95c5a5ac 100644 --- a/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017.MS.LinqService).sql +++ b/SqlServer.2017.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017.MS.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2017.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS,1).sql b/SqlServer.2017.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS,1).sql index b2a0be76b3af..fe9a0be3dac6 100644 --- a/SqlServer.2017.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS,1).sql +++ b/SqlServer.2017.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2017.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS,2).sql b/SqlServer.2017.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS,2).sql index b2a0be76b3af..fe9a0be3dac6 100644 --- a/SqlServer.2017.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS,2).sql +++ b/SqlServer.2017.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017.MS,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2017.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2017.MS).sql b/SqlServer.2017.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2017.MS).sql index c55137fce916..c726438463da 100644 --- a/SqlServer.2017.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2017.MS).sql +++ b/SqlServer.2017.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2017.MS).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017.MS).sql b/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017.MS).sql index d11d8aafca0e..d93facac6b3f 100644 --- a/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017.MS).sql +++ b/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017.MS).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017.MS).sql b/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017.MS).sql index 9f3c701f983e..f4cd64bed518 100644 --- a/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017.MS).sql +++ b/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017.MS).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017.MS).sql b/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017.MS).sql index 2763c534f92a..2b7c27fe3903 100644 --- a/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017.MS).sql +++ b/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017.MS).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017.MS).sql b/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017.MS).sql index 3d5d17f17090..b1cb95c5a5ac 100644 --- a/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017.MS).sql +++ b/SqlServer.2017.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017.MS).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2017.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2017.MS).sql b/SqlServer.2017.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2017.MS).sql index 003e2046521f..603ffdda461d 100644 --- a/SqlServer.2017.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2017.MS).sql +++ b/SqlServer.2017.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2017.MS).sql @@ -2,9 +2,9 @@ -- SqlServer.2017.MS SqlServer.2017 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.2017.MS SqlServer.2017 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2017.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017.MS,1).sql b/SqlServer.2017.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017.MS,1).sql new file mode 100644 index 000000000000..870cf1c6280b --- /dev/null +++ b/SqlServer.2017.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017.MS,1).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2017.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017.MS,2).sql b/SqlServer.2017.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017.MS,2).sql new file mode 100644 index 000000000000..870cf1c6280b --- /dev/null +++ b/SqlServer.2017.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017.MS,2).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2017/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017,1).sql b/SqlServer.2017/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017,1).sql index d9443353a732..0331f5554ed4 100644 --- a/SqlServer.2017/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017,1).sql +++ b/SqlServer.2017/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2017/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017,2).sql b/SqlServer.2017/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017,2).sql index d9443353a732..0331f5554ed4 100644 --- a/SqlServer.2017/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017,2).sql +++ b/SqlServer.2017/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2017,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2017/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2017).sql b/SqlServer.2017/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2017).sql index 5a3392ccaf77..0c1891497b5a 100644 --- a/SqlServer.2017/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2017).sql +++ b/SqlServer.2017/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2017).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017).sql b/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017).sql index af8cb4584164..c606ad55908b 100644 --- a/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017).sql +++ b/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2017).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017).sql b/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017).sql index f388407f1359..6bbd2d961cd4 100644 --- a/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017).sql +++ b/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2017).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017).sql b/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017).sql index ca06b404fe09..da307cd59cfb 100644 --- a/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017).sql +++ b/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2017).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017).sql b/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017).sql index 65b60e4d51fc..f00a06cb23fd 100644 --- a/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017).sql +++ b/SqlServer.2017/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2017).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2017/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2017).sql b/SqlServer.2017/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2017).sql index a5d2eb2cf917..971374101765 100644 --- a/SqlServer.2017/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2017).sql +++ b/SqlServer.2017/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2017).sql @@ -2,9 +2,9 @@ -- SqlServer.2017 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.2017 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2017/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017,1).sql b/SqlServer.2017/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017,1).sql new file mode 100644 index 000000000000..dd622718de5a --- /dev/null +++ b/SqlServer.2017/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017,1).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2017 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2017 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2017 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2017/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017,2).sql b/SqlServer.2017/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017,2).sql new file mode 100644 index 000000000000..dd622718de5a --- /dev/null +++ b/SqlServer.2017/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2017,2).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2017 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2017 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2017 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + From c60267373944df7d79a65b20885f7d11ce36de13 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:11:26 +0000 Subject: [PATCH 16/40] [Linux / MariaDB 11] baselines --- ...parisonTest1(MariaDB.11.LinqService,1).sql | 63 ++++++++-------- ...parisonTest1(MariaDB.11.LinqService,2).sql | 63 ++++++++-------- ...ompareToSelect(MariaDB.11.LinqService).sql | 60 +++++++++++---- ....EqualToSelect(MariaDB.11.LinqService).sql | 75 ++++++++++++++----- ...ooleanSubquery(MariaDB.11.LinqService).sql | 12 ++- ...ubQueryFilter1(MariaDB.11.LinqService).sql | 22 +++--- ...ubQueryFilter2(MariaDB.11.LinqService).sql | 26 +++---- ...ubQueryFilter3(MariaDB.11.LinqService).sql | 34 +++++---- ...onsTests.ComparisonTest1(MariaDB.11,1).sql | 63 ++++++++-------- ...onsTests.ComparisonTest1(MariaDB.11,2).sql | 63 ++++++++-------- ...qlRowTests.CompareToSelect(MariaDB.11).sql | 60 +++++++++++---- ....SqlRowTests.EqualToSelect(MariaDB.11).sql | 75 ++++++++++++++----- ...ubQueryTests.Issue383Test2(MariaDB.11).sql | 10 ++- ...WhereTests.BooleanSubquery(MariaDB.11).sql | 12 ++- ...ests.Issue_SubQueryFilter1(MariaDB.11).sql | 22 +++--- ...ests.Issue_SubQueryFilter2(MariaDB.11).sql | 26 +++---- ...ests.Issue_SubQueryFilter3(MariaDB.11).sql | 34 +++++---- 17 files changed, 428 insertions(+), 292 deletions(-) diff --git a/MariaDB.11.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11.LinqService,1).sql b/MariaDB.11.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11.LinqService,1).sql index 4d322254d457..9973af28c5aa 100644 --- a/MariaDB.11.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11.LinqService,1).sql +++ b/MariaDB.11.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MariaDB.11.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11.LinqService,2).sql b/MariaDB.11.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11.LinqService,2).sql index 4d322254d457..9973af28c5aa 100644 --- a/MariaDB.11.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11.LinqService,2).sql +++ b/MariaDB.11.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MariaDB.11.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MariaDB.11.LinqService).sql b/MariaDB.11.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MariaDB.11.LinqService).sql index 3ba7a1bf4034..b9b36a98e28c 100644 --- a/MariaDB.11.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MariaDB.11.LinqService).sql +++ b/MariaDB.11.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MariaDB.11.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) > (`y`.`One`, `y`.`One`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) > ( + SELECT + `y`.`One`, + `y`.`One`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) >= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) >= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) < (`y`.`One`, `y`.`Three`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) < ( + SELECT + `y`.`One`, + `y`.`Three`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MariaDB.11.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MariaDB.11.LinqService).sql b/MariaDB.11.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MariaDB.11.LinqService).sql index 3a9ba4c65bee..97fed6fbde23 100644 --- a/MariaDB.11.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MariaDB.11.LinqService).sql +++ b/MariaDB.11.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MariaDB.11.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`y`.`One`, `y`.`One` + 1, 3) = (`x`.`One`, `x`.`Two`, `x`.`Three`) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MariaDB.11.LinqService).sql b/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MariaDB.11.LinqService).sql index d53b178c1bd1..acd81da17c74 100644 --- a/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MariaDB.11.LinqService).sql +++ b/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MariaDB.11.LinqService).sql @@ -5,8 +5,14 @@ SELECT `t`.`Id`, `t`.`BoolValue` FROM - `WhereWithBool` `t`, - `WhereWithBool` `x` + `WhereWithBool` `t` WHERE - `x`.`BoolValue` AND `x`.`Id` = 1 + ( + SELECT + `x`.`BoolValue` + FROM + `WhereWithBool` `x` + WHERE + `x`.`Id` = 1 + ) diff --git a/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MariaDB.11.LinqService).sql b/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MariaDB.11.LinqService).sql index 227db4297f48..4074055779ad 100644 --- a/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MariaDB.11.LinqService).sql +++ b/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MariaDB.11.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t2` - WHERE - LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = `t2`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t3` - WHERE - LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = `t3`.`cond` + ) ) ORDER BY `t1`.`PersonID` diff --git a/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MariaDB.11.LinqService).sql b/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MariaDB.11.LinqService).sql index f62fe51ae860..3bfdfbf92c41 100644 --- a/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MariaDB.11.LinqService).sql +++ b/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MariaDB.11.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND + `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t1` - WHERE - `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND - `e`.`PersonID` = `t1`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND + `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t2` - WHERE - `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND - `e_1`.`PersonID` = `t2`.`cond` + ) ) ORDER BY `p`.`PersonID` diff --git a/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MariaDB.11.LinqService).sql b/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MariaDB.11.LinqService).sql index dbcd8cd13e95..cf5bc61a5fea 100644 --- a/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MariaDB.11.LinqService).sql +++ b/MariaDB.11.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MariaDB.11.LinqService).sql @@ -16,30 +16,32 @@ WHERE * FROM `Person` `p` - INNER JOIN ( - SELECT - `d`.`PersonID` as `cond`, - ROW_NUMBER() OVER (PARTITION BY `d`.`PersonID` ORDER BY `d`.`PersonID`) as `rn` - FROM - `Person` `d` - ) `t1` ON `t1`.`cond` = `patient_1`.`PersonID` AND `t1`.`rn` <= 1 WHERE - LOCATE(@filter, `p`.`FirstName`) > 0 AND `p`.`PersonID` = `t1`.`cond` + LOCATE(@filter, `p`.`FirstName`) > 0 AND `p`.`PersonID` = ( + SELECT + `d`.`PersonID` + FROM + `Person` `d` + WHERE + `d`.`PersonID` = `patient_1`.`PersonID` + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM `Person` `p_1` - INNER JOIN ( - SELECT - `d_1`.`PersonID` as `cond`, - ROW_NUMBER() OVER (PARTITION BY `d_1`.`PersonID` ORDER BY `d_1`.`PersonID`) as `rn` - FROM - `Person` `d_1` - ) `t2` ON `t2`.`cond` = `patient_1`.`PersonID` AND `t2`.`rn` <= 1 WHERE - LOCATE(@filter_1, `p_1`.`FirstName`) > 0 AND `p_1`.`PersonID` = `t2`.`cond` + LOCATE(@filter_1, `p_1`.`FirstName`) > 0 AND `p_1`.`PersonID` = ( + SELECT + `d_1`.`PersonID` + FROM + `Person` `d_1` + WHERE + `d_1`.`PersonID` = `patient_1`.`PersonID` + LIMIT 1 + ) ) ORDER BY `patient_1`.`PersonID` diff --git a/MariaDB.11/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11,1).sql b/MariaDB.11/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11,1).sql index 4d322254d457..9973af28c5aa 100644 --- a/MariaDB.11/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11,1).sql +++ b/MariaDB.11/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MariaDB.11/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11,2).sql b/MariaDB.11/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11,2).sql index 4d322254d457..9973af28c5aa 100644 --- a/MariaDB.11/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11,2).sql +++ b/MariaDB.11/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MariaDB.11,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MariaDB.11/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MariaDB.11).sql b/MariaDB.11/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MariaDB.11).sql index 3ba7a1bf4034..b9b36a98e28c 100644 --- a/MariaDB.11/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MariaDB.11).sql +++ b/MariaDB.11/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MariaDB.11).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) > (`y`.`One`, `y`.`One`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) > ( + SELECT + `y`.`One`, + `y`.`One`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) >= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) >= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) < (`y`.`One`, `y`.`Three`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) < ( + SELECT + `y`.`One`, + `y`.`Three`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MariaDB.11/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MariaDB.11).sql b/MariaDB.11/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MariaDB.11).sql index 3a9ba4c65bee..97fed6fbde23 100644 --- a/MariaDB.11/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MariaDB.11).sql +++ b/MariaDB.11/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MariaDB.11).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`y`.`One`, `y`.`One` + 1, 3) = (`x`.`One`, `x`.`Two`, `x`.`Three`) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MariaDB.11 MariaDB.10.MySqlConnector MySql @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MariaDB.11/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MariaDB.11).sql b/MariaDB.11/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MariaDB.11).sql index 7180157577aa..aa5643a6ac26 100644 --- a/MariaDB.11/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MariaDB.11).sql +++ b/MariaDB.11/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MariaDB.11).sql @@ -7,7 +7,14 @@ SELECT `d`.`Distributor_Name`, `cp`.`Street_Number`, `cp`.`Street_Name`, - `c_1`.`City_Name`, + ( + SELECT + `c_1`.`City_Name` + FROM + `Cities` `c_1` + WHERE + `c_1`.`City_Code` = `cp`.`City_Code` OR `c_1`.`City_Code` IS NULL AND `cp`.`City_Code` IS NULL + ), `cp`.`State`, `cp`.`Zip_Code`, `cp`.`Zip_Plus_4`, @@ -19,7 +26,6 @@ FROM INNER JOIN `Distributor_Commercial_Propert` `dcp` ON `d`.`Distributor_Id` = `dcp`.`Distributor_Id` INNER JOIN `Commercial_Property` `cp` ON `dcp`.`Commercial_Property_Id` = `cp`.`Commercial_Property_Id` INNER JOIN `Contract_Dates` `cd` ON `cda`.`Contract_Id` = `cd`.`Contract_Id` - INNER JOIN `Cities` `c_1` ON `c_1`.`City_Code` = `cp`.`City_Code` OR `c_1`.`City_Code` IS NULL AND `cp`.`City_Code` IS NULL WHERE `cda`.`Contract_Id` = 198827882 AND `cda`.`Distributor_Type_Code` = 'CC' AND diff --git a/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MariaDB.11).sql b/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MariaDB.11).sql index d53b178c1bd1..acd81da17c74 100644 --- a/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MariaDB.11).sql +++ b/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MariaDB.11).sql @@ -5,8 +5,14 @@ SELECT `t`.`Id`, `t`.`BoolValue` FROM - `WhereWithBool` `t`, - `WhereWithBool` `x` + `WhereWithBool` `t` WHERE - `x`.`BoolValue` AND `x`.`Id` = 1 + ( + SELECT + `x`.`BoolValue` + FROM + `WhereWithBool` `x` + WHERE + `x`.`Id` = 1 + ) diff --git a/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MariaDB.11).sql b/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MariaDB.11).sql index 227db4297f48..4074055779ad 100644 --- a/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MariaDB.11).sql +++ b/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MariaDB.11).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t2` - WHERE - LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = `t2`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t3` - WHERE - LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = `t3`.`cond` + ) ) ORDER BY `t1`.`PersonID` diff --git a/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MariaDB.11).sql b/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MariaDB.11).sql index f62fe51ae860..3bfdfbf92c41 100644 --- a/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MariaDB.11).sql +++ b/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MariaDB.11).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND + `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t1` - WHERE - `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND - `e`.`PersonID` = `t1`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND + `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t2` - WHERE - `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND - `e_1`.`PersonID` = `t2`.`cond` + ) ) ORDER BY `p`.`PersonID` diff --git a/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MariaDB.11).sql b/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MariaDB.11).sql index dbcd8cd13e95..cf5bc61a5fea 100644 --- a/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MariaDB.11).sql +++ b/MariaDB.11/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MariaDB.11).sql @@ -16,30 +16,32 @@ WHERE * FROM `Person` `p` - INNER JOIN ( - SELECT - `d`.`PersonID` as `cond`, - ROW_NUMBER() OVER (PARTITION BY `d`.`PersonID` ORDER BY `d`.`PersonID`) as `rn` - FROM - `Person` `d` - ) `t1` ON `t1`.`cond` = `patient_1`.`PersonID` AND `t1`.`rn` <= 1 WHERE - LOCATE(@filter, `p`.`FirstName`) > 0 AND `p`.`PersonID` = `t1`.`cond` + LOCATE(@filter, `p`.`FirstName`) > 0 AND `p`.`PersonID` = ( + SELECT + `d`.`PersonID` + FROM + `Person` `d` + WHERE + `d`.`PersonID` = `patient_1`.`PersonID` + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM `Person` `p_1` - INNER JOIN ( - SELECT - `d_1`.`PersonID` as `cond`, - ROW_NUMBER() OVER (PARTITION BY `d_1`.`PersonID` ORDER BY `d_1`.`PersonID`) as `rn` - FROM - `Person` `d_1` - ) `t2` ON `t2`.`cond` = `patient_1`.`PersonID` AND `t2`.`rn` <= 1 WHERE - LOCATE(@filter_1, `p_1`.`FirstName`) > 0 AND `p_1`.`PersonID` = `t2`.`cond` + LOCATE(@filter_1, `p_1`.`FirstName`) > 0 AND `p_1`.`PersonID` = ( + SELECT + `d_1`.`PersonID` + FROM + `Person` `d_1` + WHERE + `d_1`.`PersonID` = `patient_1`.`PersonID` + LIMIT 1 + ) ) ORDER BY `patient_1`.`PersonID` From 5f001ce9e8ed5e9d40a95a16afd7fd257288379e Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:12:47 +0000 Subject: [PATCH 17/40] [Windows / SQL Server 2019] baselines --- ...sonTest1(SqlServer.2019.LinqService,1).sql | 63 ++- ...sonTest1(SqlServer.2019.LinqService,2).sql | 63 ++- ...anSubquery(SqlServer.2019.LinqService).sql | 12 +- ...eryFilter1(SqlServer.2019.LinqService).sql | 22 +- ...eryFilter2(SqlServer.2019.LinqService).sql | 26 +- ...eryFilter3(SqlServer.2019.LinqService).sql | 34 +- ...Test1(SqlServer.2019.MS.LinqService,1).sql | 63 ++- ...Test1(SqlServer.2019.MS.LinqService,2).sql | 63 ++- ...ubquery(SqlServer.2019.MS.LinqService).sql | 12 +- ...Filter1(SqlServer.2019.MS.LinqService).sql | 22 +- ...Filter2(SqlServer.2019.MS.LinqService).sql | 26 +- ...Filter3(SqlServer.2019.MS.LinqService).sql | 34 +- ...s.ComparisonTest1(SqlServer.2019.MS,1).sql | 63 ++- ...s.ComparisonTest1(SqlServer.2019.MS,2).sql | 63 ++- ...Tests.Issue383Test2(SqlServer.2019.MS).sql | 10 +- ...sts.BooleanSubquery(SqlServer.2019.MS).sql | 12 +- ...sue_SubQueryFilter1(SqlServer.2019.MS).sql | 22 +- ...sue_SubQueryFilter2(SqlServer.2019.MS).sql | 26 +- ...sue_SubQueryFilter3(SqlServer.2019.MS).sql | 34 +- ...eryTakesForever4394(SqlServer.2019.MS).sql | 420 ++++++------------ ...sts.MergeSubquery(SqlServer.2019.MS,1).sql | 60 +++ ...sts.MergeSubquery(SqlServer.2019.MS,2).sql | 60 +++ ...ests.ComparisonTest1(SqlServer.2019,1).sql | 63 ++- ...ests.ComparisonTest1(SqlServer.2019,2).sql | 63 ++- ...eryTests.Issue383Test2(SqlServer.2019).sql | 10 +- ...eTests.BooleanSubquery(SqlServer.2019).sql | 12 +- ....Issue_SubQueryFilter1(SqlServer.2019).sql | 22 +- ....Issue_SubQueryFilter2(SqlServer.2019).sql | 26 +- ....Issue_SubQueryFilter3(SqlServer.2019).sql | 34 +- ...37_TestComplexQueryWms(SqlServer.2019).sql | 170 +++---- ....QueryTakesForever4394(SqlServer.2019).sql | 420 ++++++------------ ...eTests.MergeSubquery(SqlServer.2019,1).sql | 60 +++ ...eTests.MergeSubquery(SqlServer.2019,2).sql | 60 +++ 33 files changed, 1037 insertions(+), 1113 deletions(-) create mode 100644 SqlServer.2019.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019.MS,1).sql create mode 100644 SqlServer.2019.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019.MS,2).sql create mode 100644 SqlServer.2019/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019,1).sql create mode 100644 SqlServer.2019/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019,2).sql diff --git a/SqlServer.2019.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.LinqService,1).sql b/SqlServer.2019.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.LinqService,1).sql index 8795873b71ca..de70401657af 100644 --- a/SqlServer.2019.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.LinqService,1).sql +++ b/SqlServer.2019.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2019.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.LinqService,2).sql b/SqlServer.2019.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.LinqService,2).sql index 8795873b71ca..de70401657af 100644 --- a/SqlServer.2019.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.LinqService,2).sql +++ b/SqlServer.2019.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019.LinqService).sql b/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019.LinqService).sql index d6b3cba0937d..0b41c421cf02 100644 --- a/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019.LinqService).sql +++ b/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019.LinqService).sql b/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019.LinqService).sql index 3de64cbe344a..54096e15869b 100644 --- a/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019.LinqService).sql +++ b/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019.LinqService).sql b/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019.LinqService).sql index b10174d9d237..db2cb064aa00 100644 --- a/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019.LinqService).sql +++ b/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019.LinqService).sql b/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019.LinqService).sql index 4f6eb0ac13d6..d0c88f68bb62 100644 --- a/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019.LinqService).sql +++ b/SqlServer.2019.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2019.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS.LinqService,1).sql b/SqlServer.2019.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS.LinqService,1).sql index 2cc7d09c094d..b56cd4656b8c 100644 --- a/SqlServer.2019.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS.LinqService,1).sql +++ b/SqlServer.2019.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2019.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS.LinqService,2).sql b/SqlServer.2019.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS.LinqService,2).sql index 2cc7d09c094d..b56cd4656b8c 100644 --- a/SqlServer.2019.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS.LinqService,2).sql +++ b/SqlServer.2019.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019.MS.LinqService).sql b/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019.MS.LinqService).sql index 17972ff90362..5708483ed562 100644 --- a/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019.MS.LinqService).sql +++ b/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019.MS.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019.MS.LinqService).sql b/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019.MS.LinqService).sql index b2085d70e940..dcb1ee97275e 100644 --- a/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019.MS.LinqService).sql +++ b/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019.MS.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019.MS.LinqService).sql b/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019.MS.LinqService).sql index 663ad7a227af..d5d0adba4f63 100644 --- a/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019.MS.LinqService).sql +++ b/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019.MS.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019.MS.LinqService).sql b/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019.MS.LinqService).sql index f2c8ab0de12d..354456010637 100644 --- a/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019.MS.LinqService).sql +++ b/SqlServer.2019.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019.MS.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2019.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS,1).sql b/SqlServer.2019.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS,1).sql index 2cc7d09c094d..b56cd4656b8c 100644 --- a/SqlServer.2019.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS,1).sql +++ b/SqlServer.2019.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2019.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS,2).sql b/SqlServer.2019.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS,2).sql index 2cc7d09c094d..b56cd4656b8c 100644 --- a/SqlServer.2019.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS,2).sql +++ b/SqlServer.2019.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019.MS,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2019.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2019.MS).sql b/SqlServer.2019.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2019.MS).sql index 22b57ac81062..f82e5f298bea 100644 --- a/SqlServer.2019.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2019.MS).sql +++ b/SqlServer.2019.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2019.MS).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019.MS).sql b/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019.MS).sql index 17972ff90362..5708483ed562 100644 --- a/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019.MS).sql +++ b/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019.MS).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019.MS).sql b/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019.MS).sql index b2085d70e940..dcb1ee97275e 100644 --- a/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019.MS).sql +++ b/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019.MS).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019.MS).sql b/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019.MS).sql index 663ad7a227af..d5d0adba4f63 100644 --- a/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019.MS).sql +++ b/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019.MS).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019.MS).sql b/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019.MS).sql index f2c8ab0de12d..354456010637 100644 --- a/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019.MS).sql +++ b/SqlServer.2019.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019.MS).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2019.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2019.MS).sql b/SqlServer.2019.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2019.MS).sql index a0710479823e..8fd9cc4a902a 100644 --- a/SqlServer.2019.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2019.MS).sql +++ b/SqlServer.2019.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2019.MS).sql @@ -2,9 +2,9 @@ -- SqlServer.2019.MS SqlServer.2019 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.2019.MS SqlServer.2019 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2019.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019.MS,1).sql b/SqlServer.2019.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019.MS,1).sql new file mode 100644 index 000000000000..ffc4bf9d82aa --- /dev/null +++ b/SqlServer.2019.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019.MS,1).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2019.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019.MS,2).sql b/SqlServer.2019.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019.MS,2).sql new file mode 100644 index 000000000000..ffc4bf9d82aa --- /dev/null +++ b/SqlServer.2019.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019.MS,2).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2019/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019,1).sql b/SqlServer.2019/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019,1).sql index 8795873b71ca..de70401657af 100644 --- a/SqlServer.2019/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019,1).sql +++ b/SqlServer.2019/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2019/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019,2).sql b/SqlServer.2019/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019,2).sql index 8795873b71ca..de70401657af 100644 --- a/SqlServer.2019/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019,2).sql +++ b/SqlServer.2019/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2019,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2019/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2019).sql b/SqlServer.2019/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2019).sql index e03e6305826b..d79c9b5a1f6e 100644 --- a/SqlServer.2019/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2019).sql +++ b/SqlServer.2019/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2019).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019).sql b/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019).sql index d6b3cba0937d..0b41c421cf02 100644 --- a/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019).sql +++ b/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2019).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019).sql b/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019).sql index 3de64cbe344a..54096e15869b 100644 --- a/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019).sql +++ b/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2019).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019).sql b/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019).sql index b10174d9d237..db2cb064aa00 100644 --- a/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019).sql +++ b/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2019).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019).sql b/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019).sql index 4f6eb0ac13d6..d0c88f68bb62 100644 --- a/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019).sql +++ b/SqlServer.2019/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2019).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2019/Tests/UserTests/Issue4337Tests/Tests.UserTests.Issue4337Tests.Issue4337_TestComplexQueryWms(SqlServer.2019).sql b/SqlServer.2019/Tests/UserTests/Issue4337Tests/Tests.UserTests.Issue4337Tests.Issue4337_TestComplexQueryWms(SqlServer.2019).sql index 2979f68a3e9c..71f350fdb5ee 100644 --- a/SqlServer.2019/Tests/UserTests/Issue4337Tests/Tests.UserTests.Issue4337Tests.Issue4337_TestComplexQueryWms(SqlServer.2019).sql +++ b/SqlServer.2019/Tests/UserTests/Issue4337Tests/Tests.UserTests.Issue4337Tests.Issue4337_TestComplexQueryWms(SqlServer.2019).sql @@ -2,9 +2,9 @@ -- SqlServer.2019 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,32 +45,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 99 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 99 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 99 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 99 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 10 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 10 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -99,196 +99,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 99 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 99 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 99 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 99 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 10 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 10 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 99 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 99 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 99 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 99 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 99 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 99 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 99 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 99 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 99 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 99 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 99 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 99 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 99 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 99 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 99 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 99 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 99 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 99 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 99 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 99 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 99 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 99 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 99 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 99 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 99 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 99 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 99 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 99 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 99 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 99 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 99 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2019/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2019).sql b/SqlServer.2019/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2019).sql index 21d7f6de9a7b..c6f24623338d 100644 --- a/SqlServer.2019/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2019).sql +++ b/SqlServer.2019/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2019).sql @@ -2,9 +2,9 @@ -- SqlServer.2019 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.2019 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2019/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019,1).sql b/SqlServer.2019/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019,1).sql new file mode 100644 index 000000000000..c078a5425728 --- /dev/null +++ b/SqlServer.2019/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019,1).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2019 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2019 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2019/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019,2).sql b/SqlServer.2019/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019,2).sql new file mode 100644 index 000000000000..c078a5425728 --- /dev/null +++ b/SqlServer.2019/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2019,2).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2019 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2019 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + From 631c4112b20374eb1ed66ac76ab2b877c001302c Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:21:07 +0000 Subject: [PATCH 18/40] [Linux / MySQL 5.7 (both providers)] baselines --- ...mparisonTest1(MySql.5.7.LinqService,1).sql | 63 ++++++++-------- ...mparisonTest1(MySql.5.7.LinqService,2).sql | 63 ++++++++-------- ...CompareToSelect(MySql.5.7.LinqService).sql | 60 +++++++++++---- ...s.EqualToSelect(MySql.5.7.LinqService).sql | 75 ++++++++++++++----- ...BooleanSubquery(MySql.5.7.LinqService).sql | 12 ++- ...SubQueryFilter1(MySql.5.7.LinqService).sql | 22 +++--- ...SubQueryFilter2(MySql.5.7.LinqService).sql | 26 +++---- ...ionsTests.ComparisonTest1(MySql.5.7,1).sql | 63 ++++++++-------- ...ionsTests.ComparisonTest1(MySql.5.7,2).sql | 63 ++++++++-------- ...SqlRowTests.CompareToSelect(MySql.5.7).sql | 60 +++++++++++---- ...q.SqlRowTests.EqualToSelect(MySql.5.7).sql | 75 ++++++++++++++----- ...SubQueryTests.Issue383Test2(MySql.5.7).sql | 10 ++- ....WhereTests.BooleanSubquery(MySql.5.7).sql | 12 ++- ...Tests.Issue_SubQueryFilter1(MySql.5.7).sql | 22 +++--- ...Tests.Issue_SubQueryFilter2(MySql.5.7).sql | 26 +++---- ...est1(MySqlConnector.5.7.LinqService,1).sql | 63 ++++++++-------- ...est1(MySqlConnector.5.7.LinqService,2).sql | 63 ++++++++-------- ...Select(MySqlConnector.5.7.LinqService).sql | 60 +++++++++++---- ...Select(MySqlConnector.5.7.LinqService).sql | 75 ++++++++++++++----- ...bquery(MySqlConnector.5.7.LinqService).sql | 12 ++- ...ilter1(MySqlConnector.5.7.LinqService).sql | 22 +++--- ...ilter2(MySqlConnector.5.7.LinqService).sql | 26 +++---- ....ComparisonTest1(MySqlConnector.5.7,1).sql | 63 ++++++++-------- ....ComparisonTest1(MySqlConnector.5.7,2).sql | 63 ++++++++-------- ...ts.CompareToSelect(MySqlConnector.5.7).sql | 60 +++++++++++---- ...ests.EqualToSelect(MySqlConnector.5.7).sql | 75 ++++++++++++++----- ...ests.Issue383Test2(MySqlConnector.5.7).sql | 10 ++- ...ts.BooleanSubquery(MySqlConnector.5.7).sql | 12 ++- ...ue_SubQueryFilter1(MySqlConnector.5.7).sql | 22 +++--- ...ue_SubQueryFilter2(MySqlConnector.5.7).sql | 26 +++---- 30 files changed, 784 insertions(+), 520 deletions(-) diff --git a/MySql.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7.LinqService,1).sql b/MySql.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7.LinqService,1).sql index 33ad6212e913..0979da98c2a0 100644 --- a/MySql.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7.LinqService,1).sql +++ b/MySql.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySql.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7.LinqService,2).sql b/MySql.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7.LinqService,2).sql index 33ad6212e913..0979da98c2a0 100644 --- a/MySql.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7.LinqService,2).sql +++ b/MySql.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySql.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.5.7.LinqService).sql b/MySql.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.5.7.LinqService).sql index 90aacfc774fb..e41a7a144812 100644 --- a/MySql.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.5.7.LinqService).sql +++ b/MySql.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.5.7.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) > (`y`.`One`, `y`.`One`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) > ( + SELECT + `y`.`One`, + `y`.`One`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) >= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) >= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) < (`y`.`One`, `y`.`Three`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) < ( + SELECT + `y`.`One`, + `y`.`Three`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySql.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.5.7.LinqService).sql b/MySql.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.5.7.LinqService).sql index 2d6f0abf3f3d..245e68543c15 100644 --- a/MySql.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.5.7.LinqService).sql +++ b/MySql.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.5.7.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`y`.`One`, `y`.`One` + 1, 3) = (`x`.`One`, `x`.`Two`, `x`.`Three`) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySql.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.5.7.LinqService).sql b/MySql.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.5.7.LinqService).sql index 02497c4a94a0..febca58a0d25 100644 --- a/MySql.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.5.7.LinqService).sql +++ b/MySql.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.5.7.LinqService).sql @@ -5,8 +5,14 @@ SELECT `t`.`Id`, `t`.`BoolValue` FROM - `WhereWithBool` `t`, - `WhereWithBool` `x` + `WhereWithBool` `t` WHERE - `x`.`BoolValue` AND `x`.`Id` = 1 + ( + SELECT + `x`.`BoolValue` + FROM + `WhereWithBool` `x` + WHERE + `x`.`Id` = 1 + ) diff --git a/MySql.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.5.7.LinqService).sql b/MySql.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.5.7.LinqService).sql index 6a2c97f84f8b..f54d990b9de3 100644 --- a/MySql.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.5.7.LinqService).sql +++ b/MySql.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.5.7.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t2` - WHERE - LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = `t2`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t3` - WHERE - LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = `t3`.`cond` + ) ) ORDER BY `t1`.`PersonID` diff --git a/MySql.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.5.7.LinqService).sql b/MySql.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.5.7.LinqService).sql index bffdf7b9b1b2..a4cef4fe85d7 100644 --- a/MySql.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.5.7.LinqService).sql +++ b/MySql.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.5.7.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND + `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t1` - WHERE - `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND - `e`.`PersonID` = `t1`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND + `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t2` - WHERE - `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND - `e_1`.`PersonID` = `t2`.`cond` + ) ) ORDER BY `p`.`PersonID` diff --git a/MySql.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7,1).sql b/MySql.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7,1).sql index 33ad6212e913..0979da98c2a0 100644 --- a/MySql.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7,1).sql +++ b/MySql.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySql.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7,2).sql b/MySql.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7,2).sql index 33ad6212e913..0979da98c2a0 100644 --- a/MySql.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7,2).sql +++ b/MySql.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.5.7,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySql.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.5.7).sql b/MySql.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.5.7).sql index 90aacfc774fb..e41a7a144812 100644 --- a/MySql.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.5.7).sql +++ b/MySql.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.5.7).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) > (`y`.`One`, `y`.`One`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) > ( + SELECT + `y`.`One`, + `y`.`One`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) >= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) >= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) < (`y`.`One`, `y`.`Three`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) < ( + SELECT + `y`.`One`, + `y`.`Three`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySql.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.5.7).sql b/MySql.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.5.7).sql index 2d6f0abf3f3d..245e68543c15 100644 --- a/MySql.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.5.7).sql +++ b/MySql.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.5.7).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`y`.`One`, `y`.`One` + 1, 3) = (`x`.`One`, `x`.`Two`, `x`.`Three`) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.5.7 MySql.5.7.MySql.Data MySql57 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySql.5.7/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySql.5.7).sql b/MySql.5.7/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySql.5.7).sql index 329839dc5a14..d78821b032be 100644 --- a/MySql.5.7/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySql.5.7).sql +++ b/MySql.5.7/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySql.5.7).sql @@ -7,7 +7,14 @@ SELECT `d`.`Distributor_Name`, `cp`.`Street_Number`, `cp`.`Street_Name`, - `c_1`.`City_Name`, + ( + SELECT + `c_1`.`City_Name` + FROM + `Cities` `c_1` + WHERE + `c_1`.`City_Code` = `cp`.`City_Code` OR `c_1`.`City_Code` IS NULL AND `cp`.`City_Code` IS NULL + ), `cp`.`State`, `cp`.`Zip_Code`, `cp`.`Zip_Plus_4`, @@ -19,7 +26,6 @@ FROM INNER JOIN `Distributor_Commercial_Propert` `dcp` ON `d`.`Distributor_Id` = `dcp`.`Distributor_Id` INNER JOIN `Commercial_Property` `cp` ON `dcp`.`Commercial_Property_Id` = `cp`.`Commercial_Property_Id` INNER JOIN `Contract_Dates` `cd` ON `cda`.`Contract_Id` = `cd`.`Contract_Id` - INNER JOIN `Cities` `c_1` ON `c_1`.`City_Code` = `cp`.`City_Code` OR `c_1`.`City_Code` IS NULL AND `cp`.`City_Code` IS NULL WHERE `cda`.`Contract_Id` = 198827882 AND `cda`.`Distributor_Type_Code` = 'CC' AND diff --git a/MySql.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.5.7).sql b/MySql.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.5.7).sql index 02497c4a94a0..febca58a0d25 100644 --- a/MySql.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.5.7).sql +++ b/MySql.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.5.7).sql @@ -5,8 +5,14 @@ SELECT `t`.`Id`, `t`.`BoolValue` FROM - `WhereWithBool` `t`, - `WhereWithBool` `x` + `WhereWithBool` `t` WHERE - `x`.`BoolValue` AND `x`.`Id` = 1 + ( + SELECT + `x`.`BoolValue` + FROM + `WhereWithBool` `x` + WHERE + `x`.`Id` = 1 + ) diff --git a/MySql.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.5.7).sql b/MySql.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.5.7).sql index 6a2c97f84f8b..f54d990b9de3 100644 --- a/MySql.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.5.7).sql +++ b/MySql.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.5.7).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t2` - WHERE - LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = `t2`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t3` - WHERE - LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = `t3`.`cond` + ) ) ORDER BY `t1`.`PersonID` diff --git a/MySql.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.5.7).sql b/MySql.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.5.7).sql index bffdf7b9b1b2..a4cef4fe85d7 100644 --- a/MySql.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.5.7).sql +++ b/MySql.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.5.7).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND + `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t1` - WHERE - `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND - `e`.`PersonID` = `t1`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND + `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t2` - WHERE - `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND - `e_1`.`PersonID` = `t2`.`cond` + ) ) ORDER BY `p`.`PersonID` diff --git a/MySqlConnector.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7.LinqService,1).sql b/MySqlConnector.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7.LinqService,1).sql index b46231fe9fe1..1fff7527405c 100644 --- a/MySqlConnector.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7.LinqService,1).sql +++ b/MySqlConnector.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySqlConnector.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7.LinqService,2).sql b/MySqlConnector.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7.LinqService,2).sql index b46231fe9fe1..1fff7527405c 100644 --- a/MySqlConnector.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7.LinqService,2).sql +++ b/MySqlConnector.5.7.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySqlConnector.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.5.7.LinqService).sql b/MySqlConnector.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.5.7.LinqService).sql index bd64e4bedd0c..72fdcc202e98 100644 --- a/MySqlConnector.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.5.7.LinqService).sql +++ b/MySqlConnector.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.5.7.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) > (`y`.`One`, `y`.`One`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) > ( + SELECT + `y`.`One`, + `y`.`One`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) >= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) >= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) < (`y`.`One`, `y`.`Three`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) < ( + SELECT + `y`.`One`, + `y`.`Three`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySqlConnector.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.5.7.LinqService).sql b/MySqlConnector.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.5.7.LinqService).sql index b5856acc27dc..94787cbac145 100644 --- a/MySqlConnector.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.5.7.LinqService).sql +++ b/MySqlConnector.5.7.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.5.7.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`y`.`One`, `y`.`One` + 1, 3) = (`x`.`One`, `x`.`Two`, `x`.`Three`) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySqlConnector.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.5.7.LinqService).sql b/MySqlConnector.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.5.7.LinqService).sql index 846a4a7a6a2a..d2cbdc345f13 100644 --- a/MySqlConnector.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.5.7.LinqService).sql +++ b/MySqlConnector.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.5.7.LinqService).sql @@ -5,8 +5,14 @@ SELECT `t`.`Id`, `t`.`BoolValue` FROM - `WhereWithBool` `t`, - `WhereWithBool` `x` + `WhereWithBool` `t` WHERE - `x`.`BoolValue` AND `x`.`Id` = 1 + ( + SELECT + `x`.`BoolValue` + FROM + `WhereWithBool` `x` + WHERE + `x`.`Id` = 1 + ) diff --git a/MySqlConnector.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.5.7.LinqService).sql b/MySqlConnector.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.5.7.LinqService).sql index fae3f3dcd940..7d54ce1d3f9a 100644 --- a/MySqlConnector.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.5.7.LinqService).sql +++ b/MySqlConnector.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.5.7.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t2` - WHERE - LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = `t2`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t3` - WHERE - LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = `t3`.`cond` + ) ) ORDER BY `t1`.`PersonID` diff --git a/MySqlConnector.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.5.7.LinqService).sql b/MySqlConnector.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.5.7.LinqService).sql index 84bdaf87d300..af8210c01b35 100644 --- a/MySqlConnector.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.5.7.LinqService).sql +++ b/MySqlConnector.5.7.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.5.7.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND + `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t1` - WHERE - `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND - `e`.`PersonID` = `t1`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND + `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t2` - WHERE - `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND - `e_1`.`PersonID` = `t2`.`cond` + ) ) ORDER BY `p`.`PersonID` diff --git a/MySqlConnector.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7,1).sql b/MySqlConnector.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7,1).sql index b46231fe9fe1..1fff7527405c 100644 --- a/MySqlConnector.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7,1).sql +++ b/MySqlConnector.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySqlConnector.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7,2).sql b/MySqlConnector.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7,2).sql index b46231fe9fe1..1fff7527405c 100644 --- a/MySqlConnector.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7,2).sql +++ b/MySqlConnector.5.7/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.5.7,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySqlConnector.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.5.7).sql b/MySqlConnector.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.5.7).sql index bd64e4bedd0c..72fdcc202e98 100644 --- a/MySqlConnector.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.5.7).sql +++ b/MySqlConnector.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.5.7).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) > (`y`.`One`, `y`.`One`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) > ( + SELECT + `y`.`One`, + `y`.`One`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) >= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) >= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) < (`y`.`One`, `y`.`Three`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) < ( + SELECT + `y`.`One`, + `y`.`Three`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySqlConnector.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.5.7).sql b/MySqlConnector.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.5.7).sql index b5856acc27dc..94787cbac145 100644 --- a/MySqlConnector.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.5.7).sql +++ b/MySqlConnector.5.7/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.5.7).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`y`.`One`, `y`.`One` + 1, 3) = (`x`.`One`, `x`.`Two`, `x`.`Three`) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySqlConnector.5.7/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySqlConnector.5.7).sql b/MySqlConnector.5.7/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySqlConnector.5.7).sql index 9a0602375222..e316486570ea 100644 --- a/MySqlConnector.5.7/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySqlConnector.5.7).sql +++ b/MySqlConnector.5.7/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySqlConnector.5.7).sql @@ -7,7 +7,14 @@ SELECT `d`.`Distributor_Name`, `cp`.`Street_Number`, `cp`.`Street_Name`, - `c_1`.`City_Name`, + ( + SELECT + `c_1`.`City_Name` + FROM + `Cities` `c_1` + WHERE + `c_1`.`City_Code` = `cp`.`City_Code` OR `c_1`.`City_Code` IS NULL AND `cp`.`City_Code` IS NULL + ), `cp`.`State`, `cp`.`Zip_Code`, `cp`.`Zip_Plus_4`, @@ -19,7 +26,6 @@ FROM INNER JOIN `Distributor_Commercial_Propert` `dcp` ON `d`.`Distributor_Id` = `dcp`.`Distributor_Id` INNER JOIN `Commercial_Property` `cp` ON `dcp`.`Commercial_Property_Id` = `cp`.`Commercial_Property_Id` INNER JOIN `Contract_Dates` `cd` ON `cda`.`Contract_Id` = `cd`.`Contract_Id` - INNER JOIN `Cities` `c_1` ON `c_1`.`City_Code` = `cp`.`City_Code` OR `c_1`.`City_Code` IS NULL AND `cp`.`City_Code` IS NULL WHERE `cda`.`Contract_Id` = 198827882 AND `cda`.`Distributor_Type_Code` = 'CC' AND diff --git a/MySqlConnector.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.5.7).sql b/MySqlConnector.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.5.7).sql index 846a4a7a6a2a..d2cbdc345f13 100644 --- a/MySqlConnector.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.5.7).sql +++ b/MySqlConnector.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.5.7).sql @@ -5,8 +5,14 @@ SELECT `t`.`Id`, `t`.`BoolValue` FROM - `WhereWithBool` `t`, - `WhereWithBool` `x` + `WhereWithBool` `t` WHERE - `x`.`BoolValue` AND `x`.`Id` = 1 + ( + SELECT + `x`.`BoolValue` + FROM + `WhereWithBool` `x` + WHERE + `x`.`Id` = 1 + ) diff --git a/MySqlConnector.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.5.7).sql b/MySqlConnector.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.5.7).sql index fae3f3dcd940..7d54ce1d3f9a 100644 --- a/MySqlConnector.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.5.7).sql +++ b/MySqlConnector.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.5.7).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t2` - WHERE - LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = `t2`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t3` - WHERE - LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = `t3`.`cond` + ) ) ORDER BY `t1`.`PersonID` diff --git a/MySqlConnector.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.5.7).sql b/MySqlConnector.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.5.7).sql index 84bdaf87d300..af8210c01b35 100644 --- a/MySqlConnector.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.5.7).sql +++ b/MySqlConnector.5.7/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.5.7).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND + `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t1` - WHERE - `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND - `e`.`PersonID` = `t1`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND + `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t2` - WHERE - `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND - `e_1`.`PersonID` = `t2`.`cond` + ) ) ORDER BY `p`.`PersonID` From d888318f467db6943ab6c09fa7bb58df9786dd95 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:21:22 +0000 Subject: [PATCH 19/40] [Linux / MySQL 9 (both providers)] baselines --- ...mparisonTest1(MySql.8.0.LinqService,1).sql | 63 ++++++++-------- ...mparisonTest1(MySql.8.0.LinqService,2).sql | 63 ++++++++-------- ...CompareToSelect(MySql.8.0.LinqService).sql | 60 +++++++++++---- ...s.EqualToSelect(MySql.8.0.LinqService).sql | 75 ++++++++++++++----- ...BooleanSubquery(MySql.8.0.LinqService).sql | 12 ++- ...SubQueryFilter1(MySql.8.0.LinqService).sql | 22 +++--- ...SubQueryFilter2(MySql.8.0.LinqService).sql | 26 +++---- ...SubQueryFilter3(MySql.8.0.LinqService).sql | 38 +++++----- ...ionsTests.ComparisonTest1(MySql.8.0,1).sql | 63 ++++++++-------- ...ionsTests.ComparisonTest1(MySql.8.0,2).sql | 63 ++++++++-------- ...SqlRowTests.CompareToSelect(MySql.8.0).sql | 60 +++++++++++---- ...q.SqlRowTests.EqualToSelect(MySql.8.0).sql | 75 ++++++++++++++----- ...SubQueryTests.Issue383Test2(MySql.8.0).sql | 10 ++- ....WhereTests.BooleanSubquery(MySql.8.0).sql | 12 ++- ...Tests.Issue_SubQueryFilter1(MySql.8.0).sql | 22 +++--- ...Tests.Issue_SubQueryFilter2(MySql.8.0).sql | 26 +++---- ...Tests.Issue_SubQueryFilter3(MySql.8.0).sql | 38 +++++----- ...est1(MySqlConnector.8.0.LinqService,1).sql | 63 ++++++++-------- ...est1(MySqlConnector.8.0.LinqService,2).sql | 63 ++++++++-------- ...Select(MySqlConnector.8.0.LinqService).sql | 60 +++++++++++---- ...Select(MySqlConnector.8.0.LinqService).sql | 75 ++++++++++++++----- ...bquery(MySqlConnector.8.0.LinqService).sql | 12 ++- ...ilter1(MySqlConnector.8.0.LinqService).sql | 22 +++--- ...ilter2(MySqlConnector.8.0.LinqService).sql | 26 +++---- ...ilter3(MySqlConnector.8.0.LinqService).sql | 38 +++++----- ....ComparisonTest1(MySqlConnector.8.0,1).sql | 63 ++++++++-------- ....ComparisonTest1(MySqlConnector.8.0,2).sql | 63 ++++++++-------- ...ts.CompareToSelect(MySqlConnector.8.0).sql | 60 +++++++++++---- ...ests.EqualToSelect(MySqlConnector.8.0).sql | 75 ++++++++++++++----- ...ests.Issue383Test2(MySqlConnector.8.0).sql | 10 ++- ...ts.BooleanSubquery(MySqlConnector.8.0).sql | 12 ++- ...ue_SubQueryFilter1(MySqlConnector.8.0).sql | 22 +++--- ...ue_SubQueryFilter2(MySqlConnector.8.0).sql | 26 +++---- ...ue_SubQueryFilter3(MySqlConnector.8.0).sql | 38 +++++----- 34 files changed, 856 insertions(+), 600 deletions(-) diff --git a/MySql.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0.LinqService,1).sql b/MySql.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0.LinqService,1).sql index 69b156b3b224..42e82c69081b 100644 --- a/MySql.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0.LinqService,1).sql +++ b/MySql.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySql.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0.LinqService,2).sql b/MySql.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0.LinqService,2).sql index 69b156b3b224..42e82c69081b 100644 --- a/MySql.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0.LinqService,2).sql +++ b/MySql.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySql.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.8.0.LinqService).sql b/MySql.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.8.0.LinqService).sql index a5ac402fb5d8..fd92bee39740 100644 --- a/MySql.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.8.0.LinqService).sql +++ b/MySql.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.8.0.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) > (`y`.`One`, `y`.`One`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) > ( + SELECT + `y`.`One`, + `y`.`One`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) >= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) >= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) < (`y`.`One`, `y`.`Three`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) < ( + SELECT + `y`.`One`, + `y`.`Three`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySql.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.8.0.LinqService).sql b/MySql.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.8.0.LinqService).sql index d5ddeb956538..9a6b295726b1 100644 --- a/MySql.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.8.0.LinqService).sql +++ b/MySql.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.8.0.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`y`.`One`, `y`.`One` + 1, 3) = (`x`.`One`, `x`.`Two`, `x`.`Three`) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.8.0.LinqService).sql b/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.8.0.LinqService).sql index 7bfb72bb0ad6..e2f760310930 100644 --- a/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.8.0.LinqService).sql +++ b/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.8.0.LinqService).sql @@ -5,8 +5,14 @@ SELECT `t`.`Id`, `t`.`BoolValue` FROM - `WhereWithBool` `t`, - `WhereWithBool` `x` + `WhereWithBool` `t` WHERE - `x`.`BoolValue` AND `x`.`Id` = 1 + ( + SELECT + `x`.`BoolValue` + FROM + `WhereWithBool` `x` + WHERE + `x`.`Id` = 1 + ) diff --git a/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.8.0.LinqService).sql b/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.8.0.LinqService).sql index 500e0a1f3738..56702f461c54 100644 --- a/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.8.0.LinqService).sql +++ b/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.8.0.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t2` - WHERE - LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = `t2`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t3` - WHERE - LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = `t3`.`cond` + ) ) ORDER BY `t1`.`PersonID` diff --git a/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.8.0.LinqService).sql b/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.8.0.LinqService).sql index 8ecdc8724a35..b261bcde3ea2 100644 --- a/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.8.0.LinqService).sql +++ b/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.8.0.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND + `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t1` - WHERE - `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND - `e`.`PersonID` = `t1`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND + `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t2` - WHERE - `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND - `e_1`.`PersonID` = `t2`.`cond` + ) ) ORDER BY `p`.`PersonID` diff --git a/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySql.8.0.LinqService).sql b/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySql.8.0.LinqService).sql index 9a54bc887c73..9f535bb804ba 100644 --- a/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySql.8.0.LinqService).sql +++ b/MySql.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySql.8.0.LinqService).sql @@ -16,34 +16,32 @@ WHERE * FROM `Person` `p` - INNER JOIN LATERAL ( - SELECT - `d`.`PersonID` as `cond` - FROM - `Person` `d` - WHERE - `d`.`PersonID` = `patient_1`.`PersonID` - LIMIT 1 - ) `t1` ON 1=1 WHERE - LOCATE(@filter, `p`.`FirstName`) > 0 AND `p`.`PersonID` = `t1`.`cond` + LOCATE(@filter, `p`.`FirstName`) > 0 AND `p`.`PersonID` = ( + SELECT + `d`.`PersonID` + FROM + `Person` `d` + WHERE + `d`.`PersonID` = `patient_1`.`PersonID` + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM `Person` `p_1` - INNER JOIN LATERAL ( - SELECT - `d_1`.`PersonID` as `cond` - FROM - `Person` `d_1` - WHERE - `d_1`.`PersonID` = `patient_1`.`PersonID` - LIMIT 1 - ) `t2` ON 1=1 WHERE - LOCATE(@filter_1, `p_1`.`FirstName`) > 0 AND `p_1`.`PersonID` = `t2`.`cond` + LOCATE(@filter_1, `p_1`.`FirstName`) > 0 AND `p_1`.`PersonID` = ( + SELECT + `d_1`.`PersonID` + FROM + `Person` `d_1` + WHERE + `d_1`.`PersonID` = `patient_1`.`PersonID` + LIMIT 1 + ) ) ORDER BY `patient_1`.`PersonID` diff --git a/MySql.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0,1).sql b/MySql.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0,1).sql index 69b156b3b224..42e82c69081b 100644 --- a/MySql.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0,1).sql +++ b/MySql.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySql.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0,2).sql b/MySql.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0,2).sql index 69b156b3b224..42e82c69081b 100644 --- a/MySql.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0,2).sql +++ b/MySql.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySql.8.0,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySql.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.8.0).sql b/MySql.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.8.0).sql index a5ac402fb5d8..fd92bee39740 100644 --- a/MySql.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.8.0).sql +++ b/MySql.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySql.8.0).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) > (`y`.`One`, `y`.`One`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) > ( + SELECT + `y`.`One`, + `y`.`One`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) >= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) >= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) < (`y`.`One`, `y`.`Three`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) < ( + SELECT + `y`.`One`, + `y`.`Three`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySql.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.8.0).sql b/MySql.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.8.0).sql index d5ddeb956538..9a6b295726b1 100644 --- a/MySql.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.8.0).sql +++ b/MySql.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySql.8.0).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`y`.`One`, `y`.`One` + 1, 3) = (`x`.`One`, `x`.`Two`, `x`.`Three`) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySql.8.0 MySql.8.0.MySql.Data MySql80 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySql.8.0/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySql.8.0).sql b/MySql.8.0/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySql.8.0).sql index 2720596ca574..0919f5e9b1c6 100644 --- a/MySql.8.0/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySql.8.0).sql +++ b/MySql.8.0/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySql.8.0).sql @@ -7,7 +7,14 @@ SELECT `d`.`Distributor_Name`, `cp`.`Street_Number`, `cp`.`Street_Name`, - `c_1`.`City_Name`, + ( + SELECT + `c_1`.`City_Name` + FROM + `Cities` `c_1` + WHERE + `c_1`.`City_Code` = `cp`.`City_Code` OR `c_1`.`City_Code` IS NULL AND `cp`.`City_Code` IS NULL + ), `cp`.`State`, `cp`.`Zip_Code`, `cp`.`Zip_Plus_4`, @@ -19,7 +26,6 @@ FROM INNER JOIN `Distributor_Commercial_Propert` `dcp` ON `d`.`Distributor_Id` = `dcp`.`Distributor_Id` INNER JOIN `Commercial_Property` `cp` ON `dcp`.`Commercial_Property_Id` = `cp`.`Commercial_Property_Id` INNER JOIN `Contract_Dates` `cd` ON `cda`.`Contract_Id` = `cd`.`Contract_Id` - INNER JOIN `Cities` `c_1` ON `c_1`.`City_Code` = `cp`.`City_Code` OR `c_1`.`City_Code` IS NULL AND `cp`.`City_Code` IS NULL WHERE `cda`.`Contract_Id` = 198827882 AND `cda`.`Distributor_Type_Code` = 'CC' AND diff --git a/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.8.0).sql b/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.8.0).sql index 7bfb72bb0ad6..e2f760310930 100644 --- a/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.8.0).sql +++ b/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySql.8.0).sql @@ -5,8 +5,14 @@ SELECT `t`.`Id`, `t`.`BoolValue` FROM - `WhereWithBool` `t`, - `WhereWithBool` `x` + `WhereWithBool` `t` WHERE - `x`.`BoolValue` AND `x`.`Id` = 1 + ( + SELECT + `x`.`BoolValue` + FROM + `WhereWithBool` `x` + WHERE + `x`.`Id` = 1 + ) diff --git a/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.8.0).sql b/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.8.0).sql index 500e0a1f3738..56702f461c54 100644 --- a/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.8.0).sql +++ b/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySql.8.0).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t2` - WHERE - LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = `t2`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t3` - WHERE - LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = `t3`.`cond` + ) ) ORDER BY `t1`.`PersonID` diff --git a/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.8.0).sql b/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.8.0).sql index 8ecdc8724a35..b261bcde3ea2 100644 --- a/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.8.0).sql +++ b/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySql.8.0).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND + `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t1` - WHERE - `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND - `e`.`PersonID` = `t1`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND + `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t2` - WHERE - `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND - `e_1`.`PersonID` = `t2`.`cond` + ) ) ORDER BY `p`.`PersonID` diff --git a/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySql.8.0).sql b/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySql.8.0).sql index 9a54bc887c73..9f535bb804ba 100644 --- a/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySql.8.0).sql +++ b/MySql.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySql.8.0).sql @@ -16,34 +16,32 @@ WHERE * FROM `Person` `p` - INNER JOIN LATERAL ( - SELECT - `d`.`PersonID` as `cond` - FROM - `Person` `d` - WHERE - `d`.`PersonID` = `patient_1`.`PersonID` - LIMIT 1 - ) `t1` ON 1=1 WHERE - LOCATE(@filter, `p`.`FirstName`) > 0 AND `p`.`PersonID` = `t1`.`cond` + LOCATE(@filter, `p`.`FirstName`) > 0 AND `p`.`PersonID` = ( + SELECT + `d`.`PersonID` + FROM + `Person` `d` + WHERE + `d`.`PersonID` = `patient_1`.`PersonID` + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM `Person` `p_1` - INNER JOIN LATERAL ( - SELECT - `d_1`.`PersonID` as `cond` - FROM - `Person` `d_1` - WHERE - `d_1`.`PersonID` = `patient_1`.`PersonID` - LIMIT 1 - ) `t2` ON 1=1 WHERE - LOCATE(@filter_1, `p_1`.`FirstName`) > 0 AND `p_1`.`PersonID` = `t2`.`cond` + LOCATE(@filter_1, `p_1`.`FirstName`) > 0 AND `p_1`.`PersonID` = ( + SELECT + `d_1`.`PersonID` + FROM + `Person` `d_1` + WHERE + `d_1`.`PersonID` = `patient_1`.`PersonID` + LIMIT 1 + ) ) ORDER BY `patient_1`.`PersonID` diff --git a/MySqlConnector.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0.LinqService,1).sql b/MySqlConnector.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0.LinqService,1).sql index 05af8f530549..100147dcc43c 100644 --- a/MySqlConnector.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0.LinqService,1).sql +++ b/MySqlConnector.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySqlConnector.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0.LinqService,2).sql b/MySqlConnector.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0.LinqService,2).sql index 05af8f530549..100147dcc43c 100644 --- a/MySqlConnector.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0.LinqService,2).sql +++ b/MySqlConnector.8.0.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySqlConnector.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.8.0.LinqService).sql b/MySqlConnector.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.8.0.LinqService).sql index d77a7f5fc1b2..d82f77aee5c0 100644 --- a/MySqlConnector.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.8.0.LinqService).sql +++ b/MySqlConnector.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.8.0.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) > (`y`.`One`, `y`.`One`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) > ( + SELECT + `y`.`One`, + `y`.`One`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) >= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) >= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) < (`y`.`One`, `y`.`Three`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) < ( + SELECT + `y`.`One`, + `y`.`Three`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySqlConnector.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.8.0.LinqService).sql b/MySqlConnector.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.8.0.LinqService).sql index 1122dfa19a3e..474275d42f40 100644 --- a/MySqlConnector.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.8.0.LinqService).sql +++ b/MySqlConnector.8.0.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.8.0.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`y`.`One`, `y`.`One` + 1, 3) = (`x`.`One`, `x`.`Two`, `x`.`Three`) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.8.0.LinqService).sql b/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.8.0.LinqService).sql index ae642f32f709..219c02a7f073 100644 --- a/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.8.0.LinqService).sql +++ b/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.8.0.LinqService).sql @@ -5,8 +5,14 @@ SELECT `t`.`Id`, `t`.`BoolValue` FROM - `WhereWithBool` `t`, - `WhereWithBool` `x` + `WhereWithBool` `t` WHERE - `x`.`BoolValue` AND `x`.`Id` = 1 + ( + SELECT + `x`.`BoolValue` + FROM + `WhereWithBool` `x` + WHERE + `x`.`Id` = 1 + ) diff --git a/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.8.0.LinqService).sql b/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.8.0.LinqService).sql index 74fca677ba76..7c1f96ecdd78 100644 --- a/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.8.0.LinqService).sql +++ b/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.8.0.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t2` - WHERE - LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = `t2`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t3` - WHERE - LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = `t3`.`cond` + ) ) ORDER BY `t1`.`PersonID` diff --git a/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.8.0.LinqService).sql b/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.8.0.LinqService).sql index 37c49f8e3efa..caee7bd7733e 100644 --- a/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.8.0.LinqService).sql +++ b/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.8.0.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND + `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t1` - WHERE - `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND - `e`.`PersonID` = `t1`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND + `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t2` - WHERE - `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND - `e_1`.`PersonID` = `t2`.`cond` + ) ) ORDER BY `p`.`PersonID` diff --git a/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySqlConnector.8.0.LinqService).sql b/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySqlConnector.8.0.LinqService).sql index fa285ebaa254..fce27046cd7d 100644 --- a/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySqlConnector.8.0.LinqService).sql +++ b/MySqlConnector.8.0.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySqlConnector.8.0.LinqService).sql @@ -16,34 +16,32 @@ WHERE * FROM `Person` `p` - INNER JOIN LATERAL ( - SELECT - `d`.`PersonID` as `cond` - FROM - `Person` `d` - WHERE - `d`.`PersonID` = `patient_1`.`PersonID` - LIMIT 1 - ) `t1` ON 1=1 WHERE - LOCATE(@filter, `p`.`FirstName`) > 0 AND `p`.`PersonID` = `t1`.`cond` + LOCATE(@filter, `p`.`FirstName`) > 0 AND `p`.`PersonID` = ( + SELECT + `d`.`PersonID` + FROM + `Person` `d` + WHERE + `d`.`PersonID` = `patient_1`.`PersonID` + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM `Person` `p_1` - INNER JOIN LATERAL ( - SELECT - `d_1`.`PersonID` as `cond` - FROM - `Person` `d_1` - WHERE - `d_1`.`PersonID` = `patient_1`.`PersonID` - LIMIT 1 - ) `t2` ON 1=1 WHERE - LOCATE(@filter_1, `p_1`.`FirstName`) > 0 AND `p_1`.`PersonID` = `t2`.`cond` + LOCATE(@filter_1, `p_1`.`FirstName`) > 0 AND `p_1`.`PersonID` = ( + SELECT + `d_1`.`PersonID` + FROM + `Person` `d_1` + WHERE + `d_1`.`PersonID` = `patient_1`.`PersonID` + LIMIT 1 + ) ) ORDER BY `patient_1`.`PersonID` diff --git a/MySqlConnector.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0,1).sql b/MySqlConnector.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0,1).sql index 05af8f530549..100147dcc43c 100644 --- a/MySqlConnector.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0,1).sql +++ b/MySqlConnector.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySqlConnector.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0,2).sql b/MySqlConnector.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0,2).sql index 05af8f530549..100147dcc43c 100644 --- a/MySqlConnector.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0,2).sql +++ b/MySqlConnector.8.0/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(MySqlConnector.8.0,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - `Person` `t7` - CROSS JOIN ( - SELECT - COUNT(`t1`.`PersonID`) as `cond` - FROM - `Patient` `t1` - WHERE - `t1`.`PersonID` = @personId AND `t1`.`PersonID` NOT IN ( - SELECT - `t2`.`PersonID` - FROM - `Patient` `t2` - WHERE - `t2`.`PersonID` = @personId_1 - ) - ) `t3` - CROSS JOIN ( - SELECT - COUNT(`t4`.`PersonID`) as `cond` - FROM - `Patient` `t4` - WHERE - `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( - SELECT - `t5`.`PersonID` - FROM - `Patient` `t5` - WHERE - `t5`.`PersonID` = @personId - ) - ) `t6` + `Person` `t1` WHERE - `t3`.`cond` = 0 AND `t6`.`cond` = 0 + ( + SELECT + COUNT(`t2`.`PersonID`) + FROM + `Patient` `t2` + WHERE + `t2`.`PersonID` = @personId AND `t2`.`PersonID` NOT IN ( + SELECT + `t3`.`PersonID` + FROM + `Patient` `t3` + WHERE + `t3`.`PersonID` = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(`t4`.`PersonID`) + FROM + `Patient` `t4` + WHERE + `t4`.`PersonID` = @personId_1 AND `t4`.`PersonID` NOT IN ( + SELECT + `t5`.`PersonID` + FROM + `Patient` `t5` + WHERE + `t5`.`PersonID` = @personId + ) + ) = 0 ) as `c1` diff --git a/MySqlConnector.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.8.0).sql b/MySqlConnector.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.8.0).sql index d77a7f5fc1b2..d82f77aee5c0 100644 --- a/MySqlConnector.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.8.0).sql +++ b/MySqlConnector.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(MySqlConnector.8.0).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) > (`y`.`One`, `y`.`One`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) > ( + SELECT + `y`.`One`, + `y`.`One`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) >= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) >= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Nil`) < (`y`.`One`, `y`.`Three`, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Nil`) < ( + SELECT + `y`.`One`, + `y`.`Three`, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <= (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <= ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySqlConnector.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.8.0).sql b/MySqlConnector.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.8.0).sql index 1122dfa19a3e..474275d42f40 100644 --- a/MySqlConnector.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.8.0).sql +++ b/MySqlConnector.8.0/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(MySqlConnector.8.0).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) = (`y`.`One`, `y`.`One` + 1, 3) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`y`.`One`, `y`.`One` + 1, 3) = (`x`.`One`, `x`.`Two`, `x`.`Three`) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) = ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 3 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) BeforeExecute -- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - `Ints` `x`, - `Ints2` `y` + `Ints` `x` WHERE - (`x`.`One`, `x`.`Two`, `x`.`Three`) <> (`y`.`One`, `y`.`One` + 1, 4) AND - `y`.`Nil` IS NULL + (`x`.`One`, `x`.`Two`, `x`.`Three`) <> ( + SELECT + `y`.`One`, + `y`.`One` + 1, + 4 + FROM + `Ints2` `y` + WHERE + `y`.`Nil` IS NULL + ) diff --git a/MySqlConnector.8.0/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySqlConnector.8.0).sql b/MySqlConnector.8.0/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySqlConnector.8.0).sql index 60a5187cec08..f8c52a3b9b2f 100644 --- a/MySqlConnector.8.0/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySqlConnector.8.0).sql +++ b/MySqlConnector.8.0/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(MySqlConnector.8.0).sql @@ -7,7 +7,14 @@ SELECT `d`.`Distributor_Name`, `cp`.`Street_Number`, `cp`.`Street_Name`, - `c_1`.`City_Name`, + ( + SELECT + `c_1`.`City_Name` + FROM + `Cities` `c_1` + WHERE + `c_1`.`City_Code` = `cp`.`City_Code` OR `c_1`.`City_Code` IS NULL AND `cp`.`City_Code` IS NULL + ), `cp`.`State`, `cp`.`Zip_Code`, `cp`.`Zip_Plus_4`, @@ -19,7 +26,6 @@ FROM INNER JOIN `Distributor_Commercial_Propert` `dcp` ON `d`.`Distributor_Id` = `dcp`.`Distributor_Id` INNER JOIN `Commercial_Property` `cp` ON `dcp`.`Commercial_Property_Id` = `cp`.`Commercial_Property_Id` INNER JOIN `Contract_Dates` `cd` ON `cda`.`Contract_Id` = `cd`.`Contract_Id` - INNER JOIN `Cities` `c_1` ON `c_1`.`City_Code` = `cp`.`City_Code` OR `c_1`.`City_Code` IS NULL AND `cp`.`City_Code` IS NULL WHERE `cda`.`Contract_Id` = 198827882 AND `cda`.`Distributor_Type_Code` = 'CC' AND diff --git a/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.8.0).sql b/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.8.0).sql index ae642f32f709..219c02a7f073 100644 --- a/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.8.0).sql +++ b/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(MySqlConnector.8.0).sql @@ -5,8 +5,14 @@ SELECT `t`.`Id`, `t`.`BoolValue` FROM - `WhereWithBool` `t`, - `WhereWithBool` `x` + `WhereWithBool` `t` WHERE - `x`.`BoolValue` AND `x`.`Id` = 1 + ( + SELECT + `x`.`BoolValue` + FROM + `WhereWithBool` `x` + WHERE + `x`.`Id` = 1 + ) diff --git a/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.8.0).sql b/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.8.0).sql index 74fca677ba76..7c1f96ecdd78 100644 --- a/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.8.0).sql +++ b/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(MySqlConnector.8.0).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t2` - WHERE - LOCATE(@filter1, `e`.`FirstName`) > 0 AND `e`.`PersonID` = `t2`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t3` - WHERE - LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND `e_1`.`PersonID` = `t3`.`cond` + ) ) ORDER BY `t1`.`PersonID` diff --git a/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.8.0).sql b/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.8.0).sql index 37c49f8e3efa..caee7bd7733e 100644 --- a/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.8.0).sql +++ b/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(MySqlConnector.8.0).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - `Person` `e`, - ( + `Person` `e` + WHERE + `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND + `e`.`PersonID` = ( SELECT - `d`.`PersonID` as `cond` + `d`.`PersonID` FROM `Patient` `d` LIMIT 1 - ) `t1` - WHERE - `e`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter1, `e`.`FirstName`) > 0 AND - `e`.`PersonID` = `t1`.`cond` + ) ) OR EXISTS( SELECT * FROM - `Person` `e_1`, - ( + `Person` `e_1` + WHERE + `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND + `e_1`.`PersonID` = ( SELECT - `d_1`.`PersonID` as `cond` + `d_1`.`PersonID` FROM `Patient` `d_1` LIMIT 1 - ) `t2` - WHERE - `e_1`.`PersonID` = `p`.`PersonID` AND LOCATE(@filter2, `e_1`.`FirstName`) > 0 AND - `e_1`.`PersonID` = `t2`.`cond` + ) ) ORDER BY `p`.`PersonID` diff --git a/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySqlConnector.8.0).sql b/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySqlConnector.8.0).sql index fa285ebaa254..fce27046cd7d 100644 --- a/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySqlConnector.8.0).sql +++ b/MySqlConnector.8.0/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(MySqlConnector.8.0).sql @@ -16,34 +16,32 @@ WHERE * FROM `Person` `p` - INNER JOIN LATERAL ( - SELECT - `d`.`PersonID` as `cond` - FROM - `Person` `d` - WHERE - `d`.`PersonID` = `patient_1`.`PersonID` - LIMIT 1 - ) `t1` ON 1=1 WHERE - LOCATE(@filter, `p`.`FirstName`) > 0 AND `p`.`PersonID` = `t1`.`cond` + LOCATE(@filter, `p`.`FirstName`) > 0 AND `p`.`PersonID` = ( + SELECT + `d`.`PersonID` + FROM + `Person` `d` + WHERE + `d`.`PersonID` = `patient_1`.`PersonID` + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM `Person` `p_1` - INNER JOIN LATERAL ( - SELECT - `d_1`.`PersonID` as `cond` - FROM - `Person` `d_1` - WHERE - `d_1`.`PersonID` = `patient_1`.`PersonID` - LIMIT 1 - ) `t2` ON 1=1 WHERE - LOCATE(@filter_1, `p_1`.`FirstName`) > 0 AND `p_1`.`PersonID` = `t2`.`cond` + LOCATE(@filter_1, `p_1`.`FirstName`) > 0 AND `p_1`.`PersonID` = ( + SELECT + `d_1`.`PersonID` + FROM + `Person` `d_1` + WHERE + `d_1`.`PersonID` = `patient_1`.`PersonID` + LIMIT 1 + ) ) ORDER BY `patient_1`.`PersonID` From 2020096afb6ba0fac8b7234e369f03b149a9a6bd Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:24:55 +0000 Subject: [PATCH 20/40] [Windows / Access MDB (Jet/ODBC)] baselines --- ...onTest1(Access.Jet.Odbc.LinqService,1).sql | 23 ++++++++-------- ...onTest1(Access.Jet.Odbc.LinqService,2).sql | 23 ++++++++-------- ...nSubquery(Access.Jet.Odbc.LinqService).sql | 12 ++++++--- ...ryFilter1(Access.Jet.Odbc.LinqService).sql | 22 +++++++--------- ...ryFilter2(Access.Jet.Odbc.LinqService).sql | 26 +++++++++---------- ...sts.ComparisonTest1(Access.Jet.Odbc,1).sql | 23 ++++++++-------- ...sts.ComparisonTest1(Access.Jet.Odbc,2).sql | 23 ++++++++-------- ...ryTests.Issue383Test2(Access.Jet.Odbc).sql | 14 +++++++--- ...Tests.BooleanSubquery(Access.Jet.Odbc).sql | 12 ++++++--- ...Issue_SubQueryFilter1(Access.Jet.Odbc).sql | 22 +++++++--------- ...Issue_SubQueryFilter2(Access.Jet.Odbc).sql | 26 +++++++++---------- ...nTest1(Access.Jet.OleDb.LinqService,1).sql | 23 ++++++++-------- ...nTest1(Access.Jet.OleDb.LinqService,2).sql | 23 ++++++++-------- ...Subquery(Access.Jet.OleDb.LinqService).sql | 12 ++++++--- ...yFilter1(Access.Jet.OleDb.LinqService).sql | 22 +++++++--------- ...yFilter2(Access.Jet.OleDb.LinqService).sql | 26 +++++++++---------- ...ts.ComparisonTest1(Access.Jet.OleDb,1).sql | 23 ++++++++-------- ...ts.ComparisonTest1(Access.Jet.OleDb,2).sql | 23 ++++++++-------- ...yTests.Issue383Test2(Access.Jet.OleDb).sql | 14 +++++++--- ...ests.BooleanSubquery(Access.Jet.OleDb).sql | 12 ++++++--- ...ssue_SubQueryFilter1(Access.Jet.OleDb).sql | 22 +++++++--------- ...ssue_SubQueryFilter2(Access.Jet.OleDb).sql | 26 +++++++++---------- 22 files changed, 232 insertions(+), 220 deletions(-) diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc.LinqService,1).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc.LinqService,1).sql index b5bc0aee3cf3..35e94e8add29 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc.LinqService,1).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc.LinqService,1).sql @@ -12,10 +12,11 @@ SET @personId = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = ? ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = ? AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = ? AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = ? + [t5].[PersonID] = ? ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc.LinqService,2).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc.LinqService,2).sql index b5bc0aee3cf3..35e94e8add29 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc.LinqService,2).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc.LinqService,2).sql @@ -12,10 +12,11 @@ SET @personId = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = ? ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = ? AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = ? AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = ? + [t5].[PersonID] = ? ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.Odbc.LinqService).sql index 2f58f9be2e11..fb5e65eab6c3 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.Odbc.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.Odbc.LinqService).sql index 3b2d8ecfac10..8caf750ad818 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.Odbc.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE ? AND [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE ? AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE ? AND [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE ? AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.Odbc.LinqService).sql index 490a4a550e65..0dac364371c9 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.Odbc.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE ? AND + [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE ? AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE ? AND + [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE ? AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/Access.Jet.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc,1).sql b/Access.Jet.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc,1).sql index b5bc0aee3cf3..35e94e8add29 100644 --- a/Access.Jet.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc,1).sql +++ b/Access.Jet.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc,1).sql @@ -12,10 +12,11 @@ SET @personId = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = ? ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = ? AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = ? AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = ? + [t5].[PersonID] = ? ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Jet.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc,2).sql b/Access.Jet.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc,2).sql index b5bc0aee3cf3..35e94e8add29 100644 --- a/Access.Jet.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc,2).sql +++ b/Access.Jet.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.Odbc,2).sql @@ -12,10 +12,11 @@ SET @personId = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = ? ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = ? AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = ? AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = ? + [t5].[PersonID] = ? ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Jet.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Jet.Odbc).sql index 23b80d9c9d2a..787eb824400b 100644 --- a/Access.Jet.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Jet.Odbc).sql @@ -7,19 +7,25 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], [cd].[Effective_Date] FROM - ((((([Contract_Distributor_Agent] [cda] + (((([Contract_Distributor_Agent] [cda] INNER JOIN [Agent] [a] ON ([cda].[Agent_Id] = [a].[Agent_Id])) INNER JOIN [Distributor] [d] ON ([cda].[Distributor_Id] = [d].[Distributor_Id])) INNER JOIN [Distributor_Commercial_Propert] [dcp] ON ([d].[Distributor_Id] = [dcp].[Distributor_Id])) INNER JOIN [Commercial_Property] [cp] ON ([dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id])) - INNER JOIN [Contract_Dates] [cd] ON ([cda].[Contract_Id] = [cd].[Contract_Id])) - INNER JOIN [Cities] [c_1] ON ([c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL) + INNER JOIN [Contract_Dates] [cd] ON ([cda].[Contract_Id] = [cd].[Contract_Id]) WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = 'CC' AND diff --git a/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.Odbc).sql index 2f58f9be2e11..fb5e65eab6c3 100644 --- a/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.Odbc).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.Odbc).sql index 3b2d8ecfac10..8caf750ad818 100644 --- a/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.Odbc).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE ? AND [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE ? AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE ? AND [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE ? AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.Odbc).sql index 490a4a550e65..0dac364371c9 100644 --- a/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.Odbc).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE ? AND + [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE ? AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE ? AND + [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE ? AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb.LinqService,1).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb.LinqService,1).sql index bbda408b4483..94cb738ab41f 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb.LinqService,1).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb.LinqService,1).sql @@ -12,10 +12,11 @@ SET @personId_3 = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = @personId_1 ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = @personId_2 AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = @personId_2 AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = @personId_3 + [t5].[PersonID] = @personId_3 ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb.LinqService,2).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb.LinqService,2).sql index bbda408b4483..94cb738ab41f 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb.LinqService,2).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb.LinqService,2).sql @@ -12,10 +12,11 @@ SET @personId_3 = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = @personId_1 ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = @personId_2 AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = @personId_2 AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = @personId_3 + [t5].[PersonID] = @personId_3 ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.OleDb.LinqService).sql index f54fcb30c703..580225239273 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.OleDb.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.OleDb.LinqService).sql index 0f9090eb1e22..f5bcbe2dd1f0 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.OleDb.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 AND [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 AND [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.OleDb.LinqService).sql index 66c144cbcc8e..8183e24d5fc4 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.OleDb.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 AND + [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 AND + [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/Access.Jet.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb,1).sql b/Access.Jet.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb,1).sql index bbda408b4483..94cb738ab41f 100644 --- a/Access.Jet.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb,1).sql +++ b/Access.Jet.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb,1).sql @@ -12,10 +12,11 @@ SET @personId_3 = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = @personId_1 ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = @personId_2 AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = @personId_2 AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = @personId_3 + [t5].[PersonID] = @personId_3 ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Jet.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb,2).sql b/Access.Jet.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb,2).sql index bbda408b4483..94cb738ab41f 100644 --- a/Access.Jet.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb,2).sql +++ b/Access.Jet.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Jet.OleDb,2).sql @@ -12,10 +12,11 @@ SET @personId_3 = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = @personId_1 ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = @personId_2 AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = @personId_2 AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = @personId_3 + [t5].[PersonID] = @personId_3 ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Jet.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Jet.OleDb).sql index fd5f5420e085..d5caea3cd5a3 100644 --- a/Access.Jet.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Jet.OleDb).sql @@ -7,19 +7,25 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], [cd].[Effective_Date] FROM - ((((([Contract_Distributor_Agent] [cda] + (((([Contract_Distributor_Agent] [cda] INNER JOIN [Agent] [a] ON ([cda].[Agent_Id] = [a].[Agent_Id])) INNER JOIN [Distributor] [d] ON ([cda].[Distributor_Id] = [d].[Distributor_Id])) INNER JOIN [Distributor_Commercial_Propert] [dcp] ON ([d].[Distributor_Id] = [dcp].[Distributor_Id])) INNER JOIN [Commercial_Property] [cp] ON ([dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id])) - INNER JOIN [Contract_Dates] [cd] ON ([cda].[Contract_Id] = [cd].[Contract_Id])) - INNER JOIN [Cities] [c_1] ON ([c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL) + INNER JOIN [Contract_Dates] [cd] ON ([cda].[Contract_Id] = [cd].[Contract_Id]) WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = 'CC' AND diff --git a/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.OleDb).sql index f54fcb30c703..580225239273 100644 --- a/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Jet.OleDb).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.OleDb).sql index 0f9090eb1e22..f5bcbe2dd1f0 100644 --- a/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Jet.OleDb).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 AND [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 AND [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.OleDb).sql index 66c144cbcc8e..8183e24d5fc4 100644 --- a/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Jet.OleDb).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 AND + [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 AND + [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] From 558f761a3452963733c32f30661b7c024340b94f Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:26:34 +0000 Subject: [PATCH 21/40] [Windows / Access ACE (OLEDB/ODBC) x86] baselines --- ...onTest1(Access.Ace.Odbc.LinqService,1).sql | 23 ++++++++-------- ...onTest1(Access.Ace.Odbc.LinqService,2).sql | 23 ++++++++-------- ...nSubquery(Access.Ace.Odbc.LinqService).sql | 12 ++++++--- ...ryFilter1(Access.Ace.Odbc.LinqService).sql | 22 +++++++--------- ...ryFilter2(Access.Ace.Odbc.LinqService).sql | 26 +++++++++---------- ...sts.ComparisonTest1(Access.Ace.Odbc,1).sql | 23 ++++++++-------- ...sts.ComparisonTest1(Access.Ace.Odbc,2).sql | 23 ++++++++-------- ...ryTests.Issue383Test2(Access.Ace.Odbc).sql | 14 +++++++--- ...Tests.BooleanSubquery(Access.Ace.Odbc).sql | 12 ++++++--- ...Issue_SubQueryFilter1(Access.Ace.Odbc).sql | 22 +++++++--------- ...Issue_SubQueryFilter2(Access.Ace.Odbc).sql | 26 +++++++++---------- ...nTest1(Access.Ace.OleDb.LinqService,1).sql | 23 ++++++++-------- ...nTest1(Access.Ace.OleDb.LinqService,2).sql | 23 ++++++++-------- ...Subquery(Access.Ace.OleDb.LinqService).sql | 12 ++++++--- ...yFilter1(Access.Ace.OleDb.LinqService).sql | 22 +++++++--------- ...yFilter2(Access.Ace.OleDb.LinqService).sql | 26 +++++++++---------- ...ts.ComparisonTest1(Access.Ace.OleDb,1).sql | 23 ++++++++-------- ...ts.ComparisonTest1(Access.Ace.OleDb,2).sql | 23 ++++++++-------- ...yTests.Issue383Test2(Access.Ace.OleDb).sql | 14 +++++++--- ...ests.BooleanSubquery(Access.Ace.OleDb).sql | 12 ++++++--- ...ssue_SubQueryFilter1(Access.Ace.OleDb).sql | 22 +++++++--------- ...ssue_SubQueryFilter2(Access.Ace.OleDb).sql | 26 +++++++++---------- 22 files changed, 232 insertions(+), 220 deletions(-) diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc.LinqService,1).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc.LinqService,1).sql index 3cffb46ff266..d46bd3b87102 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc.LinqService,1).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc.LinqService,1).sql @@ -12,10 +12,11 @@ SET @personId = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = ? ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = ? AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = ? AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = ? + [t5].[PersonID] = ? ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc.LinqService,2).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc.LinqService,2).sql index 3cffb46ff266..d46bd3b87102 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc.LinqService,2).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc.LinqService,2).sql @@ -12,10 +12,11 @@ SET @personId = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = ? ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = ? AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = ? AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = ? + [t5].[PersonID] = ? ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.Odbc.LinqService).sql index a65b56b4c95e..97cf40ce5992 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.Odbc.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.Odbc.LinqService).sql index 5ba88fb9c749..ca5537272ef8 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.Odbc.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE ? AND [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE ? AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE ? AND [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE ? AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.Odbc.LinqService).sql index 1ae0c34ed203..43927bd856f5 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.Odbc.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE ? AND + [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE ? AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE ? AND + [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE ? AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/Access.Ace.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc,1).sql b/Access.Ace.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc,1).sql index 3cffb46ff266..d46bd3b87102 100644 --- a/Access.Ace.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc,1).sql +++ b/Access.Ace.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc,1).sql @@ -12,10 +12,11 @@ SET @personId = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = ? ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = ? AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = ? AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = ? + [t5].[PersonID] = ? ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Ace.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc,2).sql b/Access.Ace.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc,2).sql index 3cffb46ff266..d46bd3b87102 100644 --- a/Access.Ace.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc,2).sql +++ b/Access.Ace.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.Odbc,2).sql @@ -12,10 +12,11 @@ SET @personId = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = ? ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = ? AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = ? AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = ? + [t5].[PersonID] = ? ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Ace.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Ace.Odbc).sql index 1d6cb46b4eac..2ccb09964973 100644 --- a/Access.Ace.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Ace.Odbc).sql @@ -7,19 +7,25 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], [cd].[Effective_Date] FROM - ((((([Contract_Distributor_Agent] [cda] + (((([Contract_Distributor_Agent] [cda] INNER JOIN [Agent] [a] ON ([cda].[Agent_Id] = [a].[Agent_Id])) INNER JOIN [Distributor] [d] ON ([cda].[Distributor_Id] = [d].[Distributor_Id])) INNER JOIN [Distributor_Commercial_Propert] [dcp] ON ([d].[Distributor_Id] = [dcp].[Distributor_Id])) INNER JOIN [Commercial_Property] [cp] ON ([dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id])) - INNER JOIN [Contract_Dates] [cd] ON ([cda].[Contract_Id] = [cd].[Contract_Id])) - INNER JOIN [Cities] [c_1] ON ([c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL) + INNER JOIN [Contract_Dates] [cd] ON ([cda].[Contract_Id] = [cd].[Contract_Id]) WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = 'CC' AND diff --git a/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.Odbc).sql index a65b56b4c95e..97cf40ce5992 100644 --- a/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.Odbc).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.Odbc).sql index 5ba88fb9c749..ca5537272ef8 100644 --- a/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.Odbc).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE ? AND [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE ? AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE ? AND [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE ? AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.Odbc).sql index 1ae0c34ed203..43927bd856f5 100644 --- a/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.Odbc).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE ? AND + [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE ? AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE ? AND + [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE ? AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb.LinqService,1).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb.LinqService,1).sql index 7c976cb4ac82..54d1f011b411 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb.LinqService,1).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb.LinqService,1).sql @@ -12,10 +12,11 @@ SET @personId_3 = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = @personId_1 ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = @personId_2 AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = @personId_2 AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = @personId_3 + [t5].[PersonID] = @personId_3 ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb.LinqService,2).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb.LinqService,2).sql index 7c976cb4ac82..54d1f011b411 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb.LinqService,2).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb.LinqService,2).sql @@ -12,10 +12,11 @@ SET @personId_3 = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = @personId_1 ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = @personId_2 AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = @personId_2 AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = @personId_3 + [t5].[PersonID] = @personId_3 ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.OleDb.LinqService).sql index 83a56de1dfb9..41fc0ce0c0e8 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.OleDb.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.OleDb.LinqService).sql index 639ebe61aef7..3396b72a8b18 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.OleDb.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 AND [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 AND [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.OleDb.LinqService).sql index 088bd5788dcb..4b5e96f693ee 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.OleDb.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 AND + [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 AND + [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/Access.Ace.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb,1).sql b/Access.Ace.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb,1).sql index 7c976cb4ac82..54d1f011b411 100644 --- a/Access.Ace.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb,1).sql +++ b/Access.Ace.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb,1).sql @@ -12,10 +12,11 @@ SET @personId_3 = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = @personId_1 ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = @personId_2 AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = @personId_2 AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = @personId_3 + [t5].[PersonID] = @personId_3 ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Ace.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb,2).sql b/Access.Ace.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb,2).sql index 7c976cb4ac82..54d1f011b411 100644 --- a/Access.Ace.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb,2).sql +++ b/Access.Ace.OleDb/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Access.Ace.OleDb,2).sql @@ -12,10 +12,11 @@ SET @personId_3 = 0 SELECT COUNT(*) > 0 FROM - [Person] [t1], + [Person] [t1] +WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -27,22 +28,20 @@ FROM WHERE [t3].[PersonID] = @personId_1 ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = @personId_2 AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = @personId_2 AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = @personId_3 + [t5].[PersonID] = @personId_3 ) - ) [t7] -WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 diff --git a/Access.Ace.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Ace.OleDb).sql index 1f5fe85abfb9..4276d12e1f88 100644 --- a/Access.Ace.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Access.Ace.OleDb).sql @@ -7,19 +7,25 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], [cd].[Effective_Date] FROM - ((((([Contract_Distributor_Agent] [cda] + (((([Contract_Distributor_Agent] [cda] INNER JOIN [Agent] [a] ON ([cda].[Agent_Id] = [a].[Agent_Id])) INNER JOIN [Distributor] [d] ON ([cda].[Distributor_Id] = [d].[Distributor_Id])) INNER JOIN [Distributor_Commercial_Propert] [dcp] ON ([d].[Distributor_Id] = [dcp].[Distributor_Id])) INNER JOIN [Commercial_Property] [cp] ON ([dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id])) - INNER JOIN [Contract_Dates] [cd] ON ([cda].[Contract_Id] = [cd].[Contract_Id])) - INNER JOIN [Cities] [c_1] ON ([c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL) + INNER JOIN [Contract_Dates] [cd] ON ([cda].[Contract_Id] = [cd].[Contract_Id]) WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = 'CC' AND diff --git a/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.OleDb).sql index 83a56de1dfb9..41fc0ce0c0e8 100644 --- a/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Access.Ace.OleDb).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) diff --git a/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.OleDb).sql index 639ebe61aef7..3396b72a8b18 100644 --- a/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Access.Ace.OleDb).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 AND [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 AND [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.OleDb).sql index 088bd5788dcb..4b5e96f693ee 100644 --- a/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Access.Ace.OleDb).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 AND + [e].[PersonID] = ( SELECT TOP 1 - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 AND + [e_1].[PersonID] = ( SELECT TOP 1 - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] From 34c0786d35c860df8ddee66ac314ae4246e984b3 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:33:09 +0000 Subject: [PATCH 22/40] [Linux / PostgreSQL 13] baselines --- ...ssueTests.Issue3491Test(PostgreSQL.13).sql | 14 +++- ...ssueTests.Issue3491Test(PostgreSQL.13).sql | 14 +++- ...ssueTests.Issue3491Test(PostgreSQL.13).sql | 14 +++- ...isonTest1(PostgreSQL.13.LinqService,1).sql | 63 ++++++++-------- ...isonTest1(PostgreSQL.13.LinqService,2).sql | 63 ++++++++-------- ...areToSelect(PostgreSQL.13.LinqService).sql | 60 +++++++++++---- ...ualToSelect(PostgreSQL.13.LinqService).sql | 75 ++++++++++++++----- ...teRowSelect(PostgreSQL.13.LinqService).sql | 14 +++- ...eanSubquery(PostgreSQL.13.LinqService).sql | 12 ++- ...ueryFilter1(PostgreSQL.13.LinqService).sql | 22 +++--- ...ueryFilter2(PostgreSQL.13.LinqService).sql | 26 +++---- ...ueryFilter3(PostgreSQL.13.LinqService).sql | 38 +++++----- ...Tests.ComparisonTest1(PostgreSQL.13,1).sql | 63 ++++++++-------- ...Tests.ComparisonTest1(PostgreSQL.13,2).sql | 63 ++++++++-------- ...owTests.CompareToSelect(PostgreSQL.13).sql | 60 +++++++++++---- ...lRowTests.EqualToSelect(PostgreSQL.13).sql | 75 ++++++++++++++----- ...owTests.UpdateRowSelect(PostgreSQL.13).sql | 14 +++- ...ueryTests.Issue383Test2(PostgreSQL.13).sql | 10 ++- ...reTests.BooleanSubquery(PostgreSQL.13).sql | 12 ++- ...s.Issue_SubQueryFilter1(PostgreSQL.13).sql | 22 +++--- ...s.Issue_SubQueryFilter2(PostgreSQL.13).sql | 26 +++---- ...s.Issue_SubQueryFilter3(PostgreSQL.13).sql | 38 +++++----- 22 files changed, 478 insertions(+), 320 deletions(-) diff --git a/PostgreSQL.13.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.13).sql b/PostgreSQL.13.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.13).sql index 8bf6b5fe6a1c..e55f4d0fac73 100644 --- a/PostgreSQL.13.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.13).sql +++ b/PostgreSQL.13.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.13).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.13.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.13).sql b/PostgreSQL.13.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.13).sql index 8bf6b5fe6a1c..e55f4d0fac73 100644 --- a/PostgreSQL.13.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.13).sql +++ b/PostgreSQL.13.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.13).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.13.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.13).sql b/PostgreSQL.13.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.13).sql index 8bf6b5fe6a1c..e55f4d0fac73 100644 --- a/PostgreSQL.13.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.13).sql +++ b/PostgreSQL.13.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.13).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.13.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13.LinqService,1).sql b/PostgreSQL.13.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13.LinqService,1).sql index 9c5c0ebeded1..ca58a8203a52 100644 --- a/PostgreSQL.13.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13.LinqService,1).sql +++ b/PostgreSQL.13.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.13.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13.LinqService,2).sql b/PostgreSQL.13.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13.LinqService,2).sql index 9c5c0ebeded1..ca58a8203a52 100644 --- a/PostgreSQL.13.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13.LinqService,2).sql +++ b/PostgreSQL.13.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.13.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.13.LinqService).sql b/PostgreSQL.13.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.13.LinqService).sql index 532dbfe8e89d..ac04307432ee 100644 --- a/PostgreSQL.13.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.13.LinqService).sql +++ b/PostgreSQL.13.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.13.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") > (y."One", y."One", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") > ( + SELECT + y."One", + y."One", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") >= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") >= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") < (y."One", y."Three", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") < ( + SELECT + y."One", + y."Three", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.13.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.13.LinqService).sql b/PostgreSQL.13.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.13.LinqService).sql index 1864766f8d59..5713e107a161 100644 --- a/PostgreSQL.13.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.13.LinqService).sql +++ b/PostgreSQL.13.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.13.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = (x."One", x."Two", x."Three") AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.13.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.13.LinqService).sql b/PostgreSQL.13.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.13.LinqService).sql index 0b985ed2c79b..d5ac4d0346e6 100644 --- a/PostgreSQL.13.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.13.LinqService).sql +++ b/PostgreSQL.13.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.13.LinqService).sql @@ -5,12 +5,18 @@ UPDATE "Ints" SET "One" = "Ints"."Two" * 5, - ("Two", "Three") = ("Ints"."Two" * 10, j."Three" * 100), + ("Two", "Three") = ( + SELECT + "Ints"."Two" * 10, + j."Three" * 100 + FROM + "Ints" j + WHERE + j."One" = 1 + ), ("Four", "Nil") = ("Ints"."One" * "Ints"."Four", 600) -FROM - "Ints" j WHERE - "Ints"."One" = 10 AND j."One" = 1 + "Ints"."One" = 10 BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL diff --git a/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.13.LinqService).sql b/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.13.LinqService).sql index dcd743b4b90a..6b3857e3b657 100644 --- a/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.13.LinqService).sql +++ b/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.13.LinqService).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) diff --git a/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.13.LinqService).sql b/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.13.LinqService).sql index 02fa8c4a8316..2629c6625ee3 100644 --- a/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.13.LinqService).sql +++ b/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.13.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3.cond + ) ) ORDER BY t1."PersonID" diff --git a/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.13.LinqService).sql b/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.13.LinqService).sql index 91ac0e13bcc7..85756fecee06 100644 --- a/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.13.LinqService).sql +++ b/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.13.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2.cond + ) ) ORDER BY p."PersonID" diff --git a/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.13.LinqService).sql b/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.13.LinqService).sql index 73c0196c8a30..d5eb62de42fa 100644 --- a/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.13.LinqService).sql +++ b/PostgreSQL.13.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.13.LinqService).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" p - INNER JOIN LATERAL ( - SELECT - d."PersonID" as cond - FROM - "Person" d - WHERE - d."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t1 ON 1=1 WHERE - p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = t1.cond + p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = ( + SELECT + d."PersonID" + FROM + "Person" d + WHERE + d."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM "Person" p_1 - INNER JOIN LATERAL ( - SELECT - d_1."PersonID" as cond - FROM - "Person" d_1 - WHERE - d_1."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t2 ON 1=1 WHERE - p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = t2.cond + p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = ( + SELECT + d_1."PersonID" + FROM + "Person" d_1 + WHERE + d_1."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) ORDER BY patient_1."PersonID" diff --git a/PostgreSQL.13/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13,1).sql b/PostgreSQL.13/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13,1).sql index 9c5c0ebeded1..ca58a8203a52 100644 --- a/PostgreSQL.13/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13,1).sql +++ b/PostgreSQL.13/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.13/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13,2).sql b/PostgreSQL.13/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13,2).sql index 9c5c0ebeded1..ca58a8203a52 100644 --- a/PostgreSQL.13/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13,2).sql +++ b/PostgreSQL.13/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.13,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.13/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.13).sql b/PostgreSQL.13/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.13).sql index 532dbfe8e89d..ac04307432ee 100644 --- a/PostgreSQL.13/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.13).sql +++ b/PostgreSQL.13/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.13).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") > (y."One", y."One", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") > ( + SELECT + y."One", + y."One", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") >= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") >= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") < (y."One", y."Three", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") < ( + SELECT + y."One", + y."Three", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.13/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.13).sql b/PostgreSQL.13/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.13).sql index 1864766f8d59..5713e107a161 100644 --- a/PostgreSQL.13/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.13).sql +++ b/PostgreSQL.13/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.13).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = (x."One", x."Two", x."Three") AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.13/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.13).sql b/PostgreSQL.13/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.13).sql index 0b985ed2c79b..d5ac4d0346e6 100644 --- a/PostgreSQL.13/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.13).sql +++ b/PostgreSQL.13/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.13).sql @@ -5,12 +5,18 @@ UPDATE "Ints" SET "One" = "Ints"."Two" * 5, - ("Two", "Three") = ("Ints"."Two" * 10, j."Three" * 100), + ("Two", "Three") = ( + SELECT + "Ints"."Two" * 10, + j."Three" * 100 + FROM + "Ints" j + WHERE + j."One" = 1 + ), ("Four", "Nil") = ("Ints"."One" * "Ints"."Four", 600) -FROM - "Ints" j WHERE - "Ints"."One" = 10 AND j."One" = 1 + "Ints"."One" = 10 BeforeExecute -- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL diff --git a/PostgreSQL.13/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.13).sql b/PostgreSQL.13/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.13).sql index 7fbc02f157b5..0cb5937ef230 100644 --- a/PostgreSQL.13/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.13).sql +++ b/PostgreSQL.13/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.13).sql @@ -7,7 +7,14 @@ SELECT d."Distributor_Name", cp."Street_Number", cp."Street_Name", - c_1."City_Name", + ( + SELECT + c_1."City_Name" + FROM + "Cities" c_1 + WHERE + c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL + ), cp."State", cp."Zip_Code", cp."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" dcp ON d."Distributor_Id" = dcp."Distributor_Id" INNER JOIN "Commercial_Property" cp ON dcp."Commercial_Property_Id" = cp."Commercial_Property_Id" INNER JOIN "Contract_Dates" cd ON cda."Contract_Id" = cd."Contract_Id" - INNER JOIN "Cities" c_1 ON c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL WHERE cda."Contract_Id" = 198827882 AND cda."Distributor_Type_Code" = 'CC' AND diff --git a/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.13).sql b/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.13).sql index dcd743b4b90a..6b3857e3b657 100644 --- a/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.13).sql +++ b/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.13).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) diff --git a/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.13).sql b/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.13).sql index 02fa8c4a8316..2629c6625ee3 100644 --- a/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.13).sql +++ b/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.13).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3.cond + ) ) ORDER BY t1."PersonID" diff --git a/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.13).sql b/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.13).sql index 91ac0e13bcc7..85756fecee06 100644 --- a/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.13).sql +++ b/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.13).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2.cond + ) ) ORDER BY p."PersonID" diff --git a/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.13).sql b/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.13).sql index 73c0196c8a30..d5eb62de42fa 100644 --- a/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.13).sql +++ b/PostgreSQL.13/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.13).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" p - INNER JOIN LATERAL ( - SELECT - d."PersonID" as cond - FROM - "Person" d - WHERE - d."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t1 ON 1=1 WHERE - p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = t1.cond + p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = ( + SELECT + d."PersonID" + FROM + "Person" d + WHERE + d."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM "Person" p_1 - INNER JOIN LATERAL ( - SELECT - d_1."PersonID" as cond - FROM - "Person" d_1 - WHERE - d_1."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t2 ON 1=1 WHERE - p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = t2.cond + p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = ( + SELECT + d_1."PersonID" + FROM + "Person" d_1 + WHERE + d_1."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) ORDER BY patient_1."PersonID" From 42bb55eefd3e478b8452bbd97d708825c787ec0d Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:33:46 +0000 Subject: [PATCH 23/40] [Linux / PostgreSQL 14] baselines --- ...ssueTests.Issue3491Test(PostgreSQL.14).sql | 14 +++- ...ssueTests.Issue3491Test(PostgreSQL.14).sql | 14 +++- ...ssueTests.Issue3491Test(PostgreSQL.14).sql | 14 +++- ...isonTest1(PostgreSQL.14.LinqService,1).sql | 63 ++++++++-------- ...isonTest1(PostgreSQL.14.LinqService,2).sql | 63 ++++++++-------- ...areToSelect(PostgreSQL.14.LinqService).sql | 60 +++++++++++---- ...ualToSelect(PostgreSQL.14.LinqService).sql | 75 ++++++++++++++----- ...teRowSelect(PostgreSQL.14.LinqService).sql | 14 +++- ...eanSubquery(PostgreSQL.14.LinqService).sql | 12 ++- ...ueryFilter1(PostgreSQL.14.LinqService).sql | 22 +++--- ...ueryFilter2(PostgreSQL.14.LinqService).sql | 26 +++---- ...ueryFilter3(PostgreSQL.14.LinqService).sql | 38 +++++----- ...Tests.ComparisonTest1(PostgreSQL.14,1).sql | 63 ++++++++-------- ...Tests.ComparisonTest1(PostgreSQL.14,2).sql | 63 ++++++++-------- ...owTests.CompareToSelect(PostgreSQL.14).sql | 60 +++++++++++---- ...lRowTests.EqualToSelect(PostgreSQL.14).sql | 75 ++++++++++++++----- ...owTests.UpdateRowSelect(PostgreSQL.14).sql | 14 +++- ...ueryTests.Issue383Test2(PostgreSQL.14).sql | 10 ++- ...reTests.BooleanSubquery(PostgreSQL.14).sql | 12 ++- ...s.Issue_SubQueryFilter1(PostgreSQL.14).sql | 22 +++--- ...s.Issue_SubQueryFilter2(PostgreSQL.14).sql | 26 +++---- ...s.Issue_SubQueryFilter3(PostgreSQL.14).sql | 38 +++++----- 22 files changed, 478 insertions(+), 320 deletions(-) diff --git a/PostgreSQL.14.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.14).sql b/PostgreSQL.14.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.14).sql index 8bf6b5fe6a1c..e55f4d0fac73 100644 --- a/PostgreSQL.14.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.14).sql +++ b/PostgreSQL.14.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.14).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.14.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.14).sql b/PostgreSQL.14.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.14).sql index 8bf6b5fe6a1c..e55f4d0fac73 100644 --- a/PostgreSQL.14.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.14).sql +++ b/PostgreSQL.14.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.14).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.14.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.14).sql b/PostgreSQL.14.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.14).sql index 8bf6b5fe6a1c..e55f4d0fac73 100644 --- a/PostgreSQL.14.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.14).sql +++ b/PostgreSQL.14.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.14).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.14.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14.LinqService,1).sql b/PostgreSQL.14.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14.LinqService,1).sql index e43d5ab2fc7a..8e801b245b51 100644 --- a/PostgreSQL.14.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14.LinqService,1).sql +++ b/PostgreSQL.14.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.14.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14.LinqService,2).sql b/PostgreSQL.14.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14.LinqService,2).sql index e43d5ab2fc7a..8e801b245b51 100644 --- a/PostgreSQL.14.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14.LinqService,2).sql +++ b/PostgreSQL.14.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.14.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.14.LinqService).sql b/PostgreSQL.14.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.14.LinqService).sql index 0dee332c89eb..4536a30ec8c4 100644 --- a/PostgreSQL.14.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.14.LinqService).sql +++ b/PostgreSQL.14.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.14.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") > (y."One", y."One", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") > ( + SELECT + y."One", + y."One", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") >= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") >= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") < (y."One", y."Three", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") < ( + SELECT + y."One", + y."Three", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.14.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.14.LinqService).sql b/PostgreSQL.14.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.14.LinqService).sql index 24852a52aac7..f3478eae600d 100644 --- a/PostgreSQL.14.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.14.LinqService).sql +++ b/PostgreSQL.14.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.14.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = (x."One", x."Two", x."Three") AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.14.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.14.LinqService).sql b/PostgreSQL.14.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.14.LinqService).sql index 04efdfc14ee8..c2a2e061d24d 100644 --- a/PostgreSQL.14.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.14.LinqService).sql +++ b/PostgreSQL.14.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.14.LinqService).sql @@ -5,12 +5,18 @@ UPDATE "Ints" SET "One" = "Ints"."Two" * 5, - ("Two", "Three") = ("Ints"."Two" * 10, j."Three" * 100), + ("Two", "Three") = ( + SELECT + "Ints"."Two" * 10, + j."Three" * 100 + FROM + "Ints" j + WHERE + j."One" = 1 + ), ("Four", "Nil") = ("Ints"."One" * "Ints"."Four", 600) -FROM - "Ints" j WHERE - "Ints"."One" = 10 AND j."One" = 1 + "Ints"."One" = 10 BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL diff --git a/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.14.LinqService).sql b/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.14.LinqService).sql index b5a5ee823e77..d0dde37948d4 100644 --- a/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.14.LinqService).sql +++ b/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.14.LinqService).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) diff --git a/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.14.LinqService).sql b/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.14.LinqService).sql index 401c15b95441..806ab2fc4976 100644 --- a/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.14.LinqService).sql +++ b/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.14.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3.cond + ) ) ORDER BY t1."PersonID" diff --git a/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.14.LinqService).sql b/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.14.LinqService).sql index 00fc8fe80014..6cda1450e57a 100644 --- a/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.14.LinqService).sql +++ b/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.14.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2.cond + ) ) ORDER BY p."PersonID" diff --git a/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.14.LinqService).sql b/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.14.LinqService).sql index 48971e9337d0..8923cf49eaee 100644 --- a/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.14.LinqService).sql +++ b/PostgreSQL.14.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.14.LinqService).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" p - INNER JOIN LATERAL ( - SELECT - d."PersonID" as cond - FROM - "Person" d - WHERE - d."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t1 ON 1=1 WHERE - p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = t1.cond + p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = ( + SELECT + d."PersonID" + FROM + "Person" d + WHERE + d."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM "Person" p_1 - INNER JOIN LATERAL ( - SELECT - d_1."PersonID" as cond - FROM - "Person" d_1 - WHERE - d_1."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t2 ON 1=1 WHERE - p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = t2.cond + p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = ( + SELECT + d_1."PersonID" + FROM + "Person" d_1 + WHERE + d_1."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) ORDER BY patient_1."PersonID" diff --git a/PostgreSQL.14/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14,1).sql b/PostgreSQL.14/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14,1).sql index e43d5ab2fc7a..8e801b245b51 100644 --- a/PostgreSQL.14/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14,1).sql +++ b/PostgreSQL.14/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.14/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14,2).sql b/PostgreSQL.14/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14,2).sql index e43d5ab2fc7a..8e801b245b51 100644 --- a/PostgreSQL.14/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14,2).sql +++ b/PostgreSQL.14/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.14,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.14/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.14).sql b/PostgreSQL.14/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.14).sql index 0dee332c89eb..4536a30ec8c4 100644 --- a/PostgreSQL.14/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.14).sql +++ b/PostgreSQL.14/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.14).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") > (y."One", y."One", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") > ( + SELECT + y."One", + y."One", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") >= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") >= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") < (y."One", y."Three", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") < ( + SELECT + y."One", + y."Three", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.14/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.14).sql b/PostgreSQL.14/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.14).sql index 24852a52aac7..f3478eae600d 100644 --- a/PostgreSQL.14/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.14).sql +++ b/PostgreSQL.14/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.14).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = (x."One", x."Two", x."Three") AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.14/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.14).sql b/PostgreSQL.14/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.14).sql index 04efdfc14ee8..c2a2e061d24d 100644 --- a/PostgreSQL.14/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.14).sql +++ b/PostgreSQL.14/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.14).sql @@ -5,12 +5,18 @@ UPDATE "Ints" SET "One" = "Ints"."Two" * 5, - ("Two", "Three") = ("Ints"."Two" * 10, j."Three" * 100), + ("Two", "Three") = ( + SELECT + "Ints"."Two" * 10, + j."Three" * 100 + FROM + "Ints" j + WHERE + j."One" = 1 + ), ("Four", "Nil") = ("Ints"."One" * "Ints"."Four", 600) -FROM - "Ints" j WHERE - "Ints"."One" = 10 AND j."One" = 1 + "Ints"."One" = 10 BeforeExecute -- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL diff --git a/PostgreSQL.14/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.14).sql b/PostgreSQL.14/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.14).sql index 894ab762b981..cc259c10b54a 100644 --- a/PostgreSQL.14/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.14).sql +++ b/PostgreSQL.14/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.14).sql @@ -7,7 +7,14 @@ SELECT d."Distributor_Name", cp."Street_Number", cp."Street_Name", - c_1."City_Name", + ( + SELECT + c_1."City_Name" + FROM + "Cities" c_1 + WHERE + c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL + ), cp."State", cp."Zip_Code", cp."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" dcp ON d."Distributor_Id" = dcp."Distributor_Id" INNER JOIN "Commercial_Property" cp ON dcp."Commercial_Property_Id" = cp."Commercial_Property_Id" INNER JOIN "Contract_Dates" cd ON cda."Contract_Id" = cd."Contract_Id" - INNER JOIN "Cities" c_1 ON c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL WHERE cda."Contract_Id" = 198827882 AND cda."Distributor_Type_Code" = 'CC' AND diff --git a/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.14).sql b/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.14).sql index b5a5ee823e77..d0dde37948d4 100644 --- a/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.14).sql +++ b/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.14).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) diff --git a/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.14).sql b/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.14).sql index 401c15b95441..806ab2fc4976 100644 --- a/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.14).sql +++ b/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.14).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3.cond + ) ) ORDER BY t1."PersonID" diff --git a/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.14).sql b/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.14).sql index 00fc8fe80014..6cda1450e57a 100644 --- a/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.14).sql +++ b/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.14).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2.cond + ) ) ORDER BY p."PersonID" diff --git a/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.14).sql b/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.14).sql index 48971e9337d0..8923cf49eaee 100644 --- a/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.14).sql +++ b/PostgreSQL.14/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.14).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" p - INNER JOIN LATERAL ( - SELECT - d."PersonID" as cond - FROM - "Person" d - WHERE - d."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t1 ON 1=1 WHERE - p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = t1.cond + p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = ( + SELECT + d."PersonID" + FROM + "Person" d + WHERE + d."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM "Person" p_1 - INNER JOIN LATERAL ( - SELECT - d_1."PersonID" as cond - FROM - "Person" d_1 - WHERE - d_1."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t2 ON 1=1 WHERE - p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = t2.cond + p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = ( + SELECT + d_1."PersonID" + FROM + "Person" d_1 + WHERE + d_1."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) ORDER BY patient_1."PersonID" From e9100db9db7373e48c667bfae846839d70d8871b Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:36:17 +0000 Subject: [PATCH 24/40] [Windows / SQL Server 2022] baselines --- ...sonTest1(SqlServer.2022.LinqService,1).sql | 63 ++- ...sonTest1(SqlServer.2022.LinqService,2).sql | 63 ++- ...anSubquery(SqlServer.2022.LinqService).sql | 12 +- ...eryFilter1(SqlServer.2022.LinqService).sql | 22 +- ...eryFilter2(SqlServer.2022.LinqService).sql | 26 +- ...eryFilter3(SqlServer.2022.LinqService).sql | 34 +- ...Test1(SqlServer.2022.MS.LinqService,1).sql | 63 ++- ...Test1(SqlServer.2022.MS.LinqService,2).sql | 63 ++- ...ubquery(SqlServer.2022.MS.LinqService).sql | 12 +- ...Filter1(SqlServer.2022.MS.LinqService).sql | 22 +- ...Filter2(SqlServer.2022.MS.LinqService).sql | 26 +- ...Filter3(SqlServer.2022.MS.LinqService).sql | 34 +- ...s.ComparisonTest1(SqlServer.2022.MS,1).sql | 63 ++- ...s.ComparisonTest1(SqlServer.2022.MS,2).sql | 63 ++- ...Tests.Issue383Test2(SqlServer.2022.MS).sql | 10 +- ...sts.BooleanSubquery(SqlServer.2022.MS).sql | 12 +- ...sue_SubQueryFilter1(SqlServer.2022.MS).sql | 22 +- ...sue_SubQueryFilter2(SqlServer.2022.MS).sql | 26 +- ...sue_SubQueryFilter3(SqlServer.2022.MS).sql | 34 +- ...eryTakesForever4394(SqlServer.2022.MS).sql | 420 ++++++------------ ...sts.MergeSubquery(SqlServer.2022.MS,1).sql | 60 +++ ...sts.MergeSubquery(SqlServer.2022.MS,2).sql | 60 +++ ...ests.ComparisonTest1(SqlServer.2022,1).sql | 63 ++- ...ests.ComparisonTest1(SqlServer.2022,2).sql | 63 ++- ...eryTests.Issue383Test2(SqlServer.2022).sql | 10 +- ...eTests.BooleanSubquery(SqlServer.2022).sql | 12 +- ....Issue_SubQueryFilter1(SqlServer.2022).sql | 22 +- ....Issue_SubQueryFilter2(SqlServer.2022).sql | 26 +- ....Issue_SubQueryFilter3(SqlServer.2022).sql | 34 +- ....QueryTakesForever4394(SqlServer.2022).sql | 420 ++++++------------ ...eTests.MergeSubquery(SqlServer.2022,1).sql | 60 +++ ...eTests.MergeSubquery(SqlServer.2022,2).sql | 60 +++ 32 files changed, 984 insertions(+), 996 deletions(-) create mode 100644 SqlServer.2022.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022.MS,1).sql create mode 100644 SqlServer.2022.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022.MS,2).sql create mode 100644 SqlServer.2022/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022,1).sql create mode 100644 SqlServer.2022/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022,2).sql diff --git a/SqlServer.2022.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.LinqService,1).sql b/SqlServer.2022.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.LinqService,1).sql index b472570e4067..577ff2ad948f 100644 --- a/SqlServer.2022.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.LinqService,1).sql +++ b/SqlServer.2022.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2022.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.LinqService,2).sql b/SqlServer.2022.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.LinqService,2).sql index b472570e4067..577ff2ad948f 100644 --- a/SqlServer.2022.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.LinqService,2).sql +++ b/SqlServer.2022.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022.LinqService).sql b/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022.LinqService).sql index fb0189508742..258d5c5ee423 100644 --- a/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022.LinqService).sql +++ b/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022.LinqService).sql b/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022.LinqService).sql index ffe05dfc62c4..8e99c70f3009 100644 --- a/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022.LinqService).sql +++ b/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022.LinqService).sql b/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022.LinqService).sql index 9da31fdb4146..e5cc2af2968c 100644 --- a/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022.LinqService).sql +++ b/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022.LinqService).sql b/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022.LinqService).sql index e99788b479da..ff6629529030 100644 --- a/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022.LinqService).sql +++ b/SqlServer.2022.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2022.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS.LinqService,1).sql b/SqlServer.2022.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS.LinqService,1).sql index a15b8172fd71..0348594e81cd 100644 --- a/SqlServer.2022.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS.LinqService,1).sql +++ b/SqlServer.2022.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2022.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS.LinqService,2).sql b/SqlServer.2022.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS.LinqService,2).sql index a15b8172fd71..0348594e81cd 100644 --- a/SqlServer.2022.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS.LinqService,2).sql +++ b/SqlServer.2022.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022.MS.LinqService).sql b/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022.MS.LinqService).sql index f63958b82474..d605743cb83c 100644 --- a/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022.MS.LinqService).sql +++ b/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022.MS.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022.MS.LinqService).sql b/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022.MS.LinqService).sql index bfc53f4400a8..1467b5cc096d 100644 --- a/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022.MS.LinqService).sql +++ b/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022.MS.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022.MS.LinqService).sql b/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022.MS.LinqService).sql index e62b2ba12df4..b237986ef91e 100644 --- a/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022.MS.LinqService).sql +++ b/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022.MS.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022.MS.LinqService).sql b/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022.MS.LinqService).sql index af3d2b55797d..db8a707e2b95 100644 --- a/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022.MS.LinqService).sql +++ b/SqlServer.2022.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022.MS.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2022.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS,1).sql b/SqlServer.2022.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS,1).sql index a15b8172fd71..0348594e81cd 100644 --- a/SqlServer.2022.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS,1).sql +++ b/SqlServer.2022.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2022.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS,2).sql b/SqlServer.2022.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS,2).sql index a15b8172fd71..0348594e81cd 100644 --- a/SqlServer.2022.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS,2).sql +++ b/SqlServer.2022.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022.MS,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2022.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2022.MS).sql b/SqlServer.2022.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2022.MS).sql index 7ab72d33842a..aa508ee383a1 100644 --- a/SqlServer.2022.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2022.MS).sql +++ b/SqlServer.2022.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2022.MS).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022.MS).sql b/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022.MS).sql index f63958b82474..d605743cb83c 100644 --- a/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022.MS).sql +++ b/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022.MS).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022.MS).sql b/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022.MS).sql index bfc53f4400a8..1467b5cc096d 100644 --- a/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022.MS).sql +++ b/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022.MS).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022.MS).sql b/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022.MS).sql index e62b2ba12df4..b237986ef91e 100644 --- a/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022.MS).sql +++ b/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022.MS).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022.MS).sql b/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022.MS).sql index af3d2b55797d..db8a707e2b95 100644 --- a/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022.MS).sql +++ b/SqlServer.2022.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022.MS).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2022.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2022.MS).sql b/SqlServer.2022.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2022.MS).sql index 0b01f43383f4..a38511578d7c 100644 --- a/SqlServer.2022.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2022.MS).sql +++ b/SqlServer.2022.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2022.MS).sql @@ -2,9 +2,9 @@ -- SqlServer.2022.MS SqlServer.2022 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.2022.MS SqlServer.2022 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2022.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022.MS,1).sql b/SqlServer.2022.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022.MS,1).sql new file mode 100644 index 000000000000..c26f67cd97be --- /dev/null +++ b/SqlServer.2022.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022.MS,1).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2022.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022.MS,2).sql b/SqlServer.2022.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022.MS,2).sql new file mode 100644 index 000000000000..c26f67cd97be --- /dev/null +++ b/SqlServer.2022.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022.MS,2).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2022/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022,1).sql b/SqlServer.2022/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022,1).sql index b472570e4067..577ff2ad948f 100644 --- a/SqlServer.2022/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022,1).sql +++ b/SqlServer.2022/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2022/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022,2).sql b/SqlServer.2022/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022,2).sql index b472570e4067..577ff2ad948f 100644 --- a/SqlServer.2022/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022,2).sql +++ b/SqlServer.2022/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.2022,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.2022/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2022).sql b/SqlServer.2022/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2022).sql index 4df200521a53..d5894db76ece 100644 --- a/SqlServer.2022/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2022).sql +++ b/SqlServer.2022/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.2022).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022).sql b/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022).sql index fb0189508742..258d5c5ee423 100644 --- a/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022).sql +++ b/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.2022).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022).sql b/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022).sql index ffe05dfc62c4..8e99c70f3009 100644 --- a/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022).sql +++ b/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.2022).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022).sql b/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022).sql index 9da31fdb4146..e5cc2af2968c 100644 --- a/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022).sql +++ b/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.2022).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022).sql b/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022).sql index e99788b479da..ff6629529030 100644 --- a/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022).sql +++ b/SqlServer.2022/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.2022).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.2022/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2022).sql b/SqlServer.2022/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2022).sql index 7834c9e31d09..710f92ac1292 100644 --- a/SqlServer.2022/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2022).sql +++ b/SqlServer.2022/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.2022).sql @@ -2,9 +2,9 @@ -- SqlServer.2022 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.2022 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.2022/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022,1).sql b/SqlServer.2022/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022,1).sql new file mode 100644 index 000000000000..36d6f7be657a --- /dev/null +++ b/SqlServer.2022/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022,1).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2022 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2022 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2022 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.2022/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022,2).sql b/SqlServer.2022/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022,2).sql new file mode 100644 index 000000000000..36d6f7be657a --- /dev/null +++ b/SqlServer.2022/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.2022,2).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.2022 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.2022 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.2022 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + From 66a79f85be64547d6846c7b30af0f574c0aa8966 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:38:24 +0000 Subject: [PATCH 25/40] [Windows / SQL Server EXTRAS] baselines --- ...st1(SqlServer.Contained.LinqService,1).sql | 63 ++- ...st1(SqlServer.Contained.LinqService,2).sql | 63 ++- ...query(SqlServer.Contained.LinqService).sql | 12 +- ...lter1(SqlServer.Contained.LinqService).sql | 22 +- ...lter2(SqlServer.Contained.LinqService).sql | 26 +- ...lter3(SqlServer.Contained.LinqService).sql | 34 +- ...(SqlServer.Contained.MS.LinqService,1).sql | 63 ++- ...(SqlServer.Contained.MS.LinqService,2).sql | 63 ++- ...ry(SqlServer.Contained.MS.LinqService).sql | 12 +- ...r1(SqlServer.Contained.MS.LinqService).sql | 22 +- ...r2(SqlServer.Contained.MS.LinqService).sql | 26 +- ...r3(SqlServer.Contained.MS.LinqService).sql | 34 +- ...parisonTest1(SqlServer.Contained.MS,1).sql | 63 ++- ...parisonTest1(SqlServer.Contained.MS,2).sql | 63 ++- ....Issue383Test2(SqlServer.Contained.MS).sql | 10 +- ...ooleanSubquery(SqlServer.Contained.MS).sql | 12 +- ...ubQueryFilter1(SqlServer.Contained.MS).sql | 22 +- ...ubQueryFilter2(SqlServer.Contained.MS).sql | 26 +- ...ubQueryFilter3(SqlServer.Contained.MS).sql | 34 +- ...kesForever4394(SqlServer.Contained.MS).sql | 420 ++++++------------ ...ergeSubquery(SqlServer.Contained.MS,1).sql | 60 +++ ...ergeSubquery(SqlServer.Contained.MS,2).sql | 60 +++ ...ComparisonTest1(SqlServer.Contained,1).sql | 63 ++- ...ComparisonTest1(SqlServer.Contained,2).sql | 63 ++- ...sts.Issue383Test2(SqlServer.Contained).sql | 10 +- ...s.BooleanSubquery(SqlServer.Contained).sql | 12 +- ...e_SubQueryFilter1(SqlServer.Contained).sql | 22 +- ...e_SubQueryFilter2(SqlServer.Contained).sql | 26 +- ...e_SubQueryFilter3(SqlServer.Contained).sql | 34 +- ...yTakesForever4394(SqlServer.Contained).sql | 420 ++++++------------ ...s.MergeSubquery(SqlServer.Contained,1).sql | 60 +++ ...s.MergeSubquery(SqlServer.Contained,2).sql | 60 +++ ...risonTest1(SqlServer.SA.LinqService,1).sql | 63 ++- ...risonTest1(SqlServer.SA.LinqService,2).sql | 63 ++- ...leanSubquery(SqlServer.SA.LinqService).sql | 12 +- ...QueryFilter1(SqlServer.SA.LinqService).sql | 22 +- ...QueryFilter2(SqlServer.SA.LinqService).sql | 26 +- ...QueryFilter3(SqlServer.SA.LinqService).sql | 34 +- ...onTest1(SqlServer.SA.MS.LinqService,1).sql | 63 ++- ...onTest1(SqlServer.SA.MS.LinqService,2).sql | 63 ++- ...nSubquery(SqlServer.SA.MS.LinqService).sql | 12 +- ...ryFilter1(SqlServer.SA.MS.LinqService).sql | 22 +- ...ryFilter2(SqlServer.SA.MS.LinqService).sql | 26 +- ...ryFilter3(SqlServer.SA.MS.LinqService).sql | 34 +- ...sts.ComparisonTest1(SqlServer.SA.MS,1).sql | 63 ++- ...sts.ComparisonTest1(SqlServer.SA.MS,2).sql | 63 ++- ...ryTests.Issue383Test2(SqlServer.SA.MS).sql | 10 +- ...Tests.BooleanSubquery(SqlServer.SA.MS).sql | 12 +- ...Issue_SubQueryFilter1(SqlServer.SA.MS).sql | 22 +- ...Issue_SubQueryFilter2(SqlServer.SA.MS).sql | 26 +- ...Issue_SubQueryFilter3(SqlServer.SA.MS).sql | 34 +- ...QueryTakesForever4394(SqlServer.SA.MS).sql | 420 ++++++------------ ...Tests.MergeSubquery(SqlServer.SA.MS,1).sql | 60 +++ ...Tests.MergeSubquery(SqlServer.SA.MS,2).sql | 60 +++ ...sTests.ComparisonTest1(SqlServer.SA,1).sql | 63 ++- ...sTests.ComparisonTest1(SqlServer.SA,2).sql | 63 ++- ...QueryTests.Issue383Test2(SqlServer.SA).sql | 10 +- ...ereTests.BooleanSubquery(SqlServer.SA).sql | 12 +- ...ts.Issue_SubQueryFilter1(SqlServer.SA).sql | 22 +- ...ts.Issue_SubQueryFilter2(SqlServer.SA).sql | 26 +- ...ts.Issue_SubQueryFilter3(SqlServer.SA).sql | 34 +- ...ts.QueryTakesForever4394(SqlServer.SA).sql | 420 ++++++------------ ...rgeTests.MergeSubquery(SqlServer.SA,1).sql | 60 +++ ...rgeTests.MergeSubquery(SqlServer.SA,2).sql | 60 +++ 64 files changed, 1968 insertions(+), 1992 deletions(-) create mode 100644 SqlServer.Contained.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained.MS,1).sql create mode 100644 SqlServer.Contained.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained.MS,2).sql create mode 100644 SqlServer.Contained/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained,1).sql create mode 100644 SqlServer.Contained/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained,2).sql create mode 100644 SqlServer.SA.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA.MS,1).sql create mode 100644 SqlServer.SA.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA.MS,2).sql create mode 100644 SqlServer.SA/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA,1).sql create mode 100644 SqlServer.SA/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA,2).sql diff --git a/SqlServer.Contained.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.LinqService,1).sql b/SqlServer.Contained.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.LinqService,1).sql index 8ca1ba03584c..8e9bd4bc8180 100644 --- a/SqlServer.Contained.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.LinqService,1).sql +++ b/SqlServer.Contained.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.Contained.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.LinqService,2).sql b/SqlServer.Contained.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.LinqService,2).sql index 8ca1ba03584c..8e9bd4bc8180 100644 --- a/SqlServer.Contained.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.LinqService,2).sql +++ b/SqlServer.Contained.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained.LinqService).sql b/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained.LinqService).sql index 60bea15cdbdd..e23048fccb14 100644 --- a/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained.LinqService).sql +++ b/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained.LinqService).sql b/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained.LinqService).sql index 287cf6189997..8332d58a0213 100644 --- a/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained.LinqService).sql +++ b/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained.LinqService).sql b/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained.LinqService).sql index 4db4125a7058..17e868a82e42 100644 --- a/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained.LinqService).sql +++ b/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained.LinqService).sql b/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained.LinqService).sql index 20fc2d64f58d..51b2aff2e9f8 100644 --- a/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained.LinqService).sql +++ b/SqlServer.Contained.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.Contained.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS.LinqService,1).sql b/SqlServer.Contained.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS.LinqService,1).sql index 27096dabad43..bb0e0f4af0f7 100644 --- a/SqlServer.Contained.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS.LinqService,1).sql +++ b/SqlServer.Contained.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.Contained.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS.LinqService,2).sql b/SqlServer.Contained.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS.LinqService,2).sql index 27096dabad43..bb0e0f4af0f7 100644 --- a/SqlServer.Contained.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS.LinqService,2).sql +++ b/SqlServer.Contained.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained.MS.LinqService).sql b/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained.MS.LinqService).sql index 29fc310e4828..32e7e4870405 100644 --- a/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained.MS.LinqService).sql +++ b/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained.MS.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained.MS.LinqService).sql b/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained.MS.LinqService).sql index a6a8d8c78045..bac8fa21db11 100644 --- a/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained.MS.LinqService).sql +++ b/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained.MS.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained.MS.LinqService).sql b/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained.MS.LinqService).sql index 10d0cd80cd00..2bcb3a5f5388 100644 --- a/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained.MS.LinqService).sql +++ b/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained.MS.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained.MS.LinqService).sql b/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained.MS.LinqService).sql index 0fd02e0ca321..b0b3bd439db6 100644 --- a/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained.MS.LinqService).sql +++ b/SqlServer.Contained.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained.MS.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.Contained.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS,1).sql b/SqlServer.Contained.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS,1).sql index 27096dabad43..bb0e0f4af0f7 100644 --- a/SqlServer.Contained.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS,1).sql +++ b/SqlServer.Contained.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.Contained.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS,2).sql b/SqlServer.Contained.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS,2).sql index 27096dabad43..bb0e0f4af0f7 100644 --- a/SqlServer.Contained.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS,2).sql +++ b/SqlServer.Contained.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained.MS,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.Contained.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.Contained.MS).sql b/SqlServer.Contained.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.Contained.MS).sql index e2ed0d91b2f2..409355439471 100644 --- a/SqlServer.Contained.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.Contained.MS).sql +++ b/SqlServer.Contained.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.Contained.MS).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained.MS).sql b/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained.MS).sql index 29fc310e4828..32e7e4870405 100644 --- a/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained.MS).sql +++ b/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained.MS).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained.MS).sql b/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained.MS).sql index a6a8d8c78045..bac8fa21db11 100644 --- a/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained.MS).sql +++ b/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained.MS).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained.MS).sql b/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained.MS).sql index 10d0cd80cd00..2bcb3a5f5388 100644 --- a/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained.MS).sql +++ b/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained.MS).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained.MS).sql b/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained.MS).sql index 0fd02e0ca321..b0b3bd439db6 100644 --- a/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained.MS).sql +++ b/SqlServer.Contained.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained.MS).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.Contained.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.Contained.MS).sql b/SqlServer.Contained.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.Contained.MS).sql index 075a90eb9dfb..48dc8d985d8f 100644 --- a/SqlServer.Contained.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.Contained.MS).sql +++ b/SqlServer.Contained.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.Contained.MS).sql @@ -2,9 +2,9 @@ -- SqlServer.Contained.MS SqlServer.2019 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.Contained.MS SqlServer.2019 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.Contained.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained.MS,1).sql b/SqlServer.Contained.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained.MS,1).sql new file mode 100644 index 000000000000..c55e0012bd38 --- /dev/null +++ b/SqlServer.Contained.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained.MS,1).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.Contained.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained.MS,2).sql b/SqlServer.Contained.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained.MS,2).sql new file mode 100644 index 000000000000..c55e0012bd38 --- /dev/null +++ b/SqlServer.Contained.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained.MS,2).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.Contained/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained,1).sql b/SqlServer.Contained/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained,1).sql index 8ca1ba03584c..8e9bd4bc8180 100644 --- a/SqlServer.Contained/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained,1).sql +++ b/SqlServer.Contained/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.Contained/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained,2).sql b/SqlServer.Contained/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained,2).sql index 8ca1ba03584c..8e9bd4bc8180 100644 --- a/SqlServer.Contained/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained,2).sql +++ b/SqlServer.Contained/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.Contained,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.Contained/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.Contained).sql b/SqlServer.Contained/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.Contained).sql index e5ff5ce17ba6..386d07618635 100644 --- a/SqlServer.Contained/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.Contained).sql +++ b/SqlServer.Contained/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.Contained).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained).sql b/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained).sql index 60bea15cdbdd..e23048fccb14 100644 --- a/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained).sql +++ b/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.Contained).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained).sql b/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained).sql index 287cf6189997..8332d58a0213 100644 --- a/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained).sql +++ b/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.Contained).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained).sql b/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained).sql index 4db4125a7058..17e868a82e42 100644 --- a/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained).sql +++ b/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.Contained).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained).sql b/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained).sql index 20fc2d64f58d..51b2aff2e9f8 100644 --- a/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained).sql +++ b/SqlServer.Contained/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.Contained).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.Contained/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.Contained).sql b/SqlServer.Contained/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.Contained).sql index 0b90fee901e1..20ad8a0ad7a0 100644 --- a/SqlServer.Contained/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.Contained).sql +++ b/SqlServer.Contained/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.Contained).sql @@ -2,9 +2,9 @@ -- SqlServer.Contained SqlServer.2019 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.Contained SqlServer.2019 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.Contained/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained,1).sql b/SqlServer.Contained/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained,1).sql new file mode 100644 index 000000000000..78c8ae00ffd5 --- /dev/null +++ b/SqlServer.Contained/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained,1).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.Contained/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained,2).sql b/SqlServer.Contained/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained,2).sql new file mode 100644 index 000000000000..78c8ae00ffd5 --- /dev/null +++ b/SqlServer.Contained/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.Contained,2).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.SA.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.LinqService,1).sql b/SqlServer.SA.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.LinqService,1).sql index 79d630dc1261..6a6b81a1ed9f 100644 --- a/SqlServer.SA.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.LinqService,1).sql +++ b/SqlServer.SA.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.SA.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.LinqService,2).sql b/SqlServer.SA.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.LinqService,2).sql index 79d630dc1261..6a6b81a1ed9f 100644 --- a/SqlServer.SA.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.LinqService,2).sql +++ b/SqlServer.SA.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA.LinqService).sql b/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA.LinqService).sql index 02e2167e49e2..9db266973343 100644 --- a/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA.LinqService).sql +++ b/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA.LinqService).sql b/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA.LinqService).sql index 5f1bf22cb98f..6c8de69601bf 100644 --- a/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA.LinqService).sql +++ b/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA.LinqService).sql b/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA.LinqService).sql index 285069a008b0..8c3a430baa79 100644 --- a/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA.LinqService).sql +++ b/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA.LinqService).sql b/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA.LinqService).sql index 8eec1e9621dc..e99e853071b6 100644 --- a/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA.LinqService).sql +++ b/SqlServer.SA.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.SA.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS.LinqService,1).sql b/SqlServer.SA.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS.LinqService,1).sql index 69388cdd614f..dc36852c4066 100644 --- a/SqlServer.SA.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS.LinqService,1).sql +++ b/SqlServer.SA.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.SA.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS.LinqService,2).sql b/SqlServer.SA.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS.LinqService,2).sql index 69388cdd614f..dc36852c4066 100644 --- a/SqlServer.SA.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS.LinqService,2).sql +++ b/SqlServer.SA.MS.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA.MS.LinqService).sql b/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA.MS.LinqService).sql index a12c6d7b9a3d..69d6e83e3900 100644 --- a/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA.MS.LinqService).sql +++ b/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA.MS.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA.MS.LinqService).sql b/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA.MS.LinqService).sql index cf32cc8a5d8e..b5c36fa25170 100644 --- a/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA.MS.LinqService).sql +++ b/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA.MS.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA.MS.LinqService).sql b/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA.MS.LinqService).sql index de13c9ca187e..ea5b9ec3f7a4 100644 --- a/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA.MS.LinqService).sql +++ b/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA.MS.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA.MS.LinqService).sql b/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA.MS.LinqService).sql index c0e59c28af75..e427dd422d8b 100644 --- a/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA.MS.LinqService).sql +++ b/SqlServer.SA.MS.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA.MS.LinqService).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.SA.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS,1).sql b/SqlServer.SA.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS,1).sql index 69388cdd614f..dc36852c4066 100644 --- a/SqlServer.SA.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS,1).sql +++ b/SqlServer.SA.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.SA.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS,2).sql b/SqlServer.SA.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS,2).sql index 69388cdd614f..dc36852c4066 100644 --- a/SqlServer.SA.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS,2).sql +++ b/SqlServer.SA.MS/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA.MS,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.SA.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.SA.MS).sql b/SqlServer.SA.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.SA.MS).sql index 5841a21505dc..7efdb9b0428d 100644 --- a/SqlServer.SA.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.SA.MS).sql +++ b/SqlServer.SA.MS/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.SA.MS).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA.MS).sql b/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA.MS).sql index a12c6d7b9a3d..69d6e83e3900 100644 --- a/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA.MS).sql +++ b/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA.MS).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA.MS).sql b/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA.MS).sql index cf32cc8a5d8e..b5c36fa25170 100644 --- a/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA.MS).sql +++ b/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA.MS).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA.MS).sql b/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA.MS).sql index de13c9ca187e..ea5b9ec3f7a4 100644 --- a/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA.MS).sql +++ b/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA.MS).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA.MS).sql b/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA.MS).sql index c0e59c28af75..e427dd422d8b 100644 --- a/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA.MS).sql +++ b/SqlServer.SA.MS/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA.MS).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.SA.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.SA.MS).sql b/SqlServer.SA.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.SA.MS).sql index 6b44b09adc16..73e149e8a823 100644 --- a/SqlServer.SA.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.SA.MS).sql +++ b/SqlServer.SA.MS/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.SA.MS).sql @@ -2,9 +2,9 @@ -- SqlServer.SA.MS SqlServer.2019 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.SA.MS SqlServer.2019 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.SA.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA.MS,1).sql b/SqlServer.SA.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA.MS,1).sql new file mode 100644 index 000000000000..3c041c325a15 --- /dev/null +++ b/SqlServer.SA.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA.MS,1).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.SA.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA.MS,2).sql b/SqlServer.SA.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA.MS,2).sql new file mode 100644 index 000000000000..3c041c325a15 --- /dev/null +++ b/SqlServer.SA.MS/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA.MS,2).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.SA/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA,1).sql b/SqlServer.SA/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA,1).sql index 79d630dc1261..6a6b81a1ed9f 100644 --- a/SqlServer.SA/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA,1).sql +++ b/SqlServer.SA/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.SA/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA,2).sql b/SqlServer.SA/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA,2).sql index 79d630dc1261..6a6b81a1ed9f 100644 --- a/SqlServer.SA/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA,2).sql +++ b/SqlServer.SA/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SqlServer.SA,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - [Person] [t7] - CROSS JOIN ( - SELECT - COUNT([t1].[PersonID]) as [cond] - FROM - [Patient] [t1] - WHERE - [t1].[PersonID] = @personId AND [t1].[PersonID] NOT IN ( - SELECT - [t2].[PersonID] - FROM - [Patient] [t2] - WHERE - [t2].[PersonID] = @personId_1 - ) - ) [t3] - CROSS JOIN ( - SELECT - COUNT([t4].[PersonID]) as [cond] - FROM - [Patient] [t4] - WHERE - [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( - SELECT - [t5].[PersonID] - FROM - [Patient] [t5] - WHERE - [t5].[PersonID] = @personId - ) - ) [t6] + [Person] [t1] WHERE - [t3].[cond] = 0 AND [t6].[cond] = 0 + ( + SELECT + COUNT([t2].[PersonID]) + FROM + [Patient] [t2] + WHERE + [t2].[PersonID] = @personId AND [t2].[PersonID] NOT IN ( + SELECT + [t3].[PersonID] + FROM + [Patient] [t3] + WHERE + [t3].[PersonID] = @personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT([t4].[PersonID]) + FROM + [Patient] [t4] + WHERE + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( + SELECT + [t5].[PersonID] + FROM + [Patient] [t5] + WHERE + [t5].[PersonID] = @personId + ) + ) = 0 ), 1, 0) diff --git a/SqlServer.SA/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.SA).sql b/SqlServer.SA/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.SA).sql index bb897d3c9402..1e3e80939e03 100644 --- a/SqlServer.SA/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.SA).sql +++ b/SqlServer.SA/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SqlServer.SA).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN [Distributor_Commercial_Propert] [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = N'CC' AND diff --git a/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA).sql b/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA).sql index 02e2167e49e2..9db266973343 100644 --- a/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA).sql +++ b/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SqlServer.SA).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA).sql b/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA).sql index 5f1bf22cb98f..6c8de69601bf 100644 --- a/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA).sql +++ b/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SqlServer.SA).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t2] - WHERE - [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND [e].[PersonID] = [t2].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t3] - WHERE - [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND [e_1].[PersonID] = [t3].[cond] + ) ) ORDER BY [t1].[PersonID] diff --git a/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA).sql b/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA).sql index 285069a008b0..8c3a430baa79 100644 --- a/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA).sql +++ b/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SqlServer.SA).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - [Person] [e], - ( + [Person] [e] + WHERE + [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND + [e].[PersonID] = ( SELECT TOP (1) - [d].[PersonID] as [cond] + [d].[PersonID] FROM [Patient] [d] - ) [t1] - WHERE - [e].[PersonID] = [p].[PersonID] AND [e].[FirstName] LIKE @filter1 ESCAPE N'~' AND - [e].[PersonID] = [t1].[cond] + ) ) OR EXISTS( SELECT * FROM - [Person] [e_1], - ( + [Person] [e_1] + WHERE + [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND + [e_1].[PersonID] = ( SELECT TOP (1) - [d_1].[PersonID] as [cond] + [d_1].[PersonID] FROM [Patient] [d_1] - ) [t2] - WHERE - [e_1].[PersonID] = [p].[PersonID] AND [e_1].[FirstName] LIKE @filter2 ESCAPE N'~' AND - [e_1].[PersonID] = [t2].[cond] + ) ) ORDER BY [p].[PersonID] diff --git a/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA).sql b/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA).sql index 8eec1e9621dc..e99e853071b6 100644 --- a/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA).sql +++ b/SqlServer.SA/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(SqlServer.SA).sql @@ -16,32 +16,30 @@ WHERE * FROM [Person] [p] - CROSS APPLY ( - SELECT TOP (1) - [d].[PersonID] as [cond] - FROM - [Person] [d] - WHERE - [d].[PersonID] = [patient_1].[PersonID] - ) [t1] WHERE - [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = [t1].[cond] + [p].[FirstName] LIKE @filter ESCAPE N'~' AND [p].[PersonID] = ( + SELECT TOP (1) + [d].[PersonID] + FROM + [Person] [d] + WHERE + [d].[PersonID] = [patient_1].[PersonID] + ) ) AND EXISTS( SELECT * FROM [Person] [p_1] - CROSS APPLY ( - SELECT TOP (1) - [d_1].[PersonID] as [cond] - FROM - [Person] [d_1] - WHERE - [d_1].[PersonID] = [patient_1].[PersonID] - ) [t2] WHERE - [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = [t2].[cond] + [p_1].[FirstName] LIKE @filter_1 ESCAPE N'~' AND [p_1].[PersonID] = ( + SELECT TOP (1) + [d_1].[PersonID] + FROM + [Person] [d_1] + WHERE + [d_1].[PersonID] = [patient_1].[PersonID] + ) ) ORDER BY [patient_1].[PersonID] diff --git a/SqlServer.SA/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.SA).sql b/SqlServer.SA/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.SA).sql index e536123c3b0f..23a80e75b04d 100644 --- a/SqlServer.SA/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.SA).sql +++ b/SqlServer.SA/Tests/UserTests/Issue4394Tests/Tests.UserTests.Issue4394Tests.QueryTakesForever4394(SqlServer.SA).sql @@ -2,9 +2,9 @@ -- SqlServer.SA SqlServer.2019 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -45,196 +45,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] @@ -242,9 +178,9 @@ BeforeExecute -- SqlServer.SA SqlServer.2019 SELECT - [x_16].[Id], - [x_16].[AisleID], - [x_16].[MaterialID], + [x_8].[Id], + [x_8].[AisleID], + [x_8].[MaterialID], [a].[Id], [a].[AisleNumber], [a].[PlantID], @@ -285,32 +221,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_17] + [InventoryResourceDTO] [x_9] WHERE - [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c1].[Id] + [x_9].[Status] < 0 AND [x_9].[ResourceID] = [c1].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_18] + [RefOutfeedTransportOrderResourceDTO] [x_10] WHERE - [x_18].[ResourceID] = [c1].[Id] + [x_10].[ResourceID] = [c1].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_19] + [InventoryResourceDTO] [x_11] WHERE - [x_19].[Status] < 0 AND [x_19].[ResourceID] = [c1].[Id] AND - ([x_19].[InfeedAdviceID] IS NULL OR EXISTS( + [x_11].[Status] < 0 AND [x_11].[ResourceID] = [c1].[Id] AND + ([x_11].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y] WHERE - [y].[Id] = [x_19].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 + [y].[Id] = [x_11].[InfeedAdviceID] AND [y].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a2].[Id] IS NOT NULL AND ([a2].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a2].[Id] IS NULL), 1, 0), @@ -339,32 +275,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_20] + [InventoryResourceDTO] [x_12] WHERE - [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c2].[Id] + [x_12].[Status] < 0 AND [x_12].[ResourceID] = [c2].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_21] + [RefOutfeedTransportOrderResourceDTO] [x_13] WHERE - [x_21].[ResourceID] = [c2].[Id] + [x_13].[ResourceID] = [c2].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_22] + [InventoryResourceDTO] [x_14] WHERE - [x_22].[Status] < 0 AND [x_22].[ResourceID] = [c2].[Id] AND - ([x_22].[InfeedAdviceID] IS NULL OR EXISTS( + [x_14].[Status] < 0 AND [x_14].[ResourceID] = [c2].[Id] AND + ([x_14].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_1] WHERE - [y_1].[Id] = [x_22].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 + [y_1].[Id] = [x_14].[InfeedAdviceID] AND [y_1].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a3].[Id] IS NOT NULL AND ([a3].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a3].[Id] IS NULL), 1, 0), @@ -393,32 +329,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_23] + [InventoryResourceDTO] [x_15] WHERE - [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c3].[Id] + [x_15].[Status] < 0 AND [x_15].[ResourceID] = [c3].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_24] + [RefOutfeedTransportOrderResourceDTO] [x_16] WHERE - [x_24].[ResourceID] = [c3].[Id] + [x_16].[ResourceID] = [c3].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_25] + [InventoryResourceDTO] [x_17] WHERE - [x_25].[Status] < 0 AND [x_25].[ResourceID] = [c3].[Id] AND - ([x_25].[InfeedAdviceID] IS NULL OR EXISTS( + [x_17].[Status] < 0 AND [x_17].[ResourceID] = [c3].[Id] AND + ([x_17].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_2] WHERE - [y_2].[Id] = [x_25].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 + [y_2].[Id] = [x_17].[InfeedAdviceID] AND [y_2].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a4].[Id] IS NOT NULL AND ([a4].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a4].[Id] IS NULL), 1, 0), @@ -447,32 +383,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_26] + [InventoryResourceDTO] [x_18] WHERE - [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c4].[Id] + [x_18].[Status] < 0 AND [x_18].[ResourceID] = [c4].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_27] + [RefOutfeedTransportOrderResourceDTO] [x_19] WHERE - [x_27].[ResourceID] = [c4].[Id] + [x_19].[ResourceID] = [c4].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_28] + [InventoryResourceDTO] [x_20] WHERE - [x_28].[Status] < 0 AND [x_28].[ResourceID] = [c4].[Id] AND - ([x_28].[InfeedAdviceID] IS NULL OR EXISTS( + [x_20].[Status] < 0 AND [x_20].[ResourceID] = [c4].[Id] AND + ([x_20].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_3] WHERE - [y_3].[Id] = [x_28].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 + [y_3].[Id] = [x_20].[InfeedAdviceID] AND [y_3].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a5].[Id] IS NOT NULL AND ([a5].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a5].[Id] IS NULL), 1, 0), @@ -501,32 +437,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_29] + [InventoryResourceDTO] [x_21] WHERE - [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c5].[Id] + [x_21].[Status] < 0 AND [x_21].[ResourceID] = [c5].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_30] + [RefOutfeedTransportOrderResourceDTO] [x_22] WHERE - [x_30].[ResourceID] = [c5].[Id] + [x_22].[ResourceID] = [c5].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_31] + [InventoryResourceDTO] [x_23] WHERE - [x_31].[Status] < 0 AND [x_31].[ResourceID] = [c5].[Id] AND - ([x_31].[InfeedAdviceID] IS NULL OR EXISTS( + [x_23].[Status] < 0 AND [x_23].[ResourceID] = [c5].[Id] AND + ([x_23].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_4] WHERE - [y_4].[Id] = [x_31].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 + [y_4].[Id] = [x_23].[InfeedAdviceID] AND [y_4].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a6].[Id] IS NOT NULL AND ([a6].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a6].[Id] IS NULL), 1, 0), @@ -555,32 +491,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_32] + [InventoryResourceDTO] [x_24] WHERE - [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c6].[Id] + [x_24].[Status] < 0 AND [x_24].[ResourceID] = [c6].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_33] + [RefOutfeedTransportOrderResourceDTO] [x_25] WHERE - [x_33].[ResourceID] = [c6].[Id] + [x_25].[ResourceID] = [c6].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_34] + [InventoryResourceDTO] [x_26] WHERE - [x_34].[Status] < 0 AND [x_34].[ResourceID] = [c6].[Id] AND - ([x_34].[InfeedAdviceID] IS NULL OR EXISTS( + [x_26].[Status] < 0 AND [x_26].[ResourceID] = [c6].[Id] AND + ([x_26].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_5] WHERE - [y_5].[Id] = [x_34].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 + [y_5].[Id] = [x_26].[InfeedAdviceID] AND [y_5].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a7].[Id] IS NOT NULL AND ([a7].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a7].[Id] IS NULL), 1, 0), @@ -609,32 +545,32 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_35] + [InventoryResourceDTO] [x_27] WHERE - [x_35].[Status] < 0 AND [x_35].[ResourceID] = [c7].[Id] + [x_27].[Status] < 0 AND [x_27].[ResourceID] = [c7].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_36] + [RefOutfeedTransportOrderResourceDTO] [x_28] WHERE - [x_36].[ResourceID] = [c7].[Id] + [x_28].[ResourceID] = [c7].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_37] + [InventoryResourceDTO] [x_29] WHERE - [x_37].[Status] < 0 AND [x_37].[ResourceID] = [c7].[Id] AND - ([x_37].[InfeedAdviceID] IS NULL OR EXISTS( + [x_29].[Status] < 0 AND [x_29].[ResourceID] = [c7].[Id] AND + ([x_29].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_6] WHERE - [y_6].[Id] = [x_37].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 + [y_6].[Id] = [x_29].[InfeedAdviceID] AND [y_6].[InfeedAdviceType] = 0 )) ), 1, 0), IIF([a8].[Id] IS NOT NULL AND ([a8].[Id] <> '00000000-0000-0000-0000-000000000000' OR [a8].[Id] IS NULL), 1, 0), @@ -663,196 +599,132 @@ SELECT SELECT COUNT(*) FROM - [InventoryResourceDTO] [x_38] + [InventoryResourceDTO] [x_30] WHERE - [x_38].[Status] < 0 AND [x_38].[ResourceID] = [c8].[Id] + [x_30].[Status] < 0 AND [x_30].[ResourceID] = [c8].[Id] ), IIF(EXISTS( SELECT * FROM - [RefOutfeedTransportOrderResourceDTO] [x_39] + [RefOutfeedTransportOrderResourceDTO] [x_31] WHERE - [x_39].[ResourceID] = [c8].[Id] + [x_31].[ResourceID] = [c8].[Id] ), 1, 0), IIF(EXISTS( SELECT * FROM - [InventoryResourceDTO] [x_40] + [InventoryResourceDTO] [x_32] WHERE - [x_40].[Status] < 0 AND [x_40].[ResourceID] = [c8].[Id] AND - ([x_40].[InfeedAdviceID] IS NULL OR EXISTS( + [x_32].[Status] < 0 AND [x_32].[ResourceID] = [c8].[Id] AND + ([x_32].[InfeedAdviceID] IS NULL OR EXISTS( SELECT * FROM [InfeedAdvicePositionDTO] [y_7] WHERE - [y_7].[Id] = [x_40].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 + [y_7].[Id] = [x_32].[InfeedAdviceID] AND [y_7].[InfeedAdviceType] = 0 )) ), 1, 0) FROM - [ChannelDTO] [x_16] - INNER JOIN [AisleDTO] [a] ON [x_16].[AisleID] = [a].[Id] - LEFT JOIN [MaterialDTO] [m_1] ON [x_16].[MaterialID] = [m_1].[Id] - LEFT JOIN [StorageShelfDTO] [a1] ON [x_16].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] + [ChannelDTO] [x_8] + INNER JOIN [AisleDTO] [a] ON [x_8].[AisleID] = [a].[Id] + LEFT JOIN [MaterialDTO] [m_1] ON [x_8].[MaterialID] = [m_1].[Id] + LEFT JOIN [StorageShelfDTO] [a1] ON [x_8].[Id] = [a1].[ChannelID] AND 1 = [a1].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b1] ON [a1].[Id] = [b1].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c1] ON [b1].[ResourceID] = [c1].[Id] - CROSS APPLY ( + LEFT JOIN [InventoryResourceDTO] [i1] ON ( SELECT TOP (1) - * + [x].[Id] FROM [InventoryResourceDTO] [x] WHERE [x].[Status] < 0 AND [x].[ResourceID] = [b1].[ResourceID] - ) [t1] - LEFT JOIN [InventoryResourceDTO] [i1] ON ( - SELECT TOP (1) - [x_1].[Id] - FROM - [InventoryResourceDTO] [x_1] - WHERE - [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b1].[ResourceID] ) = [i1].[Id] AND [i1].[Status] < 0 LEFT JOIN [MaterialDTO] [m1] ON [i1].[MaterialID] = [m1].[Id] - LEFT JOIN [StorageShelfDTO] [a2] ON [x_16].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a2] ON [x_8].[Id] = [a2].[ChannelID] AND 2 = [a2].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b2] ON [a2].[Id] = [b2].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c2] ON [b2].[ResourceID] = [c2].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_2] - WHERE - [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b2].[ResourceID] - ) [t2] LEFT JOIN [InventoryResourceDTO] [i2] ON ( SELECT TOP (1) - [x_3].[Id] + [x_1].[Id] FROM - [InventoryResourceDTO] [x_3] + [InventoryResourceDTO] [x_1] WHERE - [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b2].[ResourceID] + [x_1].[Status] < 0 AND [x_1].[ResourceID] = [b2].[ResourceID] ) = [i2].[Id] AND [i2].[Status] < 0 LEFT JOIN [MaterialDTO] [m2] ON [i2].[MaterialID] = [m2].[Id] - LEFT JOIN [StorageShelfDTO] [a3] ON [x_16].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a3] ON [x_8].[Id] = [a3].[ChannelID] AND 3 = [a3].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b3] ON [a3].[Id] = [b3].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c3] ON [b3].[ResourceID] = [c3].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_4] - WHERE - [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b3].[ResourceID] - ) [t3] LEFT JOIN [InventoryResourceDTO] [i3] ON ( SELECT TOP (1) - [x_5].[Id] + [x_2].[Id] FROM - [InventoryResourceDTO] [x_5] + [InventoryResourceDTO] [x_2] WHERE - [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b3].[ResourceID] + [x_2].[Status] < 0 AND [x_2].[ResourceID] = [b3].[ResourceID] ) = [i3].[Id] AND [i3].[Status] < 0 LEFT JOIN [MaterialDTO] [m3] ON [i3].[MaterialID] = [m3].[Id] - LEFT JOIN [StorageShelfDTO] [a4] ON [x_16].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a4] ON [x_8].[Id] = [a4].[ChannelID] AND 4 = [a4].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b4] ON [a4].[Id] = [b4].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c4] ON [b4].[ResourceID] = [c4].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_6] - WHERE - [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b4].[ResourceID] - ) [t4] LEFT JOIN [InventoryResourceDTO] [i4] ON ( SELECT TOP (1) - [x_7].[Id] + [x_3].[Id] FROM - [InventoryResourceDTO] [x_7] + [InventoryResourceDTO] [x_3] WHERE - [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b4].[ResourceID] + [x_3].[Status] < 0 AND [x_3].[ResourceID] = [b4].[ResourceID] ) = [i4].[Id] AND [i4].[Status] < 0 LEFT JOIN [MaterialDTO] [m4] ON [i4].[MaterialID] = [m4].[Id] - LEFT JOIN [StorageShelfDTO] [a5] ON [x_16].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a5] ON [x_8].[Id] = [a5].[ChannelID] AND 5 = [a5].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b5] ON [a5].[Id] = [b5].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c5] ON [b5].[ResourceID] = [c5].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_8] - WHERE - [x_8].[Status] < 0 AND [x_8].[ResourceID] = [b5].[ResourceID] - ) [t5] LEFT JOIN [InventoryResourceDTO] [i5] ON ( SELECT TOP (1) - [x_9].[Id] + [x_4].[Id] FROM - [InventoryResourceDTO] [x_9] + [InventoryResourceDTO] [x_4] WHERE - [x_9].[Status] < 0 AND [x_9].[ResourceID] = [b5].[ResourceID] + [x_4].[Status] < 0 AND [x_4].[ResourceID] = [b5].[ResourceID] ) = [i5].[Id] AND [i5].[Status] < 0 LEFT JOIN [MaterialDTO] [m5] ON [i5].[MaterialID] = [m5].[Id] - LEFT JOIN [StorageShelfDTO] [a6] ON [x_16].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a6] ON [x_8].[Id] = [a6].[ChannelID] AND 6 = [a6].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b6] ON [a6].[Id] = [b6].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c6] ON [b6].[ResourceID] = [c6].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_10] - WHERE - [x_10].[Status] < 0 AND [x_10].[ResourceID] = [b6].[ResourceID] - ) [t6] LEFT JOIN [InventoryResourceDTO] [i6] ON ( SELECT TOP (1) - [x_11].[Id] + [x_5].[Id] FROM - [InventoryResourceDTO] [x_11] + [InventoryResourceDTO] [x_5] WHERE - [x_11].[Status] < 0 AND [x_11].[ResourceID] = [b6].[ResourceID] + [x_5].[Status] < 0 AND [x_5].[ResourceID] = [b6].[ResourceID] ) = [i6].[Id] AND [i6].[Status] < 0 LEFT JOIN [MaterialDTO] [m6] ON [i6].[MaterialID] = [m6].[Id] - LEFT JOIN [StorageShelfDTO] [a7] ON [x_16].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a7] ON [x_8].[Id] = [a7].[ChannelID] AND 7 = [a7].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b7] ON [a7].[Id] = [b7].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c7] ON [b7].[ResourceID] = [c7].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_12] - WHERE - [x_12].[Status] < 0 AND [x_12].[ResourceID] = [b7].[ResourceID] - ) [t7] LEFT JOIN [InventoryResourceDTO] [i7] ON ( SELECT TOP (1) - [x_13].[Id] + [x_6].[Id] FROM - [InventoryResourceDTO] [x_13] + [InventoryResourceDTO] [x_6] WHERE - [x_13].[Status] < 0 AND [x_13].[ResourceID] = [b7].[ResourceID] + [x_6].[Status] < 0 AND [x_6].[ResourceID] = [b7].[ResourceID] ) = [i7].[Id] AND [i7].[Status] < 0 LEFT JOIN [MaterialDTO] [m7] ON [i7].[MaterialID] = [m7].[Id] - LEFT JOIN [StorageShelfDTO] [a8] ON [x_16].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] + LEFT JOIN [StorageShelfDTO] [a8] ON [x_8].[Id] = [a8].[ChannelID] AND 8 = [a8].[DepthCoordinate] LEFT JOIN [RefResourceStorageShelfDTO] [b8] ON [a8].[Id] = [b8].[StorageShelfID] LEFT JOIN [WmsLoadCarrierDTO] [c8] ON [b8].[ResourceID] = [c8].[Id] - CROSS APPLY ( - SELECT TOP (1) - * - FROM - [InventoryResourceDTO] [x_14] - WHERE - [x_14].[Status] < 0 AND [x_14].[ResourceID] = [b8].[ResourceID] - ) [t8] LEFT JOIN [InventoryResourceDTO] [i8] ON ( SELECT TOP (1) - [x_15].[Id] + [x_7].[Id] FROM - [InventoryResourceDTO] [x_15] + [InventoryResourceDTO] [x_7] WHERE - [x_15].[Status] < 0 AND [x_15].[ResourceID] = [b8].[ResourceID] + [x_7].[Status] < 0 AND [x_7].[ResourceID] = [b8].[ResourceID] ) = [i8].[Id] AND [i8].[Status] < 0 LEFT JOIN [MaterialDTO] [m8] ON [i8].[MaterialID] = [m8].[Id] diff --git a/SqlServer.SA/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA,1).sql b/SqlServer.SA/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA,1).sql new file mode 100644 index 000000000000..932a51279727 --- /dev/null +++ b/SqlServer.SA/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA,1).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + diff --git a/SqlServer.SA/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA,2).sql b/SqlServer.SA/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA,2).sql new file mode 100644 index 000000000000..932a51279727 --- /dev/null +++ b/SqlServer.SA/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SqlServer.SA,2).sql @@ -0,0 +1,60 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +CREATE TABLE [tempdb]..[#MergeTemp] +( + [ID] Int NOT NULL, + [Name] NVarChar(20) NULL, + + PRIMARY KEY CLUSTERED ([ID]) +) + +BeforeExecute +INSERT BULK [tempdb]..[#MergeTemp](ID, Name) + +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +MERGE INTO [tempdb]..[#MergeTemp] [t1] +USING (SELECT ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' +) AS [ID]) [s] ON +( + [t1].[ID] = [s].[ID] +) +WHEN MATCHED THEN + UPDATE + SET + [ID] = [t1].[ID], + [Name] = [t1].[Name] +WHEN NOT MATCHED THEN + INSERT + ( + [ID], + [Name] + ) + VALUES + ( + ( + SELECT + [t].[ID] + FROM + [tempdb]..[#MergeTemp] [t] + WHERE + [t].[Name] = N'John' + ), + N'John II' + ); + +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#MergeTemp] + From 063751295d80afadbcc65c3fd777d53c298d2cfe Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:40:07 +0000 Subject: [PATCH 26/40] [Linux / PostgreSQL 17] baselines --- ...ssueTests.Issue3491Test(PostgreSQL.17).sql | 14 +++- ...ssueTests.Issue3491Test(PostgreSQL.17).sql | 14 +++- ...ssueTests.Issue3491Test(PostgreSQL.17).sql | 14 +++- ...isonTest1(PostgreSQL.17.LinqService,1).sql | 63 ++++++++-------- ...isonTest1(PostgreSQL.17.LinqService,2).sql | 63 ++++++++-------- ...areToSelect(PostgreSQL.17.LinqService).sql | 60 +++++++++++---- ...ualToSelect(PostgreSQL.17.LinqService).sql | 75 ++++++++++++++----- ...teRowSelect(PostgreSQL.17.LinqService).sql | 14 +++- ...eanSubquery(PostgreSQL.17.LinqService).sql | 12 ++- ...ueryFilter1(PostgreSQL.17.LinqService).sql | 22 +++--- ...ueryFilter2(PostgreSQL.17.LinqService).sql | 26 +++---- ...ueryFilter3(PostgreSQL.17.LinqService).sql | 38 +++++----- ...mesFromList(PostgreSQL.17.LinqService).sql | 2 +- ...Tests.ComparisonTest1(PostgreSQL.17,1).sql | 63 ++++++++-------- ...Tests.ComparisonTest1(PostgreSQL.17,2).sql | 63 ++++++++-------- ...owTests.CompareToSelect(PostgreSQL.17).sql | 60 +++++++++++---- ...lRowTests.EqualToSelect(PostgreSQL.17).sql | 75 ++++++++++++++----- ...owTests.UpdateRowSelect(PostgreSQL.17).sql | 14 +++- ...ueryTests.Issue383Test2(PostgreSQL.17).sql | 10 ++- ...reTests.BooleanSubquery(PostgreSQL.17).sql | 12 ++- ...s.Issue_SubQueryFilter1(PostgreSQL.17).sql | 22 +++--- ...s.Issue_SubQueryFilter2(PostgreSQL.17).sql | 26 +++---- ...s.Issue_SubQueryFilter3(PostgreSQL.17).sql | 38 +++++----- ...geTests.MergeSubquery(PostgreSQL.17,1).sql | 54 +++++++++++++ ...geTests.MergeSubquery(PostgreSQL.17,2).sql | 54 +++++++++++++ 25 files changed, 587 insertions(+), 321 deletions(-) create mode 100644 PostgreSQL.17/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.17,1).sql create mode 100644 PostgreSQL.17/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.17,2).sql diff --git a/PostgreSQL.17.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.17).sql b/PostgreSQL.17.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.17).sql index ad1ff9ef543a..8544e4dc17aa 100644 --- a/PostgreSQL.17.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.17).sql +++ b/PostgreSQL.17.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.17).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.17.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.17).sql b/PostgreSQL.17.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.17).sql index ad1ff9ef543a..8544e4dc17aa 100644 --- a/PostgreSQL.17.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.17).sql +++ b/PostgreSQL.17.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.17).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.17.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.17).sql b/PostgreSQL.17.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.17).sql index ad1ff9ef543a..8544e4dc17aa 100644 --- a/PostgreSQL.17.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.17).sql +++ b/PostgreSQL.17.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.17).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.17.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17.LinqService,1).sql b/PostgreSQL.17.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17.LinqService,1).sql index 863749872a96..072ed5418215 100644 --- a/PostgreSQL.17.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17.LinqService,1).sql +++ b/PostgreSQL.17.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.17.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17.LinqService,2).sql b/PostgreSQL.17.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17.LinqService,2).sql index 863749872a96..072ed5418215 100644 --- a/PostgreSQL.17.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17.LinqService,2).sql +++ b/PostgreSQL.17.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.17.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.17.LinqService).sql b/PostgreSQL.17.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.17.LinqService).sql index f51964bfc560..9b87a48b25ec 100644 --- a/PostgreSQL.17.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.17.LinqService).sql +++ b/PostgreSQL.17.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.17.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") > (y."One", y."One", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") > ( + SELECT + y."One", + y."One", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") >= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") >= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") < (y."One", y."Three", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") < ( + SELECT + y."One", + y."Three", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.17.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.17.LinqService).sql b/PostgreSQL.17.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.17.LinqService).sql index 0da89937530e..7b9337e5a711 100644 --- a/PostgreSQL.17.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.17.LinqService).sql +++ b/PostgreSQL.17.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.17.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = (x."One", x."Two", x."Three") AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.17.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.17.LinqService).sql b/PostgreSQL.17.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.17.LinqService).sql index 28a47f2f6567..0665b56222d8 100644 --- a/PostgreSQL.17.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.17.LinqService).sql +++ b/PostgreSQL.17.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.17.LinqService).sql @@ -5,12 +5,18 @@ UPDATE "Ints" SET "One" = "Ints"."Two" * 5, - ("Two", "Three") = ("Ints"."Two" * 10, j."Three" * 100), + ("Two", "Three") = ( + SELECT + "Ints"."Two" * 10, + j."Three" * 100 + FROM + "Ints" j + WHERE + j."One" = 1 + ), ("Four", "Nil") = ("Ints"."One" * "Ints"."Four", 600) -FROM - "Ints" j WHERE - "Ints"."One" = 10 AND j."One" = 1 + "Ints"."One" = 10 BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL diff --git a/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.17.LinqService).sql b/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.17.LinqService).sql index 10d9bbea6a52..c9b515ae44e4 100644 --- a/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.17.LinqService).sql +++ b/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.17.LinqService).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) diff --git a/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.17.LinqService).sql b/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.17.LinqService).sql index 48dd625706e5..6014cda74a68 100644 --- a/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.17.LinqService).sql +++ b/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.17.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3.cond + ) ) ORDER BY t1."PersonID" diff --git a/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.17.LinqService).sql b/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.17.LinqService).sql index 93d3a435dd53..98874c1906ab 100644 --- a/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.17.LinqService).sql +++ b/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.17.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2.cond + ) ) ORDER BY p."PersonID" diff --git a/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.17.LinqService).sql b/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.17.LinqService).sql index ccd6b8c6872d..dbc02664c32d 100644 --- a/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.17.LinqService).sql +++ b/PostgreSQL.17.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.17.LinqService).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" p - INNER JOIN LATERAL ( - SELECT - d."PersonID" as cond - FROM - "Person" d - WHERE - d."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t1 ON 1=1 WHERE - p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = t1.cond + p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = ( + SELECT + d."PersonID" + FROM + "Person" d + WHERE + d."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM "Person" p_1 - INNER JOIN LATERAL ( - SELECT - d_1."PersonID" as cond - FROM - "Person" d_1 - WHERE - d_1."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t2 ON 1=1 WHERE - p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = t2.cond + p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = ( + SELECT + d_1."PersonID" + FROM + "Person" d_1 + WHERE + d_1."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) ORDER BY patient_1."PersonID" diff --git a/PostgreSQL.17.LinqService/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.UpdateBySourceReservedAndCaseNamesFromList(PostgreSQL.17.LinqService).sql b/PostgreSQL.17.LinqService/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.UpdateBySourceReservedAndCaseNamesFromList(PostgreSQL.17.LinqService).sql index d1bf36af471f..a3f7830aed33 100644 --- a/PostgreSQL.17.LinqService/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.UpdateBySourceReservedAndCaseNamesFromList(PostgreSQL.17.LinqService).sql +++ b/PostgreSQL.17.LinqService/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.UpdateBySourceReservedAndCaseNamesFromList(PostgreSQL.17.LinqService).sql @@ -236,7 +236,7 @@ BeforeExecute MERGE INTO "TestMerge1" "Target" USING (VALUES - (6), (3), (4), (5) + (4), (3), (5), (6) ) "Source" ( "source_From" diff --git a/PostgreSQL.17/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17,1).sql b/PostgreSQL.17/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17,1).sql index 863749872a96..072ed5418215 100644 --- a/PostgreSQL.17/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17,1).sql +++ b/PostgreSQL.17/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.17/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17,2).sql b/PostgreSQL.17/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17,2).sql index 863749872a96..072ed5418215 100644 --- a/PostgreSQL.17/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17,2).sql +++ b/PostgreSQL.17/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.17,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.17/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.17).sql b/PostgreSQL.17/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.17).sql index f51964bfc560..9b87a48b25ec 100644 --- a/PostgreSQL.17/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.17).sql +++ b/PostgreSQL.17/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.17).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") > (y."One", y."One", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") > ( + SELECT + y."One", + y."One", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") >= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") >= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") < (y."One", y."Three", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") < ( + SELECT + y."One", + y."Three", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.17/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.17).sql b/PostgreSQL.17/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.17).sql index 0da89937530e..7b9337e5a711 100644 --- a/PostgreSQL.17/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.17).sql +++ b/PostgreSQL.17/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.17).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = (x."One", x."Two", x."Three") AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.17/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.17).sql b/PostgreSQL.17/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.17).sql index 28a47f2f6567..0665b56222d8 100644 --- a/PostgreSQL.17/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.17).sql +++ b/PostgreSQL.17/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.17).sql @@ -5,12 +5,18 @@ UPDATE "Ints" SET "One" = "Ints"."Two" * 5, - ("Two", "Three") = ("Ints"."Two" * 10, j."Three" * 100), + ("Two", "Three") = ( + SELECT + "Ints"."Two" * 10, + j."Three" * 100 + FROM + "Ints" j + WHERE + j."One" = 1 + ), ("Four", "Nil") = ("Ints"."One" * "Ints"."Four", 600) -FROM - "Ints" j WHERE - "Ints"."One" = 10 AND j."One" = 1 + "Ints"."One" = 10 BeforeExecute -- PostgreSQL.17 PostgreSQL.15 PostgreSQL diff --git a/PostgreSQL.17/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.17).sql b/PostgreSQL.17/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.17).sql index b9d84351e2fb..fc366715dbee 100644 --- a/PostgreSQL.17/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.17).sql +++ b/PostgreSQL.17/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.17).sql @@ -7,7 +7,14 @@ SELECT d."Distributor_Name", cp."Street_Number", cp."Street_Name", - c_1."City_Name", + ( + SELECT + c_1."City_Name" + FROM + "Cities" c_1 + WHERE + c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL + ), cp."State", cp."Zip_Code", cp."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" dcp ON d."Distributor_Id" = dcp."Distributor_Id" INNER JOIN "Commercial_Property" cp ON dcp."Commercial_Property_Id" = cp."Commercial_Property_Id" INNER JOIN "Contract_Dates" cd ON cda."Contract_Id" = cd."Contract_Id" - INNER JOIN "Cities" c_1 ON c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL WHERE cda."Contract_Id" = 198827882 AND cda."Distributor_Type_Code" = 'CC' AND diff --git a/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.17).sql b/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.17).sql index 10d9bbea6a52..c9b515ae44e4 100644 --- a/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.17).sql +++ b/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.17).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) diff --git a/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.17).sql b/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.17).sql index 48dd625706e5..6014cda74a68 100644 --- a/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.17).sql +++ b/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.17).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3.cond + ) ) ORDER BY t1."PersonID" diff --git a/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.17).sql b/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.17).sql index 93d3a435dd53..98874c1906ab 100644 --- a/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.17).sql +++ b/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.17).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2.cond + ) ) ORDER BY p."PersonID" diff --git a/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.17).sql b/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.17).sql index ccd6b8c6872d..dbc02664c32d 100644 --- a/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.17).sql +++ b/PostgreSQL.17/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.17).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" p - INNER JOIN LATERAL ( - SELECT - d."PersonID" as cond - FROM - "Person" d - WHERE - d."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t1 ON 1=1 WHERE - p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = t1.cond + p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = ( + SELECT + d."PersonID" + FROM + "Person" d + WHERE + d."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM "Person" p_1 - INNER JOIN LATERAL ( - SELECT - d_1."PersonID" as cond - FROM - "Person" d_1 - WHERE - d_1."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t2 ON 1=1 WHERE - p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = t2.cond + p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = ( + SELECT + d_1."PersonID" + FROM + "Person" d_1 + WHERE + d_1."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) ORDER BY patient_1."PersonID" diff --git a/PostgreSQL.17/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.17,1).sql b/PostgreSQL.17/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.17,1).sql new file mode 100644 index 000000000000..f975378659ac --- /dev/null +++ b/PostgreSQL.17/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.17,1).sql @@ -0,0 +1,54 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE "MergeTemp" +( + "ID" Int NOT NULL, + "Name" text NULL, + + CONSTRAINT "PK_MergeTemp" PRIMARY KEY ("ID") +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +INSERT INTO "MergeTemp" +( + "ID", + "Name" +) +VALUES +(1,'John') + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +INSERT INTO "MergeTemp" AS t1 +( + "ID", + "Name" +) +VALUES +( + ( + SELECT + t."ID" + FROM + "MergeTemp" t + WHERE + t."Name" = 'John' + ), + 'John II' +) +ON CONFLICT ("ID") DO UPDATE SET + "ID" = t1."ID", + "Name" = t1."Name" + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS "MergeTemp" + diff --git a/PostgreSQL.17/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.17,2).sql b/PostgreSQL.17/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.17,2).sql new file mode 100644 index 000000000000..f975378659ac --- /dev/null +++ b/PostgreSQL.17/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.17,2).sql @@ -0,0 +1,54 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE "MergeTemp" +( + "ID" Int NOT NULL, + "Name" text NULL, + + CONSTRAINT "PK_MergeTemp" PRIMARY KEY ("ID") +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +INSERT INTO "MergeTemp" +( + "ID", + "Name" +) +VALUES +(1,'John') + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +INSERT INTO "MergeTemp" AS t1 +( + "ID", + "Name" +) +VALUES +( + ( + SELECT + t."ID" + FROM + "MergeTemp" t + WHERE + t."Name" = 'John' + ), + 'John II' +) +ON CONFLICT ("ID") DO UPDATE SET + "ID" = t1."ID", + "Name" = t1."Name" + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS "MergeTemp" + From 0ff711d7ad2e14fd24de42f52cce1019543b5780 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:42:20 +0000 Subject: [PATCH 27/40] [Linux / PostgreSQL 16] baselines --- ...ssueTests.Issue3491Test(PostgreSQL.16).sql | 14 +++- ...ssueTests.Issue3491Test(PostgreSQL.16).sql | 14 +++- ...ssueTests.Issue3491Test(PostgreSQL.16).sql | 14 +++- ...isonTest1(PostgreSQL.16.LinqService,1).sql | 63 ++++++++-------- ...isonTest1(PostgreSQL.16.LinqService,2).sql | 63 ++++++++-------- ...areToSelect(PostgreSQL.16.LinqService).sql | 60 +++++++++++---- ...ualToSelect(PostgreSQL.16.LinqService).sql | 75 ++++++++++++++----- ...teRowSelect(PostgreSQL.16.LinqService).sql | 14 +++- ...eanSubquery(PostgreSQL.16.LinqService).sql | 12 ++- ...ueryFilter1(PostgreSQL.16.LinqService).sql | 22 +++--- ...ueryFilter2(PostgreSQL.16.LinqService).sql | 26 +++---- ...ueryFilter3(PostgreSQL.16.LinqService).sql | 38 +++++----- ...Tests.ComparisonTest1(PostgreSQL.16,1).sql | 63 ++++++++-------- ...Tests.ComparisonTest1(PostgreSQL.16,2).sql | 63 ++++++++-------- ...owTests.CompareToSelect(PostgreSQL.16).sql | 60 +++++++++++---- ...lRowTests.EqualToSelect(PostgreSQL.16).sql | 75 ++++++++++++++----- ...owTests.UpdateRowSelect(PostgreSQL.16).sql | 14 +++- ...ueryTests.Issue383Test2(PostgreSQL.16).sql | 10 ++- ...reTests.BooleanSubquery(PostgreSQL.16).sql | 12 ++- ...s.Issue_SubQueryFilter1(PostgreSQL.16).sql | 22 +++--- ...s.Issue_SubQueryFilter2(PostgreSQL.16).sql | 26 +++---- ...s.Issue_SubQueryFilter3(PostgreSQL.16).sql | 38 +++++----- ...geTests.MergeSubquery(PostgreSQL.16,1).sql | 54 +++++++++++++ ...geTests.MergeSubquery(PostgreSQL.16,2).sql | 54 +++++++++++++ 24 files changed, 586 insertions(+), 320 deletions(-) create mode 100644 PostgreSQL.16/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.16,1).sql create mode 100644 PostgreSQL.16/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.16,2).sql diff --git a/PostgreSQL.16.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.16).sql b/PostgreSQL.16.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.16).sql index ad1ff9ef543a..8544e4dc17aa 100644 --- a/PostgreSQL.16.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.16).sql +++ b/PostgreSQL.16.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.16).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.16.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.16).sql b/PostgreSQL.16.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.16).sql index ad1ff9ef543a..8544e4dc17aa 100644 --- a/PostgreSQL.16.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.16).sql +++ b/PostgreSQL.16.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.16).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.16.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.16).sql b/PostgreSQL.16.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.16).sql index ad1ff9ef543a..8544e4dc17aa 100644 --- a/PostgreSQL.16.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.16).sql +++ b/PostgreSQL.16.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.16).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.16.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16.LinqService,1).sql b/PostgreSQL.16.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16.LinqService,1).sql index b1fed173e6ea..d6430618f613 100644 --- a/PostgreSQL.16.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16.LinqService,1).sql +++ b/PostgreSQL.16.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.16.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16.LinqService,2).sql b/PostgreSQL.16.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16.LinqService,2).sql index b1fed173e6ea..d6430618f613 100644 --- a/PostgreSQL.16.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16.LinqService,2).sql +++ b/PostgreSQL.16.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.16.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.16.LinqService).sql b/PostgreSQL.16.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.16.LinqService).sql index 680f0140cdbc..e13e1835f7ca 100644 --- a/PostgreSQL.16.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.16.LinqService).sql +++ b/PostgreSQL.16.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.16.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") > (y."One", y."One", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") > ( + SELECT + y."One", + y."One", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") >= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") >= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") < (y."One", y."Three", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") < ( + SELECT + y."One", + y."Three", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.16.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.16.LinqService).sql b/PostgreSQL.16.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.16.LinqService).sql index 0ceb27abe38a..7e3917bebbca 100644 --- a/PostgreSQL.16.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.16.LinqService).sql +++ b/PostgreSQL.16.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.16.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = (x."One", x."Two", x."Three") AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.16.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.16.LinqService).sql b/PostgreSQL.16.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.16.LinqService).sql index dd64c2fbb6fe..c55017065266 100644 --- a/PostgreSQL.16.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.16.LinqService).sql +++ b/PostgreSQL.16.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.16.LinqService).sql @@ -5,12 +5,18 @@ UPDATE "Ints" SET "One" = "Ints"."Two" * 5, - ("Two", "Three") = ("Ints"."Two" * 10, j."Three" * 100), + ("Two", "Three") = ( + SELECT + "Ints"."Two" * 10, + j."Three" * 100 + FROM + "Ints" j + WHERE + j."One" = 1 + ), ("Four", "Nil") = ("Ints"."One" * "Ints"."Four", 600) -FROM - "Ints" j WHERE - "Ints"."One" = 10 AND j."One" = 1 + "Ints"."One" = 10 BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL diff --git a/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.16.LinqService).sql b/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.16.LinqService).sql index 92bca6b98d84..a6d2c4017065 100644 --- a/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.16.LinqService).sql +++ b/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.16.LinqService).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) diff --git a/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.16.LinqService).sql b/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.16.LinqService).sql index 72685ebb52c5..16adf4e863f8 100644 --- a/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.16.LinqService).sql +++ b/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.16.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3.cond + ) ) ORDER BY t1."PersonID" diff --git a/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.16.LinqService).sql b/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.16.LinqService).sql index dceb05ab9b8a..e3163dd2c873 100644 --- a/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.16.LinqService).sql +++ b/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.16.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2.cond + ) ) ORDER BY p."PersonID" diff --git a/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.16.LinqService).sql b/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.16.LinqService).sql index 6a2c80b69974..5a33a5bca248 100644 --- a/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.16.LinqService).sql +++ b/PostgreSQL.16.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.16.LinqService).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" p - INNER JOIN LATERAL ( - SELECT - d."PersonID" as cond - FROM - "Person" d - WHERE - d."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t1 ON 1=1 WHERE - p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = t1.cond + p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = ( + SELECT + d."PersonID" + FROM + "Person" d + WHERE + d."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM "Person" p_1 - INNER JOIN LATERAL ( - SELECT - d_1."PersonID" as cond - FROM - "Person" d_1 - WHERE - d_1."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t2 ON 1=1 WHERE - p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = t2.cond + p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = ( + SELECT + d_1."PersonID" + FROM + "Person" d_1 + WHERE + d_1."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) ORDER BY patient_1."PersonID" diff --git a/PostgreSQL.16/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16,1).sql b/PostgreSQL.16/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16,1).sql index b1fed173e6ea..d6430618f613 100644 --- a/PostgreSQL.16/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16,1).sql +++ b/PostgreSQL.16/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.16/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16,2).sql b/PostgreSQL.16/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16,2).sql index b1fed173e6ea..d6430618f613 100644 --- a/PostgreSQL.16/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16,2).sql +++ b/PostgreSQL.16/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.16,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.16/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.16).sql b/PostgreSQL.16/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.16).sql index 680f0140cdbc..e13e1835f7ca 100644 --- a/PostgreSQL.16/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.16).sql +++ b/PostgreSQL.16/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.16).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") > (y."One", y."One", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") > ( + SELECT + y."One", + y."One", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") >= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") >= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") < (y."One", y."Three", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") < ( + SELECT + y."One", + y."Three", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.16/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.16).sql b/PostgreSQL.16/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.16).sql index 0ceb27abe38a..7e3917bebbca 100644 --- a/PostgreSQL.16/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.16).sql +++ b/PostgreSQL.16/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.16).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = (x."One", x."Two", x."Three") AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.16/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.16).sql b/PostgreSQL.16/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.16).sql index dd64c2fbb6fe..c55017065266 100644 --- a/PostgreSQL.16/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.16).sql +++ b/PostgreSQL.16/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.16).sql @@ -5,12 +5,18 @@ UPDATE "Ints" SET "One" = "Ints"."Two" * 5, - ("Two", "Three") = ("Ints"."Two" * 10, j."Three" * 100), + ("Two", "Three") = ( + SELECT + "Ints"."Two" * 10, + j."Three" * 100 + FROM + "Ints" j + WHERE + j."One" = 1 + ), ("Four", "Nil") = ("Ints"."One" * "Ints"."Four", 600) -FROM - "Ints" j WHERE - "Ints"."One" = 10 AND j."One" = 1 + "Ints"."One" = 10 BeforeExecute -- PostgreSQL.16 PostgreSQL.15 PostgreSQL diff --git a/PostgreSQL.16/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.16).sql b/PostgreSQL.16/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.16).sql index 3968f249f459..d4f543cadf41 100644 --- a/PostgreSQL.16/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.16).sql +++ b/PostgreSQL.16/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.16).sql @@ -7,7 +7,14 @@ SELECT d."Distributor_Name", cp."Street_Number", cp."Street_Name", - c_1."City_Name", + ( + SELECT + c_1."City_Name" + FROM + "Cities" c_1 + WHERE + c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL + ), cp."State", cp."Zip_Code", cp."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" dcp ON d."Distributor_Id" = dcp."Distributor_Id" INNER JOIN "Commercial_Property" cp ON dcp."Commercial_Property_Id" = cp."Commercial_Property_Id" INNER JOIN "Contract_Dates" cd ON cda."Contract_Id" = cd."Contract_Id" - INNER JOIN "Cities" c_1 ON c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL WHERE cda."Contract_Id" = 198827882 AND cda."Distributor_Type_Code" = 'CC' AND diff --git a/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.16).sql b/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.16).sql index 92bca6b98d84..a6d2c4017065 100644 --- a/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.16).sql +++ b/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.16).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) diff --git a/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.16).sql b/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.16).sql index 72685ebb52c5..16adf4e863f8 100644 --- a/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.16).sql +++ b/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.16).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3.cond + ) ) ORDER BY t1."PersonID" diff --git a/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.16).sql b/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.16).sql index dceb05ab9b8a..e3163dd2c873 100644 --- a/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.16).sql +++ b/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.16).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2.cond + ) ) ORDER BY p."PersonID" diff --git a/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.16).sql b/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.16).sql index 6a2c80b69974..5a33a5bca248 100644 --- a/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.16).sql +++ b/PostgreSQL.16/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.16).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" p - INNER JOIN LATERAL ( - SELECT - d."PersonID" as cond - FROM - "Person" d - WHERE - d."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t1 ON 1=1 WHERE - p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = t1.cond + p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = ( + SELECT + d."PersonID" + FROM + "Person" d + WHERE + d."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM "Person" p_1 - INNER JOIN LATERAL ( - SELECT - d_1."PersonID" as cond - FROM - "Person" d_1 - WHERE - d_1."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t2 ON 1=1 WHERE - p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = t2.cond + p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = ( + SELECT + d_1."PersonID" + FROM + "Person" d_1 + WHERE + d_1."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) ORDER BY patient_1."PersonID" diff --git a/PostgreSQL.16/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.16,1).sql b/PostgreSQL.16/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.16,1).sql new file mode 100644 index 000000000000..8c56dcc19f9c --- /dev/null +++ b/PostgreSQL.16/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.16,1).sql @@ -0,0 +1,54 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE "MergeTemp" +( + "ID" Int NOT NULL, + "Name" text NULL, + + CONSTRAINT "PK_MergeTemp" PRIMARY KEY ("ID") +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +INSERT INTO "MergeTemp" +( + "ID", + "Name" +) +VALUES +(1,'John') + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +INSERT INTO "MergeTemp" AS t1 +( + "ID", + "Name" +) +VALUES +( + ( + SELECT + t."ID" + FROM + "MergeTemp" t + WHERE + t."Name" = 'John' + ), + 'John II' +) +ON CONFLICT ("ID") DO UPDATE SET + "ID" = t1."ID", + "Name" = t1."Name" + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS "MergeTemp" + diff --git a/PostgreSQL.16/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.16,2).sql b/PostgreSQL.16/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.16,2).sql new file mode 100644 index 000000000000..8c56dcc19f9c --- /dev/null +++ b/PostgreSQL.16/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.16,2).sql @@ -0,0 +1,54 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE "MergeTemp" +( + "ID" Int NOT NULL, + "Name" text NULL, + + CONSTRAINT "PK_MergeTemp" PRIMARY KEY ("ID") +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +INSERT INTO "MergeTemp" +( + "ID", + "Name" +) +VALUES +(1,'John') + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +INSERT INTO "MergeTemp" AS t1 +( + "ID", + "Name" +) +VALUES +( + ( + SELECT + t."ID" + FROM + "MergeTemp" t + WHERE + t."Name" = 'John' + ), + 'John II' +) +ON CONFLICT ("ID") DO UPDATE SET + "ID" = t1."ID", + "Name" = t1."Name" + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS "MergeTemp" + From 1a0e3c60617d694b14a85a8b3d225c25385beb9b Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 20:42:36 +0000 Subject: [PATCH 28/40] [Linux / PostgreSQL 15] baselines --- ...ssueTests.Issue3491Test(PostgreSQL.15).sql | 14 +++- ...ssueTests.Issue3491Test(PostgreSQL.15).sql | 14 +++- ...ssueTests.Issue3491Test(PostgreSQL.15).sql | 14 +++- ...isonTest1(PostgreSQL.15.LinqService,1).sql | 63 ++++++++-------- ...isonTest1(PostgreSQL.15.LinqService,2).sql | 63 ++++++++-------- ...areToSelect(PostgreSQL.15.LinqService).sql | 60 +++++++++++---- ...ualToSelect(PostgreSQL.15.LinqService).sql | 75 ++++++++++++++----- ...teRowSelect(PostgreSQL.15.LinqService).sql | 14 +++- ...eanSubquery(PostgreSQL.15.LinqService).sql | 12 ++- ...ueryFilter1(PostgreSQL.15.LinqService).sql | 22 +++--- ...ueryFilter2(PostgreSQL.15.LinqService).sql | 26 +++---- ...ueryFilter3(PostgreSQL.15.LinqService).sql | 38 +++++----- ...Tests.ComparisonTest1(PostgreSQL.15,1).sql | 63 ++++++++-------- ...Tests.ComparisonTest1(PostgreSQL.15,2).sql | 63 ++++++++-------- ...owTests.CompareToSelect(PostgreSQL.15).sql | 60 +++++++++++---- ...lRowTests.EqualToSelect(PostgreSQL.15).sql | 75 ++++++++++++++----- ...owTests.UpdateRowSelect(PostgreSQL.15).sql | 14 +++- ...ueryTests.Issue383Test2(PostgreSQL.15).sql | 10 ++- ...reTests.BooleanSubquery(PostgreSQL.15).sql | 12 ++- ...s.Issue_SubQueryFilter1(PostgreSQL.15).sql | 22 +++--- ...s.Issue_SubQueryFilter2(PostgreSQL.15).sql | 26 +++---- ...s.Issue_SubQueryFilter3(PostgreSQL.15).sql | 38 +++++----- ...geTests.MergeSubquery(PostgreSQL.15,1).sql | 54 +++++++++++++ ...geTests.MergeSubquery(PostgreSQL.15,2).sql | 54 +++++++++++++ 24 files changed, 586 insertions(+), 320 deletions(-) create mode 100644 PostgreSQL.15/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.15,1).sql create mode 100644 PostgreSQL.15/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.15,2).sql diff --git a/PostgreSQL.15.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.15).sql b/PostgreSQL.15.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.15).sql index ad1ff9ef543a..8544e4dc17aa 100644 --- a/PostgreSQL.15.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.15).sql +++ b/PostgreSQL.15.EF6/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.15).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.15.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.15).sql b/PostgreSQL.15.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.15).sql index ad1ff9ef543a..8544e4dc17aa 100644 --- a/PostgreSQL.15.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.15).sql +++ b/PostgreSQL.15.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.15).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.15.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.15).sql b/PostgreSQL.15.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.15).sql index ad1ff9ef543a..8544e4dc17aa 100644 --- a/PostgreSQL.15.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.15).sql +++ b/PostgreSQL.15.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue3491Test(PostgreSQL.15).sql @@ -3,11 +3,17 @@ UPDATE "PostgreTestTable" SET - ("Title", "SearchVector") = ("PostgreTestTable"."Title", to_tsvector('test')) -FROM - "PostgreTestTable" x + ("Title", "SearchVector") = ( + SELECT + "PostgreTestTable"."Title", + to_tsvector('test') + FROM + "PostgreTestTable" x + WHERE + "PostgreTestTable"."Id" = x."Id" + ) WHERE - "PostgreTestTable"."Id" = 1 AND "PostgreTestTable"."Id" = x."Id" + "PostgreTestTable"."Id" = 1 diff --git a/PostgreSQL.15.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15.LinqService,1).sql b/PostgreSQL.15.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15.LinqService,1).sql index 3981c14bd761..4aa0090fe609 100644 --- a/PostgreSQL.15.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15.LinqService,1).sql +++ b/PostgreSQL.15.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15.LinqService,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.15.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15.LinqService,2).sql b/PostgreSQL.15.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15.LinqService,2).sql index 3981c14bd761..4aa0090fe609 100644 --- a/PostgreSQL.15.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15.LinqService,2).sql +++ b/PostgreSQL.15.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15.LinqService,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.15.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.15.LinqService).sql b/PostgreSQL.15.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.15.LinqService).sql index 7a6ea9a29a27..94d2ca06004d 100644 --- a/PostgreSQL.15.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.15.LinqService).sql +++ b/PostgreSQL.15.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.15.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") > (y."One", y."One", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") > ( + SELECT + y."One", + y."One", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") >= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") >= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") < (y."One", y."Three", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") < ( + SELECT + y."One", + y."Three", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.15.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.15.LinqService).sql b/PostgreSQL.15.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.15.LinqService).sql index acfc68a26117..d685c51b1b24 100644 --- a/PostgreSQL.15.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.15.LinqService).sql +++ b/PostgreSQL.15.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.15.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = (x."One", x."Two", x."Three") AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.15.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.15.LinqService).sql b/PostgreSQL.15.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.15.LinqService).sql index ec5795d32845..b017690f7161 100644 --- a/PostgreSQL.15.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.15.LinqService).sql +++ b/PostgreSQL.15.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.15.LinqService).sql @@ -5,12 +5,18 @@ UPDATE "Ints" SET "One" = "Ints"."Two" * 5, - ("Two", "Three") = ("Ints"."Two" * 10, j."Three" * 100), + ("Two", "Three") = ( + SELECT + "Ints"."Two" * 10, + j."Three" * 100 + FROM + "Ints" j + WHERE + j."One" = 1 + ), ("Four", "Nil") = ("Ints"."One" * "Ints"."Four", 600) -FROM - "Ints" j WHERE - "Ints"."One" = 10 AND j."One" = 1 + "Ints"."One" = 10 BeforeExecute -- PostgreSQL.15 PostgreSQL diff --git a/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.15.LinqService).sql b/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.15.LinqService).sql index 211eb399b10c..58b59215dafb 100644 --- a/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.15.LinqService).sql +++ b/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.15.LinqService).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) diff --git a/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.15.LinqService).sql b/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.15.LinqService).sql index abefddda6774..e847db6af186 100644 --- a/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.15.LinqService).sql +++ b/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.15.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3.cond + ) ) ORDER BY t1."PersonID" diff --git a/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.15.LinqService).sql b/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.15.LinqService).sql index 11c26c5e0494..0767a28fd42c 100644 --- a/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.15.LinqService).sql +++ b/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.15.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2.cond + ) ) ORDER BY p."PersonID" diff --git a/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.15.LinqService).sql b/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.15.LinqService).sql index 50430936e250..bd0bc3121cf1 100644 --- a/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.15.LinqService).sql +++ b/PostgreSQL.15.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.15.LinqService).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" p - INNER JOIN LATERAL ( - SELECT - d."PersonID" as cond - FROM - "Person" d - WHERE - d."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t1 ON 1=1 WHERE - p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = t1.cond + p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = ( + SELECT + d."PersonID" + FROM + "Person" d + WHERE + d."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM "Person" p_1 - INNER JOIN LATERAL ( - SELECT - d_1."PersonID" as cond - FROM - "Person" d_1 - WHERE - d_1."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t2 ON 1=1 WHERE - p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = t2.cond + p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = ( + SELECT + d_1."PersonID" + FROM + "Person" d_1 + WHERE + d_1."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) ORDER BY patient_1."PersonID" diff --git a/PostgreSQL.15/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15,1).sql b/PostgreSQL.15/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15,1).sql index 3981c14bd761..4aa0090fe609 100644 --- a/PostgreSQL.15/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15,1).sql +++ b/PostgreSQL.15/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15,1).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.15/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15,2).sql b/PostgreSQL.15/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15,2).sql index 3981c14bd761..4aa0090fe609 100644 --- a/PostgreSQL.15/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15,2).sql +++ b/PostgreSQL.15/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(PostgreSQL.15,2).sql @@ -10,38 +10,37 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as cond - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as cond - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3.cond = 0 AND t6.cond = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) diff --git a/PostgreSQL.15/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.15).sql b/PostgreSQL.15/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.15).sql index 7a6ea9a29a27..94d2ca06004d 100644 --- a/PostgreSQL.15/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.15).sql +++ b/PostgreSQL.15/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.CompareToSelect(PostgreSQL.15).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") > (y."One", y."One", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") > ( + SELECT + y."One", + y."One", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") >= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") >= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Nil") < (y."One", y."Three", 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Nil") < ( + SELECT + y."One", + y."Three", + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -40,9 +61,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <= (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <= ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.15/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.15).sql b/PostgreSQL.15/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.15).sql index acfc68a26117..d685c51b1b24 100644 --- a/PostgreSQL.15/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.15).sql +++ b/PostgreSQL.15/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(PostgreSQL.15).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = (y."One", y."One" + 1, 3) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = (x."One", x."Two", x."Three") AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- PostgreSQL.15 PostgreSQL @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> (y."One", y."One" + 1, 4) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/PostgreSQL.15/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.15).sql b/PostgreSQL.15/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.15).sql index ec5795d32845..b017690f7161 100644 --- a/PostgreSQL.15/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.15).sql +++ b/PostgreSQL.15/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(PostgreSQL.15).sql @@ -5,12 +5,18 @@ UPDATE "Ints" SET "One" = "Ints"."Two" * 5, - ("Two", "Three") = ("Ints"."Two" * 10, j."Three" * 100), + ("Two", "Three") = ( + SELECT + "Ints"."Two" * 10, + j."Three" * 100 + FROM + "Ints" j + WHERE + j."One" = 1 + ), ("Four", "Nil") = ("Ints"."One" * "Ints"."Four", 600) -FROM - "Ints" j WHERE - "Ints"."One" = 10 AND j."One" = 1 + "Ints"."One" = 10 BeforeExecute -- PostgreSQL.15 PostgreSQL diff --git a/PostgreSQL.15/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.15).sql b/PostgreSQL.15/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.15).sql index 77a32c50ada1..a814918d2e10 100644 --- a/PostgreSQL.15/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.15).sql +++ b/PostgreSQL.15/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(PostgreSQL.15).sql @@ -7,7 +7,14 @@ SELECT d."Distributor_Name", cp."Street_Number", cp."Street_Name", - c_1."City_Name", + ( + SELECT + c_1."City_Name" + FROM + "Cities" c_1 + WHERE + c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL + ), cp."State", cp."Zip_Code", cp."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" dcp ON d."Distributor_Id" = dcp."Distributor_Id" INNER JOIN "Commercial_Property" cp ON dcp."Commercial_Property_Id" = cp."Commercial_Property_Id" INNER JOIN "Contract_Dates" cd ON cda."Contract_Id" = cd."Contract_Id" - INNER JOIN "Cities" c_1 ON c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL WHERE cda."Contract_Id" = 198827882 AND cda."Distributor_Type_Code" = 'CC' AND diff --git a/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.15).sql b/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.15).sql index 211eb399b10c..58b59215dafb 100644 --- a/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.15).sql +++ b/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(PostgreSQL.15).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) diff --git a/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.15).sql b/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.15).sql index abefddda6774..e847db6af186 100644 --- a/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.15).sql +++ b/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(PostgreSQL.15).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3.cond + ) ) ORDER BY t1."PersonID" diff --git a/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.15).sql b/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.15).sql index 11c26c5e0494..0767a28fd42c 100644 --- a/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.15).sql +++ b/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(PostgreSQL.15).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as cond + d."PersonID" FROM "Patient" d LIMIT 1 - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1.cond + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as cond + d_1."PersonID" FROM "Patient" d_1 LIMIT 1 - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2.cond + ) ) ORDER BY p."PersonID" diff --git a/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.15).sql b/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.15).sql index 50430936e250..bd0bc3121cf1 100644 --- a/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.15).sql +++ b/PostgreSQL.15/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(PostgreSQL.15).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" p - INNER JOIN LATERAL ( - SELECT - d."PersonID" as cond - FROM - "Person" d - WHERE - d."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t1 ON 1=1 WHERE - p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = t1.cond + p."FirstName" LIKE :filter ESCAPE '~' AND p."PersonID" = ( + SELECT + d."PersonID" + FROM + "Person" d + WHERE + d."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) AND EXISTS( SELECT * FROM "Person" p_1 - INNER JOIN LATERAL ( - SELECT - d_1."PersonID" as cond - FROM - "Person" d_1 - WHERE - d_1."PersonID" = patient_1."PersonID" - LIMIT 1 - ) t2 ON 1=1 WHERE - p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = t2.cond + p_1."FirstName" LIKE :filter_1 ESCAPE '~' AND p_1."PersonID" = ( + SELECT + d_1."PersonID" + FROM + "Person" d_1 + WHERE + d_1."PersonID" = patient_1."PersonID" + LIMIT 1 + ) ) ORDER BY patient_1."PersonID" diff --git a/PostgreSQL.15/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.15,1).sql b/PostgreSQL.15/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.15,1).sql new file mode 100644 index 000000000000..d96c4e5c7745 --- /dev/null +++ b/PostgreSQL.15/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.15,1).sql @@ -0,0 +1,54 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE "MergeTemp" +( + "ID" Int NOT NULL, + "Name" text NULL, + + CONSTRAINT "PK_MergeTemp" PRIMARY KEY ("ID") +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +INSERT INTO "MergeTemp" +( + "ID", + "Name" +) +VALUES +(1,'John') + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +INSERT INTO "MergeTemp" AS t1 +( + "ID", + "Name" +) +VALUES +( + ( + SELECT + t."ID" + FROM + "MergeTemp" t + WHERE + t."Name" = 'John' + ), + 'John II' +) +ON CONFLICT ("ID") DO UPDATE SET + "ID" = t1."ID", + "Name" = t1."Name" + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS "MergeTemp" + diff --git a/PostgreSQL.15/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.15,2).sql b/PostgreSQL.15/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.15,2).sql new file mode 100644 index 000000000000..d96c4e5c7745 --- /dev/null +++ b/PostgreSQL.15/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(PostgreSQL.15,2).sql @@ -0,0 +1,54 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE "MergeTemp" +( + "ID" Int NOT NULL, + "Name" text NULL, + + CONSTRAINT "PK_MergeTemp" PRIMARY KEY ("ID") +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +INSERT INTO "MergeTemp" +( + "ID", + "Name" +) +VALUES +(1,'John') + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +INSERT INTO "MergeTemp" AS t1 +( + "ID", + "Name" +) +VALUES +( + ( + SELECT + t."ID" + FROM + "MergeTemp" t + WHERE + t."Name" = 'John' + ), + 'John II' +) +ON CONFLICT ("ID") DO UPDATE SET + "ID" = t1."ID", + "Name" = t1."Name" + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS "MergeTemp" + From 3c0c2d59ed3b57c7c2f829ae840874bcda687a3d Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Feb 2025 21:14:28 +0000 Subject: [PATCH 29/40] [Linux / SAP HANA 2] baselines --- ...risonTest1(SapHana.Odbc.LinqService,1).sql | 63 +++++++++---------- ...risonTest1(SapHana.Odbc.LinqService,2).sql | 63 +++++++++---------- ...leanSubquery(SapHana.Odbc.LinqService).sql | 12 +++- ...QueryFilter1(SapHana.Odbc.LinqService).sql | 22 +++---- ...QueryFilter2(SapHana.Odbc.LinqService).sql | 26 ++++---- ...sTests.ComparisonTest1(SapHana.Odbc,1).sql | 63 +++++++++---------- ...sTests.ComparisonTest1(SapHana.Odbc,2).sql | 63 +++++++++---------- ...QueryTests.Issue383Test2(SapHana.Odbc).sql | 10 ++- ...ereTests.BooleanSubquery(SapHana.Odbc).sql | 12 +++- ...ts.Issue_SubQueryFilter1(SapHana.Odbc).sql | 22 +++---- ...ts.Issue_SubQueryFilter2(SapHana.Odbc).sql | 26 ++++---- ...rgeTests.MergeSubquery(SapHana.Odbc,1).sql | 54 ++++++++++++++++ ...rgeTests.MergeSubquery(SapHana.Odbc,2).sql | 54 ++++++++++++++++ 13 files changed, 302 insertions(+), 188 deletions(-) create mode 100644 SapHana.Odbc/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SapHana.Odbc,1).sql create mode 100644 SapHana.Odbc/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SapHana.Odbc,2).sql diff --git a/SapHana.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc.LinqService,1).sql b/SapHana.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc.LinqService,1).sql index fecaeae25861..24b9369eb89e 100644 --- a/SapHana.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc.LinqService,1).sql +++ b/SapHana.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc.LinqService,1).sql @@ -15,39 +15,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = ? AND "t1"."PersonID" NOT IN ( - SELECT - "t2"."PersonID" - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = ? - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = ? AND "t4"."PersonID" NOT IN ( - SELECT - "t5"."PersonID" - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = ? - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = ? AND "t2"."PersonID" NOT IN ( + SELECT + "t3"."PersonID" + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = ? + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = ? AND "t4"."PersonID" NOT IN ( + SELECT + "t5"."PersonID" + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = ? + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SapHana.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc.LinqService,2).sql b/SapHana.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc.LinqService,2).sql index fecaeae25861..24b9369eb89e 100644 --- a/SapHana.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc.LinqService,2).sql +++ b/SapHana.Odbc.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc.LinqService,2).sql @@ -15,39 +15,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = ? AND "t1"."PersonID" NOT IN ( - SELECT - "t2"."PersonID" - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = ? - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = ? AND "t4"."PersonID" NOT IN ( - SELECT - "t5"."PersonID" - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = ? - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = ? AND "t2"."PersonID" NOT IN ( + SELECT + "t3"."PersonID" + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = ? + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = ? AND "t4"."PersonID" NOT IN ( + SELECT + "t5"."PersonID" + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = ? + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SapHana.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SapHana.Odbc.LinqService).sql b/SapHana.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SapHana.Odbc.LinqService).sql index e604a458922b..9d286b002f84 100644 --- a/SapHana.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SapHana.Odbc.LinqService).sql +++ b/SapHana.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SapHana.Odbc.LinqService).sql @@ -5,8 +5,14 @@ SELECT "t"."Id", "t"."BoolValue" FROM - "WhereWithBool" "t", - "WhereWithBool" "x" + "WhereWithBool" "t" WHERE - "x"."BoolValue" = 1 AND "x"."Id" = 1 + ( + SELECT + "x"."BoolValue" + FROM + "WhereWithBool" "x" + WHERE + "x"."Id" = 1 + ) = 1 diff --git a/SapHana.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SapHana.Odbc.LinqService).sql b/SapHana.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SapHana.Odbc.LinqService).sql index 4be225c6f684..68a56651464b 100644 --- a/SapHana.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SapHana.Odbc.LinqService).sql +++ b/SapHana.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SapHana.Odbc.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."FirstName" LIKE ? ESCAPE '~' AND "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" LIMIT 1 - ) "t2" - WHERE - "e"."FirstName" LIKE ? ESCAPE '~' AND "e"."PersonID" = "t2"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."FirstName" LIKE ? ESCAPE '~' AND "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" LIMIT 1 - ) "t3" - WHERE - "e_1"."FirstName" LIKE ? ESCAPE '~' AND "e_1"."PersonID" = "t3"."cond" + ) ) ORDER BY "t1"."PersonID" diff --git a/SapHana.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SapHana.Odbc.LinqService).sql b/SapHana.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SapHana.Odbc.LinqService).sql index f1152f491cf4..a6bdaa5f93c7 100644 --- a/SapHana.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SapHana.Odbc.LinqService).sql +++ b/SapHana.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SapHana.Odbc.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE ? ESCAPE '~' AND + "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" LIMIT 1 - ) "t1" - WHERE - "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE ? ESCAPE '~' AND - "e"."PersonID" = "t1"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE ? ESCAPE '~' AND + "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" LIMIT 1 - ) "t2" - WHERE - "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE ? ESCAPE '~' AND - "e_1"."PersonID" = "t2"."cond" + ) ) ORDER BY "p"."PersonID" diff --git a/SapHana.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc,1).sql b/SapHana.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc,1).sql index fecaeae25861..24b9369eb89e 100644 --- a/SapHana.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc,1).sql +++ b/SapHana.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc,1).sql @@ -15,39 +15,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = ? AND "t1"."PersonID" NOT IN ( - SELECT - "t2"."PersonID" - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = ? - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = ? AND "t4"."PersonID" NOT IN ( - SELECT - "t5"."PersonID" - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = ? - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = ? AND "t2"."PersonID" NOT IN ( + SELECT + "t3"."PersonID" + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = ? + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = ? AND "t4"."PersonID" NOT IN ( + SELECT + "t5"."PersonID" + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = ? + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SapHana.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc,2).sql b/SapHana.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc,2).sql index fecaeae25861..24b9369eb89e 100644 --- a/SapHana.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc,2).sql +++ b/SapHana.Odbc/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(SapHana.Odbc,2).sql @@ -15,39 +15,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = ? AND "t1"."PersonID" NOT IN ( - SELECT - "t2"."PersonID" - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = ? - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = ? AND "t4"."PersonID" NOT IN ( - SELECT - "t5"."PersonID" - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = ? - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = ? AND "t2"."PersonID" NOT IN ( + SELECT + "t3"."PersonID" + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = ? + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = ? AND "t4"."PersonID" NOT IN ( + SELECT + "t5"."PersonID" + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = ? + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/SapHana.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SapHana.Odbc).sql b/SapHana.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SapHana.Odbc).sql index 7c12ba47afbb..3bd6ca167bdc 100644 --- a/SapHana.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SapHana.Odbc).sql +++ b/SapHana.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(SapHana.Odbc).sql @@ -7,7 +7,14 @@ SELECT "d"."Distributor_Name", "cp"."Street_Number", "cp"."Street_Name", - "c_1"."City_Name", + ( + SELECT + "c_1"."City_Name" + FROM + "Cities" "c_1" + WHERE + "c_1"."City_Code" = "cp"."City_Code" OR "c_1"."City_Code" IS NULL AND "cp"."City_Code" IS NULL + ), "cp"."State", "cp"."Zip_Code", "cp"."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" "dcp" ON "d"."Distributor_Id" = "dcp"."Distributor_Id" INNER JOIN "Commercial_Property" "cp" ON "dcp"."Commercial_Property_Id" = "cp"."Commercial_Property_Id" INNER JOIN "Contract_Dates" "cd" ON "cda"."Contract_Id" = "cd"."Contract_Id" - INNER JOIN "Cities" "c_1" ON "c_1"."City_Code" = "cp"."City_Code" OR "c_1"."City_Code" IS NULL AND "cp"."City_Code" IS NULL WHERE "cda"."Contract_Id" = 198827882 AND "cda"."Distributor_Type_Code" = 'CC' AND diff --git a/SapHana.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SapHana.Odbc).sql b/SapHana.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SapHana.Odbc).sql index e604a458922b..9d286b002f84 100644 --- a/SapHana.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SapHana.Odbc).sql +++ b/SapHana.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(SapHana.Odbc).sql @@ -5,8 +5,14 @@ SELECT "t"."Id", "t"."BoolValue" FROM - "WhereWithBool" "t", - "WhereWithBool" "x" + "WhereWithBool" "t" WHERE - "x"."BoolValue" = 1 AND "x"."Id" = 1 + ( + SELECT + "x"."BoolValue" + FROM + "WhereWithBool" "x" + WHERE + "x"."Id" = 1 + ) = 1 diff --git a/SapHana.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SapHana.Odbc).sql b/SapHana.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SapHana.Odbc).sql index 4be225c6f684..68a56651464b 100644 --- a/SapHana.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SapHana.Odbc).sql +++ b/SapHana.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(SapHana.Odbc).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."FirstName" LIKE ? ESCAPE '~' AND "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" LIMIT 1 - ) "t2" - WHERE - "e"."FirstName" LIKE ? ESCAPE '~' AND "e"."PersonID" = "t2"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."FirstName" LIKE ? ESCAPE '~' AND "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" LIMIT 1 - ) "t3" - WHERE - "e_1"."FirstName" LIKE ? ESCAPE '~' AND "e_1"."PersonID" = "t3"."cond" + ) ) ORDER BY "t1"."PersonID" diff --git a/SapHana.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SapHana.Odbc).sql b/SapHana.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SapHana.Odbc).sql index f1152f491cf4..a6bdaa5f93c7 100644 --- a/SapHana.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SapHana.Odbc).sql +++ b/SapHana.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(SapHana.Odbc).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE ? ESCAPE '~' AND + "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" LIMIT 1 - ) "t1" - WHERE - "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE ? ESCAPE '~' AND - "e"."PersonID" = "t1"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE ? ESCAPE '~' AND + "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" LIMIT 1 - ) "t2" - WHERE - "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE ? ESCAPE '~' AND - "e_1"."PersonID" = "t2"."cond" + ) ) ORDER BY "p"."PersonID" diff --git a/SapHana.Odbc/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SapHana.Odbc,1).sql b/SapHana.Odbc/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SapHana.Odbc,1).sql new file mode 100644 index 000000000000..746566a882d5 --- /dev/null +++ b/SapHana.Odbc/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SapHana.Odbc,1).sql @@ -0,0 +1,54 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +CREATE COLUMN TABLE "MergeTemp" +( + "ID" Integer NOT NULL, + "Name" NVarChar(20) NULL, + + PRIMARY KEY ("ID") +) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc +DECLARE @ID -- Int32 +SET @ID = 1 +DECLARE @Name NVarChar(4) -- String +SET @Name = 'John' + +INSERT INTO "MergeTemp" +( + "ID", + "Name" +) +VALUES +( + ?, + ? +) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +UPDATE + "MergeTemp" "t1" +SET + "ID" = "t1"."ID", + "Name" = "t1"."Name" +WHERE + "t1"."ID" = ( + SELECT + "t"."ID" + FROM + "MergeTemp" "t" + WHERE + "t"."Name" = 'John' + ) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +DROP TABLE "MergeTemp" + diff --git a/SapHana.Odbc/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SapHana.Odbc,2).sql b/SapHana.Odbc/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SapHana.Odbc,2).sql new file mode 100644 index 000000000000..746566a882d5 --- /dev/null +++ b/SapHana.Odbc/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.MergeSubquery(SapHana.Odbc,2).sql @@ -0,0 +1,54 @@ +BeforeExecute +BeginTransaction +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +CREATE COLUMN TABLE "MergeTemp" +( + "ID" Integer NOT NULL, + "Name" NVarChar(20) NULL, + + PRIMARY KEY ("ID") +) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc +DECLARE @ID -- Int32 +SET @ID = 1 +DECLARE @Name NVarChar(4) -- String +SET @Name = 'John' + +INSERT INTO "MergeTemp" +( + "ID", + "Name" +) +VALUES +( + ?, + ? +) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +UPDATE + "MergeTemp" "t1" +SET + "ID" = "t1"."ID", + "Name" = "t1"."Name" +WHERE + "t1"."ID" = ( + SELECT + "t"."ID" + FROM + "MergeTemp" "t" + WHERE + "t"."Name" = 'John' + ) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +DROP TABLE "MergeTemp" + From f6cabdf77ffd56e0764ec77c8bb4e90801efedba Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Mon, 24 Feb 2025 12:38:34 +0000 Subject: [PATCH 30/40] [Linux / Firebird 2.5] baselines --- ...risonTest1(Firebird.2.5.LinqService,1).sql | 63 +++++++++---------- ...risonTest1(Firebird.2.5.LinqService,2).sql | 63 +++++++++---------- ...leanSubquery(Firebird.2.5.LinqService).sql | 12 +++- ...QueryFilter1(Firebird.2.5.LinqService).sql | 22 +++---- ...QueryFilter2(Firebird.2.5.LinqService).sql | 26 ++++---- ...sTests.ComparisonTest1(Firebird.2.5,1).sql | 63 +++++++++---------- ...sTests.ComparisonTest1(Firebird.2.5,2).sql | 63 +++++++++---------- ...QueryTests.Issue383Test2(Firebird.2.5).sql | 10 ++- ...ereTests.BooleanSubquery(Firebird.2.5).sql | 12 +++- ...ts.Issue_SubQueryFilter1(Firebird.2.5).sql | 22 +++---- ...ts.Issue_SubQueryFilter2(Firebird.2.5).sql | 26 ++++---- 11 files changed, 194 insertions(+), 188 deletions(-) diff --git a/Firebird.2.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5.LinqService,1).sql b/Firebird.2.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5.LinqService,1).sql index 2e46e2ef095d..25a1fc4db548 100644 --- a/Firebird.2.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5.LinqService,1).sql +++ b/Firebird.2.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5.LinqService,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) THEN '1' ELSE '0' diff --git a/Firebird.2.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5.LinqService,2).sql b/Firebird.2.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5.LinqService,2).sql index 2e46e2ef095d..25a1fc4db548 100644 --- a/Firebird.2.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5.LinqService,2).sql +++ b/Firebird.2.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5.LinqService,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) THEN '1' ELSE '0' diff --git a/Firebird.2.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.2.5.LinqService).sql b/Firebird.2.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.2.5.LinqService).sql index 8f5a163efb6f..00567a7181a8 100644 --- a/Firebird.2.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.2.5.LinqService).sql +++ b/Firebird.2.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.2.5.LinqService).sql @@ -5,8 +5,14 @@ SELECT "t"."Id", "t"."BoolValue" FROM - "WhereWithBool" "t", - "WhereWithBool" "x" + "WhereWithBool" "t" WHERE - "x"."BoolValue" = '1' AND "x"."Id" = 1 + ( + SELECT + "x"."BoolValue" + FROM + "WhereWithBool" "x" + WHERE + "x"."Id" = 1 + ) = '1' diff --git a/Firebird.2.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.2.5.LinqService).sql b/Firebird.2.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.2.5.LinqService).sql index fd4980ce6797..b8e3bffb83eb 100644 --- a/Firebird.2.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.2.5.LinqService).sql +++ b/Firebird.2.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.2.5.LinqService).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = ( SELECT FIRST 1 - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" - ) "t2" - WHERE - "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = "t2"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = ( SELECT FIRST 1 - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" - ) "t3" - WHERE - "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = "t3"."cond" + ) ) ORDER BY "t1"."PersonID" diff --git a/Firebird.2.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.2.5.LinqService).sql b/Firebird.2.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.2.5.LinqService).sql index e5b267273665..7877c001267a 100644 --- a/Firebird.2.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.2.5.LinqService).sql +++ b/Firebird.2.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.2.5.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND + "e"."PersonID" = ( SELECT FIRST 1 - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" - ) "t1" - WHERE - "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND - "e"."PersonID" = "t1"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND + "e_1"."PersonID" = ( SELECT FIRST 1 - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" - ) "t2" - WHERE - "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND - "e_1"."PersonID" = "t2"."cond" + ) ) ORDER BY "p"."PersonID" diff --git a/Firebird.2.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5,1).sql b/Firebird.2.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5,1).sql index 2e46e2ef095d..25a1fc4db548 100644 --- a/Firebird.2.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5,1).sql +++ b/Firebird.2.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) THEN '1' ELSE '0' diff --git a/Firebird.2.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5,2).sql b/Firebird.2.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5,2).sql index 2e46e2ef095d..25a1fc4db548 100644 --- a/Firebird.2.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5,2).sql +++ b/Firebird.2.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.2.5,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) THEN '1' ELSE '0' diff --git a/Firebird.2.5/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.2.5).sql b/Firebird.2.5/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.2.5).sql index 9b6adf8b255b..9d35e6fbe13c 100644 --- a/Firebird.2.5/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.2.5).sql +++ b/Firebird.2.5/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.2.5).sql @@ -7,7 +7,14 @@ SELECT "d"."Distributor_Name", "cp"."Street_Number", "cp"."Street_Name", - "c_1"."City_Name", + ( + SELECT + "c_1"."City_Name" + FROM + "Cities" "c_1" + WHERE + "c_1"."City_Code" = "cp"."City_Code" OR "c_1"."City_Code" IS NULL AND "cp"."City_Code" IS NULL + ), "cp"."State", "cp"."Zip_Code", "cp"."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" "dcp" ON "d"."Distributor_Id" = "dcp"."Distributor_Id" INNER JOIN "Commercial_Property" "cp" ON "dcp"."Commercial_Property_Id" = "cp"."Commercial_Property_Id" INNER JOIN "Contract_Dates" "cd" ON "cda"."Contract_Id" = "cd"."Contract_Id" - INNER JOIN "Cities" "c_1" ON "c_1"."City_Code" = "cp"."City_Code" OR "c_1"."City_Code" IS NULL AND "cp"."City_Code" IS NULL WHERE "cda"."Contract_Id" = 198827882 AND "cda"."Distributor_Type_Code" = 'CC' AND diff --git a/Firebird.2.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.2.5).sql b/Firebird.2.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.2.5).sql index 8f5a163efb6f..00567a7181a8 100644 --- a/Firebird.2.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.2.5).sql +++ b/Firebird.2.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.2.5).sql @@ -5,8 +5,14 @@ SELECT "t"."Id", "t"."BoolValue" FROM - "WhereWithBool" "t", - "WhereWithBool" "x" + "WhereWithBool" "t" WHERE - "x"."BoolValue" = '1' AND "x"."Id" = 1 + ( + SELECT + "x"."BoolValue" + FROM + "WhereWithBool" "x" + WHERE + "x"."Id" = 1 + ) = '1' diff --git a/Firebird.2.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.2.5).sql b/Firebird.2.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.2.5).sql index fd4980ce6797..b8e3bffb83eb 100644 --- a/Firebird.2.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.2.5).sql +++ b/Firebird.2.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.2.5).sql @@ -15,29 +15,27 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = ( SELECT FIRST 1 - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" - ) "t2" - WHERE - "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = "t2"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = ( SELECT FIRST 1 - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" - ) "t3" - WHERE - "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = "t3"."cond" + ) ) ORDER BY "t1"."PersonID" diff --git a/Firebird.2.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.2.5).sql b/Firebird.2.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.2.5).sql index e5b267273665..7877c001267a 100644 --- a/Firebird.2.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.2.5).sql +++ b/Firebird.2.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.2.5).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND + "e"."PersonID" = ( SELECT FIRST 1 - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" - ) "t1" - WHERE - "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND - "e"."PersonID" = "t1"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND + "e_1"."PersonID" = ( SELECT FIRST 1 - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" - ) "t2" - WHERE - "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND - "e_1"."PersonID" = "t2"."cond" + ) ) ORDER BY "p"."PersonID" From 0d863113810fc070f89d065288a4b88d4ec4dcac Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Mon, 24 Feb 2025 12:42:52 +0000 Subject: [PATCH 31/40] [Linux / Firebird 3.0] baselines --- ...parisonTest1(Firebird.3.LinqService,1).sql | 63 +++++++++---------- ...parisonTest1(Firebird.3.LinqService,2).sql | 63 +++++++++---------- ...ooleanSubquery(Firebird.3.LinqService).sql | 12 +++- ...ubQueryFilter1(Firebird.3.LinqService).sql | 22 +++---- ...ubQueryFilter2(Firebird.3.LinqService).sql | 26 ++++---- ...onsTests.ComparisonTest1(Firebird.3,1).sql | 63 +++++++++---------- ...onsTests.ComparisonTest1(Firebird.3,2).sql | 63 +++++++++---------- ...ubQueryTests.Issue383Test2(Firebird.3).sql | 10 ++- ...WhereTests.BooleanSubquery(Firebird.3).sql | 12 +++- ...ests.Issue_SubQueryFilter1(Firebird.3).sql | 22 +++---- ...ests.Issue_SubQueryFilter2(Firebird.3).sql | 26 ++++---- 11 files changed, 194 insertions(+), 188 deletions(-) diff --git a/Firebird.3.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3.LinqService,1).sql b/Firebird.3.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3.LinqService,1).sql index c5e6c679a799..7fa1ba447988 100644 --- a/Firebird.3.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3.LinqService,1).sql +++ b/Firebird.3.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3.LinqService,1).sql @@ -10,39 +10,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) FROM rdb$database diff --git a/Firebird.3.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3.LinqService,2).sql b/Firebird.3.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3.LinqService,2).sql index c5e6c679a799..7fa1ba447988 100644 --- a/Firebird.3.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3.LinqService,2).sql +++ b/Firebird.3.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3.LinqService,2).sql @@ -10,39 +10,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) FROM rdb$database diff --git a/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.3.LinqService).sql index 92c93baf1157..fc12f78556b1 100644 --- a/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.3.LinqService).sql @@ -5,8 +5,14 @@ SELECT "t"."Id", "t"."BoolValue" FROM - "WhereWithBool" "t", - "WhereWithBool" "x" + "WhereWithBool" "t" WHERE - "x"."BoolValue" AND "x"."Id" = 1 + ( + SELECT + "x"."BoolValue" + FROM + "WhereWithBool" "x" + WHERE + "x"."Id" = 1 + ) diff --git a/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.3.LinqService).sql index 3b7532d35237..3e685b9f445b 100644 --- a/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.3.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = "t2"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t3" - WHERE - "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = "t3"."cond" + ) ) ORDER BY "t1"."PersonID" diff --git a/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.3.LinqService).sql index 5e3a1162e398..f3011b4935ad 100644 --- a/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.3.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND + "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t1" - WHERE - "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND - "e"."PersonID" = "t1"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND + "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND - "e_1"."PersonID" = "t2"."cond" + ) ) ORDER BY "p"."PersonID" diff --git a/Firebird.3/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3,1).sql b/Firebird.3/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3,1).sql index c5e6c679a799..7fa1ba447988 100644 --- a/Firebird.3/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3,1).sql +++ b/Firebird.3/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3,1).sql @@ -10,39 +10,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) FROM rdb$database diff --git a/Firebird.3/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3,2).sql b/Firebird.3/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3,2).sql index c5e6c679a799..7fa1ba447988 100644 --- a/Firebird.3/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3,2).sql +++ b/Firebird.3/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.3,2).sql @@ -10,39 +10,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) FROM rdb$database diff --git a/Firebird.3/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.3).sql b/Firebird.3/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.3).sql index 91a983981340..ba6d4f003d56 100644 --- a/Firebird.3/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.3).sql @@ -7,7 +7,14 @@ SELECT "d"."Distributor_Name", "cp"."Street_Number", "cp"."Street_Name", - "c_1"."City_Name", + ( + SELECT + "c_1"."City_Name" + FROM + "Cities" "c_1" + WHERE + "c_1"."City_Code" = "cp"."City_Code" OR "c_1"."City_Code" IS NULL AND "cp"."City_Code" IS NULL + ), "cp"."State", "cp"."Zip_Code", "cp"."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" "dcp" ON "d"."Distributor_Id" = "dcp"."Distributor_Id" INNER JOIN "Commercial_Property" "cp" ON "dcp"."Commercial_Property_Id" = "cp"."Commercial_Property_Id" INNER JOIN "Contract_Dates" "cd" ON "cda"."Contract_Id" = "cd"."Contract_Id" - INNER JOIN "Cities" "c_1" ON "c_1"."City_Code" = "cp"."City_Code" OR "c_1"."City_Code" IS NULL AND "cp"."City_Code" IS NULL WHERE "cda"."Contract_Id" = 198827882 AND "cda"."Distributor_Type_Code" = 'CC' AND diff --git a/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.3).sql b/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.3).sql index 92c93baf1157..fc12f78556b1 100644 --- a/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.3).sql @@ -5,8 +5,14 @@ SELECT "t"."Id", "t"."BoolValue" FROM - "WhereWithBool" "t", - "WhereWithBool" "x" + "WhereWithBool" "t" WHERE - "x"."BoolValue" AND "x"."Id" = 1 + ( + SELECT + "x"."BoolValue" + FROM + "WhereWithBool" "x" + WHERE + "x"."Id" = 1 + ) diff --git a/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.3).sql b/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.3).sql index 3b7532d35237..3e685b9f445b 100644 --- a/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.3).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = "t2"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t3" - WHERE - "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = "t3"."cond" + ) ) ORDER BY "t1"."PersonID" diff --git a/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.3).sql b/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.3).sql index 5e3a1162e398..f3011b4935ad 100644 --- a/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.3).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND + "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t1" - WHERE - "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND - "e"."PersonID" = "t1"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND + "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND - "e_1"."PersonID" = "t2"."cond" + ) ) ORDER BY "p"."PersonID" From 517fa83be52665a2400a98993e2746a3f4876d6a Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Mon, 24 Feb 2025 12:47:09 +0000 Subject: [PATCH 32/40] [Linux / Firebird 5.0] baselines --- ...parisonTest1(Firebird.5.LinqService,1).sql | 63 +++++++++---------- ...parisonTest1(Firebird.5.LinqService,2).sql | 63 +++++++++---------- ...ooleanSubquery(Firebird.5.LinqService).sql | 12 +++- ...ubQueryFilter1(Firebird.5.LinqService).sql | 22 +++---- ...ubQueryFilter2(Firebird.5.LinqService).sql | 26 ++++---- ...ubQueryFilter3(Firebird.5.LinqService).sql | 38 ++++++----- ...onsTests.ComparisonTest1(Firebird.5,1).sql | 63 +++++++++---------- ...onsTests.ComparisonTest1(Firebird.5,2).sql | 63 +++++++++---------- ...ubQueryTests.Issue383Test2(Firebird.5).sql | 10 ++- ...WhereTests.BooleanSubquery(Firebird.5).sql | 12 +++- ...ests.Issue_SubQueryFilter1(Firebird.5).sql | 22 +++---- ...ests.Issue_SubQueryFilter2(Firebird.5).sql | 26 ++++---- ...ests.Issue_SubQueryFilter3(Firebird.5).sql | 38 ++++++----- 13 files changed, 230 insertions(+), 228 deletions(-) diff --git a/Firebird.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5.LinqService,1).sql b/Firebird.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5.LinqService,1).sql index bcd1692ca4a0..629c205152d2 100644 --- a/Firebird.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5.LinqService,1).sql +++ b/Firebird.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5.LinqService,1).sql @@ -10,39 +10,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) FROM rdb$database diff --git a/Firebird.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5.LinqService,2).sql b/Firebird.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5.LinqService,2).sql index bcd1692ca4a0..629c205152d2 100644 --- a/Firebird.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5.LinqService,2).sql +++ b/Firebird.5.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5.LinqService,2).sql @@ -10,39 +10,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) FROM rdb$database diff --git a/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.5.LinqService).sql index b632d476d516..fa0efcfefe4b 100644 --- a/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.5.LinqService).sql @@ -5,8 +5,14 @@ SELECT "t"."Id", "t"."BoolValue" FROM - "WhereWithBool" "t", - "WhereWithBool" "x" + "WhereWithBool" "t" WHERE - "x"."BoolValue" AND "x"."Id" = 1 + ( + SELECT + "x"."BoolValue" + FROM + "WhereWithBool" "x" + WHERE + "x"."Id" = 1 + ) diff --git a/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.5.LinqService).sql index ba2e8728362a..d82e229af82c 100644 --- a/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.5.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = "t2"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t3" - WHERE - "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = "t3"."cond" + ) ) ORDER BY "t1"."PersonID" diff --git a/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.5.LinqService).sql index 5b8b9073eaf5..0832bcbc171f 100644 --- a/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.5.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND + "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t1" - WHERE - "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND - "e"."PersonID" = "t1"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND + "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND - "e_1"."PersonID" = "t2"."cond" + ) ) ORDER BY "p"."PersonID" diff --git a/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.5.LinqService).sql index a516d1a828f1..fbd1a3b4992b 100644 --- a/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.5.LinqService).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" "p" - CROSS JOIN LATERAL ( - SELECT - "d"."PersonID" as "cond" - FROM - "Person" "d" - WHERE - "d"."PersonID" = "patient_1"."PersonID" - FETCH NEXT 1 ROWS ONLY - ) "t1" WHERE - "p"."FirstName" LIKE @filter ESCAPE '~' AND "p"."PersonID" = "t1"."cond" + "p"."FirstName" LIKE @filter ESCAPE '~' AND "p"."PersonID" = ( + SELECT + "d"."PersonID" + FROM + "Person" "d" + WHERE + "d"."PersonID" = "patient_1"."PersonID" + FETCH NEXT 1 ROWS ONLY + ) ) AND EXISTS( SELECT * FROM "Person" "p_1" - CROSS JOIN LATERAL ( - SELECT - "d_1"."PersonID" as "cond" - FROM - "Person" "d_1" - WHERE - "d_1"."PersonID" = "patient_1"."PersonID" - FETCH NEXT 1 ROWS ONLY - ) "t2" WHERE - "p_1"."FirstName" LIKE @filter_1 ESCAPE '~' AND "p_1"."PersonID" = "t2"."cond" + "p_1"."FirstName" LIKE @filter_1 ESCAPE '~' AND "p_1"."PersonID" = ( + SELECT + "d_1"."PersonID" + FROM + "Person" "d_1" + WHERE + "d_1"."PersonID" = "patient_1"."PersonID" + FETCH NEXT 1 ROWS ONLY + ) ) ORDER BY "patient_1"."PersonID" diff --git a/Firebird.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5,1).sql b/Firebird.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5,1).sql index bcd1692ca4a0..629c205152d2 100644 --- a/Firebird.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5,1).sql +++ b/Firebird.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5,1).sql @@ -10,39 +10,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) FROM rdb$database diff --git a/Firebird.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5,2).sql b/Firebird.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5,2).sql index bcd1692ca4a0..629c205152d2 100644 --- a/Firebird.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5,2).sql +++ b/Firebird.5/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.5,2).sql @@ -10,39 +10,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) FROM rdb$database diff --git a/Firebird.5/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.5).sql b/Firebird.5/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.5).sql index 3c4c6ad504a2..0ff2a5ae3a40 100644 --- a/Firebird.5/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.5).sql @@ -7,7 +7,14 @@ SELECT "d"."Distributor_Name", "cp"."Street_Number", "cp"."Street_Name", - "c_1"."City_Name", + ( + SELECT + "c_1"."City_Name" + FROM + "Cities" "c_1" + WHERE + "c_1"."City_Code" = "cp"."City_Code" OR "c_1"."City_Code" IS NULL AND "cp"."City_Code" IS NULL + ), "cp"."State", "cp"."Zip_Code", "cp"."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" "dcp" ON "d"."Distributor_Id" = "dcp"."Distributor_Id" INNER JOIN "Commercial_Property" "cp" ON "dcp"."Commercial_Property_Id" = "cp"."Commercial_Property_Id" INNER JOIN "Contract_Dates" "cd" ON "cda"."Contract_Id" = "cd"."Contract_Id" - INNER JOIN "Cities" "c_1" ON "c_1"."City_Code" = "cp"."City_Code" OR "c_1"."City_Code" IS NULL AND "cp"."City_Code" IS NULL WHERE "cda"."Contract_Id" = 198827882 AND "cda"."Distributor_Type_Code" = 'CC' AND diff --git a/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.5).sql b/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.5).sql index b632d476d516..fa0efcfefe4b 100644 --- a/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.5).sql @@ -5,8 +5,14 @@ SELECT "t"."Id", "t"."BoolValue" FROM - "WhereWithBool" "t", - "WhereWithBool" "x" + "WhereWithBool" "t" WHERE - "x"."BoolValue" AND "x"."Id" = 1 + ( + SELECT + "x"."BoolValue" + FROM + "WhereWithBool" "x" + WHERE + "x"."Id" = 1 + ) diff --git a/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.5).sql b/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.5).sql index ba2e8728362a..d82e229af82c 100644 --- a/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.5).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = "t2"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t3" - WHERE - "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = "t3"."cond" + ) ) ORDER BY "t1"."PersonID" diff --git a/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.5).sql b/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.5).sql index 5b8b9073eaf5..0832bcbc171f 100644 --- a/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.5).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND + "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t1" - WHERE - "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND - "e"."PersonID" = "t1"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND + "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND - "e_1"."PersonID" = "t2"."cond" + ) ) ORDER BY "p"."PersonID" diff --git a/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.5).sql b/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.5).sql index a516d1a828f1..fbd1a3b4992b 100644 --- a/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.5).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" "p" - CROSS JOIN LATERAL ( - SELECT - "d"."PersonID" as "cond" - FROM - "Person" "d" - WHERE - "d"."PersonID" = "patient_1"."PersonID" - FETCH NEXT 1 ROWS ONLY - ) "t1" WHERE - "p"."FirstName" LIKE @filter ESCAPE '~' AND "p"."PersonID" = "t1"."cond" + "p"."FirstName" LIKE @filter ESCAPE '~' AND "p"."PersonID" = ( + SELECT + "d"."PersonID" + FROM + "Person" "d" + WHERE + "d"."PersonID" = "patient_1"."PersonID" + FETCH NEXT 1 ROWS ONLY + ) ) AND EXISTS( SELECT * FROM "Person" "p_1" - CROSS JOIN LATERAL ( - SELECT - "d_1"."PersonID" as "cond" - FROM - "Person" "d_1" - WHERE - "d_1"."PersonID" = "patient_1"."PersonID" - FETCH NEXT 1 ROWS ONLY - ) "t2" WHERE - "p_1"."FirstName" LIKE @filter_1 ESCAPE '~' AND "p_1"."PersonID" = "t2"."cond" + "p_1"."FirstName" LIKE @filter_1 ESCAPE '~' AND "p_1"."PersonID" = ( + SELECT + "d_1"."PersonID" + FROM + "Person" "d_1" + WHERE + "d_1"."PersonID" = "patient_1"."PersonID" + FETCH NEXT 1 ROWS ONLY + ) ) ORDER BY "patient_1"."PersonID" From 9df42d1a9917745643dbba74df8c5461867cfa80 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Mon, 24 Feb 2025 12:47:38 +0000 Subject: [PATCH 33/40] [Linux / Firebird 4.0] baselines --- ...parisonTest1(Firebird.4.LinqService,1).sql | 63 +++++++++---------- ...parisonTest1(Firebird.4.LinqService,2).sql | 63 +++++++++---------- ...ooleanSubquery(Firebird.4.LinqService).sql | 12 +++- ...ubQueryFilter1(Firebird.4.LinqService).sql | 22 +++---- ...ubQueryFilter2(Firebird.4.LinqService).sql | 26 ++++---- ...ubQueryFilter3(Firebird.4.LinqService).sql | 38 ++++++----- ...onsTests.ComparisonTest1(Firebird.4,1).sql | 63 +++++++++---------- ...onsTests.ComparisonTest1(Firebird.4,2).sql | 63 +++++++++---------- ...ubQueryTests.Issue383Test2(Firebird.4).sql | 10 ++- ...WhereTests.BooleanSubquery(Firebird.4).sql | 12 +++- ...ests.Issue_SubQueryFilter1(Firebird.4).sql | 22 +++---- ...ests.Issue_SubQueryFilter2(Firebird.4).sql | 26 ++++---- ...ests.Issue_SubQueryFilter3(Firebird.4).sql | 38 ++++++----- 13 files changed, 230 insertions(+), 228 deletions(-) diff --git a/Firebird.4.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4.LinqService,1).sql b/Firebird.4.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4.LinqService,1).sql index a82dc607f91e..bcd3d25e5354 100644 --- a/Firebird.4.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4.LinqService,1).sql +++ b/Firebird.4.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4.LinqService,1).sql @@ -10,39 +10,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) FROM rdb$database diff --git a/Firebird.4.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4.LinqService,2).sql b/Firebird.4.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4.LinqService,2).sql index a82dc607f91e..bcd3d25e5354 100644 --- a/Firebird.4.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4.LinqService,2).sql +++ b/Firebird.4.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4.LinqService,2).sql @@ -10,39 +10,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) FROM rdb$database diff --git a/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.4.LinqService).sql index 478473300e07..622db78597c0 100644 --- a/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.4.LinqService).sql @@ -5,8 +5,14 @@ SELECT "t"."Id", "t"."BoolValue" FROM - "WhereWithBool" "t", - "WhereWithBool" "x" + "WhereWithBool" "t" WHERE - "x"."BoolValue" AND "x"."Id" = 1 + ( + SELECT + "x"."BoolValue" + FROM + "WhereWithBool" "x" + WHERE + "x"."Id" = 1 + ) diff --git a/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.4.LinqService).sql index b830467d5514..7bffd2758e70 100644 --- a/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.4.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = "t2"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t3" - WHERE - "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = "t3"."cond" + ) ) ORDER BY "t1"."PersonID" diff --git a/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.4.LinqService).sql index b2265fa186d0..aaa89d92ab7e 100644 --- a/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.4.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND + "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t1" - WHERE - "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND - "e"."PersonID" = "t1"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND + "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND - "e_1"."PersonID" = "t2"."cond" + ) ) ORDER BY "p"."PersonID" diff --git a/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.4.LinqService).sql index ab7da2d2db8a..5864ef2778e6 100644 --- a/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.4.LinqService).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" "p" - CROSS JOIN LATERAL ( - SELECT - "d"."PersonID" as "cond" - FROM - "Person" "d" - WHERE - "d"."PersonID" = "patient_1"."PersonID" - FETCH NEXT 1 ROWS ONLY - ) "t1" WHERE - "p"."FirstName" LIKE @filter ESCAPE '~' AND "p"."PersonID" = "t1"."cond" + "p"."FirstName" LIKE @filter ESCAPE '~' AND "p"."PersonID" = ( + SELECT + "d"."PersonID" + FROM + "Person" "d" + WHERE + "d"."PersonID" = "patient_1"."PersonID" + FETCH NEXT 1 ROWS ONLY + ) ) AND EXISTS( SELECT * FROM "Person" "p_1" - CROSS JOIN LATERAL ( - SELECT - "d_1"."PersonID" as "cond" - FROM - "Person" "d_1" - WHERE - "d_1"."PersonID" = "patient_1"."PersonID" - FETCH NEXT 1 ROWS ONLY - ) "t2" WHERE - "p_1"."FirstName" LIKE @filter_1 ESCAPE '~' AND "p_1"."PersonID" = "t2"."cond" + "p_1"."FirstName" LIKE @filter_1 ESCAPE '~' AND "p_1"."PersonID" = ( + SELECT + "d_1"."PersonID" + FROM + "Person" "d_1" + WHERE + "d_1"."PersonID" = "patient_1"."PersonID" + FETCH NEXT 1 ROWS ONLY + ) ) ORDER BY "patient_1"."PersonID" diff --git a/Firebird.4/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4,1).sql b/Firebird.4/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4,1).sql index a82dc607f91e..bcd3d25e5354 100644 --- a/Firebird.4/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4,1).sql +++ b/Firebird.4/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4,1).sql @@ -10,39 +10,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) FROM rdb$database diff --git a/Firebird.4/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4,2).sql b/Firebird.4/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4,2).sql index a82dc607f91e..bcd3d25e5354 100644 --- a/Firebird.4/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4,2).sql +++ b/Firebird.4/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Firebird.4,2).sql @@ -10,39 +10,38 @@ SELECT SELECT * FROM - "Person" "t7" - CROSS JOIN ( - SELECT - COUNT("t1"."PersonID") as "cond" - FROM - "Patient" "t1" - WHERE - "t1"."PersonID" = @personId AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t2" - WHERE - "t2"."PersonID" = @personId_1 AND "t1"."PersonID" = "t2"."PersonID" - ) - ) "t3" - CROSS JOIN ( - SELECT - COUNT("t4"."PersonID") as "cond" - FROM - "Patient" "t4" - WHERE - "t4"."PersonID" = @personId_1 AND NOT EXISTS( - SELECT - * - FROM - "Patient" "t5" - WHERE - "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" - ) - ) "t6" + "Person" "t1" WHERE - "t3"."cond" = 0 AND "t6"."cond" = 0 + ( + SELECT + COUNT("t2"."PersonID") + FROM + "Patient" "t2" + WHERE + "t2"."PersonID" = @personId AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t3" + WHERE + "t3"."PersonID" = @personId_1 AND "t2"."PersonID" = "t3"."PersonID" + ) + ) = 0 AND + ( + SELECT + COUNT("t4"."PersonID") + FROM + "Patient" "t4" + WHERE + "t4"."PersonID" = @personId_1 AND NOT EXISTS( + SELECT + * + FROM + "Patient" "t5" + WHERE + "t5"."PersonID" = @personId AND "t4"."PersonID" = "t5"."PersonID" + ) + ) = 0 ) FROM rdb$database diff --git a/Firebird.4/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.4).sql b/Firebird.4/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.4).sql index ab1118432c6f..ced4f1608cdb 100644 --- a/Firebird.4/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Firebird.4).sql @@ -7,7 +7,14 @@ SELECT "d"."Distributor_Name", "cp"."Street_Number", "cp"."Street_Name", - "c_1"."City_Name", + ( + SELECT + "c_1"."City_Name" + FROM + "Cities" "c_1" + WHERE + "c_1"."City_Code" = "cp"."City_Code" OR "c_1"."City_Code" IS NULL AND "cp"."City_Code" IS NULL + ), "cp"."State", "cp"."Zip_Code", "cp"."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" "dcp" ON "d"."Distributor_Id" = "dcp"."Distributor_Id" INNER JOIN "Commercial_Property" "cp" ON "dcp"."Commercial_Property_Id" = "cp"."Commercial_Property_Id" INNER JOIN "Contract_Dates" "cd" ON "cda"."Contract_Id" = "cd"."Contract_Id" - INNER JOIN "Cities" "c_1" ON "c_1"."City_Code" = "cp"."City_Code" OR "c_1"."City_Code" IS NULL AND "cp"."City_Code" IS NULL WHERE "cda"."Contract_Id" = 198827882 AND "cda"."Distributor_Type_Code" = 'CC' AND diff --git a/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.4).sql b/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.4).sql index 478473300e07..622db78597c0 100644 --- a/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Firebird.4).sql @@ -5,8 +5,14 @@ SELECT "t"."Id", "t"."BoolValue" FROM - "WhereWithBool" "t", - "WhereWithBool" "x" + "WhereWithBool" "t" WHERE - "x"."BoolValue" AND "x"."Id" = 1 + ( + SELECT + "x"."BoolValue" + FROM + "WhereWithBool" "x" + WHERE + "x"."Id" = 1 + ) diff --git a/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.4).sql b/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.4).sql index b830467d5514..7bffd2758e70 100644 --- a/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Firebird.4).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e"."FirstName" LIKE @filter1 ESCAPE '~' AND "e"."PersonID" = "t2"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t3" - WHERE - "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND "e_1"."PersonID" = "t3"."cond" + ) ) ORDER BY "t1"."PersonID" diff --git a/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.4).sql b/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.4).sql index b2265fa186d0..aaa89d92ab7e 100644 --- a/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Firebird.4).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" "e", - ( + "Person" "e" + WHERE + "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND + "e"."PersonID" = ( SELECT - "d"."PersonID" as "cond" + "d"."PersonID" FROM "Patient" "d" FETCH NEXT 1 ROWS ONLY - ) "t1" - WHERE - "e"."PersonID" = "p"."PersonID" AND "e"."FirstName" LIKE @filter1 ESCAPE '~' AND - "e"."PersonID" = "t1"."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" "e_1", - ( + "Person" "e_1" + WHERE + "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND + "e_1"."PersonID" = ( SELECT - "d_1"."PersonID" as "cond" + "d_1"."PersonID" FROM "Patient" "d_1" FETCH NEXT 1 ROWS ONLY - ) "t2" - WHERE - "e_1"."PersonID" = "p"."PersonID" AND "e_1"."FirstName" LIKE @filter2 ESCAPE '~' AND - "e_1"."PersonID" = "t2"."cond" + ) ) ORDER BY "p"."PersonID" diff --git a/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.4).sql b/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.4).sql index ab7da2d2db8a..5864ef2778e6 100644 --- a/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter3(Firebird.4).sql @@ -16,34 +16,32 @@ WHERE * FROM "Person" "p" - CROSS JOIN LATERAL ( - SELECT - "d"."PersonID" as "cond" - FROM - "Person" "d" - WHERE - "d"."PersonID" = "patient_1"."PersonID" - FETCH NEXT 1 ROWS ONLY - ) "t1" WHERE - "p"."FirstName" LIKE @filter ESCAPE '~' AND "p"."PersonID" = "t1"."cond" + "p"."FirstName" LIKE @filter ESCAPE '~' AND "p"."PersonID" = ( + SELECT + "d"."PersonID" + FROM + "Person" "d" + WHERE + "d"."PersonID" = "patient_1"."PersonID" + FETCH NEXT 1 ROWS ONLY + ) ) AND EXISTS( SELECT * FROM "Person" "p_1" - CROSS JOIN LATERAL ( - SELECT - "d_1"."PersonID" as "cond" - FROM - "Person" "d_1" - WHERE - "d_1"."PersonID" = "patient_1"."PersonID" - FETCH NEXT 1 ROWS ONLY - ) "t2" WHERE - "p_1"."FirstName" LIKE @filter_1 ESCAPE '~' AND "p_1"."PersonID" = "t2"."cond" + "p_1"."FirstName" LIKE @filter_1 ESCAPE '~' AND "p_1"."PersonID" = ( + SELECT + "d_1"."PersonID" + FROM + "Person" "d_1" + WHERE + "d_1"."PersonID" = "patient_1"."PersonID" + FETCH NEXT 1 ROWS ONLY + ) ) ORDER BY "patient_1"."PersonID" From 03d9b6a4aa0e20e908eaf2b8110e1b7b24fb1407 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Mon, 24 Feb 2025 14:09:50 +0100 Subject: [PATCH 34/40] [Linux / Oracle 11g XE] baselines --- ...Test1(Oracle.11.Managed.LinqService,1).sql | 63 ++++++++-------- ...Test1(Oracle.11.Managed.LinqService,2).sql | 63 ++++++++-------- ...oSelect(Oracle.11.Managed.LinqService).sql | 75 ++++++++++++++----- ...wSelect(Oracle.11.Managed.LinqService).sql | 52 +++---------- ...ubquery(Oracle.11.Managed.LinqService).sql | 12 ++- ...Filter1(Oracle.11.Managed.LinqService).sql | 22 +++--- ...Filter2(Oracle.11.Managed.LinqService).sql | 26 +++---- ...sue2990(Oracle.11.Managed.LinqService).sql | 17 ++--- ...s.ComparisonTest1(Oracle.11.Managed,1).sql | 63 ++++++++-------- ...s.ComparisonTest1(Oracle.11.Managed,2).sql | 63 ++++++++-------- ...Tests.EqualToSelect(Oracle.11.Managed).sql | 75 ++++++++++++++----- ...sts.UpdateRowSelect(Oracle.11.Managed).sql | 52 +++---------- ...Tests.Issue383Test2(Oracle.11.Managed).sql | 10 ++- ...sts.BooleanSubquery(Oracle.11.Managed).sql | 12 ++- ...sue_SubQueryFilter1(Oracle.11.Managed).sql | 22 +++--- ...sue_SubQueryFilter2(Oracle.11.Managed).sql | 26 +++---- ...sertTests.Issue2990(Oracle.11.Managed).sql | 17 ++--- 17 files changed, 338 insertions(+), 332 deletions(-) diff --git a/Oracle.11.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed.LinqService,1).sql b/Oracle.11.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed.LinqService,1).sql index 0b358f2bd085..b1812777ca96 100644 --- a/Oracle.11.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed.LinqService,1).sql +++ b/Oracle.11.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed.LinqService,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.11.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed.LinqService,2).sql b/Oracle.11.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed.LinqService,2).sql index 0b358f2bd085..b1812777ca96 100644 --- a/Oracle.11.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed.LinqService,2).sql +++ b/Oracle.11.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed.LinqService,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.11.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.11.Managed.LinqService).sql b/Oracle.11.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.11.Managed.LinqService).sql index 3868cdda96f8..596a9aef8c7c 100644 --- a/Oracle.11.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.11.Managed.LinqService).sql +++ b/Oracle.11.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.11.Managed.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.11.Managed Oracle11 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.11.Managed Oracle11 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = ((x."One", x."Two", x."Three")) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.11.Managed Oracle11 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.11.Managed Oracle11 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/Oracle.11.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.11.Managed.LinqService).sql b/Oracle.11.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.11.Managed.LinqService).sql index a00ef5744440..3c3924793720 100644 --- a/Oracle.11.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.11.Managed.LinqService).sql +++ b/Oracle.11.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.11.Managed.LinqService).sql @@ -2,60 +2,26 @@ -- Oracle.11.Managed Oracle11 UPDATE - "Ints" + "Ints" i SET - "One" = "Ints"."Two" * 5, + "One" = i."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - j_1."Three" * 100 + i."Two" * 10, + j."Three" * 100 FROM - "Ints" i_1, - "Ints" j_1 + "Ints" j WHERE - i_1."One" = 10 AND - j_1."One" = 1 AND - "Ints"."One" = i_1."One" AND - "Ints"."Two" = i_1."Two" AND - "Ints"."Three" = i_1."Three" AND - "Ints"."Four" = i_1."Four" AND - "Ints"."Five" = i_1."Five" AND - ("Ints"."Nil" = i_1."Nil" OR "Ints"."Nil" IS NULL AND i_1."Nil" IS NULL) + j."One" = 1 ), ("Four", "Nil") = ( SELECT - "Ints"."One" * "Ints"."Four", + i."One" * i."Four", 600 - FROM - "Ints" i_2, - "Ints" j_2 - WHERE - i_2."One" = 10 AND - j_2."One" = 1 AND - "Ints"."One" = i_2."One" AND - "Ints"."Two" = i_2."Two" AND - "Ints"."Three" = i_2."Three" AND - "Ints"."Four" = i_2."Four" AND - "Ints"."Five" = i_2."Five" AND - ("Ints"."Nil" = i_2."Nil" OR "Ints"."Nil" IS NULL AND i_2."Nil" IS NULL) + FROM SYS.DUAL ) WHERE - EXISTS( - SELECT - * - FROM - "Ints" i, - "Ints" j - WHERE - i."One" = 10 AND - j."One" = 1 AND - "Ints"."One" = i."One" AND - "Ints"."Two" = i."Two" AND - "Ints"."Three" = i."Three" AND - "Ints"."Four" = i."Four" AND - "Ints"."Five" = i."Five" AND - ("Ints"."Nil" = i."Nil" OR "Ints"."Nil" IS NULL AND i."Nil" IS NULL) - ) + i."One" = 10 BeforeExecute -- Oracle.11.Managed Oracle11 diff --git a/Oracle.11.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.11.Managed.LinqService).sql b/Oracle.11.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.11.Managed.LinqService).sql index 7018734ba208..9d882ab87684 100644 --- a/Oracle.11.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.11.Managed.LinqService).sql +++ b/Oracle.11.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.11.Managed.LinqService).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" = 1 AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) = 1 diff --git a/Oracle.11.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.11.Managed.LinqService).sql b/Oracle.11.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.11.Managed.LinqService).sql index e7a7fa3c7053..3da179e3f059 100644 --- a/Oracle.11.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.11.Managed.LinqService).sql +++ b/Oracle.11.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.11.Managed.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d WHERE ROWNUM <= 1 - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 WHERE ROWNUM <= 1 - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3."cond" + ) ) ORDER BY t1."PersonID" diff --git a/Oracle.11.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.11.Managed.LinqService).sql b/Oracle.11.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.11.Managed.LinqService).sql index 114971e302c2..df9049719480 100644 --- a/Oracle.11.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.11.Managed.LinqService).sql +++ b/Oracle.11.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.11.Managed.LinqService).sql @@ -15,35 +15,33 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d WHERE ROWNUM <= 1 - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 WHERE ROWNUM <= 1 - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2."cond" + ) ) ORDER BY p."PersonID" diff --git a/Oracle.11.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.11.Managed.LinqService).sql b/Oracle.11.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.11.Managed.LinqService).sql index dbb3415df501..53bf333e3d95 100644 --- a/Oracle.11.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.11.Managed.LinqService).sql +++ b/Oracle.11.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.11.Managed.LinqService).sql @@ -15,15 +15,14 @@ WHEN 1 = 1 THEN ) SELECT s.ID as "source_A", - t1.ID as "source_B" + ( + SELECT + x.ID + FROM + "Dest2" x + WHERE + x.ID > 5 AND ROWNUM <= 1 + ) as "source_B" FROM "TestSource" s - CROSS JOIN ( - SELECT - x.ID - FROM - "Dest2" x - WHERE - x.ID > 5 AND ROWNUM <= 1 - ) t1 diff --git a/Oracle.11.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed,1).sql b/Oracle.11.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed,1).sql index 0b358f2bd085..b1812777ca96 100644 --- a/Oracle.11.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed,1).sql +++ b/Oracle.11.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.11.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed,2).sql b/Oracle.11.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed,2).sql index 0b358f2bd085..b1812777ca96 100644 --- a/Oracle.11.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed,2).sql +++ b/Oracle.11.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.11.Managed,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.11.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.11.Managed).sql b/Oracle.11.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.11.Managed).sql index 3868cdda96f8..596a9aef8c7c 100644 --- a/Oracle.11.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.11.Managed).sql +++ b/Oracle.11.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.11.Managed).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.11.Managed Oracle11 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.11.Managed Oracle11 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = ((x."One", x."Two", x."Three")) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.11.Managed Oracle11 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.11.Managed Oracle11 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/Oracle.11.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.11.Managed).sql b/Oracle.11.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.11.Managed).sql index a00ef5744440..3c3924793720 100644 --- a/Oracle.11.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.11.Managed).sql +++ b/Oracle.11.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.11.Managed).sql @@ -2,60 +2,26 @@ -- Oracle.11.Managed Oracle11 UPDATE - "Ints" + "Ints" i SET - "One" = "Ints"."Two" * 5, + "One" = i."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - j_1."Three" * 100 + i."Two" * 10, + j."Three" * 100 FROM - "Ints" i_1, - "Ints" j_1 + "Ints" j WHERE - i_1."One" = 10 AND - j_1."One" = 1 AND - "Ints"."One" = i_1."One" AND - "Ints"."Two" = i_1."Two" AND - "Ints"."Three" = i_1."Three" AND - "Ints"."Four" = i_1."Four" AND - "Ints"."Five" = i_1."Five" AND - ("Ints"."Nil" = i_1."Nil" OR "Ints"."Nil" IS NULL AND i_1."Nil" IS NULL) + j."One" = 1 ), ("Four", "Nil") = ( SELECT - "Ints"."One" * "Ints"."Four", + i."One" * i."Four", 600 - FROM - "Ints" i_2, - "Ints" j_2 - WHERE - i_2."One" = 10 AND - j_2."One" = 1 AND - "Ints"."One" = i_2."One" AND - "Ints"."Two" = i_2."Two" AND - "Ints"."Three" = i_2."Three" AND - "Ints"."Four" = i_2."Four" AND - "Ints"."Five" = i_2."Five" AND - ("Ints"."Nil" = i_2."Nil" OR "Ints"."Nil" IS NULL AND i_2."Nil" IS NULL) + FROM SYS.DUAL ) WHERE - EXISTS( - SELECT - * - FROM - "Ints" i, - "Ints" j - WHERE - i."One" = 10 AND - j."One" = 1 AND - "Ints"."One" = i."One" AND - "Ints"."Two" = i."Two" AND - "Ints"."Three" = i."Three" AND - "Ints"."Four" = i."Four" AND - "Ints"."Five" = i."Five" AND - ("Ints"."Nil" = i."Nil" OR "Ints"."Nil" IS NULL AND i."Nil" IS NULL) - ) + i."One" = 10 BeforeExecute -- Oracle.11.Managed Oracle11 diff --git a/Oracle.11.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.11.Managed).sql b/Oracle.11.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.11.Managed).sql index 636aa56ec31f..328d635c7186 100644 --- a/Oracle.11.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.11.Managed).sql +++ b/Oracle.11.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.11.Managed).sql @@ -7,7 +7,14 @@ SELECT d."Distributor_Name", cp."Street_Number", cp."Street_Name", - c_1."City_Name", + ( + SELECT + c_1."City_Name" + FROM + "Cities" c_1 + WHERE + c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL + ), cp."State", cp."Zip_Code", cp."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" dcp ON d."Distributor_Id" = dcp."Distributor_Id" INNER JOIN "Commercial_Property" cp ON dcp."Commercial_Property_Id" = cp."Commercial_Property_Id" INNER JOIN "Contract_Dates" cd ON cda."Contract_Id" = cd."Contract_Id" - INNER JOIN "Cities" c_1 ON c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL WHERE cda."Contract_Id" = 198827882 AND cda."Distributor_Type_Code" = 'CC' AND diff --git a/Oracle.11.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.11.Managed).sql b/Oracle.11.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.11.Managed).sql index 7018734ba208..9d882ab87684 100644 --- a/Oracle.11.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.11.Managed).sql +++ b/Oracle.11.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.11.Managed).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" = 1 AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) = 1 diff --git a/Oracle.11.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.11.Managed).sql b/Oracle.11.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.11.Managed).sql index e7a7fa3c7053..3da179e3f059 100644 --- a/Oracle.11.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.11.Managed).sql +++ b/Oracle.11.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.11.Managed).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d WHERE ROWNUM <= 1 - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 WHERE ROWNUM <= 1 - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3."cond" + ) ) ORDER BY t1."PersonID" diff --git a/Oracle.11.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.11.Managed).sql b/Oracle.11.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.11.Managed).sql index 114971e302c2..df9049719480 100644 --- a/Oracle.11.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.11.Managed).sql +++ b/Oracle.11.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.11.Managed).sql @@ -15,35 +15,33 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d WHERE ROWNUM <= 1 - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 WHERE ROWNUM <= 1 - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2."cond" + ) ) ORDER BY p."PersonID" diff --git a/Oracle.11.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.11.Managed).sql b/Oracle.11.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.11.Managed).sql index dbb3415df501..53bf333e3d95 100644 --- a/Oracle.11.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.11.Managed).sql +++ b/Oracle.11.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.11.Managed).sql @@ -15,15 +15,14 @@ WHEN 1 = 1 THEN ) SELECT s.ID as "source_A", - t1.ID as "source_B" + ( + SELECT + x.ID + FROM + "Dest2" x + WHERE + x.ID > 5 AND ROWNUM <= 1 + ) as "source_B" FROM "TestSource" s - CROSS JOIN ( - SELECT - x.ID - FROM - "Dest2" x - WHERE - x.ID > 5 AND ROWNUM <= 1 - ) t1 From adea8a84e9e5835fc5d24b46fded7116b00c8e79 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Mon, 24 Feb 2025 14:19:08 +0100 Subject: [PATCH 35/40] [Linux / Oracle 12c] baselines --- ...Test1(Oracle.12.Managed.LinqService,1).sql | 63 ++++++++-------- ...Test1(Oracle.12.Managed.LinqService,2).sql | 63 ++++++++-------- ...oSelect(Oracle.12.Managed.LinqService).sql | 75 ++++++++++++++----- ...wSelect(Oracle.12.Managed.LinqService).sql | 52 +++---------- ...ubquery(Oracle.12.Managed.LinqService).sql | 12 ++- ...Filter1(Oracle.12.Managed.LinqService).sql | 22 +++--- ...Filter2(Oracle.12.Managed.LinqService).sql | 26 +++---- ...sue2990(Oracle.12.Managed.LinqService).sql | 17 ++--- ...s.ComparisonTest1(Oracle.12.Managed,1).sql | 63 ++++++++-------- ...s.ComparisonTest1(Oracle.12.Managed,2).sql | 63 ++++++++-------- ...Tests.EqualToSelect(Oracle.12.Managed).sql | 75 ++++++++++++++----- ...sts.UpdateRowSelect(Oracle.12.Managed).sql | 52 +++---------- ...Tests.Issue383Test2(Oracle.12.Managed).sql | 10 ++- ...sts.BooleanSubquery(Oracle.12.Managed).sql | 12 ++- ...sue_SubQueryFilter1(Oracle.12.Managed).sql | 22 +++--- ...sue_SubQueryFilter2(Oracle.12.Managed).sql | 26 +++---- ...sertTests.Issue2990(Oracle.12.Managed).sql | 17 ++--- 17 files changed, 338 insertions(+), 332 deletions(-) diff --git a/Oracle.12.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed.LinqService,1).sql b/Oracle.12.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed.LinqService,1).sql index 5e50c0a3a35a..05b0c3918f79 100644 --- a/Oracle.12.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed.LinqService,1).sql +++ b/Oracle.12.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed.LinqService,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.12.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed.LinqService,2).sql b/Oracle.12.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed.LinqService,2).sql index 5e50c0a3a35a..05b0c3918f79 100644 --- a/Oracle.12.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed.LinqService,2).sql +++ b/Oracle.12.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed.LinqService,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.12.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.12.Managed.LinqService).sql b/Oracle.12.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.12.Managed.LinqService).sql index d7a114cba54f..182261519fff 100644 --- a/Oracle.12.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.12.Managed.LinqService).sql +++ b/Oracle.12.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.12.Managed.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.12.Managed Oracle.Managed Oracle12 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.12.Managed Oracle.Managed Oracle12 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = ((x."One", x."Two", x."Three")) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.12.Managed Oracle.Managed Oracle12 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.12.Managed Oracle.Managed Oracle12 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/Oracle.12.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.12.Managed.LinqService).sql b/Oracle.12.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.12.Managed.LinqService).sql index 174bd2578729..bb41a1aa5c13 100644 --- a/Oracle.12.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.12.Managed.LinqService).sql +++ b/Oracle.12.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.12.Managed.LinqService).sql @@ -2,60 +2,26 @@ -- Oracle.12.Managed Oracle.Managed Oracle12 UPDATE - "Ints" + "Ints" i SET - "One" = "Ints"."Two" * 5, + "One" = i."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - j_1."Three" * 100 + i."Two" * 10, + j."Three" * 100 FROM - "Ints" i_1, - "Ints" j_1 + "Ints" j WHERE - i_1."One" = 10 AND - j_1."One" = 1 AND - "Ints"."One" = i_1."One" AND - "Ints"."Two" = i_1."Two" AND - "Ints"."Three" = i_1."Three" AND - "Ints"."Four" = i_1."Four" AND - "Ints"."Five" = i_1."Five" AND - ("Ints"."Nil" = i_1."Nil" OR "Ints"."Nil" IS NULL AND i_1."Nil" IS NULL) + j."One" = 1 ), ("Four", "Nil") = ( SELECT - "Ints"."One" * "Ints"."Four", + i."One" * i."Four", 600 - FROM - "Ints" i_2, - "Ints" j_2 - WHERE - i_2."One" = 10 AND - j_2."One" = 1 AND - "Ints"."One" = i_2."One" AND - "Ints"."Two" = i_2."Two" AND - "Ints"."Three" = i_2."Three" AND - "Ints"."Four" = i_2."Four" AND - "Ints"."Five" = i_2."Five" AND - ("Ints"."Nil" = i_2."Nil" OR "Ints"."Nil" IS NULL AND i_2."Nil" IS NULL) + FROM SYS.DUAL ) WHERE - EXISTS( - SELECT - * - FROM - "Ints" i, - "Ints" j - WHERE - i."One" = 10 AND - j."One" = 1 AND - "Ints"."One" = i."One" AND - "Ints"."Two" = i."Two" AND - "Ints"."Three" = i."Three" AND - "Ints"."Four" = i."Four" AND - "Ints"."Five" = i."Five" AND - ("Ints"."Nil" = i."Nil" OR "Ints"."Nil" IS NULL AND i."Nil" IS NULL) - ) + i."One" = 10 BeforeExecute -- Oracle.12.Managed Oracle.Managed Oracle12 diff --git a/Oracle.12.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.12.Managed.LinqService).sql b/Oracle.12.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.12.Managed.LinqService).sql index 069595d690b7..7e52fe4fb4f9 100644 --- a/Oracle.12.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.12.Managed.LinqService).sql +++ b/Oracle.12.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.12.Managed.LinqService).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" = 1 AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) = 1 diff --git a/Oracle.12.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.12.Managed.LinqService).sql b/Oracle.12.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.12.Managed.LinqService).sql index d46197ae6203..4e234ecc9baf 100644 --- a/Oracle.12.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.12.Managed.LinqService).sql +++ b/Oracle.12.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.12.Managed.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3."cond" + ) ) ORDER BY t1."PersonID" diff --git a/Oracle.12.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.12.Managed.LinqService).sql b/Oracle.12.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.12.Managed.LinqService).sql index 45a7fa51f41e..f75363d50c9d 100644 --- a/Oracle.12.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.12.Managed.LinqService).sql +++ b/Oracle.12.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.12.Managed.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2."cond" + ) ) ORDER BY p."PersonID" diff --git a/Oracle.12.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.12.Managed.LinqService).sql b/Oracle.12.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.12.Managed.LinqService).sql index 21d2fbdaebfd..7e689a6179bf 100644 --- a/Oracle.12.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.12.Managed.LinqService).sql +++ b/Oracle.12.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.12.Managed.LinqService).sql @@ -15,15 +15,14 @@ WHEN 1 = 1 THEN ) SELECT s.ID as "source_A", - t1.ID as "source_B" + ( + SELECT + x.ID + FROM + "Dest2" x + WHERE + x.ID > 5 AND ROWNUM <= 1 + ) as "source_B" FROM "TestSource" s - CROSS JOIN ( - SELECT - x.ID - FROM - "Dest2" x - WHERE - x.ID > 5 AND ROWNUM <= 1 - ) t1 diff --git a/Oracle.12.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed,1).sql b/Oracle.12.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed,1).sql index 5e50c0a3a35a..05b0c3918f79 100644 --- a/Oracle.12.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed,1).sql +++ b/Oracle.12.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.12.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed,2).sql b/Oracle.12.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed,2).sql index 5e50c0a3a35a..05b0c3918f79 100644 --- a/Oracle.12.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed,2).sql +++ b/Oracle.12.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.12.Managed,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.12.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.12.Managed).sql b/Oracle.12.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.12.Managed).sql index d7a114cba54f..182261519fff 100644 --- a/Oracle.12.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.12.Managed).sql +++ b/Oracle.12.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.12.Managed).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.12.Managed Oracle.Managed Oracle12 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.12.Managed Oracle.Managed Oracle12 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = ((x."One", x."Two", x."Three")) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.12.Managed Oracle.Managed Oracle12 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.12.Managed Oracle.Managed Oracle12 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/Oracle.12.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.12.Managed).sql b/Oracle.12.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.12.Managed).sql index 174bd2578729..bb41a1aa5c13 100644 --- a/Oracle.12.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.12.Managed).sql +++ b/Oracle.12.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.12.Managed).sql @@ -2,60 +2,26 @@ -- Oracle.12.Managed Oracle.Managed Oracle12 UPDATE - "Ints" + "Ints" i SET - "One" = "Ints"."Two" * 5, + "One" = i."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - j_1."Three" * 100 + i."Two" * 10, + j."Three" * 100 FROM - "Ints" i_1, - "Ints" j_1 + "Ints" j WHERE - i_1."One" = 10 AND - j_1."One" = 1 AND - "Ints"."One" = i_1."One" AND - "Ints"."Two" = i_1."Two" AND - "Ints"."Three" = i_1."Three" AND - "Ints"."Four" = i_1."Four" AND - "Ints"."Five" = i_1."Five" AND - ("Ints"."Nil" = i_1."Nil" OR "Ints"."Nil" IS NULL AND i_1."Nil" IS NULL) + j."One" = 1 ), ("Four", "Nil") = ( SELECT - "Ints"."One" * "Ints"."Four", + i."One" * i."Four", 600 - FROM - "Ints" i_2, - "Ints" j_2 - WHERE - i_2."One" = 10 AND - j_2."One" = 1 AND - "Ints"."One" = i_2."One" AND - "Ints"."Two" = i_2."Two" AND - "Ints"."Three" = i_2."Three" AND - "Ints"."Four" = i_2."Four" AND - "Ints"."Five" = i_2."Five" AND - ("Ints"."Nil" = i_2."Nil" OR "Ints"."Nil" IS NULL AND i_2."Nil" IS NULL) + FROM SYS.DUAL ) WHERE - EXISTS( - SELECT - * - FROM - "Ints" i, - "Ints" j - WHERE - i."One" = 10 AND - j."One" = 1 AND - "Ints"."One" = i."One" AND - "Ints"."Two" = i."Two" AND - "Ints"."Three" = i."Three" AND - "Ints"."Four" = i."Four" AND - "Ints"."Five" = i."Five" AND - ("Ints"."Nil" = i."Nil" OR "Ints"."Nil" IS NULL AND i."Nil" IS NULL) - ) + i."One" = 10 BeforeExecute -- Oracle.12.Managed Oracle.Managed Oracle12 diff --git a/Oracle.12.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.12.Managed).sql b/Oracle.12.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.12.Managed).sql index 052b8d2b9695..07631840f7ec 100644 --- a/Oracle.12.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.12.Managed).sql +++ b/Oracle.12.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.12.Managed).sql @@ -7,7 +7,14 @@ SELECT d."Distributor_Name", cp."Street_Number", cp."Street_Name", - c_1."City_Name", + ( + SELECT + c_1."City_Name" + FROM + "Cities" c_1 + WHERE + c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL + ), cp."State", cp."Zip_Code", cp."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" dcp ON d."Distributor_Id" = dcp."Distributor_Id" INNER JOIN "Commercial_Property" cp ON dcp."Commercial_Property_Id" = cp."Commercial_Property_Id" INNER JOIN "Contract_Dates" cd ON cda."Contract_Id" = cd."Contract_Id" - INNER JOIN "Cities" c_1 ON c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL WHERE cda."Contract_Id" = 198827882 AND cda."Distributor_Type_Code" = 'CC' AND diff --git a/Oracle.12.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.12.Managed).sql b/Oracle.12.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.12.Managed).sql index 069595d690b7..7e52fe4fb4f9 100644 --- a/Oracle.12.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.12.Managed).sql +++ b/Oracle.12.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.12.Managed).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" = 1 AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) = 1 diff --git a/Oracle.12.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.12.Managed).sql b/Oracle.12.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.12.Managed).sql index d46197ae6203..4e234ecc9baf 100644 --- a/Oracle.12.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.12.Managed).sql +++ b/Oracle.12.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.12.Managed).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3."cond" + ) ) ORDER BY t1."PersonID" diff --git a/Oracle.12.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.12.Managed).sql b/Oracle.12.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.12.Managed).sql index 45a7fa51f41e..f75363d50c9d 100644 --- a/Oracle.12.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.12.Managed).sql +++ b/Oracle.12.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.12.Managed).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2."cond" + ) ) ORDER BY p."PersonID" diff --git a/Oracle.12.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.12.Managed).sql b/Oracle.12.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.12.Managed).sql index 21d2fbdaebfd..7e689a6179bf 100644 --- a/Oracle.12.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.12.Managed).sql +++ b/Oracle.12.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.12.Managed).sql @@ -15,15 +15,14 @@ WHEN 1 = 1 THEN ) SELECT s.ID as "source_A", - t1.ID as "source_B" + ( + SELECT + x.ID + FROM + "Dest2" x + WHERE + x.ID > 5 AND ROWNUM <= 1 + ) as "source_B" FROM "TestSource" s - CROSS JOIN ( - SELECT - x.ID - FROM - "Dest2" x - WHERE - x.ID > 5 AND ROWNUM <= 1 - ) t1 From 10d6813d68b9d2aad74853e5f6ac05d1702c7d99 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Mon, 24 Feb 2025 14:25:44 +0100 Subject: [PATCH 36/40] [Linux / Oracle 23c] baselines --- ...Test1(Oracle.23.Managed.LinqService,1).sql | 63 ++++++++-------- ...Test1(Oracle.23.Managed.LinqService,2).sql | 63 ++++++++-------- ...oSelect(Oracle.23.Managed.LinqService).sql | 75 ++++++++++++++----- ...wSelect(Oracle.23.Managed.LinqService).sql | 52 +++---------- ...ubquery(Oracle.23.Managed.LinqService).sql | 12 ++- ...Filter1(Oracle.23.Managed.LinqService).sql | 22 +++--- ...Filter2(Oracle.23.Managed.LinqService).sql | 26 +++---- ...sue2990(Oracle.23.Managed.LinqService).sql | 17 ++--- ...s.ComparisonTest1(Oracle.23.Managed,1).sql | 63 ++++++++-------- ...s.ComparisonTest1(Oracle.23.Managed,2).sql | 63 ++++++++-------- ...Tests.EqualToSelect(Oracle.23.Managed).sql | 75 ++++++++++++++----- ...sts.UpdateRowSelect(Oracle.23.Managed).sql | 52 +++---------- ...Tests.Issue383Test2(Oracle.23.Managed).sql | 10 ++- ...sts.BooleanSubquery(Oracle.23.Managed).sql | 12 ++- ...sue_SubQueryFilter1(Oracle.23.Managed).sql | 22 +++--- ...sue_SubQueryFilter2(Oracle.23.Managed).sql | 26 +++---- ...sertTests.Issue2990(Oracle.23.Managed).sql | 17 ++--- 17 files changed, 338 insertions(+), 332 deletions(-) diff --git a/Oracle.23.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed.LinqService,1).sql b/Oracle.23.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed.LinqService,1).sql index c16eca62fc9b..643c3fa2670b 100644 --- a/Oracle.23.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed.LinqService,1).sql +++ b/Oracle.23.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed.LinqService,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.23.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed.LinqService,2).sql b/Oracle.23.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed.LinqService,2).sql index c16eca62fc9b..643c3fa2670b 100644 --- a/Oracle.23.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed.LinqService,2).sql +++ b/Oracle.23.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed.LinqService,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.23.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.23.Managed.LinqService).sql b/Oracle.23.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.23.Managed.LinqService).sql index f776a7284e79..640c2c5d61d2 100644 --- a/Oracle.23.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.23.Managed.LinqService).sql +++ b/Oracle.23.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.23.Managed.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.23.Managed Oracle.Managed Oracle12 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.23.Managed Oracle.Managed Oracle12 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = ((x."One", x."Two", x."Three")) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.23.Managed Oracle.Managed Oracle12 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.23.Managed Oracle.Managed Oracle12 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/Oracle.23.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.23.Managed.LinqService).sql b/Oracle.23.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.23.Managed.LinqService).sql index 056874ee2241..560bdd7e685f 100644 --- a/Oracle.23.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.23.Managed.LinqService).sql +++ b/Oracle.23.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.23.Managed.LinqService).sql @@ -2,60 +2,26 @@ -- Oracle.23.Managed Oracle.Managed Oracle12 UPDATE - "Ints" + "Ints" i SET - "One" = "Ints"."Two" * 5, + "One" = i."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - j_1."Three" * 100 + i."Two" * 10, + j."Three" * 100 FROM - "Ints" i_1, - "Ints" j_1 + "Ints" j WHERE - i_1."One" = 10 AND - j_1."One" = 1 AND - "Ints"."One" = i_1."One" AND - "Ints"."Two" = i_1."Two" AND - "Ints"."Three" = i_1."Three" AND - "Ints"."Four" = i_1."Four" AND - "Ints"."Five" = i_1."Five" AND - ("Ints"."Nil" = i_1."Nil" OR "Ints"."Nil" IS NULL AND i_1."Nil" IS NULL) + j."One" = 1 ), ("Four", "Nil") = ( SELECT - "Ints"."One" * "Ints"."Four", + i."One" * i."Four", 600 - FROM - "Ints" i_2, - "Ints" j_2 - WHERE - i_2."One" = 10 AND - j_2."One" = 1 AND - "Ints"."One" = i_2."One" AND - "Ints"."Two" = i_2."Two" AND - "Ints"."Three" = i_2."Three" AND - "Ints"."Four" = i_2."Four" AND - "Ints"."Five" = i_2."Five" AND - ("Ints"."Nil" = i_2."Nil" OR "Ints"."Nil" IS NULL AND i_2."Nil" IS NULL) + FROM SYS.DUAL ) WHERE - EXISTS( - SELECT - * - FROM - "Ints" i, - "Ints" j - WHERE - i."One" = 10 AND - j."One" = 1 AND - "Ints"."One" = i."One" AND - "Ints"."Two" = i."Two" AND - "Ints"."Three" = i."Three" AND - "Ints"."Four" = i."Four" AND - "Ints"."Five" = i."Five" AND - ("Ints"."Nil" = i."Nil" OR "Ints"."Nil" IS NULL AND i."Nil" IS NULL) - ) + i."One" = 10 BeforeExecute -- Oracle.23.Managed Oracle.Managed Oracle12 diff --git a/Oracle.23.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.23.Managed.LinqService).sql b/Oracle.23.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.23.Managed.LinqService).sql index db86e6a248f4..b24f74e22fe3 100644 --- a/Oracle.23.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.23.Managed.LinqService).sql +++ b/Oracle.23.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.23.Managed.LinqService).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" = 1 AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) = 1 diff --git a/Oracle.23.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.23.Managed.LinqService).sql b/Oracle.23.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.23.Managed.LinqService).sql index c1c97f8e042b..55922452bd59 100644 --- a/Oracle.23.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.23.Managed.LinqService).sql +++ b/Oracle.23.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.23.Managed.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3."cond" + ) ) ORDER BY t1."PersonID" diff --git a/Oracle.23.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.23.Managed.LinqService).sql b/Oracle.23.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.23.Managed.LinqService).sql index 76cacd0e9534..b1bf4dfe243a 100644 --- a/Oracle.23.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.23.Managed.LinqService).sql +++ b/Oracle.23.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.23.Managed.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2."cond" + ) ) ORDER BY p."PersonID" diff --git a/Oracle.23.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.23.Managed.LinqService).sql b/Oracle.23.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.23.Managed.LinqService).sql index 1c39f273db79..d427b67a0de8 100644 --- a/Oracle.23.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.23.Managed.LinqService).sql +++ b/Oracle.23.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.23.Managed.LinqService).sql @@ -15,15 +15,14 @@ WHEN 1 = 1 THEN ) SELECT s.ID as "source_A", - t1.ID as "source_B" + ( + SELECT + x.ID + FROM + "Dest2" x + WHERE + x.ID > 5 AND ROWNUM <= 1 + ) as "source_B" FROM "TestSource" s - CROSS JOIN ( - SELECT - x.ID - FROM - "Dest2" x - WHERE - x.ID > 5 AND ROWNUM <= 1 - ) t1 diff --git a/Oracle.23.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed,1).sql b/Oracle.23.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed,1).sql index c16eca62fc9b..643c3fa2670b 100644 --- a/Oracle.23.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed,1).sql +++ b/Oracle.23.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.23.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed,2).sql b/Oracle.23.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed,2).sql index c16eca62fc9b..643c3fa2670b 100644 --- a/Oracle.23.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed,2).sql +++ b/Oracle.23.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.23.Managed,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.23.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.23.Managed).sql b/Oracle.23.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.23.Managed).sql index f776a7284e79..640c2c5d61d2 100644 --- a/Oracle.23.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.23.Managed).sql +++ b/Oracle.23.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.23.Managed).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.23.Managed Oracle.Managed Oracle12 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.23.Managed Oracle.Managed Oracle12 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = ((x."One", x."Two", x."Three")) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.23.Managed Oracle.Managed Oracle12 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.23.Managed Oracle.Managed Oracle12 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/Oracle.23.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.23.Managed).sql b/Oracle.23.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.23.Managed).sql index 056874ee2241..560bdd7e685f 100644 --- a/Oracle.23.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.23.Managed).sql +++ b/Oracle.23.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.23.Managed).sql @@ -2,60 +2,26 @@ -- Oracle.23.Managed Oracle.Managed Oracle12 UPDATE - "Ints" + "Ints" i SET - "One" = "Ints"."Two" * 5, + "One" = i."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - j_1."Three" * 100 + i."Two" * 10, + j."Three" * 100 FROM - "Ints" i_1, - "Ints" j_1 + "Ints" j WHERE - i_1."One" = 10 AND - j_1."One" = 1 AND - "Ints"."One" = i_1."One" AND - "Ints"."Two" = i_1."Two" AND - "Ints"."Three" = i_1."Three" AND - "Ints"."Four" = i_1."Four" AND - "Ints"."Five" = i_1."Five" AND - ("Ints"."Nil" = i_1."Nil" OR "Ints"."Nil" IS NULL AND i_1."Nil" IS NULL) + j."One" = 1 ), ("Four", "Nil") = ( SELECT - "Ints"."One" * "Ints"."Four", + i."One" * i."Four", 600 - FROM - "Ints" i_2, - "Ints" j_2 - WHERE - i_2."One" = 10 AND - j_2."One" = 1 AND - "Ints"."One" = i_2."One" AND - "Ints"."Two" = i_2."Two" AND - "Ints"."Three" = i_2."Three" AND - "Ints"."Four" = i_2."Four" AND - "Ints"."Five" = i_2."Five" AND - ("Ints"."Nil" = i_2."Nil" OR "Ints"."Nil" IS NULL AND i_2."Nil" IS NULL) + FROM SYS.DUAL ) WHERE - EXISTS( - SELECT - * - FROM - "Ints" i, - "Ints" j - WHERE - i."One" = 10 AND - j."One" = 1 AND - "Ints"."One" = i."One" AND - "Ints"."Two" = i."Two" AND - "Ints"."Three" = i."Three" AND - "Ints"."Four" = i."Four" AND - "Ints"."Five" = i."Five" AND - ("Ints"."Nil" = i."Nil" OR "Ints"."Nil" IS NULL AND i."Nil" IS NULL) - ) + i."One" = 10 BeforeExecute -- Oracle.23.Managed Oracle.Managed Oracle12 diff --git a/Oracle.23.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.23.Managed).sql b/Oracle.23.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.23.Managed).sql index 54a4f7543aa1..5936a63801a8 100644 --- a/Oracle.23.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.23.Managed).sql +++ b/Oracle.23.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.23.Managed).sql @@ -7,7 +7,14 @@ SELECT d."Distributor_Name", cp."Street_Number", cp."Street_Name", - c_1."City_Name", + ( + SELECT + c_1."City_Name" + FROM + "Cities" c_1 + WHERE + c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL + ), cp."State", cp."Zip_Code", cp."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" dcp ON d."Distributor_Id" = dcp."Distributor_Id" INNER JOIN "Commercial_Property" cp ON dcp."Commercial_Property_Id" = cp."Commercial_Property_Id" INNER JOIN "Contract_Dates" cd ON cda."Contract_Id" = cd."Contract_Id" - INNER JOIN "Cities" c_1 ON c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL WHERE cda."Contract_Id" = 198827882 AND cda."Distributor_Type_Code" = 'CC' AND diff --git a/Oracle.23.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.23.Managed).sql b/Oracle.23.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.23.Managed).sql index db86e6a248f4..b24f74e22fe3 100644 --- a/Oracle.23.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.23.Managed).sql +++ b/Oracle.23.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.23.Managed).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" = 1 AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) = 1 diff --git a/Oracle.23.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.23.Managed).sql b/Oracle.23.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.23.Managed).sql index c1c97f8e042b..55922452bd59 100644 --- a/Oracle.23.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.23.Managed).sql +++ b/Oracle.23.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.23.Managed).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3."cond" + ) ) ORDER BY t1."PersonID" diff --git a/Oracle.23.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.23.Managed).sql b/Oracle.23.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.23.Managed).sql index 76cacd0e9534..b1bf4dfe243a 100644 --- a/Oracle.23.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.23.Managed).sql +++ b/Oracle.23.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.23.Managed).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2."cond" + ) ) ORDER BY p."PersonID" diff --git a/Oracle.23.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.23.Managed).sql b/Oracle.23.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.23.Managed).sql index 1c39f273db79..d427b67a0de8 100644 --- a/Oracle.23.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.23.Managed).sql +++ b/Oracle.23.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.23.Managed).sql @@ -15,15 +15,14 @@ WHEN 1 = 1 THEN ) SELECT s.ID as "source_A", - t1.ID as "source_B" + ( + SELECT + x.ID + FROM + "Dest2" x + WHERE + x.ID > 5 AND ROWNUM <= 1 + ) as "source_B" FROM "TestSource" s - CROSS JOIN ( - SELECT - x.ID - FROM - "Dest2" x - WHERE - x.ID > 5 AND ROWNUM <= 1 - ) t1 From 55c08d8715d623aa8cbfbcf1228c63025a0309b3 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Mon, 24 Feb 2025 14:28:09 +0100 Subject: [PATCH 37/40] [Linux / Oracle 18c] baselines --- ...Test1(Oracle.18.Managed.LinqService,1).sql | 63 ++++++++-------- ...Test1(Oracle.18.Managed.LinqService,2).sql | 63 ++++++++-------- ...oSelect(Oracle.18.Managed.LinqService).sql | 75 ++++++++++++++----- ...wSelect(Oracle.18.Managed.LinqService).sql | 52 +++---------- ...ubquery(Oracle.18.Managed.LinqService).sql | 12 ++- ...Filter1(Oracle.18.Managed.LinqService).sql | 22 +++--- ...Filter2(Oracle.18.Managed.LinqService).sql | 26 +++---- ...sue2990(Oracle.18.Managed.LinqService).sql | 17 ++--- ...s.ComparisonTest1(Oracle.18.Managed,1).sql | 63 ++++++++-------- ...s.ComparisonTest1(Oracle.18.Managed,2).sql | 63 ++++++++-------- ...Tests.EqualToSelect(Oracle.18.Managed).sql | 75 ++++++++++++++----- ...sts.UpdateRowSelect(Oracle.18.Managed).sql | 52 +++---------- ...Tests.Issue383Test2(Oracle.18.Managed).sql | 10 ++- ...sts.BooleanSubquery(Oracle.18.Managed).sql | 12 ++- ...sue_SubQueryFilter1(Oracle.18.Managed).sql | 22 +++--- ...sue_SubQueryFilter2(Oracle.18.Managed).sql | 26 +++---- ...sertTests.Issue2990(Oracle.18.Managed).sql | 17 ++--- 17 files changed, 338 insertions(+), 332 deletions(-) diff --git a/Oracle.18.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed.LinqService,1).sql b/Oracle.18.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed.LinqService,1).sql index 5e8b65ca013e..0956ec9c4f75 100644 --- a/Oracle.18.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed.LinqService,1).sql +++ b/Oracle.18.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed.LinqService,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.18.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed.LinqService,2).sql b/Oracle.18.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed.LinqService,2).sql index 5e8b65ca013e..0956ec9c4f75 100644 --- a/Oracle.18.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed.LinqService,2).sql +++ b/Oracle.18.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed.LinqService,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.18.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.18.Managed.LinqService).sql b/Oracle.18.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.18.Managed.LinqService).sql index 3896062c0d92..d8f927fe3fd9 100644 --- a/Oracle.18.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.18.Managed.LinqService).sql +++ b/Oracle.18.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.18.Managed.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.18.Managed Oracle.Managed Oracle12 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.18.Managed Oracle.Managed Oracle12 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = ((x."One", x."Two", x."Three")) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.18.Managed Oracle.Managed Oracle12 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.18.Managed Oracle.Managed Oracle12 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/Oracle.18.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.18.Managed.LinqService).sql b/Oracle.18.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.18.Managed.LinqService).sql index 619b21edd9fc..56ff2c3a67c4 100644 --- a/Oracle.18.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.18.Managed.LinqService).sql +++ b/Oracle.18.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.18.Managed.LinqService).sql @@ -2,60 +2,26 @@ -- Oracle.18.Managed Oracle.Managed Oracle12 UPDATE - "Ints" + "Ints" i SET - "One" = "Ints"."Two" * 5, + "One" = i."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - j_1."Three" * 100 + i."Two" * 10, + j."Three" * 100 FROM - "Ints" i_1, - "Ints" j_1 + "Ints" j WHERE - i_1."One" = 10 AND - j_1."One" = 1 AND - "Ints"."One" = i_1."One" AND - "Ints"."Two" = i_1."Two" AND - "Ints"."Three" = i_1."Three" AND - "Ints"."Four" = i_1."Four" AND - "Ints"."Five" = i_1."Five" AND - ("Ints"."Nil" = i_1."Nil" OR "Ints"."Nil" IS NULL AND i_1."Nil" IS NULL) + j."One" = 1 ), ("Four", "Nil") = ( SELECT - "Ints"."One" * "Ints"."Four", + i."One" * i."Four", 600 - FROM - "Ints" i_2, - "Ints" j_2 - WHERE - i_2."One" = 10 AND - j_2."One" = 1 AND - "Ints"."One" = i_2."One" AND - "Ints"."Two" = i_2."Two" AND - "Ints"."Three" = i_2."Three" AND - "Ints"."Four" = i_2."Four" AND - "Ints"."Five" = i_2."Five" AND - ("Ints"."Nil" = i_2."Nil" OR "Ints"."Nil" IS NULL AND i_2."Nil" IS NULL) + FROM SYS.DUAL ) WHERE - EXISTS( - SELECT - * - FROM - "Ints" i, - "Ints" j - WHERE - i."One" = 10 AND - j."One" = 1 AND - "Ints"."One" = i."One" AND - "Ints"."Two" = i."Two" AND - "Ints"."Three" = i."Three" AND - "Ints"."Four" = i."Four" AND - "Ints"."Five" = i."Five" AND - ("Ints"."Nil" = i."Nil" OR "Ints"."Nil" IS NULL AND i."Nil" IS NULL) - ) + i."One" = 10 BeforeExecute -- Oracle.18.Managed Oracle.Managed Oracle12 diff --git a/Oracle.18.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.18.Managed.LinqService).sql b/Oracle.18.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.18.Managed.LinqService).sql index e35d60caf5b6..3dd496d0bc18 100644 --- a/Oracle.18.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.18.Managed.LinqService).sql +++ b/Oracle.18.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.18.Managed.LinqService).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" = 1 AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) = 1 diff --git a/Oracle.18.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.18.Managed.LinqService).sql b/Oracle.18.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.18.Managed.LinqService).sql index bccae01637c7..d8642849c2c2 100644 --- a/Oracle.18.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.18.Managed.LinqService).sql +++ b/Oracle.18.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.18.Managed.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3."cond" + ) ) ORDER BY t1."PersonID" diff --git a/Oracle.18.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.18.Managed.LinqService).sql b/Oracle.18.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.18.Managed.LinqService).sql index e6576ff0793e..33e20f7a4604 100644 --- a/Oracle.18.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.18.Managed.LinqService).sql +++ b/Oracle.18.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.18.Managed.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2."cond" + ) ) ORDER BY p."PersonID" diff --git a/Oracle.18.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.18.Managed.LinqService).sql b/Oracle.18.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.18.Managed.LinqService).sql index dce26f73f3e1..9949fd7ec1f3 100644 --- a/Oracle.18.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.18.Managed.LinqService).sql +++ b/Oracle.18.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.18.Managed.LinqService).sql @@ -15,15 +15,14 @@ WHEN 1 = 1 THEN ) SELECT s.ID as "source_A", - t1.ID as "source_B" + ( + SELECT + x.ID + FROM + "Dest2" x + WHERE + x.ID > 5 AND ROWNUM <= 1 + ) as "source_B" FROM "TestSource" s - CROSS JOIN ( - SELECT - x.ID - FROM - "Dest2" x - WHERE - x.ID > 5 AND ROWNUM <= 1 - ) t1 diff --git a/Oracle.18.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed,1).sql b/Oracle.18.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed,1).sql index 5e8b65ca013e..0956ec9c4f75 100644 --- a/Oracle.18.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed,1).sql +++ b/Oracle.18.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.18.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed,2).sql b/Oracle.18.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed,2).sql index 5e8b65ca013e..0956ec9c4f75 100644 --- a/Oracle.18.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed,2).sql +++ b/Oracle.18.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.18.Managed,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.18.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.18.Managed).sql b/Oracle.18.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.18.Managed).sql index 3896062c0d92..d8f927fe3fd9 100644 --- a/Oracle.18.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.18.Managed).sql +++ b/Oracle.18.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.18.Managed).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.18.Managed Oracle.Managed Oracle12 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.18.Managed Oracle.Managed Oracle12 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = ((x."One", x."Two", x."Three")) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.18.Managed Oracle.Managed Oracle12 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.18.Managed Oracle.Managed Oracle12 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/Oracle.18.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.18.Managed).sql b/Oracle.18.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.18.Managed).sql index 619b21edd9fc..56ff2c3a67c4 100644 --- a/Oracle.18.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.18.Managed).sql +++ b/Oracle.18.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.18.Managed).sql @@ -2,60 +2,26 @@ -- Oracle.18.Managed Oracle.Managed Oracle12 UPDATE - "Ints" + "Ints" i SET - "One" = "Ints"."Two" * 5, + "One" = i."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - j_1."Three" * 100 + i."Two" * 10, + j."Three" * 100 FROM - "Ints" i_1, - "Ints" j_1 + "Ints" j WHERE - i_1."One" = 10 AND - j_1."One" = 1 AND - "Ints"."One" = i_1."One" AND - "Ints"."Two" = i_1."Two" AND - "Ints"."Three" = i_1."Three" AND - "Ints"."Four" = i_1."Four" AND - "Ints"."Five" = i_1."Five" AND - ("Ints"."Nil" = i_1."Nil" OR "Ints"."Nil" IS NULL AND i_1."Nil" IS NULL) + j."One" = 1 ), ("Four", "Nil") = ( SELECT - "Ints"."One" * "Ints"."Four", + i."One" * i."Four", 600 - FROM - "Ints" i_2, - "Ints" j_2 - WHERE - i_2."One" = 10 AND - j_2."One" = 1 AND - "Ints"."One" = i_2."One" AND - "Ints"."Two" = i_2."Two" AND - "Ints"."Three" = i_2."Three" AND - "Ints"."Four" = i_2."Four" AND - "Ints"."Five" = i_2."Five" AND - ("Ints"."Nil" = i_2."Nil" OR "Ints"."Nil" IS NULL AND i_2."Nil" IS NULL) + FROM SYS.DUAL ) WHERE - EXISTS( - SELECT - * - FROM - "Ints" i, - "Ints" j - WHERE - i."One" = 10 AND - j."One" = 1 AND - "Ints"."One" = i."One" AND - "Ints"."Two" = i."Two" AND - "Ints"."Three" = i."Three" AND - "Ints"."Four" = i."Four" AND - "Ints"."Five" = i."Five" AND - ("Ints"."Nil" = i."Nil" OR "Ints"."Nil" IS NULL AND i."Nil" IS NULL) - ) + i."One" = 10 BeforeExecute -- Oracle.18.Managed Oracle.Managed Oracle12 diff --git a/Oracle.18.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.18.Managed).sql b/Oracle.18.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.18.Managed).sql index a1525fb9190e..e32cb39a1cf7 100644 --- a/Oracle.18.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.18.Managed).sql +++ b/Oracle.18.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.18.Managed).sql @@ -7,7 +7,14 @@ SELECT d."Distributor_Name", cp."Street_Number", cp."Street_Name", - c_1."City_Name", + ( + SELECT + c_1."City_Name" + FROM + "Cities" c_1 + WHERE + c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL + ), cp."State", cp."Zip_Code", cp."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" dcp ON d."Distributor_Id" = dcp."Distributor_Id" INNER JOIN "Commercial_Property" cp ON dcp."Commercial_Property_Id" = cp."Commercial_Property_Id" INNER JOIN "Contract_Dates" cd ON cda."Contract_Id" = cd."Contract_Id" - INNER JOIN "Cities" c_1 ON c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL WHERE cda."Contract_Id" = 198827882 AND cda."Distributor_Type_Code" = 'CC' AND diff --git a/Oracle.18.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.18.Managed).sql b/Oracle.18.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.18.Managed).sql index e35d60caf5b6..3dd496d0bc18 100644 --- a/Oracle.18.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.18.Managed).sql +++ b/Oracle.18.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.18.Managed).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" = 1 AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) = 1 diff --git a/Oracle.18.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.18.Managed).sql b/Oracle.18.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.18.Managed).sql index bccae01637c7..d8642849c2c2 100644 --- a/Oracle.18.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.18.Managed).sql +++ b/Oracle.18.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.18.Managed).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3."cond" + ) ) ORDER BY t1."PersonID" diff --git a/Oracle.18.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.18.Managed).sql b/Oracle.18.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.18.Managed).sql index e6576ff0793e..33e20f7a4604 100644 --- a/Oracle.18.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.18.Managed).sql +++ b/Oracle.18.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.18.Managed).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2."cond" + ) ) ORDER BY p."PersonID" diff --git a/Oracle.18.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.18.Managed).sql b/Oracle.18.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.18.Managed).sql index dce26f73f3e1..9949fd7ec1f3 100644 --- a/Oracle.18.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.18.Managed).sql +++ b/Oracle.18.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.18.Managed).sql @@ -15,15 +15,14 @@ WHEN 1 = 1 THEN ) SELECT s.ID as "source_A", - t1.ID as "source_B" + ( + SELECT + x.ID + FROM + "Dest2" x + WHERE + x.ID > 5 AND ROWNUM <= 1 + ) as "source_B" FROM "TestSource" s - CROSS JOIN ( - SELECT - x.ID - FROM - "Dest2" x - WHERE - x.ID > 5 AND ROWNUM <= 1 - ) t1 From b2dfc3c30e9b43b496e7a4d93126f3faeca0e74a Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Mon, 24 Feb 2025 14:28:44 +0100 Subject: [PATCH 38/40] [Linux / Oracle 21c] baselines --- ...Test1(Oracle.21.Managed.LinqService,1).sql | 63 ++++++++-------- ...Test1(Oracle.21.Managed.LinqService,2).sql | 63 ++++++++-------- ...oSelect(Oracle.21.Managed.LinqService).sql | 75 ++++++++++++++----- ...wSelect(Oracle.21.Managed.LinqService).sql | 52 +++---------- ...ubquery(Oracle.21.Managed.LinqService).sql | 12 ++- ...Filter1(Oracle.21.Managed.LinqService).sql | 22 +++--- ...Filter2(Oracle.21.Managed.LinqService).sql | 26 +++---- ...sue2990(Oracle.21.Managed.LinqService).sql | 17 ++--- ...s.ComparisonTest1(Oracle.21.Managed,1).sql | 63 ++++++++-------- ...s.ComparisonTest1(Oracle.21.Managed,2).sql | 63 ++++++++-------- ...Tests.EqualToSelect(Oracle.21.Managed).sql | 75 ++++++++++++++----- ...sts.UpdateRowSelect(Oracle.21.Managed).sql | 52 +++---------- ...Tests.Issue383Test2(Oracle.21.Managed).sql | 10 ++- ...sts.BooleanSubquery(Oracle.21.Managed).sql | 12 ++- ...sue_SubQueryFilter1(Oracle.21.Managed).sql | 22 +++--- ...sue_SubQueryFilter2(Oracle.21.Managed).sql | 26 +++---- ...sertTests.Issue2990(Oracle.21.Managed).sql | 17 ++--- 17 files changed, 338 insertions(+), 332 deletions(-) diff --git a/Oracle.21.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed.LinqService,1).sql b/Oracle.21.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed.LinqService,1).sql index b4e29f34ef39..8129995441c2 100644 --- a/Oracle.21.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed.LinqService,1).sql +++ b/Oracle.21.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed.LinqService,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.21.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed.LinqService,2).sql b/Oracle.21.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed.LinqService,2).sql index b4e29f34ef39..8129995441c2 100644 --- a/Oracle.21.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed.LinqService,2).sql +++ b/Oracle.21.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed.LinqService,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.21.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.21.Managed.LinqService).sql b/Oracle.21.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.21.Managed.LinqService).sql index a1d3c00e0be2..faebaef1ba61 100644 --- a/Oracle.21.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.21.Managed.LinqService).sql +++ b/Oracle.21.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.21.Managed.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.21.Managed Oracle.Managed Oracle12 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.21.Managed Oracle.Managed Oracle12 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = ((x."One", x."Two", x."Three")) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.21.Managed Oracle.Managed Oracle12 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.21.Managed Oracle.Managed Oracle12 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/Oracle.21.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.21.Managed.LinqService).sql b/Oracle.21.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.21.Managed.LinqService).sql index 3292ea2f8c60..bac78a3648a3 100644 --- a/Oracle.21.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.21.Managed.LinqService).sql +++ b/Oracle.21.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.21.Managed.LinqService).sql @@ -2,60 +2,26 @@ -- Oracle.21.Managed Oracle.Managed Oracle12 UPDATE - "Ints" + "Ints" i SET - "One" = "Ints"."Two" * 5, + "One" = i."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - j_1."Three" * 100 + i."Two" * 10, + j."Three" * 100 FROM - "Ints" i_1, - "Ints" j_1 + "Ints" j WHERE - i_1."One" = 10 AND - j_1."One" = 1 AND - "Ints"."One" = i_1."One" AND - "Ints"."Two" = i_1."Two" AND - "Ints"."Three" = i_1."Three" AND - "Ints"."Four" = i_1."Four" AND - "Ints"."Five" = i_1."Five" AND - ("Ints"."Nil" = i_1."Nil" OR "Ints"."Nil" IS NULL AND i_1."Nil" IS NULL) + j."One" = 1 ), ("Four", "Nil") = ( SELECT - "Ints"."One" * "Ints"."Four", + i."One" * i."Four", 600 - FROM - "Ints" i_2, - "Ints" j_2 - WHERE - i_2."One" = 10 AND - j_2."One" = 1 AND - "Ints"."One" = i_2."One" AND - "Ints"."Two" = i_2."Two" AND - "Ints"."Three" = i_2."Three" AND - "Ints"."Four" = i_2."Four" AND - "Ints"."Five" = i_2."Five" AND - ("Ints"."Nil" = i_2."Nil" OR "Ints"."Nil" IS NULL AND i_2."Nil" IS NULL) + FROM SYS.DUAL ) WHERE - EXISTS( - SELECT - * - FROM - "Ints" i, - "Ints" j - WHERE - i."One" = 10 AND - j."One" = 1 AND - "Ints"."One" = i."One" AND - "Ints"."Two" = i."Two" AND - "Ints"."Three" = i."Three" AND - "Ints"."Four" = i."Four" AND - "Ints"."Five" = i."Five" AND - ("Ints"."Nil" = i."Nil" OR "Ints"."Nil" IS NULL AND i."Nil" IS NULL) - ) + i."One" = 10 BeforeExecute -- Oracle.21.Managed Oracle.Managed Oracle12 diff --git a/Oracle.21.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.21.Managed.LinqService).sql b/Oracle.21.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.21.Managed.LinqService).sql index 46852fbad89b..194ecd619a77 100644 --- a/Oracle.21.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.21.Managed.LinqService).sql +++ b/Oracle.21.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.21.Managed.LinqService).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" = 1 AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) = 1 diff --git a/Oracle.21.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.21.Managed.LinqService).sql b/Oracle.21.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.21.Managed.LinqService).sql index 707dad7036cb..cb40252082b7 100644 --- a/Oracle.21.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.21.Managed.LinqService).sql +++ b/Oracle.21.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.21.Managed.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3."cond" + ) ) ORDER BY t1."PersonID" diff --git a/Oracle.21.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.21.Managed.LinqService).sql b/Oracle.21.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.21.Managed.LinqService).sql index 54e84227ab73..ad5d4877675e 100644 --- a/Oracle.21.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.21.Managed.LinqService).sql +++ b/Oracle.21.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.21.Managed.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2."cond" + ) ) ORDER BY p."PersonID" diff --git a/Oracle.21.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.21.Managed.LinqService).sql b/Oracle.21.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.21.Managed.LinqService).sql index 5c890e055c7d..a2c1d1b297bb 100644 --- a/Oracle.21.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.21.Managed.LinqService).sql +++ b/Oracle.21.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.21.Managed.LinqService).sql @@ -15,15 +15,14 @@ WHEN 1 = 1 THEN ) SELECT s.ID as "source_A", - t1.ID as "source_B" + ( + SELECT + x.ID + FROM + "Dest2" x + WHERE + x.ID > 5 AND ROWNUM <= 1 + ) as "source_B" FROM "TestSource" s - CROSS JOIN ( - SELECT - x.ID - FROM - "Dest2" x - WHERE - x.ID > 5 AND ROWNUM <= 1 - ) t1 diff --git a/Oracle.21.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed,1).sql b/Oracle.21.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed,1).sql index b4e29f34ef39..8129995441c2 100644 --- a/Oracle.21.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed,1).sql +++ b/Oracle.21.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.21.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed,2).sql b/Oracle.21.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed,2).sql index b4e29f34ef39..8129995441c2 100644 --- a/Oracle.21.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed,2).sql +++ b/Oracle.21.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.21.Managed,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.21.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.21.Managed).sql b/Oracle.21.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.21.Managed).sql index a1d3c00e0be2..faebaef1ba61 100644 --- a/Oracle.21.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.21.Managed).sql +++ b/Oracle.21.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.21.Managed).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.21.Managed Oracle.Managed Oracle12 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.21.Managed Oracle.Managed Oracle12 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = ((x."One", x."Two", x."Three")) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.21.Managed Oracle.Managed Oracle12 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.21.Managed Oracle.Managed Oracle12 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/Oracle.21.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.21.Managed).sql b/Oracle.21.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.21.Managed).sql index 3292ea2f8c60..bac78a3648a3 100644 --- a/Oracle.21.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.21.Managed).sql +++ b/Oracle.21.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.21.Managed).sql @@ -2,60 +2,26 @@ -- Oracle.21.Managed Oracle.Managed Oracle12 UPDATE - "Ints" + "Ints" i SET - "One" = "Ints"."Two" * 5, + "One" = i."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - j_1."Three" * 100 + i."Two" * 10, + j."Three" * 100 FROM - "Ints" i_1, - "Ints" j_1 + "Ints" j WHERE - i_1."One" = 10 AND - j_1."One" = 1 AND - "Ints"."One" = i_1."One" AND - "Ints"."Two" = i_1."Two" AND - "Ints"."Three" = i_1."Three" AND - "Ints"."Four" = i_1."Four" AND - "Ints"."Five" = i_1."Five" AND - ("Ints"."Nil" = i_1."Nil" OR "Ints"."Nil" IS NULL AND i_1."Nil" IS NULL) + j."One" = 1 ), ("Four", "Nil") = ( SELECT - "Ints"."One" * "Ints"."Four", + i."One" * i."Four", 600 - FROM - "Ints" i_2, - "Ints" j_2 - WHERE - i_2."One" = 10 AND - j_2."One" = 1 AND - "Ints"."One" = i_2."One" AND - "Ints"."Two" = i_2."Two" AND - "Ints"."Three" = i_2."Three" AND - "Ints"."Four" = i_2."Four" AND - "Ints"."Five" = i_2."Five" AND - ("Ints"."Nil" = i_2."Nil" OR "Ints"."Nil" IS NULL AND i_2."Nil" IS NULL) + FROM SYS.DUAL ) WHERE - EXISTS( - SELECT - * - FROM - "Ints" i, - "Ints" j - WHERE - i."One" = 10 AND - j."One" = 1 AND - "Ints"."One" = i."One" AND - "Ints"."Two" = i."Two" AND - "Ints"."Three" = i."Three" AND - "Ints"."Four" = i."Four" AND - "Ints"."Five" = i."Five" AND - ("Ints"."Nil" = i."Nil" OR "Ints"."Nil" IS NULL AND i."Nil" IS NULL) - ) + i."One" = 10 BeforeExecute -- Oracle.21.Managed Oracle.Managed Oracle12 diff --git a/Oracle.21.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.21.Managed).sql b/Oracle.21.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.21.Managed).sql index 2dbcd1cb6d63..37f13cff6dcf 100644 --- a/Oracle.21.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.21.Managed).sql +++ b/Oracle.21.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.21.Managed).sql @@ -7,7 +7,14 @@ SELECT d."Distributor_Name", cp."Street_Number", cp."Street_Name", - c_1."City_Name", + ( + SELECT + c_1."City_Name" + FROM + "Cities" c_1 + WHERE + c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL + ), cp."State", cp."Zip_Code", cp."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" dcp ON d."Distributor_Id" = dcp."Distributor_Id" INNER JOIN "Commercial_Property" cp ON dcp."Commercial_Property_Id" = cp."Commercial_Property_Id" INNER JOIN "Contract_Dates" cd ON cda."Contract_Id" = cd."Contract_Id" - INNER JOIN "Cities" c_1 ON c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL WHERE cda."Contract_Id" = 198827882 AND cda."Distributor_Type_Code" = 'CC' AND diff --git a/Oracle.21.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.21.Managed).sql b/Oracle.21.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.21.Managed).sql index 46852fbad89b..194ecd619a77 100644 --- a/Oracle.21.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.21.Managed).sql +++ b/Oracle.21.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.21.Managed).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" = 1 AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) = 1 diff --git a/Oracle.21.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.21.Managed).sql b/Oracle.21.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.21.Managed).sql index 707dad7036cb..cb40252082b7 100644 --- a/Oracle.21.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.21.Managed).sql +++ b/Oracle.21.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.21.Managed).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3."cond" + ) ) ORDER BY t1."PersonID" diff --git a/Oracle.21.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.21.Managed).sql b/Oracle.21.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.21.Managed).sql index 54e84227ab73..ad5d4877675e 100644 --- a/Oracle.21.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.21.Managed).sql +++ b/Oracle.21.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.21.Managed).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2."cond" + ) ) ORDER BY p."PersonID" diff --git a/Oracle.21.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.21.Managed).sql b/Oracle.21.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.21.Managed).sql index 5c890e055c7d..a2c1d1b297bb 100644 --- a/Oracle.21.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.21.Managed).sql +++ b/Oracle.21.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.21.Managed).sql @@ -15,15 +15,14 @@ WHEN 1 = 1 THEN ) SELECT s.ID as "source_A", - t1.ID as "source_B" + ( + SELECT + x.ID + FROM + "Dest2" x + WHERE + x.ID > 5 AND ROWNUM <= 1 + ) as "source_B" FROM "TestSource" s - CROSS JOIN ( - SELECT - x.ID - FROM - "Dest2" x - WHERE - x.ID > 5 AND ROWNUM <= 1 - ) t1 From 63c64677a26ca1d0a54cb424a8c53eb4631e4152 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Mon, 24 Feb 2025 13:36:23 +0000 Subject: [PATCH 39/40] [Linux / Sybase ASE 16] baselines --- ...sonTest1(Sybase.Managed.LinqService,1).sql | 23 +++++++++---------- ...sonTest1(Sybase.Managed.LinqService,2).sql | 23 +++++++++---------- ...anSubquery(Sybase.Managed.LinqService).sql | 12 +++++++--- ...ests.ComparisonTest1(Sybase.Managed,1).sql | 23 +++++++++---------- ...ests.ComparisonTest1(Sybase.Managed,2).sql | 23 +++++++++---------- ...eryTests.Issue383Test2(Sybase.Managed).sql | 10 ++++++-- ...eTests.BooleanSubquery(Sybase.Managed).sql | 12 +++++++--- 7 files changed, 70 insertions(+), 56 deletions(-) diff --git a/Sybase.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed.LinqService,1).sql b/Sybase.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed.LinqService,1).sql index 3939d8ecca74..9c0335c1eb22 100644 --- a/Sybase.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed.LinqService,1).sql +++ b/Sybase.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed.LinqService,1).sql @@ -11,10 +11,11 @@ SELECT SELECT * FROM - [Person] [t1], + [Person] [t1] + WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -26,24 +27,22 @@ SELECT WHERE [t3].[PersonID] = @personId_1 ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = @personId_1 AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = @personId + [t5].[PersonID] = @personId ) - ) [t7] - WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 ) THEN 1 ELSE 0 diff --git a/Sybase.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed.LinqService,2).sql b/Sybase.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed.LinqService,2).sql index 3939d8ecca74..9c0335c1eb22 100644 --- a/Sybase.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed.LinqService,2).sql +++ b/Sybase.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed.LinqService,2).sql @@ -11,10 +11,11 @@ SELECT SELECT * FROM - [Person] [t1], + [Person] [t1] + WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -26,24 +27,22 @@ SELECT WHERE [t3].[PersonID] = @personId_1 ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = @personId_1 AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = @personId + [t5].[PersonID] = @personId ) - ) [t7] - WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 ) THEN 1 ELSE 0 diff --git a/Sybase.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Sybase.Managed.LinqService).sql b/Sybase.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Sybase.Managed.LinqService).sql index ae40791efa79..caf12b9faa44 100644 --- a/Sybase.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Sybase.Managed.LinqService).sql +++ b/Sybase.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Sybase.Managed.LinqService).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 diff --git a/Sybase.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed,1).sql b/Sybase.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed,1).sql index 3939d8ecca74..9c0335c1eb22 100644 --- a/Sybase.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed,1).sql +++ b/Sybase.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed,1).sql @@ -11,10 +11,11 @@ SELECT SELECT * FROM - [Person] [t1], + [Person] [t1] + WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -26,24 +27,22 @@ SELECT WHERE [t3].[PersonID] = @personId_1 ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = @personId_1 AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = @personId + [t5].[PersonID] = @personId ) - ) [t7] - WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 ) THEN 1 ELSE 0 diff --git a/Sybase.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed,2).sql b/Sybase.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed,2).sql index 3939d8ecca74..9c0335c1eb22 100644 --- a/Sybase.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed,2).sql +++ b/Sybase.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Sybase.Managed,2).sql @@ -11,10 +11,11 @@ SELECT SELECT * FROM - [Person] [t1], + [Person] [t1] + WHERE ( SELECT - COUNT([t2].[PersonID]) as [cond] + COUNT([t2].[PersonID]) FROM [Patient] [t2] WHERE @@ -26,24 +27,22 @@ SELECT WHERE [t3].[PersonID] = @personId_1 ) - ) [t4], + ) = 0 AND ( SELECT - COUNT([t5].[PersonID]) as [cond] + COUNT([t4].[PersonID]) FROM - [Patient] [t5] + [Patient] [t4] WHERE - [t5].[PersonID] = @personId_1 AND [t5].[PersonID] NOT IN ( + [t4].[PersonID] = @personId_1 AND [t4].[PersonID] NOT IN ( SELECT - [t6].[PersonID] + [t5].[PersonID] FROM - [Patient] [t6] + [Patient] [t5] WHERE - [t6].[PersonID] = @personId + [t5].[PersonID] = @personId ) - ) [t7] - WHERE - [t4].[cond] = 0 AND [t7].[cond] = 0 + ) = 0 ) THEN 1 ELSE 0 diff --git a/Sybase.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Sybase.Managed).sql b/Sybase.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Sybase.Managed).sql index 104f1f4ede01..9b79aaacce8c 100644 --- a/Sybase.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Sybase.Managed).sql +++ b/Sybase.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Sybase.Managed).sql @@ -7,7 +7,14 @@ SELECT [d].[Distributor_Name], [cp].[Street_Number], [cp].[Street_Name], - [c_1].[City_Name], + ( + SELECT + [c_1].[City_Name] + FROM + [Cities] [c_1] + WHERE + [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL + ), [cp].[State], [cp].[Zip_Code], [cp].[Zip_Plus_4], @@ -19,7 +26,6 @@ FROM INNER JOIN Distributor_Commercial_Propert [dcp] ON [d].[Distributor_Id] = [dcp].[Distributor_Id] INNER JOIN [Commercial_Property] [cp] ON [dcp].[Commercial_Property_Id] = [cp].[Commercial_Property_Id] INNER JOIN [Contract_Dates] [cd] ON [cda].[Contract_Id] = [cd].[Contract_Id] - INNER JOIN [Cities] [c_1] ON [c_1].[City_Code] = [cp].[City_Code] OR [c_1].[City_Code] IS NULL AND [cp].[City_Code] IS NULL WHERE [cda].[Contract_Id] = 198827882 AND [cda].[Distributor_Type_Code] = 'CC' AND diff --git a/Sybase.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Sybase.Managed).sql b/Sybase.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Sybase.Managed).sql index ae40791efa79..caf12b9faa44 100644 --- a/Sybase.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Sybase.Managed).sql +++ b/Sybase.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Sybase.Managed).sql @@ -5,8 +5,14 @@ SELECT [t].[Id], [t].[BoolValue] FROM - [WhereWithBool] [t], - [WhereWithBool] [x] + [WhereWithBool] [t] WHERE - [x].[BoolValue] = 1 AND [x].[Id] = 1 + ( + SELECT + [x].[BoolValue] + FROM + [WhereWithBool] [x] + WHERE + [x].[Id] = 1 + ) = 1 From 9bc2a207bd3967af5385b5d32ab2d75304068d03 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Mon, 24 Feb 2025 14:45:32 +0100 Subject: [PATCH 40/40] [Linux / Oracle 19c] baselines --- ...Test1(Oracle.19.Managed.LinqService,1).sql | 63 ++++++++-------- ...Test1(Oracle.19.Managed.LinqService,2).sql | 63 ++++++++-------- ...oSelect(Oracle.19.Managed.LinqService).sql | 75 ++++++++++++++----- ...wSelect(Oracle.19.Managed.LinqService).sql | 52 +++---------- ...ubquery(Oracle.19.Managed.LinqService).sql | 12 ++- ...Filter1(Oracle.19.Managed.LinqService).sql | 22 +++--- ...Filter2(Oracle.19.Managed.LinqService).sql | 26 +++---- ...sue2990(Oracle.19.Managed.LinqService).sql | 17 ++--- ...s.ComparisonTest1(Oracle.19.Managed,1).sql | 63 ++++++++-------- ...s.ComparisonTest1(Oracle.19.Managed,2).sql | 63 ++++++++-------- ...Tests.EqualToSelect(Oracle.19.Managed).sql | 75 ++++++++++++++----- ...sts.UpdateRowSelect(Oracle.19.Managed).sql | 52 +++---------- ...Tests.Issue383Test2(Oracle.19.Managed).sql | 10 ++- ...sts.BooleanSubquery(Oracle.19.Managed).sql | 12 ++- ...sue_SubQueryFilter1(Oracle.19.Managed).sql | 22 +++--- ...sue_SubQueryFilter2(Oracle.19.Managed).sql | 26 +++---- ...sertTests.Issue2990(Oracle.19.Managed).sql | 17 ++--- 17 files changed, 338 insertions(+), 332 deletions(-) diff --git a/Oracle.19.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed.LinqService,1).sql b/Oracle.19.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed.LinqService,1).sql index 9f7afbd57496..ee253915affa 100644 --- a/Oracle.19.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed.LinqService,1).sql +++ b/Oracle.19.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed.LinqService,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.19.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed.LinqService,2).sql b/Oracle.19.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed.LinqService,2).sql index 9f7afbd57496..ee253915affa 100644 --- a/Oracle.19.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed.LinqService,2).sql +++ b/Oracle.19.Managed.LinqService/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed.LinqService,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.19.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.19.Managed.LinqService).sql b/Oracle.19.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.19.Managed.LinqService).sql index 92406b0ef2a6..1e0ed9e38192 100644 --- a/Oracle.19.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.19.Managed.LinqService).sql +++ b/Oracle.19.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.19.Managed.LinqService).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.19.Managed Oracle.Managed Oracle12 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.19.Managed Oracle.Managed Oracle12 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = ((x."One", x."Two", x."Three")) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.19.Managed Oracle.Managed Oracle12 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.19.Managed Oracle.Managed Oracle12 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/Oracle.19.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.19.Managed.LinqService).sql b/Oracle.19.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.19.Managed.LinqService).sql index a523f36f1487..a8a38021fcde 100644 --- a/Oracle.19.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.19.Managed.LinqService).sql +++ b/Oracle.19.Managed.LinqService/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.19.Managed.LinqService).sql @@ -2,60 +2,26 @@ -- Oracle.19.Managed Oracle.Managed Oracle12 UPDATE - "Ints" + "Ints" i SET - "One" = "Ints"."Two" * 5, + "One" = i."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - j_1."Three" * 100 + i."Two" * 10, + j."Three" * 100 FROM - "Ints" i_1, - "Ints" j_1 + "Ints" j WHERE - i_1."One" = 10 AND - j_1."One" = 1 AND - "Ints"."One" = i_1."One" AND - "Ints"."Two" = i_1."Two" AND - "Ints"."Three" = i_1."Three" AND - "Ints"."Four" = i_1."Four" AND - "Ints"."Five" = i_1."Five" AND - ("Ints"."Nil" = i_1."Nil" OR "Ints"."Nil" IS NULL AND i_1."Nil" IS NULL) + j."One" = 1 ), ("Four", "Nil") = ( SELECT - "Ints"."One" * "Ints"."Four", + i."One" * i."Four", 600 - FROM - "Ints" i_2, - "Ints" j_2 - WHERE - i_2."One" = 10 AND - j_2."One" = 1 AND - "Ints"."One" = i_2."One" AND - "Ints"."Two" = i_2."Two" AND - "Ints"."Three" = i_2."Three" AND - "Ints"."Four" = i_2."Four" AND - "Ints"."Five" = i_2."Five" AND - ("Ints"."Nil" = i_2."Nil" OR "Ints"."Nil" IS NULL AND i_2."Nil" IS NULL) + FROM SYS.DUAL ) WHERE - EXISTS( - SELECT - * - FROM - "Ints" i, - "Ints" j - WHERE - i."One" = 10 AND - j."One" = 1 AND - "Ints"."One" = i."One" AND - "Ints"."Two" = i."Two" AND - "Ints"."Three" = i."Three" AND - "Ints"."Four" = i."Four" AND - "Ints"."Five" = i."Five" AND - ("Ints"."Nil" = i."Nil" OR "Ints"."Nil" IS NULL AND i."Nil" IS NULL) - ) + i."One" = 10 BeforeExecute -- Oracle.19.Managed Oracle.Managed Oracle12 diff --git a/Oracle.19.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.19.Managed.LinqService).sql b/Oracle.19.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.19.Managed.LinqService).sql index 0aeb7e90d492..06a054ecede0 100644 --- a/Oracle.19.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.19.Managed.LinqService).sql +++ b/Oracle.19.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.19.Managed.LinqService).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" = 1 AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) = 1 diff --git a/Oracle.19.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.19.Managed.LinqService).sql b/Oracle.19.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.19.Managed.LinqService).sql index f308d8c3a727..e310a2eadc7f 100644 --- a/Oracle.19.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.19.Managed.LinqService).sql +++ b/Oracle.19.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.19.Managed.LinqService).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3."cond" + ) ) ORDER BY t1."PersonID" diff --git a/Oracle.19.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.19.Managed.LinqService).sql b/Oracle.19.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.19.Managed.LinqService).sql index 0ed58e69f346..b9bf863c7314 100644 --- a/Oracle.19.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.19.Managed.LinqService).sql +++ b/Oracle.19.Managed.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.19.Managed.LinqService).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2."cond" + ) ) ORDER BY p."PersonID" diff --git a/Oracle.19.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.19.Managed.LinqService).sql b/Oracle.19.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.19.Managed.LinqService).sql index cb9778693628..a2fbbbc23a14 100644 --- a/Oracle.19.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.19.Managed.LinqService).sql +++ b/Oracle.19.Managed.LinqService/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.19.Managed.LinqService).sql @@ -15,15 +15,14 @@ WHEN 1 = 1 THEN ) SELECT s.ID as "source_A", - t1.ID as "source_B" + ( + SELECT + x.ID + FROM + "Dest2" x + WHERE + x.ID > 5 AND ROWNUM <= 1 + ) as "source_B" FROM "TestSource" s - CROSS JOIN ( - SELECT - x.ID - FROM - "Dest2" x - WHERE - x.ID > 5 AND ROWNUM <= 1 - ) t1 diff --git a/Oracle.19.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed,1).sql b/Oracle.19.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed,1).sql index 9f7afbd57496..ee253915affa 100644 --- a/Oracle.19.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed,1).sql +++ b/Oracle.19.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed,1).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.19.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed,2).sql b/Oracle.19.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed,2).sql index 9f7afbd57496..ee253915affa 100644 --- a/Oracle.19.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed,2).sql +++ b/Oracle.19.Managed/Tests/Linq/ExpressionsTests/Tests.Linq.ExpressionsTests.ComparisonTest1(Oracle.19.Managed,2).sql @@ -11,39 +11,38 @@ SELECT SELECT * FROM - "Person" t7 - CROSS JOIN ( - SELECT - COUNT(t1."PersonID") as "cond" - FROM - "Patient" t1 - WHERE - t1."PersonID" = :personId AND t1."PersonID" NOT IN ( - SELECT - t2."PersonID" - FROM - "Patient" t2 - WHERE - t2."PersonID" = :personId_1 - ) - ) t3 - CROSS JOIN ( - SELECT - COUNT(t4."PersonID") as "cond" - FROM - "Patient" t4 - WHERE - t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( - SELECT - t5."PersonID" - FROM - "Patient" t5 - WHERE - t5."PersonID" = :personId - ) - ) t6 + "Person" t1 WHERE - t3."cond" = 0 AND t6."cond" = 0 + ( + SELECT + COUNT(t2."PersonID") + FROM + "Patient" t2 + WHERE + t2."PersonID" = :personId AND t2."PersonID" NOT IN ( + SELECT + t3."PersonID" + FROM + "Patient" t3 + WHERE + t3."PersonID" = :personId_1 + ) + ) = 0 AND + ( + SELECT + COUNT(t4."PersonID") + FROM + "Patient" t4 + WHERE + t4."PersonID" = :personId_1 AND t4."PersonID" NOT IN ( + SELECT + t5."PersonID" + FROM + "Patient" t5 + WHERE + t5."PersonID" = :personId + ) + ) = 0 ) THEN 1 ELSE 0 diff --git a/Oracle.19.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.19.Managed).sql b/Oracle.19.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.19.Managed).sql index 92406b0ef2a6..1e0ed9e38192 100644 --- a/Oracle.19.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.19.Managed).sql +++ b/Oracle.19.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.EqualToSelect(Oracle.19.Managed).sql @@ -4,11 +4,18 @@ SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.19.Managed Oracle.Managed Oracle12 @@ -16,11 +23,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") = ((y."One", y."One" + 1, 3)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.19.Managed Oracle.Managed Oracle12 @@ -28,11 +42,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (y."One", y."One" + 1, 3) = ((x."One", x."Two", x."Three")) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") = ( + SELECT + y."One", + y."One" + 1, + 3 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.19.Managed Oracle.Managed Oracle12 @@ -40,11 +61,18 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) BeforeExecute -- Oracle.19.Managed Oracle.Managed Oracle12 @@ -52,9 +80,16 @@ BeforeExecute SELECT COUNT(*) FROM - "Ints" x, - "Ints2" y + "Ints" x WHERE - (x."One", x."Two", x."Three") <> ((y."One", y."One" + 1, 4)) AND - y."Nil" IS NULL + (x."One", x."Two", x."Three") <> ( + SELECT + y."One", + y."One" + 1, + 4 + FROM + "Ints2" y + WHERE + y."Nil" IS NULL + ) diff --git a/Oracle.19.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.19.Managed).sql b/Oracle.19.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.19.Managed).sql index a523f36f1487..a8a38021fcde 100644 --- a/Oracle.19.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.19.Managed).sql +++ b/Oracle.19.Managed/Tests/Linq/SqlRowTests/Tests.Linq.SqlRowTests.UpdateRowSelect(Oracle.19.Managed).sql @@ -2,60 +2,26 @@ -- Oracle.19.Managed Oracle.Managed Oracle12 UPDATE - "Ints" + "Ints" i SET - "One" = "Ints"."Two" * 5, + "One" = i."Two" * 5, ("Two", "Three") = ( SELECT - "Ints"."Two" * 10, - j_1."Three" * 100 + i."Two" * 10, + j."Three" * 100 FROM - "Ints" i_1, - "Ints" j_1 + "Ints" j WHERE - i_1."One" = 10 AND - j_1."One" = 1 AND - "Ints"."One" = i_1."One" AND - "Ints"."Two" = i_1."Two" AND - "Ints"."Three" = i_1."Three" AND - "Ints"."Four" = i_1."Four" AND - "Ints"."Five" = i_1."Five" AND - ("Ints"."Nil" = i_1."Nil" OR "Ints"."Nil" IS NULL AND i_1."Nil" IS NULL) + j."One" = 1 ), ("Four", "Nil") = ( SELECT - "Ints"."One" * "Ints"."Four", + i."One" * i."Four", 600 - FROM - "Ints" i_2, - "Ints" j_2 - WHERE - i_2."One" = 10 AND - j_2."One" = 1 AND - "Ints"."One" = i_2."One" AND - "Ints"."Two" = i_2."Two" AND - "Ints"."Three" = i_2."Three" AND - "Ints"."Four" = i_2."Four" AND - "Ints"."Five" = i_2."Five" AND - ("Ints"."Nil" = i_2."Nil" OR "Ints"."Nil" IS NULL AND i_2."Nil" IS NULL) + FROM SYS.DUAL ) WHERE - EXISTS( - SELECT - * - FROM - "Ints" i, - "Ints" j - WHERE - i."One" = 10 AND - j."One" = 1 AND - "Ints"."One" = i."One" AND - "Ints"."Two" = i."Two" AND - "Ints"."Three" = i."Three" AND - "Ints"."Four" = i."Four" AND - "Ints"."Five" = i."Five" AND - ("Ints"."Nil" = i."Nil" OR "Ints"."Nil" IS NULL AND i."Nil" IS NULL) - ) + i."One" = 10 BeforeExecute -- Oracle.19.Managed Oracle.Managed Oracle12 diff --git a/Oracle.19.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.19.Managed).sql b/Oracle.19.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.19.Managed).sql index 4ba98f047013..5e7b3b211c3b 100644 --- a/Oracle.19.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.19.Managed).sql +++ b/Oracle.19.Managed/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.Issue383Test2(Oracle.19.Managed).sql @@ -7,7 +7,14 @@ SELECT d."Distributor_Name", cp."Street_Number", cp."Street_Name", - c_1."City_Name", + ( + SELECT + c_1."City_Name" + FROM + "Cities" c_1 + WHERE + c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL + ), cp."State", cp."Zip_Code", cp."Zip_Plus_4", @@ -19,7 +26,6 @@ FROM INNER JOIN "Distributor_Commercial_Propert" dcp ON d."Distributor_Id" = dcp."Distributor_Id" INNER JOIN "Commercial_Property" cp ON dcp."Commercial_Property_Id" = cp."Commercial_Property_Id" INNER JOIN "Contract_Dates" cd ON cda."Contract_Id" = cd."Contract_Id" - INNER JOIN "Cities" c_1 ON c_1."City_Code" = cp."City_Code" OR c_1."City_Code" IS NULL AND cp."City_Code" IS NULL WHERE cda."Contract_Id" = 198827882 AND cda."Distributor_Type_Code" = 'CC' AND diff --git a/Oracle.19.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.19.Managed).sql b/Oracle.19.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.19.Managed).sql index 0aeb7e90d492..06a054ecede0 100644 --- a/Oracle.19.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.19.Managed).sql +++ b/Oracle.19.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BooleanSubquery(Oracle.19.Managed).sql @@ -5,8 +5,14 @@ SELECT t."Id", t."BoolValue" FROM - "WhereWithBool" t, - "WhereWithBool" x + "WhereWithBool" t WHERE - x."BoolValue" = 1 AND x."Id" = 1 + ( + SELECT + x."BoolValue" + FROM + "WhereWithBool" x + WHERE + x."Id" = 1 + ) = 1 diff --git a/Oracle.19.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.19.Managed).sql b/Oracle.19.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.19.Managed).sql index f308d8c3a727..e310a2eadc7f 100644 --- a/Oracle.19.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.19.Managed).sql +++ b/Oracle.19.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter1(Oracle.19.Managed).sql @@ -15,31 +15,29 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e."FirstName" LIKE :filter1 ESCAPE '~' AND e."PersonID" = t2."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t3 - WHERE - e_1."FirstName" LIKE :filter2 ESCAPE '~' AND e_1."PersonID" = t3."cond" + ) ) ORDER BY t1."PersonID" diff --git a/Oracle.19.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.19.Managed).sql b/Oracle.19.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.19.Managed).sql index 0ed58e69f346..b9bf863c7314 100644 --- a/Oracle.19.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.19.Managed).sql +++ b/Oracle.19.Managed/Tests/Linq/WhereTests/Tests.Linq.WhereTests.Issue_SubQueryFilter2(Oracle.19.Managed).sql @@ -15,33 +15,31 @@ WHERE SELECT * FROM - "Person" e, - ( + "Person" e + WHERE + e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND + e."PersonID" = ( SELECT - d."PersonID" as "cond" + d."PersonID" FROM "Patient" d FETCH NEXT 1 ROWS ONLY - ) t1 - WHERE - e."PersonID" = p."PersonID" AND e."FirstName" LIKE :filter1 ESCAPE '~' AND - e."PersonID" = t1."cond" + ) ) OR EXISTS( SELECT * FROM - "Person" e_1, - ( + "Person" e_1 + WHERE + e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND + e_1."PersonID" = ( SELECT - d_1."PersonID" as "cond" + d_1."PersonID" FROM "Patient" d_1 FETCH NEXT 1 ROWS ONLY - ) t2 - WHERE - e_1."PersonID" = p."PersonID" AND e_1."FirstName" LIKE :filter2 ESCAPE '~' AND - e_1."PersonID" = t2."cond" + ) ) ORDER BY p."PersonID" diff --git a/Oracle.19.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.19.Managed).sql b/Oracle.19.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.19.Managed).sql index cb9778693628..a2fbbbc23a14 100644 --- a/Oracle.19.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.19.Managed).sql +++ b/Oracle.19.Managed/Tests/xUpdate/MultiInsertTests/Tests.xUpdate.MultiInsertTests.Issue2990(Oracle.19.Managed).sql @@ -15,15 +15,14 @@ WHEN 1 = 1 THEN ) SELECT s.ID as "source_A", - t1.ID as "source_B" + ( + SELECT + x.ID + FROM + "Dest2" x + WHERE + x.ID > 5 AND ROWNUM <= 1 + ) as "source_B" FROM "TestSource" s - CROSS JOIN ( - SELECT - x.ID - FROM - "Dest2" x - WHERE - x.ID > 5 AND ROWNUM <= 1 - ) t1