From bdef225dddc6244ed4391cdd96cffcf7a967b6ff Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 18:40:40 +0000 Subject: [PATCH 01/40] [Windows / SQL CE] baselines --- ...nTests.NullableCoalesceJoinTest(SqlCe).sql | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 SqlCe/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlCe).sql diff --git a/SqlCe/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlCe).sql b/SqlCe/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlCe).sql new file mode 100644 index 000000000000..d80ba24235bf --- /dev/null +++ b/SqlCe/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlCe).sql @@ -0,0 +1,113 @@ +BeforeExecute +-- SqlCe + +CREATE TABLE [tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(255) NULL +) + +BeforeExecute +-- SqlCe + +INSERT INTO [tmptbl1] +( + [ID], + [Value] +) +SELECT 1,'Value1' UNION ALL +SELECT 2,NULL + +BeforeExecute +-- SqlCe + +CREATE TABLE [tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(255) NOT NULL +) + +BeforeExecute +-- SqlCe + +INSERT INTO [tmptbl2] +( + [ID], + [Value] +) +SELECT 1,'Value1' UNION ALL +SELECT 3,'Value2' + +BeforeExecute +-- SqlCe + +CREATE TABLE [tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(255) NULL +) + +BeforeExecute +-- SqlCe + +INSERT INTO [tmptbl3] +( + [ID], + [Value] +) +SELECT 1,'Value1' UNION ALL +SELECT 2,NULL + +BeforeExecute +-- SqlCe + +SELECT + [t4].[ID], + [t4].[Value] as [Value_1] +FROM + [tmptbl1] [t2] + LEFT JOIN [tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlCe + +SELECT + [t1].[ID], + [t1].[Value] as [Value_1] +FROM + [tmptbl1] [t1] + +BeforeExecute +-- SqlCe + +SELECT + [t1].[ID], + [t1].[Value] as [Value_1] +FROM + [tmptbl2] [t1] + +BeforeExecute +-- SqlCe + +SELECT + [t1].[ID], + [t1].[Value] as [Value_1] +FROM + [tmptbl3] [t1] + +BeforeExecute +-- SqlCe + +DROP TABLE [tmptbl3] + +BeforeExecute +-- SqlCe + +DROP TABLE [tmptbl2] + +BeforeExecute +-- SqlCe + +DROP TABLE [tmptbl1] + From fa94028f267ec044a656d461855ced225ffc773f Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 18:45:52 +0000 Subject: [PATCH 02/40] [Windows / SQLite (specialized tests)] baselines --- ...(SQLite.Classic.MPM.LinqService,False).sql | 4 +- ...4(SQLite.Classic.MPM.LinqService,True).sql | 4 +- ...leCoalesceJoinTest(SQLite.Classic.MPM).sql | 116 ++++++++++++++++++ ...xpression_14(SQLite.Classic.MPM,False).sql | 4 +- ...Expression_14(SQLite.Classic.MPM,True).sql | 4 +- ...(SQLite.Classic.MPU.LinqService,False).sql | 4 +- ...4(SQLite.Classic.MPU.LinqService,True).sql | 4 +- ...leCoalesceJoinTest(SQLite.Classic.MPU).sql | 116 ++++++++++++++++++ ...xpression_14(SQLite.Classic.MPU,False).sql | 4 +- ...Expression_14(SQLite.Classic.MPU,True).sql | 4 +- 10 files changed, 248 insertions(+), 16 deletions(-) create mode 100644 SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.Classic.MPM).sql create mode 100644 SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.Classic.MPU).sql diff --git a/SQLite.Classic.MPM.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM.LinqService,False).sql b/SQLite.Classic.MPM.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM.LinqService,False).sql index 00608f018709..83a9cf87d30d 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM.LinqService,False).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM.LinqService,False).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.Classic.MPM.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM.LinqService,True).sql b/SQLite.Classic.MPM.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM.LinqService,True).sql index 00608f018709..83a9cf87d30d 100644 --- a/SQLite.Classic.MPM.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM.LinqService,True).sql +++ b/SQLite.Classic.MPM.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM.LinqService,True).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.Classic.MPM).sql new file mode 100644 index 000000000000..63444f9b652c --- /dev/null +++ b/SQLite.Classic.MPM/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.Classic.MPM).sql @@ -0,0 +1,116 @@ +BeforeExecute +-- SQLite.Classic.MPM SQLite.Classic SQLite + +CREATE TEMPORARY TABLE temp.[tmptbl1] +( + [ID] INTEGER NOT NULL, + [Value] NVarChar(255) NULL +) + +BeforeExecute +-- SQLite.Classic.MPM SQLite.Classic SQLite + +INSERT INTO temp.[tmptbl1] +( + [ID], + [Value] +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- SQLite.Classic.MPM SQLite.Classic SQLite + +CREATE TEMPORARY TABLE temp.[tmptbl2] +( + [ID] INTEGER NOT NULL, + [Value] NVarChar(255) NOT NULL +) + +BeforeExecute +-- SQLite.Classic.MPM SQLite.Classic SQLite + +INSERT INTO temp.[tmptbl2] +( + [ID], + [Value] +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- SQLite.Classic.MPM SQLite.Classic SQLite + +CREATE TEMPORARY TABLE temp.[tmptbl3] +( + [ID] INTEGER NOT NULL, + [Value] NVarChar(255) NULL +) + +BeforeExecute +-- SQLite.Classic.MPM SQLite.Classic SQLite + +INSERT INTO temp.[tmptbl3] +( + [ID], + [Value] +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- SQLite.Classic.MPM SQLite.Classic SQLite + +SELECT + [t4].[ID], + [t4].[Value] +FROM + temp.[tmptbl1] [t2] + LEFT JOIN temp.[tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN temp.[tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SQLite.Classic.MPM SQLite.Classic SQLite + +SELECT + [t1].[ID], + [t1].[Value] +FROM + temp.[tmptbl1] [t1] + +BeforeExecute +-- SQLite.Classic.MPM SQLite.Classic SQLite + +SELECT + [t1].[ID], + [t1].[Value] +FROM + temp.[tmptbl2] [t1] + +BeforeExecute +-- SQLite.Classic.MPM SQLite.Classic SQLite + +SELECT + [t1].[ID], + [t1].[Value] +FROM + temp.[tmptbl3] [t1] + +BeforeExecute +-- SQLite.Classic.MPM SQLite.Classic SQLite + +DROP TABLE IF EXISTS temp.[tmptbl3] + +BeforeExecute +-- SQLite.Classic.MPM SQLite.Classic SQLite + +DROP TABLE IF EXISTS temp.[tmptbl2] + +BeforeExecute +-- SQLite.Classic.MPM SQLite.Classic SQLite + +DROP TABLE IF EXISTS temp.[tmptbl1] + diff --git a/SQLite.Classic.MPM/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM,False).sql b/SQLite.Classic.MPM/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM,False).sql index 00608f018709..83a9cf87d30d 100644 --- a/SQLite.Classic.MPM/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM,False).sql +++ b/SQLite.Classic.MPM/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM,False).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.Classic.MPM/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM,True).sql b/SQLite.Classic.MPM/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM,True).sql index 00608f018709..83a9cf87d30d 100644 --- a/SQLite.Classic.MPM/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM,True).sql +++ b/SQLite.Classic.MPM/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPM,True).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.Classic.MPM SQLite.Classic SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.Classic.MPU.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU.LinqService,False).sql b/SQLite.Classic.MPU.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU.LinqService,False).sql index 14c8035d6e13..4f9537646c93 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU.LinqService,False).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU.LinqService,False).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.Classic.MPU.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU.LinqService,True).sql b/SQLite.Classic.MPU.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU.LinqService,True).sql index 14c8035d6e13..4f9537646c93 100644 --- a/SQLite.Classic.MPU.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU.LinqService,True).sql +++ b/SQLite.Classic.MPU.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU.LinqService,True).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.Classic.MPU).sql new file mode 100644 index 000000000000..aa83e5a914fa --- /dev/null +++ b/SQLite.Classic.MPU/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.Classic.MPU).sql @@ -0,0 +1,116 @@ +BeforeExecute +-- SQLite.Classic.MPU SQLite.Classic SQLite + +CREATE TEMPORARY TABLE temp.[tmptbl1] +( + [ID] INTEGER NOT NULL, + [Value] NVarChar(255) NULL +) + +BeforeExecute +-- SQLite.Classic.MPU SQLite.Classic SQLite + +INSERT INTO temp.[tmptbl1] +( + [ID], + [Value] +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- SQLite.Classic.MPU SQLite.Classic SQLite + +CREATE TEMPORARY TABLE temp.[tmptbl2] +( + [ID] INTEGER NOT NULL, + [Value] NVarChar(255) NOT NULL +) + +BeforeExecute +-- SQLite.Classic.MPU SQLite.Classic SQLite + +INSERT INTO temp.[tmptbl2] +( + [ID], + [Value] +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- SQLite.Classic.MPU SQLite.Classic SQLite + +CREATE TEMPORARY TABLE temp.[tmptbl3] +( + [ID] INTEGER NOT NULL, + [Value] NVarChar(255) NULL +) + +BeforeExecute +-- SQLite.Classic.MPU SQLite.Classic SQLite + +INSERT INTO temp.[tmptbl3] +( + [ID], + [Value] +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- SQLite.Classic.MPU SQLite.Classic SQLite + +SELECT + [t4].[ID], + [t4].[Value] +FROM + temp.[tmptbl1] [t2] + LEFT JOIN temp.[tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN temp.[tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SQLite.Classic.MPU SQLite.Classic SQLite + +SELECT + [t1].[ID], + [t1].[Value] +FROM + temp.[tmptbl1] [t1] + +BeforeExecute +-- SQLite.Classic.MPU SQLite.Classic SQLite + +SELECT + [t1].[ID], + [t1].[Value] +FROM + temp.[tmptbl2] [t1] + +BeforeExecute +-- SQLite.Classic.MPU SQLite.Classic SQLite + +SELECT + [t1].[ID], + [t1].[Value] +FROM + temp.[tmptbl3] [t1] + +BeforeExecute +-- SQLite.Classic.MPU SQLite.Classic SQLite + +DROP TABLE IF EXISTS temp.[tmptbl3] + +BeforeExecute +-- SQLite.Classic.MPU SQLite.Classic SQLite + +DROP TABLE IF EXISTS temp.[tmptbl2] + +BeforeExecute +-- SQLite.Classic.MPU SQLite.Classic SQLite + +DROP TABLE IF EXISTS temp.[tmptbl1] + diff --git a/SQLite.Classic.MPU/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU,False).sql b/SQLite.Classic.MPU/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU,False).sql index 14c8035d6e13..4f9537646c93 100644 --- a/SQLite.Classic.MPU/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU,False).sql +++ b/SQLite.Classic.MPU/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU,False).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.Classic.MPU/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU,True).sql b/SQLite.Classic.MPU/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU,True).sql index 14c8035d6e13..4f9537646c93 100644 --- a/SQLite.Classic.MPU/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU,True).sql +++ b/SQLite.Classic.MPU/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.MPU,True).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.Classic.MPU SQLite.Classic SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL From d5a5d84966f412dd6448ec0fa63f2752a76748fd Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 18:54:20 +0000 Subject: [PATCH 03/40] [Windows / SQL Server 2005] baselines --- ...bleCoalesceJoinTest(SqlServer.2005.MS).sql | 92 +++++++++++++++++++ ...llableCoalesceJoinTest(SqlServer.2005).sql | 92 +++++++++++++++++++ 2 files changed, 184 insertions(+) create mode 100644 SqlServer.2005.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2005.MS).sql create mode 100644 SqlServer.2005/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2005).sql diff --git a/SqlServer.2005.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2005.MS).sql b/SqlServer.2005.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2005.MS).sql new file mode 100644 index 000000000000..6ea3d70771cc --- /dev/null +++ b/SqlServer.2005.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2005.MS).sql @@ -0,0 +1,92 @@ +BeforeExecute +-- SqlServer.2005.MS SqlServer.2005 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2005.MS SqlServer.2005 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2005.MS SqlServer.2005 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2005.MS SqlServer.2005 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2005.MS SqlServer.2005 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2005.MS SqlServer.2005 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2005.MS SqlServer.2005 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2005.MS SqlServer.2005 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl3]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2005.MS SqlServer.2005 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl2]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2005.MS SqlServer.2005 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl1]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl1] + diff --git a/SqlServer.2005/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2005).sql b/SqlServer.2005/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2005).sql new file mode 100644 index 000000000000..5131d5811fab --- /dev/null +++ b/SqlServer.2005/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2005).sql @@ -0,0 +1,92 @@ +BeforeExecute +-- SqlServer.2005 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2005 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2005 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2005 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2005 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2005 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2005 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2005 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl3]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2005 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl2]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2005 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl1]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl1] + From bfaad40c71f905a27a7737c31eb0039d79ec890d Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:01:53 +0000 Subject: [PATCH 04/40] [Windows / SQLite (both providers)] baselines --- ...n_14(SQLite.Classic.LinqService,False).sql | 4 +- ...on_14(SQLite.Classic.LinqService,True).sql | 4 +- ...llableCoalesceJoinTest(SQLite.Classic).sql | 116 ++++++++++++++++++ ...ultExpression_14(SQLite.Classic,False).sql | 4 +- ...aultExpression_14(SQLite.Classic,True).sql | 4 +- ...ession_14(SQLite.MS.LinqService,False).sql | 4 +- ...ression_14(SQLite.MS.LinqService,True).sql | 4 +- ...ts.NullableCoalesceJoinTest(SQLite.MS).sql | 116 ++++++++++++++++++ ...tDefaultExpression_14(SQLite.MS,False).sql | 4 +- ...stDefaultExpression_14(SQLite.MS,True).sql | 4 +- 10 files changed, 248 insertions(+), 16 deletions(-) create mode 100644 SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.Classic).sql create mode 100644 SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.MS).sql diff --git a/SQLite.Classic.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.LinqService,False).sql b/SQLite.Classic.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.LinqService,False).sql index 0a78e0e94cdd..fc9c012f5fa2 100644 --- a/SQLite.Classic.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.LinqService,False).sql +++ b/SQLite.Classic.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.LinqService,False).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.Classic SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.Classic.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.LinqService,True).sql b/SQLite.Classic.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.LinqService,True).sql index 0a78e0e94cdd..fc9c012f5fa2 100644 --- a/SQLite.Classic.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.LinqService,True).sql +++ b/SQLite.Classic.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic.LinqService,True).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.Classic SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.Classic).sql new file mode 100644 index 000000000000..4c7dd87dfc12 --- /dev/null +++ b/SQLite.Classic/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.Classic).sql @@ -0,0 +1,116 @@ +BeforeExecute +-- SQLite.Classic SQLite + +CREATE TEMPORARY TABLE temp.[tmptbl1] +( + [ID] INTEGER NOT NULL, + [Value] NVarChar(255) NULL +) + +BeforeExecute +-- SQLite.Classic SQLite + +INSERT INTO temp.[tmptbl1] +( + [ID], + [Value] +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- SQLite.Classic SQLite + +CREATE TEMPORARY TABLE temp.[tmptbl2] +( + [ID] INTEGER NOT NULL, + [Value] NVarChar(255) NOT NULL +) + +BeforeExecute +-- SQLite.Classic SQLite + +INSERT INTO temp.[tmptbl2] +( + [ID], + [Value] +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- SQLite.Classic SQLite + +CREATE TEMPORARY TABLE temp.[tmptbl3] +( + [ID] INTEGER NOT NULL, + [Value] NVarChar(255) NULL +) + +BeforeExecute +-- SQLite.Classic SQLite + +INSERT INTO temp.[tmptbl3] +( + [ID], + [Value] +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- SQLite.Classic SQLite + +SELECT + [t4].[ID], + [t4].[Value] +FROM + temp.[tmptbl1] [t2] + LEFT JOIN temp.[tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN temp.[tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SQLite.Classic SQLite + +SELECT + [t1].[ID], + [t1].[Value] +FROM + temp.[tmptbl1] [t1] + +BeforeExecute +-- SQLite.Classic SQLite + +SELECT + [t1].[ID], + [t1].[Value] +FROM + temp.[tmptbl2] [t1] + +BeforeExecute +-- SQLite.Classic SQLite + +SELECT + [t1].[ID], + [t1].[Value] +FROM + temp.[tmptbl3] [t1] + +BeforeExecute +-- SQLite.Classic SQLite + +DROP TABLE IF EXISTS temp.[tmptbl3] + +BeforeExecute +-- SQLite.Classic SQLite + +DROP TABLE IF EXISTS temp.[tmptbl2] + +BeforeExecute +-- SQLite.Classic SQLite + +DROP TABLE IF EXISTS temp.[tmptbl1] + diff --git a/SQLite.Classic/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic,False).sql b/SQLite.Classic/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic,False).sql index 0a78e0e94cdd..fc9c012f5fa2 100644 --- a/SQLite.Classic/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic,False).sql +++ b/SQLite.Classic/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic,False).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.Classic SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.Classic/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic,True).sql b/SQLite.Classic/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic,True).sql index 0a78e0e94cdd..fc9c012f5fa2 100644 --- a/SQLite.Classic/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic,True).sql +++ b/SQLite.Classic/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.Classic,True).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.Classic SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.MS.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS.LinqService,False).sql b/SQLite.MS.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS.LinqService,False).sql index 160d6cd3761f..a4815fd81dcc 100644 --- a/SQLite.MS.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS.LinqService,False).sql +++ b/SQLite.MS.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS.LinqService,False).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.MS SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.MS.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS.LinqService,True).sql b/SQLite.MS.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS.LinqService,True).sql index 160d6cd3761f..a4815fd81dcc 100644 --- a/SQLite.MS.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS.LinqService,True).sql +++ b/SQLite.MS.LinqService/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS.LinqService,True).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.MS SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.MS).sql b/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.MS).sql new file mode 100644 index 000000000000..952faa993f07 --- /dev/null +++ b/SQLite.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SQLite.MS).sql @@ -0,0 +1,116 @@ +BeforeExecute +-- SQLite.MS SQLite + +CREATE TEMPORARY TABLE temp.[tmptbl1] +( + [ID] INTEGER NOT NULL, + [Value] NVarChar(255) NULL +) + +BeforeExecute +-- SQLite.MS SQLite + +INSERT INTO temp.[tmptbl1] +( + [ID], + [Value] +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- SQLite.MS SQLite + +CREATE TEMPORARY TABLE temp.[tmptbl2] +( + [ID] INTEGER NOT NULL, + [Value] NVarChar(255) NOT NULL +) + +BeforeExecute +-- SQLite.MS SQLite + +INSERT INTO temp.[tmptbl2] +( + [ID], + [Value] +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- SQLite.MS SQLite + +CREATE TEMPORARY TABLE temp.[tmptbl3] +( + [ID] INTEGER NOT NULL, + [Value] NVarChar(255) NULL +) + +BeforeExecute +-- SQLite.MS SQLite + +INSERT INTO temp.[tmptbl3] +( + [ID], + [Value] +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- SQLite.MS SQLite + +SELECT + [t4].[ID], + [t4].[Value] +FROM + temp.[tmptbl1] [t2] + LEFT JOIN temp.[tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN temp.[tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SQLite.MS SQLite + +SELECT + [t1].[ID], + [t1].[Value] +FROM + temp.[tmptbl1] [t1] + +BeforeExecute +-- SQLite.MS SQLite + +SELECT + [t1].[ID], + [t1].[Value] +FROM + temp.[tmptbl2] [t1] + +BeforeExecute +-- SQLite.MS SQLite + +SELECT + [t1].[ID], + [t1].[Value] +FROM + temp.[tmptbl3] [t1] + +BeforeExecute +-- SQLite.MS SQLite + +DROP TABLE IF EXISTS temp.[tmptbl3] + +BeforeExecute +-- SQLite.MS SQLite + +DROP TABLE IF EXISTS temp.[tmptbl2] + +BeforeExecute +-- SQLite.MS SQLite + +DROP TABLE IF EXISTS temp.[tmptbl1] + diff --git a/SQLite.MS/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS,False).sql b/SQLite.MS/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS,False).sql index 160d6cd3761f..a4815fd81dcc 100644 --- a/SQLite.MS/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS,False).sql +++ b/SQLite.MS/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS,False).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.MS SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL diff --git a/SQLite.MS/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS,True).sql b/SQLite.MS/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS,True).sql index 160d6cd3761f..a4815fd81dcc 100644 --- a/SQLite.MS/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS,True).sql +++ b/SQLite.MS/Tests/UserTests/Issue3148Tests/Tests.UserTests.Issue3148Tests.TestDefaultExpression_14(SQLite.MS,True).sql @@ -10,7 +10,7 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL BeforeExecute -- SQLite.MS SQLite @@ -24,5 +24,5 @@ SELECT FROM [Person] [r] WHERE - 1 = 0 + [r].[FirstName] || '1' IS NULL From 452f0f223f42075a8843d50aa129a798fea355ff Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:02:54 +0000 Subject: [PATCH 05/40] [Windows / SQL Server 2014] baselines --- ...bleCoalesceJoinTest(SqlServer.2014.MS).sql | 92 +++++++++++++++++++ ...llableCoalesceJoinTest(SqlServer.2014).sql | 92 +++++++++++++++++++ 2 files changed, 184 insertions(+) create mode 100644 SqlServer.2014.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2014.MS).sql create mode 100644 SqlServer.2014/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2014).sql diff --git a/SqlServer.2014.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2014.MS).sql b/SqlServer.2014.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2014.MS).sql new file mode 100644 index 000000000000..a1dd140cdb17 --- /dev/null +++ b/SqlServer.2014.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2014.MS).sql @@ -0,0 +1,92 @@ +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl3]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl2]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2014.MS SqlServer.2014 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl1]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl1] + diff --git a/SqlServer.2014/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2014).sql b/SqlServer.2014/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2014).sql new file mode 100644 index 000000000000..4e50c6a75588 --- /dev/null +++ b/SqlServer.2014/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2014).sql @@ -0,0 +1,92 @@ +BeforeExecute +-- SqlServer.2014 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2014 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2014 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2014 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2014 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2014 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2014 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2014 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl3]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2014 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl2]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2014 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl1]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl1] + From 22136ec7557466683728b587e915b175d1b57a22 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:08:04 +0000 Subject: [PATCH 06/40] [Windows / SQL Server 2012] baselines --- ...bleCoalesceJoinTest(SqlServer.2012.MS).sql | 92 +++++++++++++++++++ ...llableCoalesceJoinTest(SqlServer.2012).sql | 92 +++++++++++++++++++ 2 files changed, 184 insertions(+) create mode 100644 SqlServer.2012.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2012.MS).sql create mode 100644 SqlServer.2012/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2012).sql diff --git a/SqlServer.2012.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2012.MS).sql b/SqlServer.2012.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2012.MS).sql new file mode 100644 index 000000000000..b819abf3f002 --- /dev/null +++ b/SqlServer.2012.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2012.MS).sql @@ -0,0 +1,92 @@ +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl3]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl2]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2012.MS SqlServer.2012 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl1]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl1] + diff --git a/SqlServer.2012/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2012).sql b/SqlServer.2012/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2012).sql new file mode 100644 index 000000000000..c46638885793 --- /dev/null +++ b/SqlServer.2012/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2012).sql @@ -0,0 +1,92 @@ +BeforeExecute +-- SqlServer.2012 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2012 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2012 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2012 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2012 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2012 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2012 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2012 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl3]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2012 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl2]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2012 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl1]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl1] + From 72ff9c591d515955c335ff526e8cf89cbe82a8a0 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:09:10 +0000 Subject: [PATCH 07/40] [Windows / SQL Server 2016] baselines --- ...bleCoalesceJoinTest(SqlServer.2016.MS).sql | 89 +++++++++++++++++++ ...llableCoalesceJoinTest(SqlServer.2016).sql | 89 +++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 SqlServer.2016.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2016.MS).sql create mode 100644 SqlServer.2016/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2016).sql diff --git a/SqlServer.2016.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2016.MS).sql b/SqlServer.2016.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2016.MS).sql new file mode 100644 index 000000000000..ab937df2cbb5 --- /dev/null +++ b/SqlServer.2016.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2016.MS).sql @@ -0,0 +1,89 @@ +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2016.MS SqlServer.2016 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl1] + diff --git a/SqlServer.2016/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2016).sql b/SqlServer.2016/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2016).sql new file mode 100644 index 000000000000..6bbe4aa6064e --- /dev/null +++ b/SqlServer.2016/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2016).sql @@ -0,0 +1,89 @@ +BeforeExecute +-- SqlServer.2016 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2016 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2016 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2016 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2016 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2016 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2016 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2016 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2016 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2016 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl1] + From 430c05bd4977f6f357fbbfebbf4577bb944b70ee Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:11:09 +0000 Subject: [PATCH 08/40] [Windows / SQL Server 2008] baselines --- ...bleCoalesceJoinTest(SqlServer.2008.MS).sql | 92 +++++++++++++++++++ ...llableCoalesceJoinTest(SqlServer.2008).sql | 92 +++++++++++++++++++ 2 files changed, 184 insertions(+) create mode 100644 SqlServer.2008.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2008.MS).sql create mode 100644 SqlServer.2008/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2008).sql diff --git a/SqlServer.2008.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2008.MS).sql b/SqlServer.2008.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2008.MS).sql new file mode 100644 index 000000000000..08dfb5c85777 --- /dev/null +++ b/SqlServer.2008.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2008.MS).sql @@ -0,0 +1,92 @@ +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl3]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl2]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2008.MS SqlServer.2008 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl1]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl1] + diff --git a/SqlServer.2008/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2008).sql b/SqlServer.2008/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2008).sql new file mode 100644 index 000000000000..080dcb68245a --- /dev/null +++ b/SqlServer.2008/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2008).sql @@ -0,0 +1,92 @@ +BeforeExecute +-- SqlServer.2008 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2008 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2008 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2008 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2008 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2008 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2008 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2008 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl3]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2008 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl2]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2008 + +IF (OBJECT_ID(N'[tempdb]..[#tmptbl1]', N'U') IS NOT NULL) + DROP TABLE [tempdb]..[#tmptbl1] + From c599febd5b380c69e8ed088b3830033997e6a981 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:12:54 +0000 Subject: [PATCH 09/40] [Linux / Firebird 3.0] baselines --- ...s.NullableCoalesceJoinTest(Firebird.3).sql | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.3).sql diff --git a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.3).sql b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.3).sql new file mode 100644 index 000000000000..342d5a43f10f --- /dev/null +++ b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.3).sql @@ -0,0 +1,140 @@ +BeforeExecute +-- Firebird.3 Firebird3 + +EXECUTE BLOCK AS BEGIN + IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl1')) THEN + EXECUTE STATEMENT ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl1" + ( + ID Int NOT NULL, + "Value" VarChar(255) CHARACTER SET UNICODE_FSS + ) + ON COMMIT PRESERVE ROWS + '; +END + +BeforeExecute +-- Firebird.3 Firebird3 + +INSERT INTO "tmptbl1" +( + ID, + "Value" +) +SELECT 1,CAST('Value1' AS VarChar(255) CHARACTER SET UNICODE_FSS) FROM rdb$database UNION ALL +SELECT 2,NULL FROM rdb$database + +BeforeExecute +-- Firebird.3 Firebird3 + +EXECUTE BLOCK AS BEGIN + IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl2')) THEN + EXECUTE STATEMENT ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl2" + ( + ID Int NOT NULL, + "Value" VarChar(255) CHARACTER SET UNICODE_FSS NOT NULL + ) + ON COMMIT PRESERVE ROWS + '; +END + +BeforeExecute +-- Firebird.3 Firebird3 + +INSERT INTO "tmptbl2" +( + ID, + "Value" +) +SELECT 1,CAST('Value1' AS VarChar(255) CHARACTER SET UNICODE_FSS) FROM rdb$database UNION ALL +SELECT 3,'Value2' FROM rdb$database + +BeforeExecute +-- Firebird.3 Firebird3 + +EXECUTE BLOCK AS BEGIN + IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl3')) THEN + EXECUTE STATEMENT ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl3" + ( + ID Int NOT NULL, + "Value" VarChar(255) CHARACTER SET UNICODE_FSS + ) + ON COMMIT PRESERVE ROWS + '; +END + +BeforeExecute +-- Firebird.3 Firebird3 + +INSERT INTO "tmptbl3" +( + ID, + "Value" +) +SELECT 1,CAST('Value1' AS VarChar(255) CHARACTER SET UNICODE_FSS) FROM rdb$database UNION ALL +SELECT 2,NULL FROM rdb$database + +BeforeExecute +-- Firebird.3 Firebird3 + +SELECT + "t4".ID, + "t4"."Value" +FROM + "tmptbl1" "t2" + LEFT JOIN "tmptbl2" "t3" ON "t2".ID = "t3".ID + LEFT JOIN "tmptbl3" "t4" ON Coalesce("t3"."Value", "t2"."Value") = "t4"."Value" OR "t3"."Value" IS NULL AND "t2"."Value" IS NULL AND "t4"."Value" IS NULL + +BeforeExecute +-- Firebird.3 Firebird3 + +SELECT + "t1".ID, + "t1"."Value" +FROM + "tmptbl1" "t1" + +BeforeExecute +-- Firebird.3 Firebird3 + +SELECT + "t1".ID, + "t1"."Value" +FROM + "tmptbl2" "t1" + +BeforeExecute +-- Firebird.3 Firebird3 + +SELECT + "t1".ID, + "t1"."Value" +FROM + "tmptbl3" "t1" + +BeforeExecute +-- Firebird.3 Firebird3 + +EXECUTE BLOCK AS BEGIN + IF (EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl3')) THEN + EXECUTE STATEMENT 'DROP TABLE "tmptbl3"'; +END + +BeforeExecute +-- Firebird.3 Firebird3 + +EXECUTE BLOCK AS BEGIN + IF (EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl2')) THEN + EXECUTE STATEMENT 'DROP TABLE "tmptbl2"'; +END + +BeforeExecute +-- Firebird.3 Firebird3 + +EXECUTE BLOCK AS BEGIN + IF (EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl1')) THEN + EXECUTE STATEMENT 'DROP TABLE "tmptbl1"'; +END + From 9944ba9cd6fcacde81c7d6ee8bd2fa91dccd9112 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:15:12 +0000 Subject: [PATCH 10/40] [Linux / DB2 LUW 11.5] baselines --- ...oinTests.NullableCoalesceJoinTest(DB2).sql | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(DB2).sql diff --git a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(DB2).sql b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(DB2).sql new file mode 100644 index 000000000000..ed5b60d0c816 --- /dev/null +++ b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(DB2).sql @@ -0,0 +1,128 @@ +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +DECLARE GLOBAL TEMPORARY TABLE SESSION."tmptbl1" +( + ID Int NOT NULL, + "Value" NVarChar(255) NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +INSERT INTO SESSION."tmptbl1" +( + ID, + "Value" +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +DECLARE GLOBAL TEMPORARY TABLE SESSION."tmptbl2" +( + ID Int NOT NULL, + "Value" NVarChar(255) NOT NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +INSERT INTO SESSION."tmptbl2" +( + ID, + "Value" +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +DECLARE GLOBAL TEMPORARY TABLE SESSION."tmptbl3" +( + ID Int NOT NULL, + "Value" NVarChar(255) NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +INSERT INTO SESSION."tmptbl3" +( + ID, + "Value" +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +SELECT + "t4".ID, + "t4"."Value" +FROM + SESSION."tmptbl1" "t2" + LEFT JOIN SESSION."tmptbl2" "t3" ON "t2".ID = "t3".ID + LEFT JOIN SESSION."tmptbl3" "t4" ON Coalesce("t3"."Value", "t2"."Value") = "t4"."Value" OR "t3"."Value" IS NULL AND "t2"."Value" IS NULL AND "t4"."Value" IS NULL + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +SELECT + "t1".ID, + "t1"."Value" +FROM + SESSION."tmptbl1" "t1" + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +SELECT + "t1".ID, + "t1"."Value" +FROM + SESSION."tmptbl2" "t1" + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +SELECT + "t1".ID, + "t1"."Value" +FROM + SESSION."tmptbl3" "t1" + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +BEGIN + DECLARE CONTINUE HANDLER FOR SQLSTATE '42704' BEGIN END; + EXECUTE IMMEDIATE 'DROP TABLE SESSION."tmptbl3"'; +END + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +BEGIN + DECLARE CONTINUE HANDLER FOR SQLSTATE '42704' BEGIN END; + EXECUTE IMMEDIATE 'DROP TABLE SESSION."tmptbl2"'; +END + +BeforeExecute +-- DB2 DB2.LUW DB2LUW + +BEGIN + DECLARE CONTINUE HANDLER FOR SQLSTATE '42704' BEGIN END; + EXECUTE IMMEDIATE 'DROP TABLE SESSION."tmptbl1"'; +END + From 8f28cc59dd8b180e3c3dd08b17a661062d2723fa Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:17:51 +0000 Subject: [PATCH 11/40] [Linux / Firebird 2.5] baselines --- ...NullableCoalesceJoinTest(Firebird.2.5).sql | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 Firebird.2.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.2.5).sql diff --git a/Firebird.2.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.2.5).sql b/Firebird.2.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.2.5).sql new file mode 100644 index 000000000000..413fe069ce56 --- /dev/null +++ b/Firebird.2.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.2.5).sql @@ -0,0 +1,140 @@ +BeforeExecute +-- Firebird.2.5 Firebird + +EXECUTE BLOCK AS BEGIN + IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl1')) THEN + EXECUTE STATEMENT ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl1" + ( + ID Int NOT NULL, + "Value" VarChar(255) CHARACTER SET UNICODE_FSS + ) + ON COMMIT PRESERVE ROWS + '; +END + +BeforeExecute +-- Firebird.2.5 Firebird + +INSERT INTO "tmptbl1" +( + ID, + "Value" +) +SELECT 1,CAST('Value1' AS VarChar(255) CHARACTER SET UNICODE_FSS) FROM rdb$database UNION ALL +SELECT 2,NULL FROM rdb$database + +BeforeExecute +-- Firebird.2.5 Firebird + +EXECUTE BLOCK AS BEGIN + IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl2')) THEN + EXECUTE STATEMENT ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl2" + ( + ID Int NOT NULL, + "Value" VarChar(255) CHARACTER SET UNICODE_FSS NOT NULL + ) + ON COMMIT PRESERVE ROWS + '; +END + +BeforeExecute +-- Firebird.2.5 Firebird + +INSERT INTO "tmptbl2" +( + ID, + "Value" +) +SELECT 1,CAST('Value1' AS VarChar(255) CHARACTER SET UNICODE_FSS) FROM rdb$database UNION ALL +SELECT 3,'Value2' FROM rdb$database + +BeforeExecute +-- Firebird.2.5 Firebird + +EXECUTE BLOCK AS BEGIN + IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl3')) THEN + EXECUTE STATEMENT ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl3" + ( + ID Int NOT NULL, + "Value" VarChar(255) CHARACTER SET UNICODE_FSS + ) + ON COMMIT PRESERVE ROWS + '; +END + +BeforeExecute +-- Firebird.2.5 Firebird + +INSERT INTO "tmptbl3" +( + ID, + "Value" +) +SELECT 1,CAST('Value1' AS VarChar(255) CHARACTER SET UNICODE_FSS) FROM rdb$database UNION ALL +SELECT 2,NULL FROM rdb$database + +BeforeExecute +-- Firebird.2.5 Firebird + +SELECT + "t4".ID, + "t4"."Value" +FROM + "tmptbl1" "t2" + LEFT JOIN "tmptbl2" "t3" ON "t2".ID = "t3".ID + LEFT JOIN "tmptbl3" "t4" ON Coalesce("t3"."Value", "t2"."Value") = "t4"."Value" OR "t3"."Value" IS NULL AND "t2"."Value" IS NULL AND "t4"."Value" IS NULL + +BeforeExecute +-- Firebird.2.5 Firebird + +SELECT + "t1".ID, + "t1"."Value" +FROM + "tmptbl1" "t1" + +BeforeExecute +-- Firebird.2.5 Firebird + +SELECT + "t1".ID, + "t1"."Value" +FROM + "tmptbl2" "t1" + +BeforeExecute +-- Firebird.2.5 Firebird + +SELECT + "t1".ID, + "t1"."Value" +FROM + "tmptbl3" "t1" + +BeforeExecute +-- Firebird.2.5 Firebird + +EXECUTE BLOCK AS BEGIN + IF (EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl3')) THEN + EXECUTE STATEMENT 'DROP TABLE "tmptbl3"'; +END + +BeforeExecute +-- Firebird.2.5 Firebird + +EXECUTE BLOCK AS BEGIN + IF (EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl2')) THEN + EXECUTE STATEMENT 'DROP TABLE "tmptbl2"'; +END + +BeforeExecute +-- Firebird.2.5 Firebird + +EXECUTE BLOCK AS BEGIN + IF (EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl1')) THEN + EXECUTE STATEMENT 'DROP TABLE "tmptbl1"'; +END + From 2b108c8f9fcf2e2ccbd82ccaab3ba7caed7973a7 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:18:13 +0000 Subject: [PATCH 12/40] [Linux / Firebird 4.0] baselines --- ...s.NullableCoalesceJoinTest(Firebird.4).sql | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.4).sql diff --git a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.4).sql b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.4).sql new file mode 100644 index 000000000000..053aee38c4c9 --- /dev/null +++ b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.4).sql @@ -0,0 +1,140 @@ +BeforeExecute +-- Firebird.4 Firebird4 + +EXECUTE BLOCK AS BEGIN + IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl1')) THEN + EXECUTE STATEMENT ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl1" + ( + ID Int NOT NULL, + "Value" VarChar(255) CHARACTER SET UNICODE_FSS + ) + ON COMMIT PRESERVE ROWS + '; +END + +BeforeExecute +-- Firebird.4 Firebird4 + +INSERT INTO "tmptbl1" +( + ID, + "Value" +) +SELECT 1,CAST('Value1' AS VarChar(255) CHARACTER SET UNICODE_FSS) FROM rdb$database UNION ALL +SELECT 2,NULL FROM rdb$database + +BeforeExecute +-- Firebird.4 Firebird4 + +EXECUTE BLOCK AS BEGIN + IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl2')) THEN + EXECUTE STATEMENT ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl2" + ( + ID Int NOT NULL, + "Value" VarChar(255) CHARACTER SET UNICODE_FSS NOT NULL + ) + ON COMMIT PRESERVE ROWS + '; +END + +BeforeExecute +-- Firebird.4 Firebird4 + +INSERT INTO "tmptbl2" +( + ID, + "Value" +) +SELECT 1,CAST('Value1' AS VarChar(255) CHARACTER SET UNICODE_FSS) FROM rdb$database UNION ALL +SELECT 3,'Value2' FROM rdb$database + +BeforeExecute +-- Firebird.4 Firebird4 + +EXECUTE BLOCK AS BEGIN + IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl3')) THEN + EXECUTE STATEMENT ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl3" + ( + ID Int NOT NULL, + "Value" VarChar(255) CHARACTER SET UNICODE_FSS + ) + ON COMMIT PRESERVE ROWS + '; +END + +BeforeExecute +-- Firebird.4 Firebird4 + +INSERT INTO "tmptbl3" +( + ID, + "Value" +) +SELECT 1,CAST('Value1' AS VarChar(255) CHARACTER SET UNICODE_FSS) FROM rdb$database UNION ALL +SELECT 2,NULL FROM rdb$database + +BeforeExecute +-- Firebird.4 Firebird4 + +SELECT + "t4".ID, + "t4"."Value" +FROM + "tmptbl1" "t2" + LEFT JOIN "tmptbl2" "t3" ON "t2".ID = "t3".ID + LEFT JOIN "tmptbl3" "t4" ON Coalesce("t3"."Value", "t2"."Value") = "t4"."Value" OR "t3"."Value" IS NULL AND "t2"."Value" IS NULL AND "t4"."Value" IS NULL + +BeforeExecute +-- Firebird.4 Firebird4 + +SELECT + "t1".ID, + "t1"."Value" +FROM + "tmptbl1" "t1" + +BeforeExecute +-- Firebird.4 Firebird4 + +SELECT + "t1".ID, + "t1"."Value" +FROM + "tmptbl2" "t1" + +BeforeExecute +-- Firebird.4 Firebird4 + +SELECT + "t1".ID, + "t1"."Value" +FROM + "tmptbl3" "t1" + +BeforeExecute +-- Firebird.4 Firebird4 + +EXECUTE BLOCK AS BEGIN + IF (EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl3')) THEN + EXECUTE STATEMENT 'DROP TABLE "tmptbl3"'; +END + +BeforeExecute +-- Firebird.4 Firebird4 + +EXECUTE BLOCK AS BEGIN + IF (EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl2')) THEN + EXECUTE STATEMENT 'DROP TABLE "tmptbl2"'; +END + +BeforeExecute +-- Firebird.4 Firebird4 + +EXECUTE BLOCK AS BEGIN + IF (EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl1')) THEN + EXECUTE STATEMENT 'DROP TABLE "tmptbl1"'; +END + From d77f4eed052084a0e13547f07c622d57fa37c3a7 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:19:40 +0000 Subject: [PATCH 13/40] [Linux / Informix 14.10] baselines --- ...NullableCoalesceJoinTest(Informix.DB2).sql | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 Informix.DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Informix.DB2).sql diff --git a/Informix.DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Informix.DB2).sql b/Informix.DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Informix.DB2).sql new file mode 100644 index 000000000000..bd4f48d164de --- /dev/null +++ b/Informix.DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Informix.DB2).sql @@ -0,0 +1,89 @@ +BeforeExecute +-- Informix.DB2 Informix + +CREATE TEMP TABLE tmptbl1 +( + ID Int NOT NULL, + "Value" NVarChar(255) NULL +) + +BeforeExecute +INSERT BULK tmptbl1 + +BeforeExecute +-- Informix.DB2 Informix + +CREATE TEMP TABLE tmptbl2 +( + ID Int NOT NULL, + "Value" NVarChar(255) NOT NULL +) + +BeforeExecute +INSERT BULK tmptbl2 + +BeforeExecute +-- Informix.DB2 Informix + +CREATE TEMP TABLE tmptbl3 +( + ID Int NOT NULL, + "Value" NVarChar(255) NULL +) + +BeforeExecute +INSERT BULK tmptbl3 + +BeforeExecute +-- Informix.DB2 Informix + +SELECT + t4.ID, + t4."Value" +FROM + tmptbl1 t2 + LEFT JOIN tmptbl2 t3 ON t2.ID = t3.ID + LEFT JOIN tmptbl3 t4 ON Nvl(t3."Value", t2."Value") = t4."Value" OR (t3."Value" IS NULL OR t2."Value" IS NULL) AND t4."Value" IS NULL + +BeforeExecute +-- Informix.DB2 Informix + +SELECT + t1.ID, + t1."Value" +FROM + tmptbl1 t1 + +BeforeExecute +-- Informix.DB2 Informix + +SELECT + t1.ID, + t1."Value" +FROM + tmptbl2 t1 + +BeforeExecute +-- Informix.DB2 Informix + +SELECT + t1.ID, + t1."Value" +FROM + tmptbl3 t1 + +BeforeExecute +-- Informix.DB2 Informix + +DROP TABLE IF EXISTS tmptbl3 + +BeforeExecute +-- Informix.DB2 Informix + +DROP TABLE IF EXISTS tmptbl2 + +BeforeExecute +-- Informix.DB2 Informix + +DROP TABLE IF EXISTS tmptbl1 + From c7ae60fb7737924544de52b8de155a9821cfc135 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:22:41 +0000 Subject: [PATCH 14/40] [Windows / SQL Server 2017] baselines --- ...bleCoalesceJoinTest(SqlServer.2017.MS).sql | 89 +++++++++++++++++++ ...llableCoalesceJoinTest(SqlServer.2017).sql | 89 +++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 SqlServer.2017.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2017.MS).sql create mode 100644 SqlServer.2017/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2017).sql diff --git a/SqlServer.2017.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2017.MS).sql b/SqlServer.2017.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2017.MS).sql new file mode 100644 index 000000000000..0f129589db50 --- /dev/null +++ b/SqlServer.2017.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2017.MS).sql @@ -0,0 +1,89 @@ +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2017.MS SqlServer.2017 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl1] + diff --git a/SqlServer.2017/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2017).sql b/SqlServer.2017/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2017).sql new file mode 100644 index 000000000000..e402cb03c2db --- /dev/null +++ b/SqlServer.2017/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2017).sql @@ -0,0 +1,89 @@ +BeforeExecute +-- SqlServer.2017 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2017 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2017 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2017 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2017 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2017 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2017 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2017 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2017 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2017 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl1] + From 0287b9a4eef0e1fe01a7abd7143a4b5a602bb8b9 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:22:49 +0000 Subject: [PATCH 15/40] [Linux / Firebird 5.0] baselines --- ...s.NullableCoalesceJoinTest(Firebird.5).sql | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.5).sql diff --git a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.5).sql b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.5).sql new file mode 100644 index 000000000000..d1f8ad3906db --- /dev/null +++ b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Firebird.5).sql @@ -0,0 +1,140 @@ +BeforeExecute +-- Firebird.5 Firebird4 + +EXECUTE BLOCK AS BEGIN + IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl1')) THEN + EXECUTE STATEMENT ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl1" + ( + ID Int NOT NULL, + "Value" VarChar(255) CHARACTER SET UNICODE_FSS + ) + ON COMMIT PRESERVE ROWS + '; +END + +BeforeExecute +-- Firebird.5 Firebird4 + +INSERT INTO "tmptbl1" +( + ID, + "Value" +) +SELECT 1,CAST('Value1' AS VarChar(255) CHARACTER SET UNICODE_FSS) FROM rdb$database UNION ALL +SELECT 2,NULL FROM rdb$database + +BeforeExecute +-- Firebird.5 Firebird4 + +EXECUTE BLOCK AS BEGIN + IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl2')) THEN + EXECUTE STATEMENT ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl2" + ( + ID Int NOT NULL, + "Value" VarChar(255) CHARACTER SET UNICODE_FSS NOT NULL + ) + ON COMMIT PRESERVE ROWS + '; +END + +BeforeExecute +-- Firebird.5 Firebird4 + +INSERT INTO "tmptbl2" +( + ID, + "Value" +) +SELECT 1,CAST('Value1' AS VarChar(255) CHARACTER SET UNICODE_FSS) FROM rdb$database UNION ALL +SELECT 3,'Value2' FROM rdb$database + +BeforeExecute +-- Firebird.5 Firebird4 + +EXECUTE BLOCK AS BEGIN + IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl3')) THEN + EXECUTE STATEMENT ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl3" + ( + ID Int NOT NULL, + "Value" VarChar(255) CHARACTER SET UNICODE_FSS + ) + ON COMMIT PRESERVE ROWS + '; +END + +BeforeExecute +-- Firebird.5 Firebird4 + +INSERT INTO "tmptbl3" +( + ID, + "Value" +) +SELECT 1,CAST('Value1' AS VarChar(255) CHARACTER SET UNICODE_FSS) FROM rdb$database UNION ALL +SELECT 2,NULL FROM rdb$database + +BeforeExecute +-- Firebird.5 Firebird4 + +SELECT + "t4".ID, + "t4"."Value" +FROM + "tmptbl1" "t2" + LEFT JOIN "tmptbl2" "t3" ON "t2".ID = "t3".ID + LEFT JOIN "tmptbl3" "t4" ON Coalesce("t3"."Value", "t2"."Value") = "t4"."Value" OR "t3"."Value" IS NULL AND "t2"."Value" IS NULL AND "t4"."Value" IS NULL + +BeforeExecute +-- Firebird.5 Firebird4 + +SELECT + "t1".ID, + "t1"."Value" +FROM + "tmptbl1" "t1" + +BeforeExecute +-- Firebird.5 Firebird4 + +SELECT + "t1".ID, + "t1"."Value" +FROM + "tmptbl2" "t1" + +BeforeExecute +-- Firebird.5 Firebird4 + +SELECT + "t1".ID, + "t1"."Value" +FROM + "tmptbl3" "t1" + +BeforeExecute +-- Firebird.5 Firebird4 + +EXECUTE BLOCK AS BEGIN + IF (EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl3')) THEN + EXECUTE STATEMENT 'DROP TABLE "tmptbl3"'; +END + +BeforeExecute +-- Firebird.5 Firebird4 + +EXECUTE BLOCK AS BEGIN + IF (EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl2')) THEN + EXECUTE STATEMENT 'DROP TABLE "tmptbl2"'; +END + +BeforeExecute +-- Firebird.5 Firebird4 + +EXECUTE BLOCK AS BEGIN + IF (EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'tmptbl1')) THEN + EXECUTE STATEMENT 'DROP TABLE "tmptbl1"'; +END + From f6578f6cfcb2e15e970c9017125ef1b850a7c327 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:24:30 +0000 Subject: [PATCH 16/40] [Linux / MariaDB 11] baselines --- ...s.NullableCoalesceJoinTest(MariaDB.11).sql | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 MariaDB.11/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MariaDB.11).sql diff --git a/MariaDB.11/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MariaDB.11).sql b/MariaDB.11/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MariaDB.11).sql new file mode 100644 index 000000000000..7c360138340e --- /dev/null +++ b/MariaDB.11/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MariaDB.11).sql @@ -0,0 +1,116 @@ +BeforeExecute +-- MariaDB.11 MariaDB.10.MySqlConnector MySql + +CREATE TEMPORARY TABLE `tmptbl1` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NULL +) + +BeforeExecute +-- MariaDB.11 MariaDB.10.MySqlConnector MySql + +INSERT INTO `tmptbl1` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- MariaDB.11 MariaDB.10.MySqlConnector MySql + +CREATE TEMPORARY TABLE `tmptbl2` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NOT NULL +) + +BeforeExecute +-- MariaDB.11 MariaDB.10.MySqlConnector MySql + +INSERT INTO `tmptbl2` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- MariaDB.11 MariaDB.10.MySqlConnector MySql + +CREATE TEMPORARY TABLE `tmptbl3` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NULL +) + +BeforeExecute +-- MariaDB.11 MariaDB.10.MySqlConnector MySql + +INSERT INTO `tmptbl3` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- MariaDB.11 MariaDB.10.MySqlConnector MySql + +SELECT + `t4`.`ID`, + `t4`.`Value` +FROM + `tmptbl1` `t2` + LEFT JOIN `tmptbl2` `t3` ON `t2`.`ID` = `t3`.`ID` + LEFT JOIN `tmptbl3` `t4` ON Coalesce(`t3`.`Value`, `t2`.`Value`) = `t4`.`Value` OR `t3`.`Value` IS NULL AND `t2`.`Value` IS NULL AND `t4`.`Value` IS NULL + +BeforeExecute +-- MariaDB.11 MariaDB.10.MySqlConnector MySql + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl1` `t1` + +BeforeExecute +-- MariaDB.11 MariaDB.10.MySqlConnector MySql + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl2` `t1` + +BeforeExecute +-- MariaDB.11 MariaDB.10.MySqlConnector MySql + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl3` `t1` + +BeforeExecute +-- MariaDB.11 MariaDB.10.MySqlConnector MySql + +DROP TABLE IF EXISTS `tmptbl3` + +BeforeExecute +-- MariaDB.11 MariaDB.10.MySqlConnector MySql + +DROP TABLE IF EXISTS `tmptbl2` + +BeforeExecute +-- MariaDB.11 MariaDB.10.MySqlConnector MySql + +DROP TABLE IF EXISTS `tmptbl1` + From 89800935363a53200cd2b3e3f28a8fe4b720d706 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:31:56 +0000 Subject: [PATCH 17/40] [Linux / MySQL 5.7 (both providers)] baselines --- ...ts.NullableCoalesceJoinTest(MySql.5.7).sql | 116 ++++++++++++++++++ ...leCoalesceJoinTest(MySqlConnector.5.7).sql | 116 ++++++++++++++++++ 2 files changed, 232 insertions(+) create mode 100644 MySql.5.7/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySql.5.7).sql create mode 100644 MySqlConnector.5.7/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySqlConnector.5.7).sql diff --git a/MySql.5.7/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySql.5.7).sql b/MySql.5.7/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySql.5.7).sql new file mode 100644 index 000000000000..70b6c04b1f99 --- /dev/null +++ b/MySql.5.7/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySql.5.7).sql @@ -0,0 +1,116 @@ +BeforeExecute +-- MySql.5.7 MySql.5.7.MySql.Data MySql57 + +CREATE TEMPORARY TABLE `tmptbl1` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NULL +) + +BeforeExecute +-- MySql.5.7 MySql.5.7.MySql.Data MySql57 + +INSERT INTO `tmptbl1` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- MySql.5.7 MySql.5.7.MySql.Data MySql57 + +CREATE TEMPORARY TABLE `tmptbl2` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NOT NULL +) + +BeforeExecute +-- MySql.5.7 MySql.5.7.MySql.Data MySql57 + +INSERT INTO `tmptbl2` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- MySql.5.7 MySql.5.7.MySql.Data MySql57 + +CREATE TEMPORARY TABLE `tmptbl3` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NULL +) + +BeforeExecute +-- MySql.5.7 MySql.5.7.MySql.Data MySql57 + +INSERT INTO `tmptbl3` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- MySql.5.7 MySql.5.7.MySql.Data MySql57 + +SELECT + `t4`.`ID`, + `t4`.`Value` +FROM + `tmptbl1` `t2` + LEFT JOIN `tmptbl2` `t3` ON `t2`.`ID` = `t3`.`ID` + LEFT JOIN `tmptbl3` `t4` ON Coalesce(`t3`.`Value`, `t2`.`Value`) = `t4`.`Value` OR `t3`.`Value` IS NULL AND `t2`.`Value` IS NULL AND `t4`.`Value` IS NULL + +BeforeExecute +-- MySql.5.7 MySql.5.7.MySql.Data MySql57 + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl1` `t1` + +BeforeExecute +-- MySql.5.7 MySql.5.7.MySql.Data MySql57 + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl2` `t1` + +BeforeExecute +-- MySql.5.7 MySql.5.7.MySql.Data MySql57 + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl3` `t1` + +BeforeExecute +-- MySql.5.7 MySql.5.7.MySql.Data MySql57 + +DROP TABLE IF EXISTS `tmptbl3` + +BeforeExecute +-- MySql.5.7 MySql.5.7.MySql.Data MySql57 + +DROP TABLE IF EXISTS `tmptbl2` + +BeforeExecute +-- MySql.5.7 MySql.5.7.MySql.Data MySql57 + +DROP TABLE IF EXISTS `tmptbl1` + diff --git a/MySqlConnector.5.7/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySqlConnector.5.7).sql b/MySqlConnector.5.7/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySqlConnector.5.7).sql new file mode 100644 index 000000000000..05a7fe106bf7 --- /dev/null +++ b/MySqlConnector.5.7/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySqlConnector.5.7).sql @@ -0,0 +1,116 @@ +BeforeExecute +-- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 + +CREATE TEMPORARY TABLE `tmptbl1` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NULL +) + +BeforeExecute +-- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 + +INSERT INTO `tmptbl1` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 + +CREATE TEMPORARY TABLE `tmptbl2` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NOT NULL +) + +BeforeExecute +-- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 + +INSERT INTO `tmptbl2` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 + +CREATE TEMPORARY TABLE `tmptbl3` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NULL +) + +BeforeExecute +-- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 + +INSERT INTO `tmptbl3` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 + +SELECT + `t4`.`ID`, + `t4`.`Value` +FROM + `tmptbl1` `t2` + LEFT JOIN `tmptbl2` `t3` ON `t2`.`ID` = `t3`.`ID` + LEFT JOIN `tmptbl3` `t4` ON Coalesce(`t3`.`Value`, `t2`.`Value`) = `t4`.`Value` OR `t3`.`Value` IS NULL AND `t2`.`Value` IS NULL AND `t4`.`Value` IS NULL + +BeforeExecute +-- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl1` `t1` + +BeforeExecute +-- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl2` `t1` + +BeforeExecute +-- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl3` `t1` + +BeforeExecute +-- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 + +DROP TABLE IF EXISTS `tmptbl3` + +BeforeExecute +-- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 + +DROP TABLE IF EXISTS `tmptbl2` + +BeforeExecute +-- MySqlConnector.5.7 MySql.5.7.MySqlConnector MySql57 + +DROP TABLE IF EXISTS `tmptbl1` + From a04b940761a6736598d0b01076438a788a9be980 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:33:22 +0000 Subject: [PATCH 18/40] [Linux / MySQL 9 (both providers)] baselines --- ...ts.NullableCoalesceJoinTest(MySql.8.0).sql | 116 ++++++++++++++++++ ...leCoalesceJoinTest(MySqlConnector.8.0).sql | 116 ++++++++++++++++++ 2 files changed, 232 insertions(+) create mode 100644 MySql.8.0/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySql.8.0).sql create mode 100644 MySqlConnector.8.0/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySqlConnector.8.0).sql diff --git a/MySql.8.0/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySql.8.0).sql b/MySql.8.0/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySql.8.0).sql new file mode 100644 index 000000000000..05458e58d085 --- /dev/null +++ b/MySql.8.0/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySql.8.0).sql @@ -0,0 +1,116 @@ +BeforeExecute +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +CREATE TEMPORARY TABLE `tmptbl1` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NULL +) + +BeforeExecute +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +INSERT INTO `tmptbl1` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +CREATE TEMPORARY TABLE `tmptbl2` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NOT NULL +) + +BeforeExecute +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +INSERT INTO `tmptbl2` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +CREATE TEMPORARY TABLE `tmptbl3` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NULL +) + +BeforeExecute +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +INSERT INTO `tmptbl3` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +SELECT + `t4`.`ID`, + `t4`.`Value` +FROM + `tmptbl1` `t2` + LEFT JOIN `tmptbl2` `t3` ON `t2`.`ID` = `t3`.`ID` + LEFT JOIN `tmptbl3` `t4` ON Coalesce(`t3`.`Value`, `t2`.`Value`) = `t4`.`Value` OR `t3`.`Value` IS NULL AND `t2`.`Value` IS NULL AND `t4`.`Value` IS NULL + +BeforeExecute +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl1` `t1` + +BeforeExecute +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl2` `t1` + +BeforeExecute +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl3` `t1` + +BeforeExecute +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +DROP TABLE IF EXISTS `tmptbl3` + +BeforeExecute +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +DROP TABLE IF EXISTS `tmptbl2` + +BeforeExecute +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +DROP TABLE IF EXISTS `tmptbl1` + diff --git a/MySqlConnector.8.0/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySqlConnector.8.0).sql b/MySqlConnector.8.0/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySqlConnector.8.0).sql new file mode 100644 index 000000000000..09df7b6d0ae6 --- /dev/null +++ b/MySqlConnector.8.0/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(MySqlConnector.8.0).sql @@ -0,0 +1,116 @@ +BeforeExecute +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +CREATE TEMPORARY TABLE `tmptbl1` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NULL +) + +BeforeExecute +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +INSERT INTO `tmptbl1` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +CREATE TEMPORARY TABLE `tmptbl2` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NOT NULL +) + +BeforeExecute +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +INSERT INTO `tmptbl2` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +CREATE TEMPORARY TABLE `tmptbl3` +( + `ID` INT NOT NULL, + `Value` VARCHAR(4000) NULL +) + +BeforeExecute +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +INSERT INTO `tmptbl3` +( + `ID`, + `Value` +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +SELECT + `t4`.`ID`, + `t4`.`Value` +FROM + `tmptbl1` `t2` + LEFT JOIN `tmptbl2` `t3` ON `t2`.`ID` = `t3`.`ID` + LEFT JOIN `tmptbl3` `t4` ON Coalesce(`t3`.`Value`, `t2`.`Value`) = `t4`.`Value` OR `t3`.`Value` IS NULL AND `t2`.`Value` IS NULL AND `t4`.`Value` IS NULL + +BeforeExecute +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl1` `t1` + +BeforeExecute +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl2` `t1` + +BeforeExecute +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +SELECT + `t1`.`ID`, + `t1`.`Value` +FROM + `tmptbl3` `t1` + +BeforeExecute +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +DROP TABLE IF EXISTS `tmptbl3` + +BeforeExecute +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +DROP TABLE IF EXISTS `tmptbl2` + +BeforeExecute +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +DROP TABLE IF EXISTS `tmptbl1` + From 6b3dccc02a210c3793b2ec514a408094a41f3a14 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 20:37:05 +0100 Subject: [PATCH 19/40] [Linux / Oracle 11g XE] baselines --- ...bleCoalesceJoinTest(Oracle.11.Managed).sql | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 Oracle.11.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.11.Managed).sql diff --git a/Oracle.11.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.11.Managed).sql b/Oracle.11.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.11.Managed).sql new file mode 100644 index 000000000000..0fba15cdfcae --- /dev/null +++ b/Oracle.11.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.11.Managed).sql @@ -0,0 +1,155 @@ +BeforeExecute +-- Oracle.11.Managed Oracle11 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl1" + ( + ID Int NOT NULL, + "Value" VarChar(255) NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.11.Managed Oracle11 + +INSERT ALL + INTO "tmptbl1" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl1" (ID, "Value") VALUES (2,NULL) +SELECT * FROM dual + +BeforeExecute +-- Oracle.11.Managed Oracle11 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl2" + ( + ID Int NOT NULL, + "Value" VarChar(255) NOT NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.11.Managed Oracle11 + +INSERT ALL + INTO "tmptbl2" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl2" (ID, "Value") VALUES (3,'Value2') +SELECT * FROM dual + +BeforeExecute +-- Oracle.11.Managed Oracle11 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl3" + ( + ID Int NOT NULL, + "Value" VarChar(255) NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.11.Managed Oracle11 + +INSERT ALL + INTO "tmptbl3" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl3" (ID, "Value") VALUES (2,NULL) +SELECT * FROM dual + +BeforeExecute +-- Oracle.11.Managed Oracle11 + +SELECT + t4.ID, + t4."Value" +FROM + "tmptbl1" t2 + LEFT JOIN "tmptbl2" t3 ON t2.ID = t3.ID + LEFT JOIN "tmptbl3" t4 ON Coalesce(t3."Value", t2."Value") = t4."Value" OR t3."Value" IS NULL AND t2."Value" IS NULL AND t4."Value" IS NULL + +BeforeExecute +-- Oracle.11.Managed Oracle11 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl1" t1 + +BeforeExecute +-- Oracle.11.Managed Oracle11 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl2" t1 + +BeforeExecute +-- Oracle.11.Managed Oracle11 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl3" t1 + +BeforeExecute +-- Oracle.11.Managed Oracle11 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl3"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.11.Managed Oracle11 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl2"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.11.Managed Oracle11 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl1"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + From 5136d29c22182a9174a929f7c26b0eebecbd52b1 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:40:18 +0000 Subject: [PATCH 20/40] [Windows / SQL Server 2019] baselines --- ...bleCoalesceJoinTest(SqlServer.2019.MS).sql | 89 +++++++++++++++++++ ...llableCoalesceJoinTest(SqlServer.2019).sql | 89 +++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 SqlServer.2019.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2019.MS).sql create mode 100644 SqlServer.2019/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2019).sql diff --git a/SqlServer.2019.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2019.MS).sql b/SqlServer.2019.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2019.MS).sql new file mode 100644 index 000000000000..6e26e659517e --- /dev/null +++ b/SqlServer.2019.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2019.MS).sql @@ -0,0 +1,89 @@ +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2019.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl1] + diff --git a/SqlServer.2019/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2019).sql b/SqlServer.2019/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2019).sql new file mode 100644 index 000000000000..e5a58edc7583 --- /dev/null +++ b/SqlServer.2019/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2019).sql @@ -0,0 +1,89 @@ +BeforeExecute +-- SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2019 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl1] + From 84c47e155bccc90339c7f0081945b2943da5311c Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 20:44:07 +0100 Subject: [PATCH 21/40] [Linux / Oracle 12c] baselines --- ...bleCoalesceJoinTest(Oracle.12.Managed).sql | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 Oracle.12.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.12.Managed).sql diff --git a/Oracle.12.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.12.Managed).sql b/Oracle.12.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.12.Managed).sql new file mode 100644 index 000000000000..0e1cd26669a8 --- /dev/null +++ b/Oracle.12.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.12.Managed).sql @@ -0,0 +1,155 @@ +BeforeExecute +-- Oracle.12.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl1" + ( + ID Int NOT NULL, + "Value" VarChar(255) NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.12.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl1" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl1" (ID, "Value") VALUES (2,NULL) +SELECT * FROM dual + +BeforeExecute +-- Oracle.12.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl2" + ( + ID Int NOT NULL, + "Value" VarChar(255) NOT NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.12.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl2" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl2" (ID, "Value") VALUES (3,'Value2') +SELECT * FROM dual + +BeforeExecute +-- Oracle.12.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl3" + ( + ID Int NOT NULL, + "Value" VarChar(255) NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.12.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl3" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl3" (ID, "Value") VALUES (2,NULL) +SELECT * FROM dual + +BeforeExecute +-- Oracle.12.Managed Oracle.Managed Oracle12 + +SELECT + t4.ID, + t4."Value" +FROM + "tmptbl1" t2 + LEFT JOIN "tmptbl2" t3 ON t2.ID = t3.ID + LEFT JOIN "tmptbl3" t4 ON Coalesce(t3."Value", t2."Value") = t4."Value" OR t3."Value" IS NULL AND t2."Value" IS NULL AND t4."Value" IS NULL + +BeforeExecute +-- Oracle.12.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl1" t1 + +BeforeExecute +-- Oracle.12.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl2" t1 + +BeforeExecute +-- Oracle.12.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl3" t1 + +BeforeExecute +-- Oracle.12.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl3"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.12.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl2"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.12.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl1"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + From 76f761fab3d581d687b56ae991180ced258449b0 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:47:42 +0000 Subject: [PATCH 22/40] [Linux / PostgreSQL 13] baselines --- ...ullableCoalesceJoinTest(PostgreSQL.13).sql | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 PostgreSQL.13/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.13).sql diff --git a/PostgreSQL.13/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.13).sql b/PostgreSQL.13/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.13).sql new file mode 100644 index 000000000000..3142d5211271 --- /dev/null +++ b/PostgreSQL.13/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.13).sql @@ -0,0 +1,119 @@ +BeforeExecute +-- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl1 +( + "ID" Int NOT NULL, + "Value" text NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL + +INSERT INTO tmptbl1 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl2 +( + "ID" Int NOT NULL, + "Value" text NOT NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL + +INSERT INTO tmptbl2 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl3 +( + "ID" Int NOT NULL, + "Value" text NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL + +INSERT INTO tmptbl3 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL + +SELECT + t4."ID", + t4."Value" +FROM + tmptbl1 t2 + LEFT JOIN tmptbl2 t3 ON t2."ID" = t3."ID" + LEFT JOIN tmptbl3 t4 ON Coalesce(t3."Value", t2."Value") = t4."Value" OR t3."Value" IS NULL AND t2."Value" IS NULL AND t4."Value" IS NULL + +BeforeExecute +-- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl1 t1 + +BeforeExecute +-- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl2 t1 + +BeforeExecute +-- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl3 t1 + +BeforeExecute +-- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL + +DROP TABLE IF EXISTS tmptbl3 + +BeforeExecute +-- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL + +DROP TABLE IF EXISTS tmptbl2 + +BeforeExecute +-- PostgreSQL.13 PostgreSQL.9.5 PostgreSQL + +DROP TABLE IF EXISTS tmptbl1 + From cb3e386ad0cf42d51b695dfdbbb298846d69e6f8 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:49:22 +0000 Subject: [PATCH 23/40] [Windows / SQL Server 2022] baselines --- ...bleCoalesceJoinTest(SqlServer.2022.MS).sql | 89 +++++++++++++++++++ ...llableCoalesceJoinTest(SqlServer.2022).sql | 89 +++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 SqlServer.2022.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2022.MS).sql create mode 100644 SqlServer.2022/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2022).sql diff --git a/SqlServer.2022.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2022.MS).sql b/SqlServer.2022.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2022.MS).sql new file mode 100644 index 000000000000..89da1885bab0 --- /dev/null +++ b/SqlServer.2022.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2022.MS).sql @@ -0,0 +1,89 @@ +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2022.MS SqlServer.2022 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl1] + diff --git a/SqlServer.2022/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2022).sql b/SqlServer.2022/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2022).sql new file mode 100644 index 000000000000..3d06c34f65d5 --- /dev/null +++ b/SqlServer.2022/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.2022).sql @@ -0,0 +1,89 @@ +BeforeExecute +-- SqlServer.2022 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.2022 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.2022 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.2022 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.2022 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.2022 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.2022 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.2022 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.2022 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.2022 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl1] + From 977687060db6b6647e0cba0b38d9cd9c845841b4 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 20:51:55 +0100 Subject: [PATCH 24/40] [Linux / Oracle 19c] baselines --- ...bleCoalesceJoinTest(Oracle.19.Managed).sql | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 Oracle.19.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.19.Managed).sql diff --git a/Oracle.19.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.19.Managed).sql b/Oracle.19.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.19.Managed).sql new file mode 100644 index 000000000000..630cd0100b38 --- /dev/null +++ b/Oracle.19.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.19.Managed).sql @@ -0,0 +1,155 @@ +BeforeExecute +-- Oracle.19.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl1" + ( + ID Int NOT NULL, + "Value" VarChar(255) NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.19.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl1" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl1" (ID, "Value") VALUES (2,NULL) +SELECT * FROM dual + +BeforeExecute +-- Oracle.19.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl2" + ( + ID Int NOT NULL, + "Value" VarChar(255) NOT NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.19.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl2" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl2" (ID, "Value") VALUES (3,'Value2') +SELECT * FROM dual + +BeforeExecute +-- Oracle.19.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl3" + ( + ID Int NOT NULL, + "Value" VarChar(255) NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.19.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl3" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl3" (ID, "Value") VALUES (2,NULL) +SELECT * FROM dual + +BeforeExecute +-- Oracle.19.Managed Oracle.Managed Oracle12 + +SELECT + t4.ID, + t4."Value" +FROM + "tmptbl1" t2 + LEFT JOIN "tmptbl2" t3 ON t2.ID = t3.ID + LEFT JOIN "tmptbl3" t4 ON Coalesce(t3."Value", t2."Value") = t4."Value" OR t3."Value" IS NULL AND t2."Value" IS NULL AND t4."Value" IS NULL + +BeforeExecute +-- Oracle.19.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl1" t1 + +BeforeExecute +-- Oracle.19.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl2" t1 + +BeforeExecute +-- Oracle.19.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl3" t1 + +BeforeExecute +-- Oracle.19.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl3"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.19.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl2"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.19.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl1"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + From c223d6f93d8be6eb47c03c92654fdc4992d2f89d Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:53:04 +0000 Subject: [PATCH 25/40] [Linux / PostgreSQL 14] baselines --- ...ullableCoalesceJoinTest(PostgreSQL.14).sql | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 PostgreSQL.14/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.14).sql diff --git a/PostgreSQL.14/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.14).sql b/PostgreSQL.14/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.14).sql new file mode 100644 index 000000000000..e26a28f2180c --- /dev/null +++ b/PostgreSQL.14/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.14).sql @@ -0,0 +1,119 @@ +BeforeExecute +-- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl1 +( + "ID" Int NOT NULL, + "Value" text NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL + +INSERT INTO tmptbl1 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl2 +( + "ID" Int NOT NULL, + "Value" text NOT NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL + +INSERT INTO tmptbl2 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl3 +( + "ID" Int NOT NULL, + "Value" text NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL + +INSERT INTO tmptbl3 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL + +SELECT + t4."ID", + t4."Value" +FROM + tmptbl1 t2 + LEFT JOIN tmptbl2 t3 ON t2."ID" = t3."ID" + LEFT JOIN tmptbl3 t4 ON Coalesce(t3."Value", t2."Value") = t4."Value" OR t3."Value" IS NULL AND t2."Value" IS NULL AND t4."Value" IS NULL + +BeforeExecute +-- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl1 t1 + +BeforeExecute +-- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl2 t1 + +BeforeExecute +-- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl3 t1 + +BeforeExecute +-- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL + +DROP TABLE IF EXISTS tmptbl3 + +BeforeExecute +-- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL + +DROP TABLE IF EXISTS tmptbl2 + +BeforeExecute +-- PostgreSQL.14 PostgreSQL.9.5 PostgreSQL + +DROP TABLE IF EXISTS tmptbl1 + From 06edd1d883633e8b7a6635e45b5231cd617518f7 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 20:54:27 +0100 Subject: [PATCH 26/40] [Linux / Oracle 18c] baselines --- ...bleCoalesceJoinTest(Oracle.18.Managed).sql | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 Oracle.18.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.18.Managed).sql diff --git a/Oracle.18.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.18.Managed).sql b/Oracle.18.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.18.Managed).sql new file mode 100644 index 000000000000..e04ed39158bc --- /dev/null +++ b/Oracle.18.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.18.Managed).sql @@ -0,0 +1,155 @@ +BeforeExecute +-- Oracle.18.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl1" + ( + ID Int NOT NULL, + "Value" VarChar(255) NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.18.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl1" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl1" (ID, "Value") VALUES (2,NULL) +SELECT * FROM dual + +BeforeExecute +-- Oracle.18.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl2" + ( + ID Int NOT NULL, + "Value" VarChar(255) NOT NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.18.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl2" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl2" (ID, "Value") VALUES (3,'Value2') +SELECT * FROM dual + +BeforeExecute +-- Oracle.18.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl3" + ( + ID Int NOT NULL, + "Value" VarChar(255) NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.18.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl3" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl3" (ID, "Value") VALUES (2,NULL) +SELECT * FROM dual + +BeforeExecute +-- Oracle.18.Managed Oracle.Managed Oracle12 + +SELECT + t4.ID, + t4."Value" +FROM + "tmptbl1" t2 + LEFT JOIN "tmptbl2" t3 ON t2.ID = t3.ID + LEFT JOIN "tmptbl3" t4 ON Coalesce(t3."Value", t2."Value") = t4."Value" OR t3."Value" IS NULL AND t2."Value" IS NULL AND t4."Value" IS NULL + +BeforeExecute +-- Oracle.18.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl1" t1 + +BeforeExecute +-- Oracle.18.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl2" t1 + +BeforeExecute +-- Oracle.18.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl3" t1 + +BeforeExecute +-- Oracle.18.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl3"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.18.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl2"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.18.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl1"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + From c0d24a34b7b825df9bddea3a95201c42c40936be Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:55:19 +0000 Subject: [PATCH 27/40] [Linux / PostgreSQL 15] baselines --- ...ullableCoalesceJoinTest(PostgreSQL.15).sql | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 PostgreSQL.15/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.15).sql diff --git a/PostgreSQL.15/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.15).sql b/PostgreSQL.15/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.15).sql new file mode 100644 index 000000000000..820363b53c96 --- /dev/null +++ b/PostgreSQL.15/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.15).sql @@ -0,0 +1,119 @@ +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl1 +( + "ID" Int NOT NULL, + "Value" text NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +INSERT INTO tmptbl1 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl2 +( + "ID" Int NOT NULL, + "Value" text NOT NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +INSERT INTO tmptbl2 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl3 +( + "ID" Int NOT NULL, + "Value" text NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +INSERT INTO tmptbl3 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +SELECT + t4."ID", + t4."Value" +FROM + tmptbl1 t2 + LEFT JOIN tmptbl2 t3 ON t2."ID" = t3."ID" + LEFT JOIN tmptbl3 t4 ON Coalesce(t3."Value", t2."Value") = t4."Value" OR t3."Value" IS NULL AND t2."Value" IS NULL AND t4."Value" IS NULL + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl1 t1 + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl2 t1 + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl3 t1 + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS tmptbl3 + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS tmptbl2 + +BeforeExecute +-- PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS tmptbl1 + From 4058dc882d5859152198d6b3f25e669cdfa5c382 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:57:50 +0000 Subject: [PATCH 28/40] [Linux / PostgreSQL 16] baselines --- ...ullableCoalesceJoinTest(PostgreSQL.16).sql | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 PostgreSQL.16/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.16).sql diff --git a/PostgreSQL.16/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.16).sql b/PostgreSQL.16/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.16).sql new file mode 100644 index 000000000000..16909adda611 --- /dev/null +++ b/PostgreSQL.16/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.16).sql @@ -0,0 +1,119 @@ +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl1 +( + "ID" Int NOT NULL, + "Value" text NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +INSERT INTO tmptbl1 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl2 +( + "ID" Int NOT NULL, + "Value" text NOT NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +INSERT INTO tmptbl2 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl3 +( + "ID" Int NOT NULL, + "Value" text NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +INSERT INTO tmptbl3 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +SELECT + t4."ID", + t4."Value" +FROM + tmptbl1 t2 + LEFT JOIN tmptbl2 t3 ON t2."ID" = t3."ID" + LEFT JOIN tmptbl3 t4 ON Coalesce(t3."Value", t2."Value") = t4."Value" OR t3."Value" IS NULL AND t2."Value" IS NULL AND t4."Value" IS NULL + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl1 t1 + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl2 t1 + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl3 t1 + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS tmptbl3 + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS tmptbl2 + +BeforeExecute +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS tmptbl1 + From be311d3f7de2a0c6a5f914ffbe009e8a3c4d9be2 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 19:58:34 +0000 Subject: [PATCH 29/40] [Linux / PostgreSQL 17] baselines --- ...ullableCoalesceJoinTest(PostgreSQL.17).sql | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 PostgreSQL.17/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.17).sql diff --git a/PostgreSQL.17/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.17).sql b/PostgreSQL.17/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.17).sql new file mode 100644 index 000000000000..0edce91063b3 --- /dev/null +++ b/PostgreSQL.17/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(PostgreSQL.17).sql @@ -0,0 +1,119 @@ +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl1 +( + "ID" Int NOT NULL, + "Value" text NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +INSERT INTO tmptbl1 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl2 +( + "ID" Int NOT NULL, + "Value" text NOT NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +INSERT INTO tmptbl2 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(3,'Value2') + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +CREATE TEMPORARY TABLE tmptbl3 +( + "ID" Int NOT NULL, + "Value" text NULL +) +ON COMMIT PRESERVE ROWS + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +INSERT INTO tmptbl3 +( + "ID", + "Value" +) +VALUES +(1,'Value1'), +(2,NULL) + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +SELECT + t4."ID", + t4."Value" +FROM + tmptbl1 t2 + LEFT JOIN tmptbl2 t3 ON t2."ID" = t3."ID" + LEFT JOIN tmptbl3 t4 ON Coalesce(t3."Value", t2."Value") = t4."Value" OR t3."Value" IS NULL AND t2."Value" IS NULL AND t4."Value" IS NULL + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl1 t1 + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl2 t1 + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +SELECT + t1."ID", + t1."Value" +FROM + tmptbl3 t1 + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS tmptbl3 + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS tmptbl2 + +BeforeExecute +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +DROP TABLE IF EXISTS tmptbl1 + From 17026db78661c1e69bf74d0a4304cf5ada3a7f33 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 20:59:19 +0100 Subject: [PATCH 30/40] [Linux / Oracle 21c] baselines --- ...bleCoalesceJoinTest(Oracle.21.Managed).sql | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 Oracle.21.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.21.Managed).sql diff --git a/Oracle.21.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.21.Managed).sql b/Oracle.21.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.21.Managed).sql new file mode 100644 index 000000000000..7c8b1a654c10 --- /dev/null +++ b/Oracle.21.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.21.Managed).sql @@ -0,0 +1,155 @@ +BeforeExecute +-- Oracle.21.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl1" + ( + ID Int NOT NULL, + "Value" VarChar(255) NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.21.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl1" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl1" (ID, "Value") VALUES (2,NULL) +SELECT * FROM dual + +BeforeExecute +-- Oracle.21.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl2" + ( + ID Int NOT NULL, + "Value" VarChar(255) NOT NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.21.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl2" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl2" (ID, "Value") VALUES (3,'Value2') +SELECT * FROM dual + +BeforeExecute +-- Oracle.21.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl3" + ( + ID Int NOT NULL, + "Value" VarChar(255) NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.21.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl3" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl3" (ID, "Value") VALUES (2,NULL) +SELECT * FROM dual + +BeforeExecute +-- Oracle.21.Managed Oracle.Managed Oracle12 + +SELECT + t4.ID, + t4."Value" +FROM + "tmptbl1" t2 + LEFT JOIN "tmptbl2" t3 ON t2.ID = t3.ID + LEFT JOIN "tmptbl3" t4 ON Coalesce(t3."Value", t2."Value") = t4."Value" OR t3."Value" IS NULL AND t2."Value" IS NULL AND t4."Value" IS NULL + +BeforeExecute +-- Oracle.21.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl1" t1 + +BeforeExecute +-- Oracle.21.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl2" t1 + +BeforeExecute +-- Oracle.21.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl3" t1 + +BeforeExecute +-- Oracle.21.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl3"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.21.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl2"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.21.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl1"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + From c2253997a91a65d384407aa1ed2dbeb64adfd612 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 20:04:18 +0000 Subject: [PATCH 31/40] [Windows / SQL Server EXTRAS] baselines --- ...alesceJoinTest(SqlServer.Contained.MS).sql | 89 +++++++++++++++++++ ...eCoalesceJoinTest(SqlServer.Contained).sql | 89 +++++++++++++++++++ ...lableCoalesceJoinTest(SqlServer.SA.MS).sql | 89 +++++++++++++++++++ ...NullableCoalesceJoinTest(SqlServer.SA).sql | 89 +++++++++++++++++++ 4 files changed, 356 insertions(+) create mode 100644 SqlServer.Contained.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.Contained.MS).sql create mode 100644 SqlServer.Contained/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.Contained).sql create mode 100644 SqlServer.SA.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.SA.MS).sql create mode 100644 SqlServer.SA/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.SA).sql diff --git a/SqlServer.Contained.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.Contained.MS).sql b/SqlServer.Contained.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.Contained.MS).sql new file mode 100644 index 000000000000..0043c0d43ff8 --- /dev/null +++ b/SqlServer.Contained.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.Contained.MS).sql @@ -0,0 +1,89 @@ +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.Contained.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl1] + diff --git a/SqlServer.Contained/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.Contained).sql b/SqlServer.Contained/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.Contained).sql new file mode 100644 index 000000000000..df8cda53bbc6 --- /dev/null +++ b/SqlServer.Contained/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.Contained).sql @@ -0,0 +1,89 @@ +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.Contained SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl1] + diff --git a/SqlServer.SA.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.SA.MS).sql b/SqlServer.SA.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.SA.MS).sql new file mode 100644 index 000000000000..11942462c887 --- /dev/null +++ b/SqlServer.SA.MS/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.SA.MS).sql @@ -0,0 +1,89 @@ +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.SA.MS SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl1] + diff --git a/SqlServer.SA/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.SA).sql b/SqlServer.SA/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.SA).sql new file mode 100644 index 000000000000..0051242f4b87 --- /dev/null +++ b/SqlServer.SA/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SqlServer.SA).sql @@ -0,0 +1,89 @@ +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl1] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl1](ID, Value) + +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl2] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NOT NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl2](ID, Value) + +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +CREATE TABLE [tempdb]..[#tmptbl3] +( + [ID] Int NOT NULL, + [Value] NVarChar(4000) NULL +) + +BeforeExecute +INSERT BULK [tempdb]..[#tmptbl3](ID, Value) + +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +SELECT + [t4].[ID], + [t4].[Value] +FROM + [tempdb]..[#tmptbl1] [t2] + LEFT JOIN [tempdb]..[#tmptbl2] [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN [tempdb]..[#tmptbl3] [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl1] [t1] + +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl2] [t1] + +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +SELECT + [t1].[ID], + [t1].[Value] +FROM + [tempdb]..[#tmptbl3] [t1] + +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl3] + +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl2] + +BeforeExecute +-- SqlServer.SA SqlServer.2019 + +DROP TABLE IF EXISTS [tempdb]..[#tmptbl1] + From 1be58668de852ce734f9087c97811c6315a41706 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 20:07:04 +0000 Subject: [PATCH 32/40] [Linux / Sybase ASE 16] baselines --- ...llableCoalesceJoinTest(Sybase.Managed).sql | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 Sybase.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Sybase.Managed).sql diff --git a/Sybase.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Sybase.Managed).sql b/Sybase.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Sybase.Managed).sql new file mode 100644 index 000000000000..875cd323d00e --- /dev/null +++ b/Sybase.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Sybase.Managed).sql @@ -0,0 +1,116 @@ +BeforeExecute +-- Sybase.Managed Sybase + +CREATE TABLE #tmptbl1 +( + [ID] Int NOT NULL, + [Value] NVarChar(255) NULL +) + +BeforeExecute +-- Sybase.Managed Sybase + +INSERT INTO #tmptbl1 +( + [ID], + [Value] +) +SELECT 1,'Value1' UNION ALL +SELECT 2,NULL + +BeforeExecute +-- Sybase.Managed Sybase + +CREATE TABLE #tmptbl2 +( + [ID] Int NOT NULL, + [Value] NVarChar(255) NOT NULL +) + +BeforeExecute +-- Sybase.Managed Sybase + +INSERT INTO #tmptbl2 +( + [ID], + [Value] +) +SELECT 1,'Value1' UNION ALL +SELECT 3,'Value2' + +BeforeExecute +-- Sybase.Managed Sybase + +CREATE TABLE #tmptbl3 +( + [ID] Int NOT NULL, + [Value] NVarChar(255) NULL +) + +BeforeExecute +-- Sybase.Managed Sybase + +INSERT INTO #tmptbl3 +( + [ID], + [Value] +) +SELECT 1,'Value1' UNION ALL +SELECT 2,NULL + +BeforeExecute +-- Sybase.Managed Sybase + +SELECT + [t4].[ID], + [t4].[Value] +FROM + #tmptbl1 [t2] + LEFT JOIN #tmptbl2 [t3] ON [t2].[ID] = [t3].[ID] + LEFT JOIN #tmptbl3 [t4] ON Coalesce([t3].[Value], [t2].[Value]) = [t4].[Value] OR [t3].[Value] IS NULL AND [t2].[Value] IS NULL AND [t4].[Value] IS NULL + +BeforeExecute +-- Sybase.Managed Sybase + +SELECT + [t1].[ID], + [t1].[Value] +FROM + #tmptbl1 [t1] + +BeforeExecute +-- Sybase.Managed Sybase + +SELECT + [t1].[ID], + [t1].[Value] +FROM + #tmptbl2 [t1] + +BeforeExecute +-- Sybase.Managed Sybase + +SELECT + [t1].[ID], + [t1].[Value] +FROM + #tmptbl3 [t1] + +BeforeExecute +-- Sybase.Managed Sybase + +IF (OBJECT_ID(N'#tmptbl3') IS NOT NULL) + DROP TABLE #tmptbl3 + +BeforeExecute +-- Sybase.Managed Sybase + +IF (OBJECT_ID(N'#tmptbl2') IS NOT NULL) + DROP TABLE #tmptbl2 + +BeforeExecute +-- Sybase.Managed Sybase + +IF (OBJECT_ID(N'#tmptbl1') IS NOT NULL) + DROP TABLE #tmptbl1 + From 00a550ce404d9621b265d0703ae02a77fda56a75 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 21:11:18 +0100 Subject: [PATCH 33/40] [Linux / Oracle 23c] baselines --- ...bleCoalesceJoinTest(Oracle.23.Managed).sql | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 Oracle.23.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.23.Managed).sql diff --git a/Oracle.23.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.23.Managed).sql b/Oracle.23.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.23.Managed).sql new file mode 100644 index 000000000000..120339b3eab9 --- /dev/null +++ b/Oracle.23.Managed/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(Oracle.23.Managed).sql @@ -0,0 +1,155 @@ +BeforeExecute +-- Oracle.23.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl1" + ( + ID Int NOT NULL, + "Value" VarChar(255) NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.23.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl1" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl1" (ID, "Value") VALUES (2,NULL) +SELECT * FROM dual + +BeforeExecute +-- Oracle.23.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl2" + ( + ID Int NOT NULL, + "Value" VarChar(255) NOT NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.23.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl2" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl2" (ID, "Value") VALUES (3,'Value2') +SELECT * FROM dual + +BeforeExecute +-- Oracle.23.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE ' + CREATE GLOBAL TEMPORARY TABLE "tmptbl3" + ( + ID Int NOT NULL, + "Value" VarChar(255) NULL + ) + ON COMMIT PRESERVE ROWS + '; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -955 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.23.Managed Oracle.Managed Oracle12 + +INSERT ALL + INTO "tmptbl3" (ID, "Value") VALUES (1,'Value1') + INTO "tmptbl3" (ID, "Value") VALUES (2,NULL) +SELECT * FROM dual + +BeforeExecute +-- Oracle.23.Managed Oracle.Managed Oracle12 + +SELECT + t4.ID, + t4."Value" +FROM + "tmptbl1" t2 + LEFT JOIN "tmptbl2" t3 ON t2.ID = t3.ID + LEFT JOIN "tmptbl3" t4 ON Coalesce(t3."Value", t2."Value") = t4."Value" OR t3."Value" IS NULL AND t2."Value" IS NULL AND t4."Value" IS NULL + +BeforeExecute +-- Oracle.23.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl1" t1 + +BeforeExecute +-- Oracle.23.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl2" t1 + +BeforeExecute +-- Oracle.23.Managed Oracle.Managed Oracle12 + +SELECT + t1.ID, + t1."Value" +FROM + "tmptbl3" t1 + +BeforeExecute +-- Oracle.23.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl3"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.23.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl2"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + +BeforeExecute +-- Oracle.23.Managed Oracle.Managed Oracle12 + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE "tmptbl1"'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + From 92489b552ede8b544cc9685ec040fc6ce849f523 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sat, 15 Mar 2025 20:37:04 +0000 Subject: [PATCH 34/40] [Linux / SAP HANA 2] baselines --- ...NullableCoalesceJoinTest(SapHana.Odbc).sql | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 SapHana.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SapHana.Odbc).sql diff --git a/SapHana.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SapHana.Odbc).sql b/SapHana.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SapHana.Odbc).sql new file mode 100644 index 000000000000..ac4326000fc2 --- /dev/null +++ b/SapHana.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.NullableCoalesceJoinTest(SapHana.Odbc).sql @@ -0,0 +1,188 @@ +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +CREATE COLUMN TABLE "tmptbl1" +( + "ID" Integer NOT NULL, + "Value" NVarChar(255) NULL +) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc +DECLARE @ID -- Int32 +SET @ID = 1 +DECLARE @Value NVarChar(6) -- String +SET @Value = 'Value1' + +INSERT INTO "tmptbl1" +( + "ID", + "Value" +) +VALUES +( + ?, + ? +) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc +DECLARE @ID -- Int32 +SET @ID = 2 +DECLARE @Value NVarChar -- String +SET @Value = NULL + +INSERT INTO "tmptbl1" +( + "ID", + "Value" +) +VALUES +( + ?, + ? +) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +CREATE COLUMN TABLE "tmptbl2" +( + "ID" Integer NOT NULL, + "Value" NVarChar(255) NOT NULL +) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc +DECLARE @ID -- Int32 +SET @ID = 1 +DECLARE @Value NVarChar(6) -- String +SET @Value = 'Value1' + +INSERT INTO "tmptbl2" +( + "ID", + "Value" +) +VALUES +( + ?, + ? +) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc +DECLARE @ID -- Int32 +SET @ID = 3 +DECLARE @Value NVarChar(6) -- String +SET @Value = 'Value2' + +INSERT INTO "tmptbl2" +( + "ID", + "Value" +) +VALUES +( + ?, + ? +) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +CREATE COLUMN TABLE "tmptbl3" +( + "ID" Integer NOT NULL, + "Value" NVarChar(255) NULL +) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc +DECLARE @ID -- Int32 +SET @ID = 1 +DECLARE @Value NVarChar(6) -- String +SET @Value = 'Value1' + +INSERT INTO "tmptbl3" +( + "ID", + "Value" +) +VALUES +( + ?, + ? +) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc +DECLARE @ID -- Int32 +SET @ID = 2 +DECLARE @Value NVarChar -- String +SET @Value = NULL + +INSERT INTO "tmptbl3" +( + "ID", + "Value" +) +VALUES +( + ?, + ? +) + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +SELECT + "t4"."ID", + "t4"."Value" +FROM + "tmptbl1" "t2" + LEFT JOIN "tmptbl2" "t3" ON "t2"."ID" = "t3"."ID" + LEFT JOIN "tmptbl3" "t4" ON Coalesce("t3"."Value", "t2"."Value") = "t4"."Value" OR "t3"."Value" IS NULL AND "t2"."Value" IS NULL AND "t4"."Value" IS NULL + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +SELECT + "t1"."ID", + "t1"."Value" +FROM + "tmptbl1" "t1" + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +SELECT + "t1"."ID", + "t1"."Value" +FROM + "tmptbl2" "t1" + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +SELECT + "t1"."ID", + "t1"."Value" +FROM + "tmptbl3" "t1" + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +DROP TABLE "tmptbl3" + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +DROP TABLE "tmptbl2" + +BeforeExecute +-- SapHana.Odbc SapHanaOdbc + +DROP TABLE "tmptbl1" + From 26c53bf2c550b87a5ecd045164542b265516ccb0 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Mar 2025 22:10:31 +0000 Subject: [PATCH 35/40] [Linux / DB2 LUW 11.5] baselines --- ...onTests.Issue2933Test(DB2.LinqService).sql | 2 +- ...nTests.Issue3557Case1(DB2.LinqService).sql | 2 +- ...nTests.Issue3557Case2(DB2.LinqService).sql | 2 +- ...nTests.Issue3557Case3(DB2.LinqService).sql | 2 +- ...onTests.Issue3809Test(DB2.LinqService).sql | 6 ++-- ...ionNonNullCorrelation(DB2.LinqService).sql | 6 ++-- ...elationWithProjection(DB2.LinqService).sql | 3 +- ....ConcatDefaultIfEmpty(DB2.LinqService).sql | 5 ++-- ...catUnionTests.Union54(DB2.LinqService).sql | 5 ++-- ...atUnionTests.Union541(DB2.LinqService).sql | 5 ++-- ...ressionTests.LetTest1(DB2.LinqService).sql | 5 ++-- ...essionTests.LetTest11(DB2.LinqService).sql | 8 +++--- ...NestedFirstOrDefault5(DB2.LinqService).sql | 2 +- ...pByTests.JoinGroupBy2(DB2.LinqService).sql | 2 +- ...inq.GroupByTests.Sum3(DB2.LinqService).sql | 2 +- ...itanceAssociationTest(DB2.LinqService).sql | 2 +- ...llJoinWithBothFilters(DB2.LinqService).sql | 13 ++++----- ...othFiltersAlternative(DB2.LinqService).sql | 12 ++++---- ...nOnLeftWithConditions(DB2.LinqService).sql | 10 +++---- ...LeftWithoutConditions(DB2.LinqService).sql | 6 ++-- ...OnRightWithConditions(DB2.LinqService).sql | 10 +++---- ...ightWithoutConditions(DB2.LinqService).sql | 4 +-- ...nOnLeftWithConditions(DB2.LinqService).sql | 6 ++-- ...LeftWithoutConditions(DB2.LinqService).sql | 6 ++-- ...OnRightWithConditions(DB2.LinqService).sql | 6 ++-- ...adWithTests.LoadWith8(DB2.LinqService).sql | 2 +- ...adWithTests.LoadWith9(DB2.LinqService).sql | 2 +- ...electManyTests.Basic5(DB2.LinqService).sql | 2 +- ...ctManyTests.OneParam3(DB2.LinqService).sql | 2 +- ...rentDetails(DB2.LinqService,ExceptAll).sql | 28 +++++++++++++++++-- ...SameDetails(DB2.LinqService,ExceptAll).sql | 8 +++--- ...eDetails(DB2.LinqService,IntersectAll).sql | 8 +++--- ...bQueryTests.SubSub212(DB2.LinqService).sql | 3 +- ...BinaryComparisonTest2(DB2.LinqService).sql | 3 +- ...exIsNullPredicateTest(DB2.LinqService).sql | 3 +- ...32Tests.TestIssue2832(DB2.LinqService).sql | 4 +-- ...ests.EagerLoadingTest(DB2.LinqService).sql | 6 ++-- ...sts.LetTests.LetTest1(DB2.LinqService).sql | 2 +- ...sts.LetTests.LetTest2(DB2.LinqService).sql | 2 +- ...nq.AssociationTests.Issue2933Test(DB2).sql | 2 +- ...q.AssociationTests.Issue3557Case1(DB2).sql | 2 +- ...q.AssociationTests.Issue3557Case2(DB2).sql | 2 +- ...q.AssociationTests.Issue3557Case3(DB2).sql | 2 +- ...nq.AssociationTests.Issue3809Test(DB2).sql | 6 ++-- ...onalAssociationNonNullCorrelation(DB2).sql | 6 ++-- ...nNonNullCorrelationWithProjection(DB2).sql | 3 +- ...atUnionTests.ConcatDefaultIfEmpty(DB2).sql | 5 ++-- ...sts.Linq.ConcatUnionTests.Union54(DB2).sql | 5 ++-- ...ts.Linq.ConcatUnionTests.Union541(DB2).sql | 5 ++-- ...q.ConvertExpressionTests.LetTest1(DB2).sql | 5 ++-- ....ConvertExpressionTests.LetTest11(DB2).sql | 8 +++--- ...rationTests.NestedFirstOrDefault5(DB2).sql | 2 +- ...ts.Linq.GroupByTests.JoinGroupBy2(DB2).sql | 2 +- .../Tests.Linq.GroupByTests.Sum3(DB2).sql | 2 +- ...eTests.InheritanceAssociationTest(DB2).sql | 2 +- ...nTests.SqlFullJoinWithBothFilters(DB2).sql | 13 ++++----- ...ullJoinWithBothFiltersAlternative(DB2).sql | 12 ++++---- ...WithInnerJoinOnLeftWithConditions(DB2).sql | 10 +++---- ...hInnerJoinOnLeftWithoutConditions(DB2).sql | 6 ++-- ...ithInnerJoinOnRightWithConditions(DB2).sql | 10 +++---- ...InnerJoinOnRightWithoutConditions(DB2).sql | 4 +-- ...WithInnerJoinOnLeftWithConditions(DB2).sql | 6 ++-- ...hInnerJoinOnLeftWithoutConditions(DB2).sql | 6 ++-- ...ithInnerJoinOnRightWithConditions(DB2).sql | 6 ++-- ...ests.Linq.LoadWithTests.LoadWith8(DB2).sql | 2 +- ...ests.Linq.LoadWithTests.LoadWith9(DB2).sql | 2 +- ...Tests.Linq.SelectManyTests.Basic5(DB2).sql | 2 +- ...ts.Linq.SelectManyTests.OneParam3(DB2).sql | 2 +- ...s.EagerDifferentDetails(DB2,ExceptAll).sql | 28 +++++++++++++++++-- ...xTests.EagerSameDetails(DB2,ExceptAll).sql | 8 +++--- ...sts.EagerSameDetails(DB2,IntersectAll).sql | 8 +++--- ...ests.Linq.SubQueryTests.SubSub212(DB2).sql | 3 +- ....WhereTests.BinaryComparisonTest2(DB2).sql | 3 +- ...eTests.ComplexIsNullPredicateTest(DB2).sql | 3 +- ...ests.Issue2832Tests.TestIssue2832(DB2).sql | 4 +-- ...s.Issue2895Tests.EagerLoadingTest(DB2).sql | 6 ++-- ...Tests.UserTests.LetTests.LetTest1(DB2).sql | 2 +- ...Tests.UserTests.LetTests.LetTest2(DB2).sql | 2 +- ...ts.OtherSourceAssociationInUpdate(DB2).sql | 2 +- ...ourceAssociationInUpdatePredicate(DB2).sql | 2 +- ...sts.SameSourceAssociationInUpdate(DB2).sql | 2 +- ...ourceAssociationInUpdatePredicate(DB2).sql | 2 +- ...te.UpdateFromTests.Issue2815Test2(DB2).sql | 2 +- 83 files changed, 239 insertions(+), 185 deletions(-) diff --git a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(DB2.LinqService).sql index 0bcf7b50c624..5fe7631d5b61 100644 --- a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(DB2.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM "Issue2933Pet" "a_PetIds" WHERE - "a_Person"."Id" = "a_PetIds"."PersonId" + "a_Person"."Id" IS NOT NULL AND "a_Person"."Id" = "a_PetIds"."PersonId" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(DB2.LinqService).sql index 6ca2f8d2922e..f8be7d5dfcbf 100644 --- a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(DB2.LinqService).sql @@ -11,7 +11,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) END diff --git a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(DB2.LinqService).sql index f6fa49236f64..904f9d2c66b4 100644 --- a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(DB2.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ), '') FROM diff --git a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(DB2.LinqService).sql index 9c401ee1aff0..5f2d8b8bad5d 100644 --- a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(DB2.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(DB2.LinqService).sql index daec00ebdcfc..edd9551d1326 100644 --- a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(DB2.LinqService).sql @@ -19,7 +19,8 @@ FROM FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) ) "m_1" INNER JOIN "Child" "d" ON "m_1"."ParentID" = "d"."ParentID" @@ -42,6 +43,7 @@ WHERE FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) diff --git a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(DB2.LinqService).sql index fbaa95efa29e..ac18950e5308 100644 --- a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(DB2.LinqService).sql @@ -20,7 +20,8 @@ FROM FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) ) "m_1" INNER JOIN "Table4" "d" ON "m_1".ID = "d".ID3 OR "m_1".ID IS NULL AND "d".ID3 IS NULL @@ -45,7 +46,8 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) BeforeExecute diff --git a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(DB2.LinqService).sql index f8188c91eaae..15914331fcb4 100644 --- a/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(DB2.LinqService).sql @@ -16,6 +16,7 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) diff --git a/DB2.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(DB2.LinqService).sql index c8990655817a..02998104ce58 100644 --- a/DB2.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(DB2.LinqService).sql @@ -12,11 +12,10 @@ FROM SELECT "a_Children"."ParentID", "a_Children"."ChildID", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn", - "a_Children"."ParentID" as "ParentID_1" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn" FROM "Child" "a_Children" - ) "t1" ON "p"."ParentID" = "t1"."ParentID_1" AND "t1"."rn" <= 1 + ) "t1" ON "p"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 WHERE "p"."ParentID" = 1 UNION ALL diff --git a/DB2.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(DB2.LinqService).sql index 88c7e3e44324..ecaec1132331 100644 --- a/DB2.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(DB2.LinqService).sql @@ -24,9 +24,8 @@ FROM SELECT "a_Children"."ParentID" as "cond", "a_Children"."ChildID", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn", - "a_Children"."ParentID" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn" FROM "Child" "a_Children" - ) "t1" ON "p2"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "p2"."ParentID" = "t1"."cond" AND "t1"."rn" <= 1 diff --git a/DB2.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(DB2.LinqService).sql index 0965c161ec60..efcd8a6296fa 100644 --- a/DB2.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(DB2.LinqService).sql @@ -24,9 +24,8 @@ FROM SELECT "a_Children"."ParentID" as "cond", "a_Children"."ChildID", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn", - "a_Children"."ParentID" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn" FROM "Child" "a_Children" - ) "t1" ON "p2"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "p2"."ParentID" = "t1"."cond" AND "t1"."rn" <= 1 diff --git a/DB2.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(DB2.LinqService).sql index 87c3f4162678..fecd10582620 100644 --- a/DB2.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(DB2.LinqService).sql @@ -8,11 +8,10 @@ FROM LEFT JOIN ( SELECT "a_Children"."ParentID" as "cond", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn", - "a_Children"."ParentID" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn" FROM "Child" "a_Children" - ) "t1" ON "p"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "p"."ParentID" = "t1"."cond" AND "t1"."rn" <= 1 WHERE "t1"."cond" IS NOT NULL diff --git a/DB2.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(DB2.LinqService).sql index ff1e892337cd..ce89e7dfa454 100644 --- a/DB2.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(DB2.LinqService).sql @@ -3,8 +3,8 @@ SELECT CASE - WHEN "t1"."ParentID_1" IS NULL THEN 0 - ELSE "t1"."ParentID_1" + WHEN "t1"."cond" IS NULL THEN 0 + ELSE "t1"."cond" END, ( SELECT @@ -31,7 +31,6 @@ SELECT FROM ( SELECT - "p"."ParentID", ( SELECT "c_1"."ParentID" @@ -42,7 +41,8 @@ FROM ORDER BY "c_1"."ParentID" FETCH NEXT 1 ROWS ONLY - ) as "ParentID_1" + ) as "cond", + "p"."ParentID" FROM "Parent" "p" ) "t1" diff --git a/DB2.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(DB2.LinqService).sql index f3395550d857..8380c5de7dee 100644 --- a/DB2.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(DB2.LinqService).sql @@ -15,7 +15,7 @@ FROM ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID") as "rn" FROM "Child" "a_Children" - ) "t1" ON "a_Parent"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 WHERE "p"."ChildID" > 0 diff --git a/DB2.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(DB2.LinqService).sql index 8b126f16b78a..cf9398718a85 100644 --- a/DB2.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(DB2.LinqService).sql @@ -6,7 +6,7 @@ SELECT FROM "Child" "gc" LEFT JOIN "Parent" "a_Parent" ON "gc"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" = "g_1"."ParentID" + INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "g_1"."ParentID" GROUP BY "g_1"."ParentID" diff --git a/DB2.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(DB2.LinqService).sql index cfb2502241df..2653b10f2ecf 100644 --- a/DB2.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(DB2.LinqService).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "a_Children" WHERE - "g_2"."ParentID" = "a_Children"."ParentID" + "g_2"."ParentID" IS NOT NULL AND "g_2"."ParentID" = "a_Children"."ParentID" ) FROM ( diff --git a/DB2.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(DB2.LinqService).sql index 53c56ee253e3..605cbf029265 100644 --- a/DB2.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(DB2.LinqService).sql @@ -22,5 +22,5 @@ SELECT FROM "LinqDataTypes" "ia" LEFT JOIN "LinqDataTypes" "a_A1" ON "ia"."GuidValue" = "a_A1"."GuidValue" AND "a_A1".ID = 2 - LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND ("a_A2".ID <> 2 OR "a_A2".ID IS NULL) + LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND "a_A2".ID <> 2 diff --git a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(DB2.LinqService).sql index 268e24bc14bc..376a6c196f81 100644 --- a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(DB2.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer(4) -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -19,13 +19,12 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "right_2" ON "right_2"."ParentID" = "t1"."ParentID" + ) "right_2" ON "right_2"."Right_1" = "t1"."Left_1" ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(DB2.LinqService).sql index 5f285e534a0a..9f225c4e4251 100644 --- a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(DB2.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer(4) -- Int32 SET @id2 = 2 SELECT - "t2"."ParentID", - "t1"."ParentID" + "t2"."Left_1", + "t1"."Right_1" FROM ( SELECT - "left_1"."ParentID" + "left_1"."ParentID" as "Left_1" FROM "Parent" "left_1" WHERE @@ -19,12 +19,12 @@ FROM ) "t2" FULL JOIN ( SELECT - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "t1" ON "t1"."ParentID" = "t2"."ParentID" + ) "t1" ON "t1"."Right_1" = "t2"."Left_1" ORDER BY - "t2"."ParentID" + "t2"."Left_1" diff --git a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(DB2.LinqService).sql index 981682cdf1ac..4c3c9e41fe9b 100644 --- a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(DB2.LinqService).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer(4) -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,7 +20,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(DB2.LinqService).sql index 5764a8b16224..a968b4c9f7d7 100644 --- a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(DB2.LinqService).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer(4) -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(DB2.LinqService).sql index 96f3f7c06ee1..054433a6bd78 100644 --- a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(DB2.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer(4) -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -21,7 +21,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(DB2.LinqService).sql index a62868467c89..2732f72d9611 100644 --- a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(DB2.LinqService).sql @@ -5,13 +5,13 @@ SET @id1 = 1 SELECT "left_1"."ParentID", - "right_2"."cond" + "right_2"."Right_1" FROM "Parent" "left_1" INNER JOIN "Parent" "left2" ON "left_1"."Value1" = "left2"."Value1" + 2 FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" diff --git a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(DB2.LinqService).sql index 0e1053bf92b6..e5869c6e8ccd 100644 --- a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(DB2.LinqService).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer(4) -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(DB2.LinqService).sql index 7f038326603a..6556976f6408 100644 --- a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(DB2.LinqService).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer(4) -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(DB2.LinqService).sql index ac639b063048..932a770288df 100644 --- a/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(DB2.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer(4) -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(DB2.LinqService).sql index 1dece6cfe54e..cb05a874743b 100644 --- a/DB2.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(DB2.LinqService).sql @@ -12,7 +12,7 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) LEFT JOIN "Child" "a_Child_1" ON "a_GrandChildren"."ParentID" = "a_Child_1"."ParentID" AND "a_GrandChildren"."ChildID" = "a_Child_1"."ChildID" LEFT JOIN "Parent" "a_Parent" ON "a_Child_1"."ParentID" = "a_Parent"."ParentID" FETCH NEXT 1 ROWS ONLY diff --git a/DB2.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(DB2.LinqService).sql index 7f67c7cb4c1e..56e954ce2ac0 100644 --- a/DB2.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(DB2.LinqService).sql @@ -8,6 +8,6 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) FETCH NEXT 1 ROWS ONLY diff --git a/DB2.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(DB2.LinqService).sql index a8ba52890351..95d376d36fd2 100644 --- a/DB2.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(DB2.LinqService).sql @@ -8,5 +8,5 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) diff --git a/DB2.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(DB2.LinqService).sql index 74556e5c95dd..94485c13ff27 100644 --- a/DB2.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(DB2.LinqService).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) WHERE "a_GrandChildren"."ParentID" = 1 diff --git a/DB2.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(DB2.LinqService,ExceptAll).sql b/DB2.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(DB2.LinqService,ExceptAll).sql index a37c59dbd44c..cce856542b35 100644 --- a/DB2.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(DB2.LinqService,ExceptAll).sql +++ b/DB2.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(DB2.LinqService,ExceptAll).sql @@ -14,7 +14,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -30,7 +42,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute -- DB2 DB2.LUW DB2LUW diff --git a/DB2.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2.LinqService,ExceptAll).sql b/DB2.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2.LinqService,ExceptAll).sql index e1724e62eb6b..d7ccbfae7860 100644 --- a/DB2.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2.LinqService,ExceptAll).sql +++ b/DB2.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2.LinqService,ExceptAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/DB2.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2.LinqService,IntersectAll).sql b/DB2.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2.LinqService,IntersectAll).sql index d95532cab3da..47dca9cb3f76 100644 --- a/DB2.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2.LinqService,IntersectAll).sql +++ b/DB2.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2.LinqService,IntersectAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/DB2.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(DB2.LinqService).sql index cec5b7ffc464..179542a51e85 100644 --- a/DB2.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(DB2.LinqService).sql @@ -8,7 +8,8 @@ SELECT FROM "GrandChild" "a_GrandChildren" WHERE - "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" AND + "a_Parent"."ParentID" IS NOT NULL AND + ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 ) diff --git a/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(DB2.LinqService).sql index 6819501a1200..47f2231cd4ad 100644 --- a/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(DB2.LinqService).sql @@ -8,7 +8,8 @@ SELECT FROM "Person" "t1" WHERE - "t1"."MiddleName" = "t1"."LastName" + NOT ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) OR + ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) IS NULL ) AS smallint) FROM SYSIBM.SYSDUMMY1 diff --git a/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(DB2.LinqService).sql b/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(DB2.LinqService).sql index 992980f59a66..7b0f1b651856 100644 --- a/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(DB2.LinqService).sql @@ -14,7 +14,8 @@ WHERE WHEN "r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL) THEN 1 ELSE 0 - END + END OR + ("r"."Value" = '123') IS NULL AND ("r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL)) IS NULL ORDER BY "r"."Id" diff --git a/DB2.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(DB2.LinqService).sql b/DB2.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(DB2.LinqService).sql index b4c6857234e4..50ac361cbae7 100644 --- a/DB2.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(DB2.LinqService).sql @@ -4,8 +4,8 @@ FROM "DctSetpointtype" "spt" LEFT JOIN "VWellTree" "t2" INNER JOIN "DctOu" "tp2" ON "t2"."ShopId" = "tp2"."Id" - LEFT JOIN "UacUsersDatagroup" "cudg" ON "tp2"."Id" = "cudg"."DatagroupId" AND "cudg"."UserId" = 150 - LEFT JOIN "UacUsersDatagroup" "oudg" ON "tp2"."ParentId" = "oudg"."DatagroupId" AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 + LEFT JOIN "UacUsersDatagroup" "cudg" ON ("tp2"."Id" = "cudg"."DatagroupId" OR "tp2"."Id" IS NULL AND "cudg"."DatagroupId" IS NULL) AND "cudg"."UserId" = 150 + LEFT JOIN "UacUsersDatagroup" "oudg" ON ("tp2"."ParentId" = "oudg"."DatagroupId" OR "tp2"."ParentId" IS NULL AND "oudg"."DatagroupId" IS NULL) AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 INNER JOIN "Deviation" "d" ON "t2"."WellId" = "d"."WellId" ON "d"."SetpointtypeId" = "spt"."Id" AND UTILS.GREATESTNOTNULL3(Decimal("cudg"."Permission", 18, 10), Decimal("oudg"."Inheritablepermission", 18, 10), NULL) IS NOT NULL diff --git a/DB2.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(DB2.LinqService).sql b/DB2.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(DB2.LinqService).sql index f251c0a077e2..af1591fd69c5 100644 --- a/DB2.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(DB2.LinqService).sql @@ -22,11 +22,11 @@ FROM LEFT JOIN "Email" "a_Email" ON "a_EmailAdminAssociations"."EmailId" = "a_Email"."Id" LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" - ) "t1" ON "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 + ) "t1" ON "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 ) "m_1" INNER JOIN "EmailAttachmentAssociation" "d" ON "m_1"."Id" = "d"."EmailId" LEFT JOIN "Attachment" "a_Attachment" ON "d"."AttachmentId" = "a_Attachment"."Id" - INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" = "a_Documents"."AttachmentId" + INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" IS NOT NULL AND "a_Attachment"."Id" = "a_Documents"."AttachmentId" BeforeExecute -- DB2 DB2.LUW DB2LUW @@ -49,5 +49,5 @@ FROM LEFT JOIN "Email" "a_Email" ON "a_EmailAdminAssociations"."EmailId" = "a_Email"."Id" LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" - ) "t1" ON "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 + ) "t1" ON "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 diff --git a/DB2.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(DB2.LinqService).sql b/DB2.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(DB2.LinqService).sql index 40d7a3f6e8a4..942b1900d363 100644 --- a/DB2.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(DB2.LinqService).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/DB2.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(DB2.LinqService).sql b/DB2.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(DB2.LinqService).sql index dee8177534d5..d3dfc4a6a116 100644 --- a/DB2.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(DB2.LinqService).sql +++ b/DB2.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(DB2.LinqService).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(DB2).sql b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(DB2).sql index 0bcf7b50c624..5fe7631d5b61 100644 --- a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(DB2).sql +++ b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(DB2).sql @@ -9,7 +9,7 @@ SELECT FROM "Issue2933Pet" "a_PetIds" WHERE - "a_Person"."Id" = "a_PetIds"."PersonId" + "a_Person"."Id" IS NOT NULL AND "a_Person"."Id" = "a_PetIds"."PersonId" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(DB2).sql b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(DB2).sql index 6ca2f8d2922e..f8be7d5dfcbf 100644 --- a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(DB2).sql +++ b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(DB2).sql @@ -11,7 +11,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) END diff --git a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(DB2).sql b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(DB2).sql index f6fa49236f64..904f9d2c66b4 100644 --- a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(DB2).sql +++ b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(DB2).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ), '') FROM diff --git a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(DB2).sql b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(DB2).sql index 9c401ee1aff0..5f2d8b8bad5d 100644 --- a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(DB2).sql +++ b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(DB2).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(DB2).sql b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(DB2).sql index 959ab3689f82..e806a4a9502b 100644 --- a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(DB2).sql +++ b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(DB2).sql @@ -21,7 +21,8 @@ FROM FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) ) "m_1" INNER JOIN "Child" "d" ON "m_1"."ParentID" = "d"."ParentID" @@ -46,6 +47,7 @@ WHERE FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) diff --git a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(DB2).sql b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(DB2).sql index 8d52243a1bdc..a32782912be4 100644 --- a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(DB2).sql +++ b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(DB2).sql @@ -22,7 +22,8 @@ FROM FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) ) "m_1" INNER JOIN "Table4" "d" ON "m_1".ID = "d".ID3 OR "m_1".ID IS NULL AND "d".ID3 IS NULL @@ -49,7 +50,8 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) BeforeExecute diff --git a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(DB2).sql b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(DB2).sql index f8188c91eaae..15914331fcb4 100644 --- a/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(DB2).sql +++ b/DB2/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(DB2).sql @@ -16,6 +16,7 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) diff --git a/DB2/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(DB2).sql b/DB2/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(DB2).sql index dfdac6123feb..9742a34f40e4 100644 --- a/DB2/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(DB2).sql +++ b/DB2/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(DB2).sql @@ -12,11 +12,10 @@ FROM SELECT "a_Children"."ParentID", "a_Children"."ChildID", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn", - "a_Children"."ParentID" as "ParentID_1" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn" FROM "Child" "a_Children" - ) "t1" ON "p"."ParentID" = "t1"."ParentID_1" AND "t1"."rn" <= 1 + ) "t1" ON "p"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 WHERE "p"."ParentID" = 1 UNION ALL diff --git a/DB2/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(DB2).sql b/DB2/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(DB2).sql index 88c7e3e44324..ecaec1132331 100644 --- a/DB2/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(DB2).sql +++ b/DB2/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(DB2).sql @@ -24,9 +24,8 @@ FROM SELECT "a_Children"."ParentID" as "cond", "a_Children"."ChildID", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn", - "a_Children"."ParentID" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn" FROM "Child" "a_Children" - ) "t1" ON "p2"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "p2"."ParentID" = "t1"."cond" AND "t1"."rn" <= 1 diff --git a/DB2/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(DB2).sql b/DB2/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(DB2).sql index 0965c161ec60..efcd8a6296fa 100644 --- a/DB2/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(DB2).sql +++ b/DB2/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(DB2).sql @@ -24,9 +24,8 @@ FROM SELECT "a_Children"."ParentID" as "cond", "a_Children"."ChildID", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn", - "a_Children"."ParentID" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn" FROM "Child" "a_Children" - ) "t1" ON "p2"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "p2"."ParentID" = "t1"."cond" AND "t1"."rn" <= 1 diff --git a/DB2/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(DB2).sql b/DB2/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(DB2).sql index 87c3f4162678..fecd10582620 100644 --- a/DB2/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(DB2).sql +++ b/DB2/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(DB2).sql @@ -8,11 +8,10 @@ FROM LEFT JOIN ( SELECT "a_Children"."ParentID" as "cond", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn", - "a_Children"."ParentID" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn" FROM "Child" "a_Children" - ) "t1" ON "p"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "p"."ParentID" = "t1"."cond" AND "t1"."rn" <= 1 WHERE "t1"."cond" IS NOT NULL diff --git a/DB2/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(DB2).sql b/DB2/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(DB2).sql index ff1e892337cd..ce89e7dfa454 100644 --- a/DB2/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(DB2).sql +++ b/DB2/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(DB2).sql @@ -3,8 +3,8 @@ SELECT CASE - WHEN "t1"."ParentID_1" IS NULL THEN 0 - ELSE "t1"."ParentID_1" + WHEN "t1"."cond" IS NULL THEN 0 + ELSE "t1"."cond" END, ( SELECT @@ -31,7 +31,6 @@ SELECT FROM ( SELECT - "p"."ParentID", ( SELECT "c_1"."ParentID" @@ -42,7 +41,8 @@ FROM ORDER BY "c_1"."ParentID" FETCH NEXT 1 ROWS ONLY - ) as "ParentID_1" + ) as "cond", + "p"."ParentID" FROM "Parent" "p" ) "t1" diff --git a/DB2/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(DB2).sql b/DB2/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(DB2).sql index f3395550d857..8380c5de7dee 100644 --- a/DB2/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(DB2).sql +++ b/DB2/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(DB2).sql @@ -15,7 +15,7 @@ FROM ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID") as "rn" FROM "Child" "a_Children" - ) "t1" ON "a_Parent"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 WHERE "p"."ChildID" > 0 diff --git a/DB2/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(DB2).sql b/DB2/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(DB2).sql index 8b126f16b78a..cf9398718a85 100644 --- a/DB2/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(DB2).sql +++ b/DB2/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(DB2).sql @@ -6,7 +6,7 @@ SELECT FROM "Child" "gc" LEFT JOIN "Parent" "a_Parent" ON "gc"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" = "g_1"."ParentID" + INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "g_1"."ParentID" GROUP BY "g_1"."ParentID" diff --git a/DB2/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(DB2).sql b/DB2/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(DB2).sql index cfb2502241df..2653b10f2ecf 100644 --- a/DB2/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(DB2).sql +++ b/DB2/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(DB2).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "a_Children" WHERE - "g_2"."ParentID" = "a_Children"."ParentID" + "g_2"."ParentID" IS NOT NULL AND "g_2"."ParentID" = "a_Children"."ParentID" ) FROM ( diff --git a/DB2/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(DB2).sql b/DB2/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(DB2).sql index 53c56ee253e3..605cbf029265 100644 --- a/DB2/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(DB2).sql +++ b/DB2/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(DB2).sql @@ -22,5 +22,5 @@ SELECT FROM "LinqDataTypes" "ia" LEFT JOIN "LinqDataTypes" "a_A1" ON "ia"."GuidValue" = "a_A1"."GuidValue" AND "a_A1".ID = 2 - LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND ("a_A2".ID <> 2 OR "a_A2".ID IS NULL) + LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND "a_A2".ID <> 2 diff --git a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(DB2).sql b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(DB2).sql index 268e24bc14bc..376a6c196f81 100644 --- a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(DB2).sql +++ b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(DB2).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer(4) -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -19,13 +19,12 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "right_2" ON "right_2"."ParentID" = "t1"."ParentID" + ) "right_2" ON "right_2"."Right_1" = "t1"."Left_1" ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(DB2).sql b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(DB2).sql index 5f285e534a0a..9f225c4e4251 100644 --- a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(DB2).sql +++ b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(DB2).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer(4) -- Int32 SET @id2 = 2 SELECT - "t2"."ParentID", - "t1"."ParentID" + "t2"."Left_1", + "t1"."Right_1" FROM ( SELECT - "left_1"."ParentID" + "left_1"."ParentID" as "Left_1" FROM "Parent" "left_1" WHERE @@ -19,12 +19,12 @@ FROM ) "t2" FULL JOIN ( SELECT - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "t1" ON "t1"."ParentID" = "t2"."ParentID" + ) "t1" ON "t1"."Right_1" = "t2"."Left_1" ORDER BY - "t2"."ParentID" + "t2"."Left_1" diff --git a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(DB2).sql b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(DB2).sql index 981682cdf1ac..4c3c9e41fe9b 100644 --- a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(DB2).sql +++ b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(DB2).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer(4) -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,7 +20,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(DB2).sql b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(DB2).sql index 5764a8b16224..a968b4c9f7d7 100644 --- a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(DB2).sql +++ b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(DB2).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer(4) -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(DB2).sql b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(DB2).sql index 96f3f7c06ee1..054433a6bd78 100644 --- a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(DB2).sql +++ b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(DB2).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer(4) -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -21,7 +21,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(DB2).sql b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(DB2).sql index a62868467c89..2732f72d9611 100644 --- a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(DB2).sql +++ b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(DB2).sql @@ -5,13 +5,13 @@ SET @id1 = 1 SELECT "left_1"."ParentID", - "right_2"."cond" + "right_2"."Right_1" FROM "Parent" "left_1" INNER JOIN "Parent" "left2" ON "left_1"."Value1" = "left2"."Value1" + 2 FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" diff --git a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(DB2).sql b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(DB2).sql index 0e1053bf92b6..e5869c6e8ccd 100644 --- a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(DB2).sql +++ b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(DB2).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer(4) -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(DB2).sql b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(DB2).sql index 7f038326603a..6556976f6408 100644 --- a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(DB2).sql +++ b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(DB2).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer(4) -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(DB2).sql b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(DB2).sql index ac639b063048..932a770288df 100644 --- a/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(DB2).sql +++ b/DB2/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(DB2).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer(4) -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/DB2/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(DB2).sql b/DB2/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(DB2).sql index 1dece6cfe54e..cb05a874743b 100644 --- a/DB2/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(DB2).sql +++ b/DB2/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(DB2).sql @@ -12,7 +12,7 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) LEFT JOIN "Child" "a_Child_1" ON "a_GrandChildren"."ParentID" = "a_Child_1"."ParentID" AND "a_GrandChildren"."ChildID" = "a_Child_1"."ChildID" LEFT JOIN "Parent" "a_Parent" ON "a_Child_1"."ParentID" = "a_Parent"."ParentID" FETCH NEXT 1 ROWS ONLY diff --git a/DB2/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(DB2).sql b/DB2/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(DB2).sql index 7f67c7cb4c1e..56e954ce2ac0 100644 --- a/DB2/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(DB2).sql +++ b/DB2/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(DB2).sql @@ -8,6 +8,6 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) FETCH NEXT 1 ROWS ONLY diff --git a/DB2/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(DB2).sql b/DB2/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(DB2).sql index a8ba52890351..95d376d36fd2 100644 --- a/DB2/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(DB2).sql +++ b/DB2/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(DB2).sql @@ -8,5 +8,5 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) diff --git a/DB2/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(DB2).sql b/DB2/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(DB2).sql index 74556e5c95dd..94485c13ff27 100644 --- a/DB2/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(DB2).sql +++ b/DB2/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(DB2).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) WHERE "a_GrandChildren"."ParentID" = 1 diff --git a/DB2/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(DB2,ExceptAll).sql b/DB2/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(DB2,ExceptAll).sql index 2b92a3b1cdfc..fdaac3acd16d 100644 --- a/DB2/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(DB2,ExceptAll).sql +++ b/DB2/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(DB2,ExceptAll).sql @@ -16,7 +16,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -34,7 +46,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute BeginTransaction(RepeatableRead) diff --git a/DB2/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2,ExceptAll).sql b/DB2/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2,ExceptAll).sql index 9d88860b9bbf..fee17cdb00cd 100644 --- a/DB2/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2,ExceptAll).sql +++ b/DB2/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2,ExceptAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/DB2/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2,IntersectAll).sql b/DB2/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2,IntersectAll).sql index ab7ca0fc77d4..72f07392861a 100644 --- a/DB2/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2,IntersectAll).sql +++ b/DB2/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(DB2,IntersectAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/DB2/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(DB2).sql b/DB2/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(DB2).sql index cec5b7ffc464..179542a51e85 100644 --- a/DB2/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(DB2).sql +++ b/DB2/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(DB2).sql @@ -8,7 +8,8 @@ SELECT FROM "GrandChild" "a_GrandChildren" WHERE - "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" AND + "a_Parent"."ParentID" IS NOT NULL AND + ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 ) diff --git a/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(DB2).sql b/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(DB2).sql index 6819501a1200..47f2231cd4ad 100644 --- a/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(DB2).sql +++ b/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(DB2).sql @@ -8,7 +8,8 @@ SELECT FROM "Person" "t1" WHERE - "t1"."MiddleName" = "t1"."LastName" + NOT ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) OR + ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) IS NULL ) AS smallint) FROM SYSIBM.SYSDUMMY1 diff --git a/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(DB2).sql b/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(DB2).sql index 992980f59a66..7b0f1b651856 100644 --- a/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(DB2).sql +++ b/DB2/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(DB2).sql @@ -14,7 +14,8 @@ WHERE WHEN "r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL) THEN 1 ELSE 0 - END + END OR + ("r"."Value" = '123') IS NULL AND ("r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL)) IS NULL ORDER BY "r"."Id" diff --git a/DB2/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(DB2).sql b/DB2/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(DB2).sql index b4c6857234e4..50ac361cbae7 100644 --- a/DB2/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(DB2).sql +++ b/DB2/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(DB2).sql @@ -4,8 +4,8 @@ FROM "DctSetpointtype" "spt" LEFT JOIN "VWellTree" "t2" INNER JOIN "DctOu" "tp2" ON "t2"."ShopId" = "tp2"."Id" - LEFT JOIN "UacUsersDatagroup" "cudg" ON "tp2"."Id" = "cudg"."DatagroupId" AND "cudg"."UserId" = 150 - LEFT JOIN "UacUsersDatagroup" "oudg" ON "tp2"."ParentId" = "oudg"."DatagroupId" AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 + LEFT JOIN "UacUsersDatagroup" "cudg" ON ("tp2"."Id" = "cudg"."DatagroupId" OR "tp2"."Id" IS NULL AND "cudg"."DatagroupId" IS NULL) AND "cudg"."UserId" = 150 + LEFT JOIN "UacUsersDatagroup" "oudg" ON ("tp2"."ParentId" = "oudg"."DatagroupId" OR "tp2"."ParentId" IS NULL AND "oudg"."DatagroupId" IS NULL) AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 INNER JOIN "Deviation" "d" ON "t2"."WellId" = "d"."WellId" ON "d"."SetpointtypeId" = "spt"."Id" AND UTILS.GREATESTNOTNULL3(Decimal("cudg"."Permission", 18, 10), Decimal("oudg"."Inheritablepermission", 18, 10), NULL) IS NOT NULL diff --git a/DB2/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(DB2).sql b/DB2/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(DB2).sql index 3cf482454700..7c61a0ebdeee 100644 --- a/DB2/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(DB2).sql +++ b/DB2/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(DB2).sql @@ -24,11 +24,11 @@ FROM LEFT JOIN "Email" "a_Email" ON "a_EmailAdminAssociations"."EmailId" = "a_Email"."Id" LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" - ) "t1" ON "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 + ) "t1" ON "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 ) "m_1" INNER JOIN "EmailAttachmentAssociation" "d" ON "m_1"."Id" = "d"."EmailId" LEFT JOIN "Attachment" "a_Attachment" ON "d"."AttachmentId" = "a_Attachment"."Id" - INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" = "a_Documents"."AttachmentId" + INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" IS NOT NULL AND "a_Attachment"."Id" = "a_Documents"."AttachmentId" BeforeExecute DisposeTransaction @@ -53,5 +53,5 @@ FROM LEFT JOIN "Email" "a_Email" ON "a_EmailAdminAssociations"."EmailId" = "a_Email"."Id" LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" - ) "t1" ON "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 + ) "t1" ON "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 diff --git a/DB2/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(DB2).sql b/DB2/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(DB2).sql index 40d7a3f6e8a4..942b1900d363 100644 --- a/DB2/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(DB2).sql +++ b/DB2/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(DB2).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/DB2/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(DB2).sql b/DB2/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(DB2).sql index dee8177534d5..d3dfc4a6a116 100644 --- a/DB2/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(DB2).sql +++ b/DB2/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(DB2).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(DB2).sql b/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(DB2).sql index 10cfc470d045..0c570b764f4b 100644 --- a/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(DB2).sql +++ b/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(DB2).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(DB2).sql b/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(DB2).sql index 107f0162ce4b..5ca4f45740c4 100644 --- a/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(DB2).sql +++ b/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(DB2).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(DB2).sql b/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(DB2).sql index 10cfc470d045..0c570b764f4b 100644 --- a/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(DB2).sql +++ b/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(DB2).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(DB2).sql b/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(DB2).sql index b3e79013aea3..cea7457624d1 100644 --- a/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(DB2).sql +++ b/DB2/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(DB2).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/DB2/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(DB2).sql b/DB2/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(DB2).sql index b93073a5e76f..0d5a8db1035f 100644 --- a/DB2/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(DB2).sql +++ b/DB2/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(DB2).sql @@ -6,7 +6,7 @@ UPDATE SET (TRANS_CHANNEL, IDF) = ( SELECT - "channel_1"."Trans_Channel", + Coalesce("channel_1"."Trans_Channel", 0), "channel_1"."Idf" FROM "Issue2815Table1" "ext_1" From b37bd79636dd3820947c3b5d8ced27a7f4152655 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Mar 2025 22:17:40 +0000 Subject: [PATCH 36/40] [Linux / Firebird 3.0] baselines --- ....Issue2933Test(Firebird.3.LinqService).sql | 2 +- ...Issue3557Case1(Firebird.3.LinqService).sql | 2 +- ...Issue3557Case2(Firebird.3.LinqService).sql | 2 +- ...Issue3557Case3(Firebird.3.LinqService).sql | 2 +- ....Issue3809Test(Firebird.3.LinqService).sql | 6 ++- ...ullCorrelation(Firebird.3.LinqService).sql | 6 ++- ...WithProjection(Firebird.3.LinqService).sql | 3 +- ...DefaultIfEmpty(Firebird.3.LinqService).sql | 5 +-- ...nTests.Union54(Firebird.3.LinqService).sql | 5 +-- ...Tests.Union541(Firebird.3.LinqService).sql | 5 +-- ...Tests.LetTest1(Firebird.3.LinqService).sql | 5 +-- ...ests.LetTest11(Firebird.3.LinqService).sql | 8 ++-- ...irstOrDefault5(Firebird.3.LinqService).sql | 2 +- ...s.JoinGroupBy2(Firebird.3.LinqService).sql | 2 +- ...upByTests.Sum3(Firebird.3.LinqService).sql | 2 +- ...ssociationTest(Firebird.3.LinqService).sql | 2 +- ...ithBothFilters(Firebird.3.LinqService).sql | 13 +++--- ...ersAlternative(Firebird.3.LinqService).sql | 12 +++--- ...WithConditions(Firebird.3.LinqService).sql | 10 ++--- ...houtConditions(Firebird.3.LinqService).sql | 6 +-- ...WithConditions(Firebird.3.LinqService).sql | 10 ++--- ...houtConditions(Firebird.3.LinqService).sql | 4 +- ...WithConditions(Firebird.3.LinqService).sql | 6 +-- ...houtConditions(Firebird.3.LinqService).sql | 6 +-- ...WithConditions(Firebird.3.LinqService).sql | 6 +-- ...ests.LoadWith8(Firebird.3.LinqService).sql | 2 +- ...ests.LoadWith9(Firebird.3.LinqService).sql | 2 +- ...nyTests.Basic5(Firebird.3.LinqService).sql | 2 +- ...ests.OneParam3(Firebird.3.LinqService).sql | 2 +- ...Details(Firebird.3.LinqService,Except).sql | 28 ++++++++++++- ...ails(Firebird.3.LinqService,ExceptAll).sql | 28 ++++++++++++- ...Details(Firebird.3.LinqService,Except).sql | 8 ++-- ...ails(Firebird.3.LinqService,ExceptAll).sql | 8 ++-- ...ails(Firebird.3.LinqService,Intersect).sql | 8 ++-- ...s(Firebird.3.LinqService,IntersectAll).sql | 8 ++-- ...eptInheritance(Firebird.3.LinqService).sql | 41 +++++++------------ ...ectInheritance(Firebird.3.LinqService).sql | 2 +- ...ests.SubSub212(Firebird.3.LinqService).sql | 3 +- ...omparisonTest2(Firebird.3.LinqService).sql | 3 +- ...lPredicateTest(Firebird.3.LinqService).sql | 3 +- ....TestIssue2832(Firebird.3.LinqService).sql | 4 +- ...gerLoadingTest(Firebird.3.LinqService).sql | 6 +-- ...Tests.LetTest1(Firebird.3.LinqService).sql | 2 +- ...Tests.LetTest2(Firebird.3.LinqService).sql | 2 +- ...rdTests.Issue2445Test(Firebird.3,Auto).sql | 5 +-- ...rdTests.Issue2445Test(Firebird.3,None).sql | 5 +-- ...dTests.Issue2445Test(Firebird.3,Quote).sql | 5 +-- ...ciationTests.Issue2933Test(Firebird.3).sql | 2 +- ...iationTests.Issue3557Case1(Firebird.3).sql | 2 +- ...iationTests.Issue3557Case2(Firebird.3).sql | 2 +- ...iationTests.Issue3557Case3(Firebird.3).sql | 2 +- ...ciationTests.Issue3809Test(Firebird.3).sql | 6 ++- ...ociationNonNullCorrelation(Firebird.3).sql | 6 ++- ...lCorrelationWithProjection(Firebird.3).sql | 3 +- ...Tests.ConcatDefaultIfEmpty(Firebird.3).sql | 5 +-- ...q.ConcatUnionTests.Union54(Firebird.3).sql | 5 +-- ....ConcatUnionTests.Union541(Firebird.3).sql | 5 +-- ...rtExpressionTests.LetTest1(Firebird.3).sql | 5 +-- ...tExpressionTests.LetTest11(Firebird.3).sql | 8 ++-- ...ests.NestedFirstOrDefault5(Firebird.3).sql | 2 +- ....GroupByTests.JoinGroupBy2(Firebird.3).sql | 2 +- ...sts.Linq.GroupByTests.Sum3(Firebird.3).sql | 2 +- ...InheritanceAssociationTest(Firebird.3).sql | 2 +- ...SqlFullJoinWithBothFilters(Firebird.3).sql | 13 +++--- ...WithBothFiltersAlternative(Firebird.3).sql | 12 +++--- ...erJoinOnLeftWithConditions(Firebird.3).sql | 10 ++--- ...oinOnLeftWithoutConditions(Firebird.3).sql | 6 +-- ...rJoinOnRightWithConditions(Firebird.3).sql | 10 ++--- ...inOnRightWithoutConditions(Firebird.3).sql | 4 +- ...erJoinOnLeftWithConditions(Firebird.3).sql | 6 +-- ...oinOnLeftWithoutConditions(Firebird.3).sql | 6 +-- ...rJoinOnRightWithConditions(Firebird.3).sql | 6 +-- ...nq.LoadWithTests.LoadWith8(Firebird.3).sql | 2 +- ...nq.LoadWithTests.LoadWith9(Firebird.3).sql | 2 +- ...inq.SelectManyTests.Basic5(Firebird.3).sql | 2 +- ....SelectManyTests.OneParam3(Firebird.3).sql | 2 +- ...gerDifferentDetails(Firebird.3,Except).sql | 28 ++++++++++++- ...DifferentDetails(Firebird.3,ExceptAll).sql | 28 ++++++++++++- ...ts.EagerSameDetails(Firebird.3,Except).sql | 8 ++-- ...EagerSameDetails(Firebird.3,ExceptAll).sql | 8 ++-- ...EagerSameDetails(Firebird.3,Intersect).sql | 8 ++-- ...erSameDetails(Firebird.3,IntersectAll).sql | 8 ++-- ...lexTests.ExceptInheritance(Firebird.3).sql | 41 +++++++------------ ...Tests.IntersectInheritance(Firebird.3).sql | 2 +- ...nq.SubQueryTests.SubSub212(Firebird.3).sql | 3 +- ...ests.BinaryComparisonTest2(Firebird.3).sql | 3 +- ...ComplexIsNullPredicateTest(Firebird.3).sql | 3 +- ...sue2832Tests.TestIssue2832(Firebird.3).sql | 4 +- ...2895Tests.EagerLoadingTest(Firebird.3).sql | 6 +-- ...serTests.LetTests.LetTest1(Firebird.3).sql | 2 +- ...serTests.LetTests.LetTest2(Firebird.3).sql | 2 +- ...rSourceAssociationInUpdate(Firebird.3).sql | 2 +- ...sociationInUpdatePredicate(Firebird.3).sql | 2 +- ...eSourceAssociationInUpdate(Firebird.3).sql | 2 +- ...sociationInUpdatePredicate(Firebird.3).sql | 2 +- ...teFromTests.Issue2815Test2(Firebird.3).sql | 2 +- 96 files changed, 345 insertions(+), 268 deletions(-) diff --git a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.3.LinqService).sql index edde7db6ab4b..62b8e48eaf98 100644 --- a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.3.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM "Issue2933Pet" "a_PetIds" WHERE - "a_Person"."Id" = "a_PetIds"."PersonId" + "a_Person"."Id" IS NOT NULL AND "a_Person"."Id" = "a_PetIds"."PersonId" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.3.LinqService).sql index 4a0d78c132d3..fbd13521aa7a 100644 --- a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.3.LinqService).sql @@ -11,7 +11,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) END diff --git a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.3.LinqService).sql index e7eff47f41c4..826a4fbf6ba3 100644 --- a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.3.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ), '') FROM diff --git a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.3.LinqService).sql index 539b27458ed5..8d1777c1ea29 100644 --- a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.3.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.3.LinqService).sql index 915061acace7..2b18d837c7da 100644 --- a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.3.LinqService).sql @@ -19,7 +19,8 @@ FROM FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) ) "m_1" INNER JOIN "Child" "d" ON "m_1"."ParentID" = "d"."ParentID" @@ -42,6 +43,7 @@ WHERE FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) diff --git a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.3.LinqService).sql index 7684b30bd4b6..98c66de21f25 100644 --- a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.3.LinqService).sql @@ -20,7 +20,8 @@ FROM FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) ) "m_1" INNER JOIN "Table4" "d" ON "m_1".ID = "d".ID3 OR "m_1".ID IS NULL AND "d".ID3 IS NULL @@ -45,7 +46,8 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) BeforeExecute diff --git a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.3.LinqService).sql index 397072bfd656..0b2b0a47cd35 100644 --- a/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.3.LinqService).sql @@ -16,6 +16,7 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) diff --git a/Firebird.3.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(Firebird.3.LinqService).sql index 07270c28bdc2..ef44ab861d1a 100644 --- a/Firebird.3.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(Firebird.3.LinqService).sql @@ -12,11 +12,10 @@ FROM SELECT "a_Children"."ParentID", "a_Children"."ChildID", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn", - "a_Children"."ParentID" as "ParentID_1" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn" FROM "Child" "a_Children" - ) "t1" ON "p"."ParentID" = "t1"."ParentID_1" AND "t1"."rn" <= 1 + ) "t1" ON "p"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 WHERE "p"."ParentID" = 1 UNION ALL diff --git a/Firebird.3.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(Firebird.3.LinqService).sql index 138ca12a5086..ca994cf21561 100644 --- a/Firebird.3.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(Firebird.3.LinqService).sql @@ -24,9 +24,8 @@ FROM SELECT "a_Children"."ParentID" as "cond", "a_Children"."ChildID", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn", - "a_Children"."ParentID" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn" FROM "Child" "a_Children" - ) "t1" ON "p2"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "p2"."ParentID" = "t1"."cond" AND "t1"."rn" <= 1 diff --git a/Firebird.3.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(Firebird.3.LinqService).sql index 61048f4824b1..a96a121bc0f0 100644 --- a/Firebird.3.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(Firebird.3.LinqService).sql @@ -24,9 +24,8 @@ FROM SELECT "a_Children"."ParentID" as "cond", "a_Children"."ChildID", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn", - "a_Children"."ParentID" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn" FROM "Child" "a_Children" - ) "t1" ON "p2"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "p2"."ParentID" = "t1"."cond" AND "t1"."rn" <= 1 diff --git a/Firebird.3.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(Firebird.3.LinqService).sql index df8392f2ab09..a8c9947e15de 100644 --- a/Firebird.3.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(Firebird.3.LinqService).sql @@ -8,11 +8,10 @@ FROM LEFT JOIN ( SELECT "a_Children"."ParentID" as "cond", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn", - "a_Children"."ParentID" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn" FROM "Child" "a_Children" - ) "t1" ON "p"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "p"."ParentID" = "t1"."cond" AND "t1"."rn" <= 1 WHERE "t1"."cond" IS NOT NULL diff --git a/Firebird.3.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.3.LinqService).sql index 814b13356a9b..8a4db6339a96 100644 --- a/Firebird.3.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.3.LinqService).sql @@ -3,8 +3,8 @@ SELECT CASE - WHEN "t1"."ParentID_1" IS NULL THEN 0 - ELSE "t1"."ParentID_1" + WHEN "t1"."cond" IS NULL THEN 0 + ELSE "t1"."cond" END, ( SELECT @@ -31,7 +31,6 @@ SELECT FROM ( SELECT - "p"."ParentID", ( SELECT "c_1"."ParentID" @@ -42,7 +41,8 @@ FROM ORDER BY "c_1"."ParentID" FETCH NEXT 1 ROWS ONLY - ) as "ParentID_1" + ) as "cond", + "p"."ParentID" FROM "Parent" "p" ) "t1" diff --git a/Firebird.3.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.3.LinqService).sql index 359da8cad6bc..686e615ab900 100644 --- a/Firebird.3.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.3.LinqService).sql @@ -15,7 +15,7 @@ FROM ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID") as "rn" FROM "Child" "a_Children" - ) "t1" ON "a_Parent"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 WHERE "p"."ChildID" > 0 diff --git a/Firebird.3.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.3.LinqService).sql index b600bb8b59cc..67a1207ddecb 100644 --- a/Firebird.3.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.3.LinqService).sql @@ -6,7 +6,7 @@ SELECT FROM "Child" "gc" LEFT JOIN "Parent" "a_Parent" ON "gc"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" = "g_1"."ParentID" + INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "g_1"."ParentID" GROUP BY "g_1"."ParentID" diff --git a/Firebird.3.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.3.LinqService).sql index 1520c88a9890..e7b155381194 100644 --- a/Firebird.3.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.3.LinqService).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "a_Children" WHERE - "g_2"."ParentID" = "a_Children"."ParentID" + "g_2"."ParentID" IS NOT NULL AND "g_2"."ParentID" = "a_Children"."ParentID" ) FROM ( diff --git a/Firebird.3.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.3.LinqService).sql index 72bd4b35e4c3..b37f25704f02 100644 --- a/Firebird.3.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.3.LinqService).sql @@ -22,5 +22,5 @@ SELECT FROM "LinqDataTypes" "ia" LEFT JOIN "LinqDataTypes" "a_A1" ON "ia"."GuidValue" = "a_A1"."GuidValue" AND "a_A1".ID = 2 - LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND ("a_A2".ID <> 2 OR "a_A2".ID IS NULL) + LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND "a_A2".ID <> 2 diff --git a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.3.LinqService).sql index baa2a0af7a5d..9f84e0ad56ad 100644 --- a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.3.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -19,13 +19,12 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "right_2" ON "right_2"."ParentID" = "t1"."ParentID" + ) "right_2" ON "right_2"."Right_1" = "t1"."Left_1" ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.3.LinqService).sql index 5a632030f270..89c2ea2c9db4 100644 --- a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.3.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t2"."ParentID", - "t1"."ParentID" + "t2"."Left_1", + "t1"."Right_1" FROM ( SELECT - "left_1"."ParentID" + "left_1"."ParentID" as "Left_1" FROM "Parent" "left_1" WHERE @@ -19,12 +19,12 @@ FROM ) "t2" FULL JOIN ( SELECT - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "t1" ON "t1"."ParentID" = "t2"."ParentID" + ) "t1" ON "t1"."Right_1" = "t2"."Left_1" ORDER BY - "t2"."ParentID" + "t2"."Left_1" diff --git a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.3.LinqService).sql index cea5c5e1fbc5..eac7cedf9c6b 100644 --- a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.3.LinqService).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,7 +20,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3.LinqService).sql index f6b44a0d1539..a68f2afd74b3 100644 --- a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3.LinqService).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.3.LinqService).sql index 6365da058692..b6978052cec3 100644 --- a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.3.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -21,7 +21,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.3.LinqService).sql index 30c66500ca4c..dbf64acf526a 100644 --- a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.3.LinqService).sql @@ -5,13 +5,13 @@ SET @id1 = 1 SELECT "left_1"."ParentID", - "right_2"."cond" + "right_2"."Right_1" FROM "Parent" "left_1" INNER JOIN "Parent" "left2" ON "left_1"."Value1" = "left2"."Value1" + 2 FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" diff --git a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.3.LinqService).sql index 196ce39ca956..83dd217740b8 100644 --- a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.3.LinqService).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3.LinqService).sql index cee39b6afe51..1e267d722d2c 100644 --- a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3.LinqService).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.3.LinqService).sql index d8b910bc8b37..439ba02beefe 100644 --- a/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.3.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.3.LinqService).sql index 4c9ef1c4f0ef..521866a7b900 100644 --- a/Firebird.3.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.3.LinqService).sql @@ -12,7 +12,7 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) LEFT JOIN "Child" "a_Child_1" ON "a_GrandChildren"."ParentID" = "a_Child_1"."ParentID" AND "a_GrandChildren"."ChildID" = "a_Child_1"."ChildID" LEFT JOIN "Parent" "a_Parent" ON "a_Child_1"."ParentID" = "a_Parent"."ParentID" FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.3.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.3.LinqService).sql index c82656143079..611b5f869f19 100644 --- a/Firebird.3.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.3.LinqService).sql @@ -8,6 +8,6 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.3.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.3.LinqService).sql index 32e40a9347f4..125101aee311 100644 --- a/Firebird.3.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.3.LinqService).sql @@ -8,5 +8,5 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) diff --git a/Firebird.3.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.3.LinqService).sql index 655ff178588b..40faaa427e5b 100644 --- a/Firebird.3.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.3.LinqService).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) WHERE "a_GrandChildren"."ParentID" = 1 diff --git a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3.LinqService,Except).sql b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3.LinqService,Except).sql index d71d06bf4fcb..38706c13e561 100644 --- a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3.LinqService,Except).sql +++ b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3.LinqService,Except).sql @@ -14,7 +14,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -30,7 +42,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute -- Firebird.3 Firebird3 diff --git a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3.LinqService,ExceptAll).sql b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3.LinqService,ExceptAll).sql index c0c7e890edb8..5ad46ec619c9 100644 --- a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3.LinqService,ExceptAll).sql +++ b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3.LinqService,ExceptAll).sql @@ -14,7 +14,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -30,7 +42,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute -- Firebird.3 Firebird3 diff --git a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,Except).sql b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,Except).sql index 34119923173e..000d2c17d5ad 100644 --- a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,Except).sql +++ b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,Except).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,ExceptAll).sql b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,ExceptAll).sql index 5c708668cd33..83548fbde6b2 100644 --- a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,ExceptAll).sql +++ b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,ExceptAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,Intersect).sql b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,Intersect).sql index ff3f1aea5267..9bb5a33ae37b 100644 --- a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,Intersect).sql +++ b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,Intersect).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,IntersectAll).sql b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,IntersectAll).sql index 8cd013d4b25c..6f0cc0932dd2 100644 --- a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,IntersectAll).sql +++ b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3.LinqService,IntersectAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.3.LinqService).sql index 8247b58389f7..ea5283e3a5c4 100644 --- a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.3.LinqService).sql @@ -2,28 +2,17 @@ -- Firebird.3 Firebird3 SELECT DISTINCT - "t1"."cond", - "t1"."Discriminator", - "t1"."BookName", - "t1"."NovelScore", - "t1"."RomanScore" + "a_Book"."BookId", + "a_Book"."Discriminator", + "a_Book"."BookName", + "a_Book"."NovelScore", + "a_Book"."RomanScore" FROM - ( - SELECT - "a_Book"."BookId" as "cond", - "a_Book"."Discriminator", - "a_Book"."BookName", - "a_Book"."RomanScore", - "a_Book"."NovelScore" - FROM - "Author" "a" - INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "a"."AuthorId" - LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" - WHERE - "a_Book"."Discriminator" = 'Roman' - ) "t1" + "Author" "t1" + INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" + LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - NOT EXISTS( + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - ("t1"."cond" = "a_Book_1"."BookId" OR "t1"."cond" IS NULL AND "a_Book_1"."BookId" IS NULL) AND - ("t1"."cond" = "a_Book_1"."BookId" OR "t1"."cond" IS NULL AND "a_Book_1"."BookId" IS NULL) AND - ("t1"."Discriminator" = "a_Book_1"."Discriminator" OR "t1"."Discriminator" IS NULL AND "a_Book_1"."Discriminator" IS NULL) AND - ("t1"."BookName" = "a_Book_1"."BookName" OR "t1"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - ("t1"."RomanScore" = "a_Book_1"."RomanScore" OR "t1"."RomanScore" IS NULL AND "a_Book_1"."RomanScore" IS NULL) AND - ("t1"."NovelScore" = "a_Book_1"."NovelScore" OR "t1"."NovelScore" IS NULL AND "a_Book_1"."NovelScore" IS NULL) + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."Discriminator" = "a_Book_1"."Discriminator" OR "a_Book"."Discriminator" IS NULL AND "a_Book_1"."Discriminator" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + ("a_Book"."RomanScore" = "a_Book_1"."RomanScore" OR "a_Book"."RomanScore" IS NULL AND "a_Book_1"."RomanScore" IS NULL) AND + ("a_Book"."NovelScore" = "a_Book_1"."NovelScore" OR "a_Book"."NovelScore" IS NULL AND "a_Book_1"."NovelScore" IS NULL) ) BeforeExecute diff --git a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.3.LinqService).sql index 563a5bb551de..3e00834e42b6 100644 --- a/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.3.LinqService).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE - "a_Book_1"."Discriminator" = 'Novel' AND "a_Book"."BookId" = "a_Book_1"."BookId" AND + "a_Book_1"."Discriminator" = 'Novel' AND ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) ) diff --git a/Firebird.3.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.3.LinqService).sql index 6a31a603cc5c..f1d66fa99564 100644 --- a/Firebird.3.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.3.LinqService).sql @@ -8,7 +8,8 @@ SELECT FROM "GrandChild" "a_GrandChildren" WHERE - "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" AND + "a_Parent"."ParentID" IS NOT NULL AND + ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 ) diff --git a/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.3.LinqService).sql index 7ede1b2293f3..99fac6cc27a6 100644 --- a/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.3.LinqService).sql @@ -8,7 +8,8 @@ SELECT FROM "Person" "t1" WHERE - "t1"."MiddleName" = "t1"."LastName" + NOT ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) OR + ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) IS NULL ) FROM rdb$database diff --git a/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.3.LinqService).sql index 342a79414f67..f080458673f4 100644 --- a/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.3.LinqService).sql @@ -14,7 +14,8 @@ WHERE WHEN "r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL) THEN TRUE ELSE FALSE - END + END OR + ("r"."Value" = '123') IS NULL AND ("r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL)) IS NULL ORDER BY "r"."Id" diff --git a/Firebird.3.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.3.LinqService).sql index 0cd6354ef725..0e56fde44bdf 100644 --- a/Firebird.3.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.3.LinqService).sql @@ -4,8 +4,8 @@ FROM "DctSetpointtype" "spt" LEFT JOIN "VWellTree" "t2" INNER JOIN "DctOu" "tp2" ON "t2"."ShopId" = "tp2"."Id" - LEFT JOIN "UacUsersDatagroup" "cudg" ON "tp2"."Id" = "cudg"."DatagroupId" AND "cudg"."UserId" = 150 - LEFT JOIN "UacUsersDatagroup" "oudg" ON "tp2"."ParentId" = "oudg"."DatagroupId" AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 + LEFT JOIN "UacUsersDatagroup" "cudg" ON ("tp2"."Id" = "cudg"."DatagroupId" OR "tp2"."Id" IS NULL AND "cudg"."DatagroupId" IS NULL) AND "cudg"."UserId" = 150 + LEFT JOIN "UacUsersDatagroup" "oudg" ON ("tp2"."ParentId" = "oudg"."DatagroupId" OR "tp2"."ParentId" IS NULL AND "oudg"."DatagroupId" IS NULL) AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 INNER JOIN "Deviation" "d" ON "t2"."WellId" = "d"."WellId" ON "d"."SetpointtypeId" = "spt"."Id" AND UTILS.GREATESTNOTNULL3(CAST("cudg"."Permission" AS Decimal(18, 10)), CAST("oudg"."Inheritablepermission" AS Decimal(18, 10)), NULL) IS NOT NULL diff --git a/Firebird.3.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.3.LinqService).sql index 6033038c44f6..298701cc71f7 100644 --- a/Firebird.3.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.3.LinqService).sql @@ -22,11 +22,11 @@ FROM LEFT JOIN "Email" "a_Email" ON "a_EmailAdminAssociations"."EmailId" = "a_Email"."Id" LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" - ) "t1" ON "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 + ) "t1" ON "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 ) "m_1" INNER JOIN "EmailAttachmentAssociation" "d" ON "m_1"."Id" = "d"."EmailId" LEFT JOIN "Attachment" "a_Attachment" ON "d"."AttachmentId" = "a_Attachment"."Id" - INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" = "a_Documents"."AttachmentId" + INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" IS NOT NULL AND "a_Attachment"."Id" = "a_Documents"."AttachmentId" BeforeExecute -- Firebird.3 Firebird3 @@ -49,5 +49,5 @@ FROM LEFT JOIN "Email" "a_Email" ON "a_EmailAdminAssociations"."EmailId" = "a_Email"."Id" LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" - ) "t1" ON "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 + ) "t1" ON "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 diff --git a/Firebird.3.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.3.LinqService).sql index 40280fe59cf1..96dfbe3ec027 100644 --- a/Firebird.3.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.3.LinqService).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/Firebird.3.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.3.LinqService).sql b/Firebird.3.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.3.LinqService).sql index cbc4d50af776..2cf192d5587b 100644 --- a/Firebird.3.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.3.LinqService).sql +++ b/Firebird.3.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.3.LinqService).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/Firebird.3/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.3,Auto).sql b/Firebird.3/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.3,Auto).sql index 51f6c30bc9e3..2c9d5084d0cd 100644 --- a/Firebird.3/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.3,Auto).sql +++ b/Firebird.3/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.3,Auto).sql @@ -21,9 +21,8 @@ FROM "Card" "t" WHERE "t"."OwnerId" = "a_Owner"."Id" - ) as "CountOfTCards", - "a_Owner"."Id" + ) as "CountOfTCards" FROM "Client" "a_Owner" - ) "t1" ON "t1"."Id" = "t2"."OwnerId" + ) "t1" ON "t1"."cond" = "t2"."OwnerId" diff --git a/Firebird.3/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.3,None).sql b/Firebird.3/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.3,None).sql index 2bfe2d4380bf..b7b0f40d1793 100644 --- a/Firebird.3/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.3,None).sql +++ b/Firebird.3/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.3,None).sql @@ -21,9 +21,8 @@ FROM Card t WHERE t.OwnerId = a_Owner.Id - ) as CountOfTCards, - a_Owner.Id + ) as CountOfTCards FROM Client a_Owner - ) t1 ON t1.Id = t2.OwnerId + ) t1 ON t1.cond = t2.OwnerId diff --git a/Firebird.3/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.3,Quote).sql b/Firebird.3/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.3,Quote).sql index 51f6c30bc9e3..2c9d5084d0cd 100644 --- a/Firebird.3/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.3,Quote).sql +++ b/Firebird.3/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.3,Quote).sql @@ -21,9 +21,8 @@ FROM "Card" "t" WHERE "t"."OwnerId" = "a_Owner"."Id" - ) as "CountOfTCards", - "a_Owner"."Id" + ) as "CountOfTCards" FROM "Client" "a_Owner" - ) "t1" ON "t1"."Id" = "t2"."OwnerId" + ) "t1" ON "t1"."cond" = "t2"."OwnerId" diff --git a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.3).sql b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.3).sql index edde7db6ab4b..62b8e48eaf98 100644 --- a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.3).sql @@ -9,7 +9,7 @@ SELECT FROM "Issue2933Pet" "a_PetIds" WHERE - "a_Person"."Id" = "a_PetIds"."PersonId" + "a_Person"."Id" IS NOT NULL AND "a_Person"."Id" = "a_PetIds"."PersonId" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.3).sql b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.3).sql index 4a0d78c132d3..fbd13521aa7a 100644 --- a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.3).sql @@ -11,7 +11,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) END diff --git a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.3).sql b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.3).sql index e7eff47f41c4..826a4fbf6ba3 100644 --- a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.3).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ), '') FROM diff --git a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.3).sql b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.3).sql index 539b27458ed5..8d1777c1ea29 100644 --- a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.3).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.3).sql b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.3).sql index 01d470769fcc..45a0dc5bea89 100644 --- a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.3).sql @@ -21,7 +21,8 @@ FROM FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) ) "m_1" INNER JOIN "Child" "d" ON "m_1"."ParentID" = "d"."ParentID" @@ -46,6 +47,7 @@ WHERE FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) diff --git a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.3).sql b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.3).sql index 6921bfd29d5e..5d46fc8a9571 100644 --- a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.3).sql @@ -22,7 +22,8 @@ FROM FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) ) "m_1" INNER JOIN "Table4" "d" ON "m_1".ID = "d".ID3 OR "m_1".ID IS NULL AND "d".ID3 IS NULL @@ -49,7 +50,8 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) BeforeExecute diff --git a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.3).sql b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.3).sql index 397072bfd656..0b2b0a47cd35 100644 --- a/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.3).sql @@ -16,6 +16,7 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) diff --git a/Firebird.3/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(Firebird.3).sql b/Firebird.3/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(Firebird.3).sql index c1a4336408f5..8ca59e626256 100644 --- a/Firebird.3/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.ConcatDefaultIfEmpty(Firebird.3).sql @@ -12,11 +12,10 @@ FROM SELECT "a_Children"."ParentID", "a_Children"."ChildID", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn", - "a_Children"."ParentID" as "ParentID_1" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn" FROM "Child" "a_Children" - ) "t1" ON "p"."ParentID" = "t1"."ParentID_1" AND "t1"."rn" <= 1 + ) "t1" ON "p"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 WHERE "p"."ParentID" = 1 UNION ALL diff --git a/Firebird.3/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(Firebird.3).sql b/Firebird.3/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(Firebird.3).sql index 138ca12a5086..ca994cf21561 100644 --- a/Firebird.3/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union54(Firebird.3).sql @@ -24,9 +24,8 @@ FROM SELECT "a_Children"."ParentID" as "cond", "a_Children"."ChildID", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn", - "a_Children"."ParentID" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn" FROM "Child" "a_Children" - ) "t1" ON "p2"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "p2"."ParentID" = "t1"."cond" AND "t1"."rn" <= 1 diff --git a/Firebird.3/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(Firebird.3).sql b/Firebird.3/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(Firebird.3).sql index 61048f4824b1..a96a121bc0f0 100644 --- a/Firebird.3/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/ConcatUnionTests/Tests.Linq.ConcatUnionTests.Union541(Firebird.3).sql @@ -24,9 +24,8 @@ FROM SELECT "a_Children"."ParentID" as "cond", "a_Children"."ChildID", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn", - "a_Children"."ParentID" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" DESC) as "rn" FROM "Child" "a_Children" - ) "t1" ON "p2"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "p2"."ParentID" = "t1"."cond" AND "t1"."rn" <= 1 diff --git a/Firebird.3/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(Firebird.3).sql b/Firebird.3/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(Firebird.3).sql index df8392f2ab09..a8c9947e15de 100644 --- a/Firebird.3/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest1(Firebird.3).sql @@ -8,11 +8,10 @@ FROM LEFT JOIN ( SELECT "a_Children"."ParentID" as "cond", - ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn", - "a_Children"."ParentID" + ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ParentID") as "rn" FROM "Child" "a_Children" - ) "t1" ON "p"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "p"."ParentID" = "t1"."cond" AND "t1"."rn" <= 1 WHERE "t1"."cond" IS NOT NULL diff --git a/Firebird.3/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.3).sql b/Firebird.3/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.3).sql index 814b13356a9b..8a4db6339a96 100644 --- a/Firebird.3/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.3).sql @@ -3,8 +3,8 @@ SELECT CASE - WHEN "t1"."ParentID_1" IS NULL THEN 0 - ELSE "t1"."ParentID_1" + WHEN "t1"."cond" IS NULL THEN 0 + ELSE "t1"."cond" END, ( SELECT @@ -31,7 +31,6 @@ SELECT FROM ( SELECT - "p"."ParentID", ( SELECT "c_1"."ParentID" @@ -42,7 +41,8 @@ FROM ORDER BY "c_1"."ParentID" FETCH NEXT 1 ROWS ONLY - ) as "ParentID_1" + ) as "cond", + "p"."ParentID" FROM "Parent" "p" ) "t1" diff --git a/Firebird.3/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.3).sql b/Firebird.3/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.3).sql index 359da8cad6bc..686e615ab900 100644 --- a/Firebird.3/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.3).sql @@ -15,7 +15,7 @@ FROM ROW_NUMBER() OVER (PARTITION BY "a_Children"."ParentID" ORDER BY "a_Children"."ChildID") as "rn" FROM "Child" "a_Children" - ) "t1" ON "a_Parent"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 + ) "t1" ON "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "t1"."ParentID" AND "t1"."rn" <= 1 WHERE "p"."ChildID" > 0 diff --git a/Firebird.3/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.3).sql b/Firebird.3/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.3).sql index b600bb8b59cc..67a1207ddecb 100644 --- a/Firebird.3/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.3).sql @@ -6,7 +6,7 @@ SELECT FROM "Child" "gc" LEFT JOIN "Parent" "a_Parent" ON "gc"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" = "g_1"."ParentID" + INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "g_1"."ParentID" GROUP BY "g_1"."ParentID" diff --git a/Firebird.3/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.3).sql b/Firebird.3/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.3).sql index 1520c88a9890..e7b155381194 100644 --- a/Firebird.3/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.3).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "a_Children" WHERE - "g_2"."ParentID" = "a_Children"."ParentID" + "g_2"."ParentID" IS NOT NULL AND "g_2"."ParentID" = "a_Children"."ParentID" ) FROM ( diff --git a/Firebird.3/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.3).sql b/Firebird.3/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.3).sql index 72bd4b35e4c3..b37f25704f02 100644 --- a/Firebird.3/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.3).sql @@ -22,5 +22,5 @@ SELECT FROM "LinqDataTypes" "ia" LEFT JOIN "LinqDataTypes" "a_A1" ON "ia"."GuidValue" = "a_A1"."GuidValue" AND "a_A1".ID = 2 - LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND ("a_A2".ID <> 2 OR "a_A2".ID IS NULL) + LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND "a_A2".ID <> 2 diff --git a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.3).sql b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.3).sql index baa2a0af7a5d..9f84e0ad56ad 100644 --- a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.3).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -19,13 +19,12 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "right_2" ON "right_2"."ParentID" = "t1"."ParentID" + ) "right_2" ON "right_2"."Right_1" = "t1"."Left_1" ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.3).sql b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.3).sql index 5a632030f270..89c2ea2c9db4 100644 --- a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.3).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t2"."ParentID", - "t1"."ParentID" + "t2"."Left_1", + "t1"."Right_1" FROM ( SELECT - "left_1"."ParentID" + "left_1"."ParentID" as "Left_1" FROM "Parent" "left_1" WHERE @@ -19,12 +19,12 @@ FROM ) "t2" FULL JOIN ( SELECT - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "t1" ON "t1"."ParentID" = "t2"."ParentID" + ) "t1" ON "t1"."Right_1" = "t2"."Left_1" ORDER BY - "t2"."ParentID" + "t2"."Left_1" diff --git a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.3).sql b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.3).sql index cea5c5e1fbc5..eac7cedf9c6b 100644 --- a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.3).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,7 +20,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3).sql b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3).sql index f6b44a0d1539..a68f2afd74b3 100644 --- a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.3).sql b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.3).sql index 6365da058692..b6978052cec3 100644 --- a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.3).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -21,7 +21,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.3).sql b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.3).sql index 30c66500ca4c..dbf64acf526a 100644 --- a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.3).sql @@ -5,13 +5,13 @@ SET @id1 = 1 SELECT "left_1"."ParentID", - "right_2"."cond" + "right_2"."Right_1" FROM "Parent" "left_1" INNER JOIN "Parent" "left2" ON "left_1"."Value1" = "left2"."Value1" + 2 FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" diff --git a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.3).sql b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.3).sql index 196ce39ca956..83dd217740b8 100644 --- a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.3).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3).sql b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3).sql index cee39b6afe51..1e267d722d2c 100644 --- a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.3).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.3).sql b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.3).sql index d8b910bc8b37..439ba02beefe 100644 --- a/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.3).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.3/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.3).sql b/Firebird.3/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.3).sql index 4c9ef1c4f0ef..521866a7b900 100644 --- a/Firebird.3/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.3).sql @@ -12,7 +12,7 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) LEFT JOIN "Child" "a_Child_1" ON "a_GrandChildren"."ParentID" = "a_Child_1"."ParentID" AND "a_GrandChildren"."ChildID" = "a_Child_1"."ChildID" LEFT JOIN "Parent" "a_Parent" ON "a_Child_1"."ParentID" = "a_Parent"."ParentID" FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.3/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.3).sql b/Firebird.3/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.3).sql index c82656143079..611b5f869f19 100644 --- a/Firebird.3/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.3).sql @@ -8,6 +8,6 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.3/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.3).sql b/Firebird.3/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.3).sql index 32e40a9347f4..125101aee311 100644 --- a/Firebird.3/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.3).sql @@ -8,5 +8,5 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) diff --git a/Firebird.3/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.3).sql b/Firebird.3/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.3).sql index 655ff178588b..40faaa427e5b 100644 --- a/Firebird.3/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.3).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) WHERE "a_GrandChildren"."ParentID" = 1 diff --git a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3,Except).sql b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3,Except).sql index 70bf1465a23c..209ffa9c1491 100644 --- a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3,Except).sql +++ b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3,Except).sql @@ -16,7 +16,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -34,7 +46,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute BeginTransaction(RepeatableRead) diff --git a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3,ExceptAll).sql b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3,ExceptAll).sql index 372ac25f3780..a497e02abe23 100644 --- a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3,ExceptAll).sql +++ b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.3,ExceptAll).sql @@ -16,7 +16,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -34,7 +46,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute BeginTransaction(RepeatableRead) diff --git a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,Except).sql b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,Except).sql index afd71402b8b7..bb3c61fe450f 100644 --- a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,Except).sql +++ b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,Except).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,ExceptAll).sql b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,ExceptAll).sql index 104233de9195..0d9bea384029 100644 --- a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,ExceptAll).sql +++ b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,ExceptAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,Intersect).sql b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,Intersect).sql index 8daffa7c3ae6..75faed9de54c 100644 --- a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,Intersect).sql +++ b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,Intersect).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,IntersectAll).sql b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,IntersectAll).sql index c96c88a5c10e..6f5173a6b4dc 100644 --- a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,IntersectAll).sql +++ b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.3,IntersectAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.3).sql b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.3).sql index 3325639aaeff..80fd4fb38a32 100644 --- a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.3).sql @@ -2,28 +2,17 @@ -- Firebird.3 Firebird3 SELECT DISTINCT - "t1"."cond", - "t1"."Discriminator", - "t1"."BookName", - "t1"."NovelScore", - "t1"."RomanScore" + "a_Book"."BookId", + "a_Book"."Discriminator", + "a_Book"."BookName", + "a_Book"."NovelScore", + "a_Book"."RomanScore" FROM - ( - SELECT - "a_Book"."BookId" as "cond", - "a_Book"."Discriminator", - "a_Book"."BookName", - "a_Book"."RomanScore", - "a_Book"."NovelScore" - FROM - "Author" "a" - INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "a"."AuthorId" - LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" - WHERE - "a_Book"."Discriminator" = 'Roman' - ) "t1" + "Author" "t1" + INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" + LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - NOT EXISTS( + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - ("t1"."cond" = "a_Book_1"."BookId" OR "t1"."cond" IS NULL AND "a_Book_1"."BookId" IS NULL) AND - ("t1"."cond" = "a_Book_1"."BookId" OR "t1"."cond" IS NULL AND "a_Book_1"."BookId" IS NULL) AND - ("t1"."Discriminator" = "a_Book_1"."Discriminator" OR "t1"."Discriminator" IS NULL AND "a_Book_1"."Discriminator" IS NULL) AND - ("t1"."BookName" = "a_Book_1"."BookName" OR "t1"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - ("t1"."RomanScore" = "a_Book_1"."RomanScore" OR "t1"."RomanScore" IS NULL AND "a_Book_1"."RomanScore" IS NULL) AND - ("t1"."NovelScore" = "a_Book_1"."NovelScore" OR "t1"."NovelScore" IS NULL AND "a_Book_1"."NovelScore" IS NULL) + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."Discriminator" = "a_Book_1"."Discriminator" OR "a_Book"."Discriminator" IS NULL AND "a_Book_1"."Discriminator" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + ("a_Book"."RomanScore" = "a_Book_1"."RomanScore" OR "a_Book"."RomanScore" IS NULL AND "a_Book_1"."RomanScore" IS NULL) AND + ("a_Book"."NovelScore" = "a_Book_1"."NovelScore" OR "a_Book"."NovelScore" IS NULL AND "a_Book_1"."NovelScore" IS NULL) ) BeforeExecute diff --git a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.3).sql b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.3).sql index 8c22888c3be9..1337157546da 100644 --- a/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.3).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE - "a_Book_1"."Discriminator" = 'Novel' AND "a_Book"."BookId" = "a_Book_1"."BookId" AND + "a_Book_1"."Discriminator" = 'Novel' AND ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) ) diff --git a/Firebird.3/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.3).sql b/Firebird.3/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.3).sql index 6a31a603cc5c..f1d66fa99564 100644 --- a/Firebird.3/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.3).sql @@ -8,7 +8,8 @@ SELECT FROM "GrandChild" "a_GrandChildren" WHERE - "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" AND + "a_Parent"."ParentID" IS NOT NULL AND + ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 ) diff --git a/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.3).sql b/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.3).sql index 7ede1b2293f3..99fac6cc27a6 100644 --- a/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.3).sql @@ -8,7 +8,8 @@ SELECT FROM "Person" "t1" WHERE - "t1"."MiddleName" = "t1"."LastName" + NOT ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) OR + ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) IS NULL ) FROM rdb$database diff --git a/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.3).sql b/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.3).sql index 342a79414f67..f080458673f4 100644 --- a/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.3).sql +++ b/Firebird.3/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.3).sql @@ -14,7 +14,8 @@ WHERE WHEN "r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL) THEN TRUE ELSE FALSE - END + END OR + ("r"."Value" = '123') IS NULL AND ("r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL)) IS NULL ORDER BY "r"."Id" diff --git a/Firebird.3/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.3).sql b/Firebird.3/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.3).sql index 0cd6354ef725..0e56fde44bdf 100644 --- a/Firebird.3/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.3).sql +++ b/Firebird.3/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.3).sql @@ -4,8 +4,8 @@ FROM "DctSetpointtype" "spt" LEFT JOIN "VWellTree" "t2" INNER JOIN "DctOu" "tp2" ON "t2"."ShopId" = "tp2"."Id" - LEFT JOIN "UacUsersDatagroup" "cudg" ON "tp2"."Id" = "cudg"."DatagroupId" AND "cudg"."UserId" = 150 - LEFT JOIN "UacUsersDatagroup" "oudg" ON "tp2"."ParentId" = "oudg"."DatagroupId" AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 + LEFT JOIN "UacUsersDatagroup" "cudg" ON ("tp2"."Id" = "cudg"."DatagroupId" OR "tp2"."Id" IS NULL AND "cudg"."DatagroupId" IS NULL) AND "cudg"."UserId" = 150 + LEFT JOIN "UacUsersDatagroup" "oudg" ON ("tp2"."ParentId" = "oudg"."DatagroupId" OR "tp2"."ParentId" IS NULL AND "oudg"."DatagroupId" IS NULL) AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 INNER JOIN "Deviation" "d" ON "t2"."WellId" = "d"."WellId" ON "d"."SetpointtypeId" = "spt"."Id" AND UTILS.GREATESTNOTNULL3(CAST("cudg"."Permission" AS Decimal(18, 10)), CAST("oudg"."Inheritablepermission" AS Decimal(18, 10)), NULL) IS NOT NULL diff --git a/Firebird.3/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.3).sql b/Firebird.3/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.3).sql index dd8340001a19..cdd3cf73458f 100644 --- a/Firebird.3/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.3).sql +++ b/Firebird.3/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.3).sql @@ -24,11 +24,11 @@ FROM LEFT JOIN "Email" "a_Email" ON "a_EmailAdminAssociations"."EmailId" = "a_Email"."Id" LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" - ) "t1" ON "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 + ) "t1" ON "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 ) "m_1" INNER JOIN "EmailAttachmentAssociation" "d" ON "m_1"."Id" = "d"."EmailId" LEFT JOIN "Attachment" "a_Attachment" ON "d"."AttachmentId" = "a_Attachment"."Id" - INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" = "a_Documents"."AttachmentId" + INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" IS NOT NULL AND "a_Attachment"."Id" = "a_Documents"."AttachmentId" BeforeExecute DisposeTransaction @@ -53,5 +53,5 @@ FROM LEFT JOIN "Email" "a_Email" ON "a_EmailAdminAssociations"."EmailId" = "a_Email"."Id" LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" - ) "t1" ON "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 + ) "t1" ON "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "t1"."AdminId" AND "t1"."rn" <= 1 diff --git a/Firebird.3/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.3).sql b/Firebird.3/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.3).sql index 40280fe59cf1..96dfbe3ec027 100644 --- a/Firebird.3/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.3).sql +++ b/Firebird.3/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.3).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/Firebird.3/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.3).sql b/Firebird.3/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.3).sql index cbc4d50af776..2cf192d5587b 100644 --- a/Firebird.3/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.3).sql +++ b/Firebird.3/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.3).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(Firebird.3).sql b/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(Firebird.3).sql index b4a3e5315d49..560e0466eb65 100644 --- a/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(Firebird.3).sql +++ b/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(Firebird.3).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(Firebird.3).sql b/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(Firebird.3).sql index 49c8fd27494e..ec266fc6159a 100644 --- a/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(Firebird.3).sql +++ b/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(Firebird.3).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(Firebird.3).sql b/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(Firebird.3).sql index b4a3e5315d49..560e0466eb65 100644 --- a/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(Firebird.3).sql +++ b/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(Firebird.3).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(Firebird.3).sql b/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(Firebird.3).sql index 4d380ce13ead..738f9ce2c2c7 100644 --- a/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(Firebird.3).sql +++ b/Firebird.3/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(Firebird.3).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/Firebird.3/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(Firebird.3).sql b/Firebird.3/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(Firebird.3).sql index 434ad52651b0..31b4df90b4a9 100644 --- a/Firebird.3/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(Firebird.3).sql +++ b/Firebird.3/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(Firebird.3).sql @@ -6,7 +6,7 @@ UPDATE SET TRANS_CHANNEL = ( SELECT - "channel_1"."Trans_Channel" + Coalesce("channel_1"."Trans_Channel", 0) FROM "Issue2815Table1" "ext_1" LEFT JOIN "Issue2815Table2" "source_1" ON "source_1".ISO = "ext_1".SRC_BIC From ccbf7a5549fdc0066a4c5718b956d208e1aac804 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Mar 2025 22:21:01 +0000 Subject: [PATCH 37/40] [Linux / Firebird 4.0] baselines --- ....Issue2933Test(Firebird.4.LinqService).sql | 2 +- ...Issue3557Case1(Firebird.4.LinqService).sql | 2 +- ...Issue3557Case2(Firebird.4.LinqService).sql | 2 +- ...Issue3557Case3(Firebird.4.LinqService).sql | 2 +- ....Issue3809Test(Firebird.4.LinqService).sql | 6 ++- ...ullCorrelation(Firebird.4.LinqService).sql | 6 ++- ...WithProjection(Firebird.4.LinqService).sql | 3 +- ...ests.LetTest11(Firebird.4.LinqService).sql | 6 +-- ...irstOrDefault5(Firebird.4.LinqService).sql | 2 +- ...s.JoinGroupBy2(Firebird.4.LinqService).sql | 2 +- ...upByTests.Sum3(Firebird.4.LinqService).sql | 2 +- ...ssociationTest(Firebird.4.LinqService).sql | 2 +- ...ithBothFilters(Firebird.4.LinqService).sql | 13 +++--- ...ersAlternative(Firebird.4.LinqService).sql | 12 +++--- ...WithConditions(Firebird.4.LinqService).sql | 10 ++--- ...houtConditions(Firebird.4.LinqService).sql | 6 +-- ...WithConditions(Firebird.4.LinqService).sql | 10 ++--- ...houtConditions(Firebird.4.LinqService).sql | 4 +- ...WithConditions(Firebird.4.LinqService).sql | 6 +-- ...houtConditions(Firebird.4.LinqService).sql | 6 +-- ...WithConditions(Firebird.4.LinqService).sql | 6 +-- ...ests.LoadWith8(Firebird.4.LinqService).sql | 2 +- ...ests.LoadWith9(Firebird.4.LinqService).sql | 2 +- ...nyTests.Basic5(Firebird.4.LinqService).sql | 2 +- ...ests.OneParam3(Firebird.4.LinqService).sql | 2 +- ...Details(Firebird.4.LinqService,Except).sql | 28 ++++++++++++- ...ails(Firebird.4.LinqService,ExceptAll).sql | 28 ++++++++++++- ...Details(Firebird.4.LinqService,Except).sql | 8 ++-- ...ails(Firebird.4.LinqService,ExceptAll).sql | 8 ++-- ...ails(Firebird.4.LinqService,Intersect).sql | 8 ++-- ...s(Firebird.4.LinqService,IntersectAll).sql | 8 ++-- ...eptInheritance(Firebird.4.LinqService).sql | 41 +++++++------------ ...ectInheritance(Firebird.4.LinqService).sql | 2 +- ...ests.SubSub212(Firebird.4.LinqService).sql | 3 +- ...omparisonTest2(Firebird.4.LinqService).sql | 3 +- ...lPredicateTest(Firebird.4.LinqService).sql | 3 +- ....TestIssue2832(Firebird.4.LinqService).sql | 4 +- ...gerLoadingTest(Firebird.4.LinqService).sql | 6 +-- ...Tests.LetTest1(Firebird.4.LinqService).sql | 2 +- ...Tests.LetTest2(Firebird.4.LinqService).sql | 2 +- ...rdTests.Issue2445Test(Firebird.4,Auto).sql | 5 +-- ...rdTests.Issue2445Test(Firebird.4,None).sql | 5 +-- ...dTests.Issue2445Test(Firebird.4,Quote).sql | 5 +-- ...ciationTests.Issue2933Test(Firebird.4).sql | 2 +- ...iationTests.Issue3557Case1(Firebird.4).sql | 2 +- ...iationTests.Issue3557Case2(Firebird.4).sql | 2 +- ...iationTests.Issue3557Case3(Firebird.4).sql | 2 +- ...ciationTests.Issue3809Test(Firebird.4).sql | 6 ++- ...ociationNonNullCorrelation(Firebird.4).sql | 6 ++- ...lCorrelationWithProjection(Firebird.4).sql | 3 +- ...tExpressionTests.LetTest11(Firebird.4).sql | 6 +-- ...ests.NestedFirstOrDefault5(Firebird.4).sql | 2 +- ....GroupByTests.JoinGroupBy2(Firebird.4).sql | 2 +- ...sts.Linq.GroupByTests.Sum3(Firebird.4).sql | 2 +- ...InheritanceAssociationTest(Firebird.4).sql | 2 +- ...SqlFullJoinWithBothFilters(Firebird.4).sql | 13 +++--- ...WithBothFiltersAlternative(Firebird.4).sql | 12 +++--- ...erJoinOnLeftWithConditions(Firebird.4).sql | 10 ++--- ...oinOnLeftWithoutConditions(Firebird.4).sql | 6 +-- ...rJoinOnRightWithConditions(Firebird.4).sql | 10 ++--- ...inOnRightWithoutConditions(Firebird.4).sql | 4 +- ...erJoinOnLeftWithConditions(Firebird.4).sql | 6 +-- ...oinOnLeftWithoutConditions(Firebird.4).sql | 6 +-- ...rJoinOnRightWithConditions(Firebird.4).sql | 6 +-- ...nq.LoadWithTests.LoadWith8(Firebird.4).sql | 2 +- ...nq.LoadWithTests.LoadWith9(Firebird.4).sql | 2 +- ...inq.SelectManyTests.Basic5(Firebird.4).sql | 2 +- ....SelectManyTests.OneParam3(Firebird.4).sql | 2 +- ...gerDifferentDetails(Firebird.4,Except).sql | 28 ++++++++++++- ...DifferentDetails(Firebird.4,ExceptAll).sql | 28 ++++++++++++- ...ts.EagerSameDetails(Firebird.4,Except).sql | 8 ++-- ...EagerSameDetails(Firebird.4,ExceptAll).sql | 8 ++-- ...EagerSameDetails(Firebird.4,Intersect).sql | 8 ++-- ...erSameDetails(Firebird.4,IntersectAll).sql | 8 ++-- ...lexTests.ExceptInheritance(Firebird.4).sql | 41 +++++++------------ ...Tests.IntersectInheritance(Firebird.4).sql | 2 +- ...nq.SubQueryTests.SubSub212(Firebird.4).sql | 3 +- ...ests.BinaryComparisonTest2(Firebird.4).sql | 3 +- ...ComplexIsNullPredicateTest(Firebird.4).sql | 3 +- ...sue2832Tests.TestIssue2832(Firebird.4).sql | 4 +- ...2895Tests.EagerLoadingTest(Firebird.4).sql | 6 +-- ...serTests.LetTests.LetTest1(Firebird.4).sql | 2 +- ...serTests.LetTests.LetTest2(Firebird.4).sql | 2 +- ...rSourceAssociationInUpdate(Firebird.4).sql | 2 +- ...sociationInUpdatePredicate(Firebird.4).sql | 2 +- ...eSourceAssociationInUpdate(Firebird.4).sql | 2 +- ...sociationInUpdatePredicate(Firebird.4).sql | 2 +- ...teFromTests.Issue2815Test2(Firebird.4).sql | 2 +- 88 files changed, 327 insertions(+), 242 deletions(-) diff --git a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.4.LinqService).sql index 010c126edc4e..98697bfb1b29 100644 --- a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.4.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM "Issue2933Pet" "a_PetIds" WHERE - "a_Person"."Id" = "a_PetIds"."PersonId" + "a_Person"."Id" IS NOT NULL AND "a_Person"."Id" = "a_PetIds"."PersonId" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.4.LinqService).sql index 45117c7eb98f..2c70af0be218 100644 --- a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.4.LinqService).sql @@ -11,7 +11,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) END diff --git a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.4.LinqService).sql index 6fd753958cf8..f7db3b47c5f5 100644 --- a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.4.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ), '') FROM diff --git a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.4.LinqService).sql index e0b2abc22459..5ef84618d1c7 100644 --- a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.4.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.4.LinqService).sql index dffa491942b3..a1a440a0c7ff 100644 --- a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.4.LinqService).sql @@ -19,7 +19,8 @@ FROM FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) ) "m_1" INNER JOIN "Child" "d" ON "m_1"."ParentID" = "d"."ParentID" @@ -42,6 +43,7 @@ WHERE FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) diff --git a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.4.LinqService).sql index fcc6eee23b61..e47944a9b71e 100644 --- a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.4.LinqService).sql @@ -20,7 +20,8 @@ FROM FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) ) "m_1" INNER JOIN "Table4" "d" ON "m_1".ID = "d".ID3 OR "m_1".ID IS NULL AND "d".ID3 IS NULL @@ -45,7 +46,8 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) BeforeExecute diff --git a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.4.LinqService).sql index 755f0c61e48c..6fcbe92480f5 100644 --- a/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.4.LinqService).sql @@ -16,6 +16,7 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) diff --git a/Firebird.4.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.4.LinqService).sql index 2c6639ab9665..79e2642943d4 100644 --- a/Firebird.4.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.4.LinqService).sql @@ -3,8 +3,8 @@ SELECT CASE - WHEN "t1"."ParentID" IS NULL THEN 0 - ELSE "t1"."ParentID" + WHEN "t1"."cond" IS NULL THEN 0 + ELSE "t1"."cond" END, "t2"."ParentID", "t2"."ChildID" @@ -12,7 +12,7 @@ FROM "Parent" "p" LEFT JOIN ( SELECT - "c_1"."ParentID" + "c_1"."ParentID" as "cond" FROM "Child" "c_1" WHERE diff --git a/Firebird.4.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.4.LinqService).sql index a184aa2cf385..77df5ca9be8c 100644 --- a/Firebird.4.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.4.LinqService).sql @@ -15,7 +15,7 @@ FROM FROM "Child" "a_Children" WHERE - "a_Parent"."ParentID" = "a_Children"."ParentID" + "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.4.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.4.LinqService).sql index 221dcf143cda..391c45b79bbb 100644 --- a/Firebird.4.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.4.LinqService).sql @@ -6,7 +6,7 @@ SELECT FROM "Child" "gc" LEFT JOIN "Parent" "a_Parent" ON "gc"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" = "g_1"."ParentID" + INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "g_1"."ParentID" GROUP BY "g_1"."ParentID" diff --git a/Firebird.4.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.4.LinqService).sql index ad4763f7cad3..9b01274ef42a 100644 --- a/Firebird.4.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.4.LinqService).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "a_Children" WHERE - "g_2"."ParentID" = "a_Children"."ParentID" + "g_2"."ParentID" IS NOT NULL AND "g_2"."ParentID" = "a_Children"."ParentID" ) FROM ( diff --git a/Firebird.4.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.4.LinqService).sql index 473f51931e32..28fec9022256 100644 --- a/Firebird.4.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.4.LinqService).sql @@ -22,5 +22,5 @@ SELECT FROM "LinqDataTypes" "ia" LEFT JOIN "LinqDataTypes" "a_A1" ON "ia"."GuidValue" = "a_A1"."GuidValue" AND "a_A1".ID = 2 - LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND ("a_A2".ID <> 2 OR "a_A2".ID IS NULL) + LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND "a_A2".ID <> 2 diff --git a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.4.LinqService).sql index 85d90e3dc9a6..0d0706b4226b 100644 --- a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.4.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -19,13 +19,12 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "right_2" ON "right_2"."ParentID" = "t1"."ParentID" + ) "right_2" ON "right_2"."Right_1" = "t1"."Left_1" ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.4.LinqService).sql index 6a15bb5411dd..bb446a19326b 100644 --- a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.4.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t2"."ParentID", - "t1"."ParentID" + "t2"."Left_1", + "t1"."Right_1" FROM ( SELECT - "left_1"."ParentID" + "left_1"."ParentID" as "Left_1" FROM "Parent" "left_1" WHERE @@ -19,12 +19,12 @@ FROM ) "t2" FULL JOIN ( SELECT - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "t1" ON "t1"."ParentID" = "t2"."ParentID" + ) "t1" ON "t1"."Right_1" = "t2"."Left_1" ORDER BY - "t2"."ParentID" + "t2"."Left_1" diff --git a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.4.LinqService).sql index fa3cadea2b5d..af31d28949cc 100644 --- a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.4.LinqService).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,7 +20,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4.LinqService).sql index a258ad258b07..1def49645533 100644 --- a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4.LinqService).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.4.LinqService).sql index 22472e442a16..01380a82a257 100644 --- a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.4.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -21,7 +21,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.4.LinqService).sql index 13ad7356a9e0..3ff6fd31086b 100644 --- a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.4.LinqService).sql @@ -5,13 +5,13 @@ SET @id1 = 1 SELECT "left_1"."ParentID", - "right_2"."cond" + "right_2"."Right_1" FROM "Parent" "left_1" INNER JOIN "Parent" "left2" ON "left_1"."Value1" = "left2"."Value1" + 2 FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" diff --git a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.4.LinqService).sql index e1dcfc89d973..9b31a84bc576 100644 --- a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.4.LinqService).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4.LinqService).sql index d3f94f90c76b..a9edb2c296b6 100644 --- a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4.LinqService).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.4.LinqService).sql index 3d7441629a48..13254a4bce9d 100644 --- a/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.4.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.4.LinqService).sql index 8fdc10285673..79408ef86c55 100644 --- a/Firebird.4.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.4.LinqService).sql @@ -12,7 +12,7 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) LEFT JOIN "Child" "a_Child_1" ON "a_GrandChildren"."ParentID" = "a_Child_1"."ParentID" AND "a_GrandChildren"."ChildID" = "a_Child_1"."ChildID" LEFT JOIN "Parent" "a_Parent" ON "a_Child_1"."ParentID" = "a_Parent"."ParentID" FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.4.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.4.LinqService).sql index 143f50eb8e2d..9b8fbf8e444e 100644 --- a/Firebird.4.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.4.LinqService).sql @@ -8,6 +8,6 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.4.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.4.LinqService).sql index 207357f5245e..79fbedc75e50 100644 --- a/Firebird.4.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.4.LinqService).sql @@ -8,5 +8,5 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) diff --git a/Firebird.4.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.4.LinqService).sql index a9b1f28070fa..d086eef047e5 100644 --- a/Firebird.4.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.4.LinqService).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) WHERE "a_GrandChildren"."ParentID" = 1 diff --git a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4.LinqService,Except).sql b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4.LinqService,Except).sql index 008fc05a55fc..22d9fe2ea7ac 100644 --- a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4.LinqService,Except).sql +++ b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4.LinqService,Except).sql @@ -14,7 +14,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -30,7 +42,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute -- Firebird.4 Firebird4 diff --git a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4.LinqService,ExceptAll).sql b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4.LinqService,ExceptAll).sql index 001c4056b9db..c2868c996c5d 100644 --- a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4.LinqService,ExceptAll).sql +++ b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4.LinqService,ExceptAll).sql @@ -14,7 +14,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -30,7 +42,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute -- Firebird.4 Firebird4 diff --git a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,Except).sql b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,Except).sql index a97d0312a9af..eb114119c3e5 100644 --- a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,Except).sql +++ b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,Except).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,ExceptAll).sql b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,ExceptAll).sql index 4a546cb40e20..2ec2b48e9ff5 100644 --- a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,ExceptAll).sql +++ b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,ExceptAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,Intersect).sql b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,Intersect).sql index 8f8b2d32fc24..17726e3d1e48 100644 --- a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,Intersect).sql +++ b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,Intersect).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,IntersectAll).sql b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,IntersectAll).sql index 0a4912646d00..ed3940b379e0 100644 --- a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,IntersectAll).sql +++ b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4.LinqService,IntersectAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.4.LinqService).sql index 1ff657771278..5f3cc947fc0e 100644 --- a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.4.LinqService).sql @@ -2,28 +2,17 @@ -- Firebird.4 Firebird4 SELECT DISTINCT - "t1"."cond", - "t1"."Discriminator", - "t1"."BookName", - "t1"."NovelScore", - "t1"."RomanScore" + "a_Book"."BookId", + "a_Book"."Discriminator", + "a_Book"."BookName", + "a_Book"."NovelScore", + "a_Book"."RomanScore" FROM - ( - SELECT - "a_Book"."BookId" as "cond", - "a_Book"."Discriminator", - "a_Book"."BookName", - "a_Book"."RomanScore", - "a_Book"."NovelScore" - FROM - "Author" "a" - INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "a"."AuthorId" - LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" - WHERE - "a_Book"."Discriminator" = 'Roman' - ) "t1" + "Author" "t1" + INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" + LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - NOT EXISTS( + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - ("t1"."cond" = "a_Book_1"."BookId" OR "t1"."cond" IS NULL AND "a_Book_1"."BookId" IS NULL) AND - ("t1"."cond" = "a_Book_1"."BookId" OR "t1"."cond" IS NULL AND "a_Book_1"."BookId" IS NULL) AND - ("t1"."Discriminator" = "a_Book_1"."Discriminator" OR "t1"."Discriminator" IS NULL AND "a_Book_1"."Discriminator" IS NULL) AND - ("t1"."BookName" = "a_Book_1"."BookName" OR "t1"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - ("t1"."RomanScore" = "a_Book_1"."RomanScore" OR "t1"."RomanScore" IS NULL AND "a_Book_1"."RomanScore" IS NULL) AND - ("t1"."NovelScore" = "a_Book_1"."NovelScore" OR "t1"."NovelScore" IS NULL AND "a_Book_1"."NovelScore" IS NULL) + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."Discriminator" = "a_Book_1"."Discriminator" OR "a_Book"."Discriminator" IS NULL AND "a_Book_1"."Discriminator" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + ("a_Book"."RomanScore" = "a_Book_1"."RomanScore" OR "a_Book"."RomanScore" IS NULL AND "a_Book_1"."RomanScore" IS NULL) AND + ("a_Book"."NovelScore" = "a_Book_1"."NovelScore" OR "a_Book"."NovelScore" IS NULL AND "a_Book_1"."NovelScore" IS NULL) ) BeforeExecute diff --git a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.4.LinqService).sql index 3a97f7914dd3..081bf6dcd2e0 100644 --- a/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.4.LinqService).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE - "a_Book_1"."Discriminator" = 'Novel' AND "a_Book"."BookId" = "a_Book_1"."BookId" AND + "a_Book_1"."Discriminator" = 'Novel' AND ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) ) diff --git a/Firebird.4.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.4.LinqService).sql index 3e716ce0cb0d..3803540d243c 100644 --- a/Firebird.4.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.4.LinqService).sql @@ -8,7 +8,8 @@ SELECT FROM "GrandChild" "a_GrandChildren" WHERE - "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" AND + "a_Parent"."ParentID" IS NOT NULL AND + ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 ) diff --git a/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.4.LinqService).sql index 124bb62be6fe..017e9509f4a5 100644 --- a/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.4.LinqService).sql @@ -8,7 +8,8 @@ SELECT FROM "Person" "t1" WHERE - "t1"."MiddleName" = "t1"."LastName" + NOT ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) OR + ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) IS NULL ) FROM rdb$database diff --git a/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.4.LinqService).sql index c7b49f861e54..97fa308bd671 100644 --- a/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.4.LinqService).sql @@ -14,7 +14,8 @@ WHERE WHEN "r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL) THEN TRUE ELSE FALSE - END + END OR + ("r"."Value" = '123') IS NULL AND ("r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL)) IS NULL ORDER BY "r"."Id" diff --git a/Firebird.4.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.4.LinqService).sql index 0cd6354ef725..0e56fde44bdf 100644 --- a/Firebird.4.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.4.LinqService).sql @@ -4,8 +4,8 @@ FROM "DctSetpointtype" "spt" LEFT JOIN "VWellTree" "t2" INNER JOIN "DctOu" "tp2" ON "t2"."ShopId" = "tp2"."Id" - LEFT JOIN "UacUsersDatagroup" "cudg" ON "tp2"."Id" = "cudg"."DatagroupId" AND "cudg"."UserId" = 150 - LEFT JOIN "UacUsersDatagroup" "oudg" ON "tp2"."ParentId" = "oudg"."DatagroupId" AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 + LEFT JOIN "UacUsersDatagroup" "cudg" ON ("tp2"."Id" = "cudg"."DatagroupId" OR "tp2"."Id" IS NULL AND "cudg"."DatagroupId" IS NULL) AND "cudg"."UserId" = 150 + LEFT JOIN "UacUsersDatagroup" "oudg" ON ("tp2"."ParentId" = "oudg"."DatagroupId" OR "tp2"."ParentId" IS NULL AND "oudg"."DatagroupId" IS NULL) AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 INNER JOIN "Deviation" "d" ON "t2"."WellId" = "d"."WellId" ON "d"."SetpointtypeId" = "spt"."Id" AND UTILS.GREATESTNOTNULL3(CAST("cudg"."Permission" AS Decimal(18, 10)), CAST("oudg"."Inheritablepermission" AS Decimal(18, 10)), NULL) IS NOT NULL diff --git a/Firebird.4.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.4.LinqService).sql index 946e003233ed..dcec66abcef8 100644 --- a/Firebird.4.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.4.LinqService).sql @@ -21,13 +21,13 @@ FROM LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" WHERE - "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" + "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" FETCH NEXT 1 ROWS ONLY ) "t1" ON 1=1 ) "m_1" INNER JOIN "EmailAttachmentAssociation" "d" ON "m_1"."Id" = "d"."EmailId" LEFT JOIN "Attachment" "a_Attachment" ON "d"."AttachmentId" = "a_Attachment"."Id" - INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" = "a_Documents"."AttachmentId" + INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" IS NOT NULL AND "a_Attachment"."Id" = "a_Documents"."AttachmentId" BeforeExecute -- Firebird.4 Firebird4 @@ -49,7 +49,7 @@ FROM LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" WHERE - "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" + "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" FETCH NEXT 1 ROWS ONLY ) "t1" ON 1=1 diff --git a/Firebird.4.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.4.LinqService).sql index 7d343c044b92..6f9bb7d4684c 100644 --- a/Firebird.4.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.4.LinqService).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/Firebird.4.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.4.LinqService).sql b/Firebird.4.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.4.LinqService).sql index 8160cc6e21b0..b1c4ff45e44b 100644 --- a/Firebird.4.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.4.LinqService).sql +++ b/Firebird.4.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.4.LinqService).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/Firebird.4/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.4,Auto).sql b/Firebird.4/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.4,Auto).sql index bdf98e79b00b..b23476ab2ded 100644 --- a/Firebird.4/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.4,Auto).sql +++ b/Firebird.4/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.4,Auto).sql @@ -21,9 +21,8 @@ FROM "Card" "t" WHERE "t"."OwnerId" = "a_Owner"."Id" - ) as "CountOfTCards", - "a_Owner"."Id" + ) as "CountOfTCards" FROM "Client" "a_Owner" - ) "t1" ON "t1"."Id" = "t2"."OwnerId" + ) "t1" ON "t1"."cond" = "t2"."OwnerId" diff --git a/Firebird.4/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.4,None).sql b/Firebird.4/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.4,None).sql index 365b604a0f40..0a0c4dabbd17 100644 --- a/Firebird.4/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.4,None).sql +++ b/Firebird.4/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.4,None).sql @@ -21,9 +21,8 @@ FROM Card t WHERE t.OwnerId = a_Owner.Id - ) as CountOfTCards, - a_Owner.Id + ) as CountOfTCards FROM Client a_Owner - ) t1 ON t1.Id = t2.OwnerId + ) t1 ON t1.cond = t2.OwnerId diff --git a/Firebird.4/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.4,Quote).sql b/Firebird.4/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.4,Quote).sql index bdf98e79b00b..b23476ab2ded 100644 --- a/Firebird.4/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.4,Quote).sql +++ b/Firebird.4/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.4,Quote).sql @@ -21,9 +21,8 @@ FROM "Card" "t" WHERE "t"."OwnerId" = "a_Owner"."Id" - ) as "CountOfTCards", - "a_Owner"."Id" + ) as "CountOfTCards" FROM "Client" "a_Owner" - ) "t1" ON "t1"."Id" = "t2"."OwnerId" + ) "t1" ON "t1"."cond" = "t2"."OwnerId" diff --git a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.4).sql b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.4).sql index 010c126edc4e..98697bfb1b29 100644 --- a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.4).sql @@ -9,7 +9,7 @@ SELECT FROM "Issue2933Pet" "a_PetIds" WHERE - "a_Person"."Id" = "a_PetIds"."PersonId" + "a_Person"."Id" IS NOT NULL AND "a_Person"."Id" = "a_PetIds"."PersonId" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.4).sql b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.4).sql index 45117c7eb98f..2c70af0be218 100644 --- a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.4).sql @@ -11,7 +11,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) END diff --git a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.4).sql b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.4).sql index 6fd753958cf8..f7db3b47c5f5 100644 --- a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.4).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ), '') FROM diff --git a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.4).sql b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.4).sql index e0b2abc22459..5ef84618d1c7 100644 --- a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.4).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.4).sql b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.4).sql index e1511d2b316f..785d9e26e5e4 100644 --- a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.4).sql @@ -21,7 +21,8 @@ FROM FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) ) "m_1" INNER JOIN "Child" "d" ON "m_1"."ParentID" = "d"."ParentID" @@ -46,6 +47,7 @@ WHERE FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) diff --git a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.4).sql b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.4).sql index eb6b2426549a..ea810ec7aea8 100644 --- a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.4).sql @@ -22,7 +22,8 @@ FROM FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) ) "m_1" INNER JOIN "Table4" "d" ON "m_1".ID = "d".ID3 OR "m_1".ID IS NULL AND "d".ID3 IS NULL @@ -49,7 +50,8 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) BeforeExecute diff --git a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.4).sql b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.4).sql index 755f0c61e48c..6fcbe92480f5 100644 --- a/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.4).sql @@ -16,6 +16,7 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) diff --git a/Firebird.4/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.4).sql b/Firebird.4/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.4).sql index 2c6639ab9665..79e2642943d4 100644 --- a/Firebird.4/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.4).sql @@ -3,8 +3,8 @@ SELECT CASE - WHEN "t1"."ParentID" IS NULL THEN 0 - ELSE "t1"."ParentID" + WHEN "t1"."cond" IS NULL THEN 0 + ELSE "t1"."cond" END, "t2"."ParentID", "t2"."ChildID" @@ -12,7 +12,7 @@ FROM "Parent" "p" LEFT JOIN ( SELECT - "c_1"."ParentID" + "c_1"."ParentID" as "cond" FROM "Child" "c_1" WHERE diff --git a/Firebird.4/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.4).sql b/Firebird.4/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.4).sql index a184aa2cf385..77df5ca9be8c 100644 --- a/Firebird.4/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.4).sql @@ -15,7 +15,7 @@ FROM FROM "Child" "a_Children" WHERE - "a_Parent"."ParentID" = "a_Children"."ParentID" + "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.4/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.4).sql b/Firebird.4/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.4).sql index 221dcf143cda..391c45b79bbb 100644 --- a/Firebird.4/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.4).sql @@ -6,7 +6,7 @@ SELECT FROM "Child" "gc" LEFT JOIN "Parent" "a_Parent" ON "gc"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" = "g_1"."ParentID" + INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "g_1"."ParentID" GROUP BY "g_1"."ParentID" diff --git a/Firebird.4/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.4).sql b/Firebird.4/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.4).sql index ad4763f7cad3..9b01274ef42a 100644 --- a/Firebird.4/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.4).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "a_Children" WHERE - "g_2"."ParentID" = "a_Children"."ParentID" + "g_2"."ParentID" IS NOT NULL AND "g_2"."ParentID" = "a_Children"."ParentID" ) FROM ( diff --git a/Firebird.4/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.4).sql b/Firebird.4/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.4).sql index 473f51931e32..28fec9022256 100644 --- a/Firebird.4/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.4).sql @@ -22,5 +22,5 @@ SELECT FROM "LinqDataTypes" "ia" LEFT JOIN "LinqDataTypes" "a_A1" ON "ia"."GuidValue" = "a_A1"."GuidValue" AND "a_A1".ID = 2 - LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND ("a_A2".ID <> 2 OR "a_A2".ID IS NULL) + LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND "a_A2".ID <> 2 diff --git a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.4).sql b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.4).sql index 85d90e3dc9a6..0d0706b4226b 100644 --- a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.4).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -19,13 +19,12 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "right_2" ON "right_2"."ParentID" = "t1"."ParentID" + ) "right_2" ON "right_2"."Right_1" = "t1"."Left_1" ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.4).sql b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.4).sql index 6a15bb5411dd..bb446a19326b 100644 --- a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.4).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t2"."ParentID", - "t1"."ParentID" + "t2"."Left_1", + "t1"."Right_1" FROM ( SELECT - "left_1"."ParentID" + "left_1"."ParentID" as "Left_1" FROM "Parent" "left_1" WHERE @@ -19,12 +19,12 @@ FROM ) "t2" FULL JOIN ( SELECT - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "t1" ON "t1"."ParentID" = "t2"."ParentID" + ) "t1" ON "t1"."Right_1" = "t2"."Left_1" ORDER BY - "t2"."ParentID" + "t2"."Left_1" diff --git a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.4).sql b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.4).sql index fa3cadea2b5d..af31d28949cc 100644 --- a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.4).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,7 +20,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4).sql b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4).sql index a258ad258b07..1def49645533 100644 --- a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.4).sql b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.4).sql index 22472e442a16..01380a82a257 100644 --- a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.4).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -21,7 +21,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.4).sql b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.4).sql index 13ad7356a9e0..3ff6fd31086b 100644 --- a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.4).sql @@ -5,13 +5,13 @@ SET @id1 = 1 SELECT "left_1"."ParentID", - "right_2"."cond" + "right_2"."Right_1" FROM "Parent" "left_1" INNER JOIN "Parent" "left2" ON "left_1"."Value1" = "left2"."Value1" + 2 FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" diff --git a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.4).sql b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.4).sql index e1dcfc89d973..9b31a84bc576 100644 --- a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.4).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4).sql b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4).sql index d3f94f90c76b..a9edb2c296b6 100644 --- a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.4).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.4).sql b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.4).sql index 3d7441629a48..13254a4bce9d 100644 --- a/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.4).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.4/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.4).sql b/Firebird.4/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.4).sql index 8fdc10285673..79408ef86c55 100644 --- a/Firebird.4/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.4).sql @@ -12,7 +12,7 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) LEFT JOIN "Child" "a_Child_1" ON "a_GrandChildren"."ParentID" = "a_Child_1"."ParentID" AND "a_GrandChildren"."ChildID" = "a_Child_1"."ChildID" LEFT JOIN "Parent" "a_Parent" ON "a_Child_1"."ParentID" = "a_Parent"."ParentID" FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.4/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.4).sql b/Firebird.4/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.4).sql index 143f50eb8e2d..9b8fbf8e444e 100644 --- a/Firebird.4/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.4).sql @@ -8,6 +8,6 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.4/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.4).sql b/Firebird.4/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.4).sql index 207357f5245e..79fbedc75e50 100644 --- a/Firebird.4/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.4).sql @@ -8,5 +8,5 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) diff --git a/Firebird.4/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.4).sql b/Firebird.4/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.4).sql index a9b1f28070fa..d086eef047e5 100644 --- a/Firebird.4/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.4).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) WHERE "a_GrandChildren"."ParentID" = 1 diff --git a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4,Except).sql b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4,Except).sql index b38b6aadd0e4..19eb9791841b 100644 --- a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4,Except).sql +++ b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4,Except).sql @@ -16,7 +16,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -34,7 +46,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute BeginTransaction(RepeatableRead) diff --git a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4,ExceptAll).sql b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4,ExceptAll).sql index de6cbe17fca2..d9df5e3f73b9 100644 --- a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4,ExceptAll).sql +++ b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.4,ExceptAll).sql @@ -16,7 +16,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -34,7 +46,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute BeginTransaction(RepeatableRead) diff --git a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,Except).sql b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,Except).sql index 5e048b6ac411..585041391a51 100644 --- a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,Except).sql +++ b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,Except).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,ExceptAll).sql b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,ExceptAll).sql index e791bd2f0a82..348d0cc514ea 100644 --- a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,ExceptAll).sql +++ b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,ExceptAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,Intersect).sql b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,Intersect).sql index 3cae62368f3c..43fe33eb942f 100644 --- a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,Intersect).sql +++ b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,Intersect).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,IntersectAll).sql b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,IntersectAll).sql index ceb150a89ac5..7d244eadf26d 100644 --- a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,IntersectAll).sql +++ b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.4,IntersectAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.4).sql b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.4).sql index 93ba903349f9..3f5112963e0f 100644 --- a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.4).sql @@ -2,28 +2,17 @@ -- Firebird.4 Firebird4 SELECT DISTINCT - "t1"."cond", - "t1"."Discriminator", - "t1"."BookName", - "t1"."NovelScore", - "t1"."RomanScore" + "a_Book"."BookId", + "a_Book"."Discriminator", + "a_Book"."BookName", + "a_Book"."NovelScore", + "a_Book"."RomanScore" FROM - ( - SELECT - "a_Book"."BookId" as "cond", - "a_Book"."Discriminator", - "a_Book"."BookName", - "a_Book"."RomanScore", - "a_Book"."NovelScore" - FROM - "Author" "a" - INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "a"."AuthorId" - LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" - WHERE - "a_Book"."Discriminator" = 'Roman' - ) "t1" + "Author" "t1" + INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" + LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - NOT EXISTS( + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - ("t1"."cond" = "a_Book_1"."BookId" OR "t1"."cond" IS NULL AND "a_Book_1"."BookId" IS NULL) AND - ("t1"."cond" = "a_Book_1"."BookId" OR "t1"."cond" IS NULL AND "a_Book_1"."BookId" IS NULL) AND - ("t1"."Discriminator" = "a_Book_1"."Discriminator" OR "t1"."Discriminator" IS NULL AND "a_Book_1"."Discriminator" IS NULL) AND - ("t1"."BookName" = "a_Book_1"."BookName" OR "t1"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - ("t1"."RomanScore" = "a_Book_1"."RomanScore" OR "t1"."RomanScore" IS NULL AND "a_Book_1"."RomanScore" IS NULL) AND - ("t1"."NovelScore" = "a_Book_1"."NovelScore" OR "t1"."NovelScore" IS NULL AND "a_Book_1"."NovelScore" IS NULL) + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."Discriminator" = "a_Book_1"."Discriminator" OR "a_Book"."Discriminator" IS NULL AND "a_Book_1"."Discriminator" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + ("a_Book"."RomanScore" = "a_Book_1"."RomanScore" OR "a_Book"."RomanScore" IS NULL AND "a_Book_1"."RomanScore" IS NULL) AND + ("a_Book"."NovelScore" = "a_Book_1"."NovelScore" OR "a_Book"."NovelScore" IS NULL AND "a_Book_1"."NovelScore" IS NULL) ) BeforeExecute diff --git a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.4).sql b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.4).sql index bdee85405405..2d468a7b9c7f 100644 --- a/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.4).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE - "a_Book_1"."Discriminator" = 'Novel' AND "a_Book"."BookId" = "a_Book_1"."BookId" AND + "a_Book_1"."Discriminator" = 'Novel' AND ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) ) diff --git a/Firebird.4/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.4).sql b/Firebird.4/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.4).sql index 3e716ce0cb0d..3803540d243c 100644 --- a/Firebird.4/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.4).sql @@ -8,7 +8,8 @@ SELECT FROM "GrandChild" "a_GrandChildren" WHERE - "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" AND + "a_Parent"."ParentID" IS NOT NULL AND + ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 ) diff --git a/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.4).sql b/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.4).sql index 124bb62be6fe..017e9509f4a5 100644 --- a/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.4).sql @@ -8,7 +8,8 @@ SELECT FROM "Person" "t1" WHERE - "t1"."MiddleName" = "t1"."LastName" + NOT ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) OR + ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) IS NULL ) FROM rdb$database diff --git a/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.4).sql b/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.4).sql index c7b49f861e54..97fa308bd671 100644 --- a/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.4).sql +++ b/Firebird.4/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.4).sql @@ -14,7 +14,8 @@ WHERE WHEN "r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL) THEN TRUE ELSE FALSE - END + END OR + ("r"."Value" = '123') IS NULL AND ("r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL)) IS NULL ORDER BY "r"."Id" diff --git a/Firebird.4/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.4).sql b/Firebird.4/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.4).sql index 0cd6354ef725..0e56fde44bdf 100644 --- a/Firebird.4/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.4).sql +++ b/Firebird.4/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.4).sql @@ -4,8 +4,8 @@ FROM "DctSetpointtype" "spt" LEFT JOIN "VWellTree" "t2" INNER JOIN "DctOu" "tp2" ON "t2"."ShopId" = "tp2"."Id" - LEFT JOIN "UacUsersDatagroup" "cudg" ON "tp2"."Id" = "cudg"."DatagroupId" AND "cudg"."UserId" = 150 - LEFT JOIN "UacUsersDatagroup" "oudg" ON "tp2"."ParentId" = "oudg"."DatagroupId" AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 + LEFT JOIN "UacUsersDatagroup" "cudg" ON ("tp2"."Id" = "cudg"."DatagroupId" OR "tp2"."Id" IS NULL AND "cudg"."DatagroupId" IS NULL) AND "cudg"."UserId" = 150 + LEFT JOIN "UacUsersDatagroup" "oudg" ON ("tp2"."ParentId" = "oudg"."DatagroupId" OR "tp2"."ParentId" IS NULL AND "oudg"."DatagroupId" IS NULL) AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 INNER JOIN "Deviation" "d" ON "t2"."WellId" = "d"."WellId" ON "d"."SetpointtypeId" = "spt"."Id" AND UTILS.GREATESTNOTNULL3(CAST("cudg"."Permission" AS Decimal(18, 10)), CAST("oudg"."Inheritablepermission" AS Decimal(18, 10)), NULL) IS NOT NULL diff --git a/Firebird.4/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.4).sql b/Firebird.4/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.4).sql index 371e8ad8d250..acd40f5714c8 100644 --- a/Firebird.4/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.4).sql +++ b/Firebird.4/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.4).sql @@ -23,13 +23,13 @@ FROM LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" WHERE - "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" + "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" FETCH NEXT 1 ROWS ONLY ) "t1" ON 1=1 ) "m_1" INNER JOIN "EmailAttachmentAssociation" "d" ON "m_1"."Id" = "d"."EmailId" LEFT JOIN "Attachment" "a_Attachment" ON "d"."AttachmentId" = "a_Attachment"."Id" - INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" = "a_Documents"."AttachmentId" + INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" IS NOT NULL AND "a_Attachment"."Id" = "a_Documents"."AttachmentId" BeforeExecute DisposeTransaction @@ -53,7 +53,7 @@ FROM LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" WHERE - "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" + "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" FETCH NEXT 1 ROWS ONLY ) "t1" ON 1=1 diff --git a/Firebird.4/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.4).sql b/Firebird.4/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.4).sql index 7d343c044b92..6f9bb7d4684c 100644 --- a/Firebird.4/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.4).sql +++ b/Firebird.4/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.4).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/Firebird.4/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.4).sql b/Firebird.4/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.4).sql index 8160cc6e21b0..b1c4ff45e44b 100644 --- a/Firebird.4/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.4).sql +++ b/Firebird.4/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.4).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(Firebird.4).sql b/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(Firebird.4).sql index 3a78a9e24847..44ffac4e9dbe 100644 --- a/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(Firebird.4).sql +++ b/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(Firebird.4).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(Firebird.4).sql b/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(Firebird.4).sql index d60eb25992c0..6c8d53a3c160 100644 --- a/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(Firebird.4).sql +++ b/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(Firebird.4).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(Firebird.4).sql b/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(Firebird.4).sql index 3a78a9e24847..44ffac4e9dbe 100644 --- a/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(Firebird.4).sql +++ b/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(Firebird.4).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(Firebird.4).sql b/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(Firebird.4).sql index a94cab7e0c32..0b4493e40ecc 100644 --- a/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(Firebird.4).sql +++ b/Firebird.4/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(Firebird.4).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/Firebird.4/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(Firebird.4).sql b/Firebird.4/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(Firebird.4).sql index 4762d3a3a23c..2a83d2070004 100644 --- a/Firebird.4/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(Firebird.4).sql +++ b/Firebird.4/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(Firebird.4).sql @@ -6,7 +6,7 @@ UPDATE SET TRANS_CHANNEL = ( SELECT - "channel_1"."Trans_Channel" + Coalesce("channel_1"."Trans_Channel", 0) FROM "Issue2815Table1" "ext_1" LEFT JOIN "Issue2815Table2" "source_1" ON "source_1".ISO = "ext_1".SRC_BIC From ac339829304cbb830a7c97ad06b50e2ccc69c562 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Mar 2025 22:24:27 +0000 Subject: [PATCH 38/40] [Linux / Firebird 5.0] baselines --- ....Issue2933Test(Firebird.5.LinqService).sql | 2 +- ...Issue3557Case1(Firebird.5.LinqService).sql | 2 +- ...Issue3557Case2(Firebird.5.LinqService).sql | 2 +- ...Issue3557Case3(Firebird.5.LinqService).sql | 2 +- ....Issue3809Test(Firebird.5.LinqService).sql | 6 ++- ...ullCorrelation(Firebird.5.LinqService).sql | 6 ++- ...WithProjection(Firebird.5.LinqService).sql | 3 +- ...ests.LetTest11(Firebird.5.LinqService).sql | 6 +-- ...irstOrDefault5(Firebird.5.LinqService).sql | 2 +- ...s.JoinGroupBy2(Firebird.5.LinqService).sql | 2 +- ...upByTests.Sum3(Firebird.5.LinqService).sql | 2 +- ...ssociationTest(Firebird.5.LinqService).sql | 2 +- ...ithBothFilters(Firebird.5.LinqService).sql | 13 +++--- ...ersAlternative(Firebird.5.LinqService).sql | 12 +++--- ...WithConditions(Firebird.5.LinqService).sql | 10 ++--- ...houtConditions(Firebird.5.LinqService).sql | 6 +-- ...WithConditions(Firebird.5.LinqService).sql | 10 ++--- ...houtConditions(Firebird.5.LinqService).sql | 4 +- ...WithConditions(Firebird.5.LinqService).sql | 6 +-- ...houtConditions(Firebird.5.LinqService).sql | 6 +-- ...WithConditions(Firebird.5.LinqService).sql | 6 +-- ...ests.LoadWith8(Firebird.5.LinqService).sql | 2 +- ...ests.LoadWith9(Firebird.5.LinqService).sql | 2 +- ...nyTests.Basic5(Firebird.5.LinqService).sql | 2 +- ...ests.OneParam3(Firebird.5.LinqService).sql | 2 +- ...Details(Firebird.5.LinqService,Except).sql | 28 ++++++++++++- ...ails(Firebird.5.LinqService,ExceptAll).sql | 28 ++++++++++++- ...Details(Firebird.5.LinqService,Except).sql | 8 ++-- ...ails(Firebird.5.LinqService,ExceptAll).sql | 8 ++-- ...ails(Firebird.5.LinqService,Intersect).sql | 8 ++-- ...s(Firebird.5.LinqService,IntersectAll).sql | 8 ++-- ...eptInheritance(Firebird.5.LinqService).sql | 41 +++++++------------ ...ectInheritance(Firebird.5.LinqService).sql | 2 +- ...ests.SubSub212(Firebird.5.LinqService).sql | 3 +- ...omparisonTest2(Firebird.5.LinqService).sql | 3 +- ...lPredicateTest(Firebird.5.LinqService).sql | 3 +- ....TestIssue2832(Firebird.5.LinqService).sql | 4 +- ...gerLoadingTest(Firebird.5.LinqService).sql | 6 +-- ...Tests.LetTest1(Firebird.5.LinqService).sql | 2 +- ...Tests.LetTest2(Firebird.5.LinqService).sql | 2 +- ...rdTests.Issue2445Test(Firebird.5,Auto).sql | 5 +-- ...rdTests.Issue2445Test(Firebird.5,None).sql | 5 +-- ...dTests.Issue2445Test(Firebird.5,Quote).sql | 5 +-- ...ciationTests.Issue2933Test(Firebird.5).sql | 2 +- ...iationTests.Issue3557Case1(Firebird.5).sql | 2 +- ...iationTests.Issue3557Case2(Firebird.5).sql | 2 +- ...iationTests.Issue3557Case3(Firebird.5).sql | 2 +- ...ciationTests.Issue3809Test(Firebird.5).sql | 6 ++- ...ociationNonNullCorrelation(Firebird.5).sql | 6 ++- ...lCorrelationWithProjection(Firebird.5).sql | 3 +- ...tExpressionTests.LetTest11(Firebird.5).sql | 6 +-- ...ests.NestedFirstOrDefault5(Firebird.5).sql | 2 +- ....GroupByTests.JoinGroupBy2(Firebird.5).sql | 2 +- ...sts.Linq.GroupByTests.Sum3(Firebird.5).sql | 2 +- ...InheritanceAssociationTest(Firebird.5).sql | 2 +- ...SqlFullJoinWithBothFilters(Firebird.5).sql | 13 +++--- ...WithBothFiltersAlternative(Firebird.5).sql | 12 +++--- ...erJoinOnLeftWithConditions(Firebird.5).sql | 10 ++--- ...oinOnLeftWithoutConditions(Firebird.5).sql | 6 +-- ...rJoinOnRightWithConditions(Firebird.5).sql | 10 ++--- ...inOnRightWithoutConditions(Firebird.5).sql | 4 +- ...erJoinOnLeftWithConditions(Firebird.5).sql | 6 +-- ...oinOnLeftWithoutConditions(Firebird.5).sql | 6 +-- ...rJoinOnRightWithConditions(Firebird.5).sql | 6 +-- ...nq.LoadWithTests.LoadWith8(Firebird.5).sql | 2 +- ...nq.LoadWithTests.LoadWith9(Firebird.5).sql | 2 +- ...inq.SelectManyTests.Basic5(Firebird.5).sql | 2 +- ....SelectManyTests.OneParam3(Firebird.5).sql | 2 +- ...gerDifferentDetails(Firebird.5,Except).sql | 28 ++++++++++++- ...DifferentDetails(Firebird.5,ExceptAll).sql | 28 ++++++++++++- ...ts.EagerSameDetails(Firebird.5,Except).sql | 8 ++-- ...EagerSameDetails(Firebird.5,ExceptAll).sql | 8 ++-- ...EagerSameDetails(Firebird.5,Intersect).sql | 8 ++-- ...erSameDetails(Firebird.5,IntersectAll).sql | 8 ++-- ...lexTests.ExceptInheritance(Firebird.5).sql | 41 +++++++------------ ...Tests.IntersectInheritance(Firebird.5).sql | 2 +- ...nq.SubQueryTests.SubSub212(Firebird.5).sql | 3 +- ...ests.BinaryComparisonTest2(Firebird.5).sql | 3 +- ...ComplexIsNullPredicateTest(Firebird.5).sql | 3 +- ...sue2832Tests.TestIssue2832(Firebird.5).sql | 4 +- ...2895Tests.EagerLoadingTest(Firebird.5).sql | 6 +-- ...serTests.LetTests.LetTest1(Firebird.5).sql | 2 +- ...serTests.LetTests.LetTest2(Firebird.5).sql | 2 +- ...rSourceAssociationInUpdate(Firebird.5).sql | 2 +- ...sociationInUpdatePredicate(Firebird.5).sql | 2 +- ...eSourceAssociationInUpdate(Firebird.5).sql | 2 +- ...sociationInUpdatePredicate(Firebird.5).sql | 2 +- ...teFromTests.Issue2815Test2(Firebird.5).sql | 2 +- 88 files changed, 327 insertions(+), 242 deletions(-) diff --git a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.5.LinqService).sql index ef01e310a82c..35fafe716016 100644 --- a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.5.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM "Issue2933Pet" "a_PetIds" WHERE - "a_Person"."Id" = "a_PetIds"."PersonId" + "a_Person"."Id" IS NOT NULL AND "a_Person"."Id" = "a_PetIds"."PersonId" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.5.LinqService).sql index febc2d1570b9..b35e9a9fe589 100644 --- a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.5.LinqService).sql @@ -11,7 +11,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) END diff --git a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.5.LinqService).sql index ccd41ef71633..77bb6b2d15e0 100644 --- a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.5.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ), '') FROM diff --git a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.5.LinqService).sql index df5a60d80cb0..126b78e072d9 100644 --- a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.5.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.5.LinqService).sql index 7ba3cb27a097..911f10baece7 100644 --- a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.5.LinqService).sql @@ -19,7 +19,8 @@ FROM FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) ) "m_1" INNER JOIN "Child" "d" ON "m_1"."ParentID" = "d"."ParentID" @@ -42,6 +43,7 @@ WHERE FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) diff --git a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.5.LinqService).sql index dd17c687812b..94bd9b354b42 100644 --- a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.5.LinqService).sql @@ -20,7 +20,8 @@ FROM FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) ) "m_1" INNER JOIN "Table4" "d" ON "m_1".ID = "d".ID3 OR "m_1".ID IS NULL AND "d".ID3 IS NULL @@ -45,7 +46,8 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) BeforeExecute diff --git a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.5.LinqService).sql index 70f0624d5470..da360c3dcb4e 100644 --- a/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.5.LinqService).sql @@ -16,6 +16,7 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) diff --git a/Firebird.5.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.5.LinqService).sql index 97b32a6bcd03..f5bb6e75e064 100644 --- a/Firebird.5.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.5.LinqService).sql @@ -3,8 +3,8 @@ SELECT CASE - WHEN "t1"."ParentID" IS NULL THEN 0 - ELSE "t1"."ParentID" + WHEN "t1"."cond" IS NULL THEN 0 + ELSE "t1"."cond" END, "t2"."ParentID", "t2"."ChildID" @@ -12,7 +12,7 @@ FROM "Parent" "p" LEFT JOIN ( SELECT - "c_1"."ParentID" + "c_1"."ParentID" as "cond" FROM "Child" "c_1" WHERE diff --git a/Firebird.5.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.5.LinqService).sql index bccacbf2181d..6752a2f8ced9 100644 --- a/Firebird.5.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.5.LinqService).sql @@ -15,7 +15,7 @@ FROM FROM "Child" "a_Children" WHERE - "a_Parent"."ParentID" = "a_Children"."ParentID" + "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.5.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.5.LinqService).sql index 84a9aad8f127..d783b3dc5bc7 100644 --- a/Firebird.5.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.5.LinqService).sql @@ -6,7 +6,7 @@ SELECT FROM "Child" "gc" LEFT JOIN "Parent" "a_Parent" ON "gc"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" = "g_1"."ParentID" + INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "g_1"."ParentID" GROUP BY "g_1"."ParentID" diff --git a/Firebird.5.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.5.LinqService).sql index 41d3eddcf158..80f855196e70 100644 --- a/Firebird.5.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.5.LinqService).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "a_Children" WHERE - "g_2"."ParentID" = "a_Children"."ParentID" + "g_2"."ParentID" IS NOT NULL AND "g_2"."ParentID" = "a_Children"."ParentID" ) FROM ( diff --git a/Firebird.5.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.5.LinqService).sql index eb02b234c0c6..a1900537e477 100644 --- a/Firebird.5.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.5.LinqService).sql @@ -22,5 +22,5 @@ SELECT FROM "LinqDataTypes" "ia" LEFT JOIN "LinqDataTypes" "a_A1" ON "ia"."GuidValue" = "a_A1"."GuidValue" AND "a_A1".ID = 2 - LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND ("a_A2".ID <> 2 OR "a_A2".ID IS NULL) + LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND "a_A2".ID <> 2 diff --git a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.5.LinqService).sql index 0e86b8f6fc53..059d131abb90 100644 --- a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.5.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -19,13 +19,12 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "right_2" ON "right_2"."ParentID" = "t1"."ParentID" + ) "right_2" ON "right_2"."Right_1" = "t1"."Left_1" ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.5.LinqService).sql index f1c3c72a80a0..7d005fdcc38c 100644 --- a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.5.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t2"."ParentID", - "t1"."ParentID" + "t2"."Left_1", + "t1"."Right_1" FROM ( SELECT - "left_1"."ParentID" + "left_1"."ParentID" as "Left_1" FROM "Parent" "left_1" WHERE @@ -19,12 +19,12 @@ FROM ) "t2" FULL JOIN ( SELECT - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "t1" ON "t1"."ParentID" = "t2"."ParentID" + ) "t1" ON "t1"."Right_1" = "t2"."Left_1" ORDER BY - "t2"."ParentID" + "t2"."Left_1" diff --git a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.5.LinqService).sql index bb15d6c6d73f..e4923b016b6b 100644 --- a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.5.LinqService).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,7 +20,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5.LinqService).sql index 569e69880e71..86d202031f19 100644 --- a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5.LinqService).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.5.LinqService).sql index d2b00df903aa..be83afcc449b 100644 --- a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.5.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -21,7 +21,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.5.LinqService).sql index 8a7c3ef69bff..00d9053f0b91 100644 --- a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.5.LinqService).sql @@ -5,13 +5,13 @@ SET @id1 = 1 SELECT "left_1"."ParentID", - "right_2"."cond" + "right_2"."Right_1" FROM "Parent" "left_1" INNER JOIN "Parent" "left2" ON "left_1"."Value1" = "left2"."Value1" + 2 FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" diff --git a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.5.LinqService).sql index 2cbdefa541da..449b09880a86 100644 --- a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.5.LinqService).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5.LinqService).sql index 15b37db5c542..05f2404234ce 100644 --- a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5.LinqService).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.5.LinqService).sql index 0b38c4bdb25c..4f0d646694c5 100644 --- a/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.5.LinqService).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.5.LinqService).sql index 7b18fcfeed20..bbb30b3a0fa6 100644 --- a/Firebird.5.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.5.LinqService).sql @@ -12,7 +12,7 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) LEFT JOIN "Child" "a_Child_1" ON "a_GrandChildren"."ParentID" = "a_Child_1"."ParentID" AND "a_GrandChildren"."ChildID" = "a_Child_1"."ChildID" LEFT JOIN "Parent" "a_Parent" ON "a_Child_1"."ParentID" = "a_Parent"."ParentID" FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.5.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.5.LinqService).sql index 481cafcbfb64..d978fe3059f1 100644 --- a/Firebird.5.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.5.LinqService).sql @@ -8,6 +8,6 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.5.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.5.LinqService).sql index 5721197c7f0e..bab4fdb159a4 100644 --- a/Firebird.5.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.5.LinqService).sql @@ -8,5 +8,5 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) diff --git a/Firebird.5.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.5.LinqService).sql index a883fa92ad3b..9282a408499a 100644 --- a/Firebird.5.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.5.LinqService).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) WHERE "a_GrandChildren"."ParentID" = 1 diff --git a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5.LinqService,Except).sql b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5.LinqService,Except).sql index 6ed11921b070..5d0cda431f15 100644 --- a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5.LinqService,Except).sql +++ b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5.LinqService,Except).sql @@ -14,7 +14,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -30,7 +42,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute -- Firebird.5 Firebird4 diff --git a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5.LinqService,ExceptAll).sql b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5.LinqService,ExceptAll).sql index d5d04eb4e7d2..1d26a8eb6cf7 100644 --- a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5.LinqService,ExceptAll).sql +++ b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5.LinqService,ExceptAll).sql @@ -14,7 +14,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -30,7 +42,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute -- Firebird.5 Firebird4 diff --git a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,Except).sql b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,Except).sql index 99dac41aa883..fdb5bf522fa4 100644 --- a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,Except).sql +++ b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,Except).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,ExceptAll).sql b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,ExceptAll).sql index 85b63f2a58f9..0d0428f769d0 100644 --- a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,ExceptAll).sql +++ b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,ExceptAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,Intersect).sql b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,Intersect).sql index ebea1803fb0f..c3f18c60ed6f 100644 --- a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,Intersect).sql +++ b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,Intersect).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,IntersectAll).sql b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,IntersectAll).sql index 3c7a534edb30..1911dd0235e1 100644 --- a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,IntersectAll).sql +++ b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5.LinqService,IntersectAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -51,9 +51,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.5.LinqService).sql index 648b46d414ea..76c841cc6a3d 100644 --- a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.5.LinqService).sql @@ -2,28 +2,17 @@ -- Firebird.5 Firebird4 SELECT DISTINCT - "t1"."cond", - "t1"."Discriminator", - "t1"."BookName", - "t1"."NovelScore", - "t1"."RomanScore" + "a_Book"."BookId", + "a_Book"."Discriminator", + "a_Book"."BookName", + "a_Book"."NovelScore", + "a_Book"."RomanScore" FROM - ( - SELECT - "a_Book"."BookId" as "cond", - "a_Book"."Discriminator", - "a_Book"."BookName", - "a_Book"."RomanScore", - "a_Book"."NovelScore" - FROM - "Author" "a" - INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "a"."AuthorId" - LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" - WHERE - "a_Book"."Discriminator" = 'Roman' - ) "t1" + "Author" "t1" + INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" + LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - NOT EXISTS( + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - ("t1"."cond" = "a_Book_1"."BookId" OR "t1"."cond" IS NULL AND "a_Book_1"."BookId" IS NULL) AND - ("t1"."cond" = "a_Book_1"."BookId" OR "t1"."cond" IS NULL AND "a_Book_1"."BookId" IS NULL) AND - ("t1"."Discriminator" = "a_Book_1"."Discriminator" OR "t1"."Discriminator" IS NULL AND "a_Book_1"."Discriminator" IS NULL) AND - ("t1"."BookName" = "a_Book_1"."BookName" OR "t1"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - ("t1"."RomanScore" = "a_Book_1"."RomanScore" OR "t1"."RomanScore" IS NULL AND "a_Book_1"."RomanScore" IS NULL) AND - ("t1"."NovelScore" = "a_Book_1"."NovelScore" OR "t1"."NovelScore" IS NULL AND "a_Book_1"."NovelScore" IS NULL) + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."Discriminator" = "a_Book_1"."Discriminator" OR "a_Book"."Discriminator" IS NULL AND "a_Book_1"."Discriminator" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + ("a_Book"."RomanScore" = "a_Book_1"."RomanScore" OR "a_Book"."RomanScore" IS NULL AND "a_Book_1"."RomanScore" IS NULL) AND + ("a_Book"."NovelScore" = "a_Book_1"."NovelScore" OR "a_Book"."NovelScore" IS NULL AND "a_Book_1"."NovelScore" IS NULL) ) BeforeExecute diff --git a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.5.LinqService).sql index 4617d69c14f5..e875ab1135b8 100644 --- a/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.5.LinqService).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE - "a_Book_1"."Discriminator" = 'Novel' AND "a_Book"."BookId" = "a_Book_1"."BookId" AND + "a_Book_1"."Discriminator" = 'Novel' AND ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) ) diff --git a/Firebird.5.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.5.LinqService).sql index 01fcedb8d294..3cbc8bcfcddb 100644 --- a/Firebird.5.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.5.LinqService).sql @@ -8,7 +8,8 @@ SELECT FROM "GrandChild" "a_GrandChildren" WHERE - "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" AND + "a_Parent"."ParentID" IS NOT NULL AND + ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 ) diff --git a/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.5.LinqService).sql index 532318c40b5b..81fa7295e016 100644 --- a/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.5.LinqService).sql @@ -8,7 +8,8 @@ SELECT FROM "Person" "t1" WHERE - "t1"."MiddleName" = "t1"."LastName" + NOT ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) OR + ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) IS NULL ) FROM rdb$database diff --git a/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.5.LinqService).sql index 1559872e511b..6ac06c145282 100644 --- a/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.5.LinqService).sql @@ -14,7 +14,8 @@ WHERE WHEN "r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL) THEN TRUE ELSE FALSE - END + END OR + ("r"."Value" = '123') IS NULL AND ("r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL)) IS NULL ORDER BY "r"."Id" diff --git a/Firebird.5.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.5.LinqService).sql index 0cd6354ef725..0e56fde44bdf 100644 --- a/Firebird.5.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.5.LinqService).sql @@ -4,8 +4,8 @@ FROM "DctSetpointtype" "spt" LEFT JOIN "VWellTree" "t2" INNER JOIN "DctOu" "tp2" ON "t2"."ShopId" = "tp2"."Id" - LEFT JOIN "UacUsersDatagroup" "cudg" ON "tp2"."Id" = "cudg"."DatagroupId" AND "cudg"."UserId" = 150 - LEFT JOIN "UacUsersDatagroup" "oudg" ON "tp2"."ParentId" = "oudg"."DatagroupId" AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 + LEFT JOIN "UacUsersDatagroup" "cudg" ON ("tp2"."Id" = "cudg"."DatagroupId" OR "tp2"."Id" IS NULL AND "cudg"."DatagroupId" IS NULL) AND "cudg"."UserId" = 150 + LEFT JOIN "UacUsersDatagroup" "oudg" ON ("tp2"."ParentId" = "oudg"."DatagroupId" OR "tp2"."ParentId" IS NULL AND "oudg"."DatagroupId" IS NULL) AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 INNER JOIN "Deviation" "d" ON "t2"."WellId" = "d"."WellId" ON "d"."SetpointtypeId" = "spt"."Id" AND UTILS.GREATESTNOTNULL3(CAST("cudg"."Permission" AS Decimal(18, 10)), CAST("oudg"."Inheritablepermission" AS Decimal(18, 10)), NULL) IS NOT NULL diff --git a/Firebird.5.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.5.LinqService).sql index 3b7ddebe215b..3b694a4d2a14 100644 --- a/Firebird.5.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.5.LinqService).sql @@ -21,13 +21,13 @@ FROM LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" WHERE - "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" + "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" FETCH NEXT 1 ROWS ONLY ) "t1" ON 1=1 ) "m_1" INNER JOIN "EmailAttachmentAssociation" "d" ON "m_1"."Id" = "d"."EmailId" LEFT JOIN "Attachment" "a_Attachment" ON "d"."AttachmentId" = "a_Attachment"."Id" - INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" = "a_Documents"."AttachmentId" + INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" IS NOT NULL AND "a_Attachment"."Id" = "a_Documents"."AttachmentId" BeforeExecute -- Firebird.5 Firebird4 @@ -49,7 +49,7 @@ FROM LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" WHERE - "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" + "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" FETCH NEXT 1 ROWS ONLY ) "t1" ON 1=1 diff --git a/Firebird.5.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.5.LinqService).sql index a9520eea5707..dd00ea4248d8 100644 --- a/Firebird.5.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.5.LinqService).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/Firebird.5.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.5.LinqService).sql b/Firebird.5.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.5.LinqService).sql index f4ff09c2e99d..3390903049c2 100644 --- a/Firebird.5.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.5.LinqService).sql +++ b/Firebird.5.LinqService/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.5.LinqService).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/Firebird.5/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.5,Auto).sql b/Firebird.5/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.5,Auto).sql index 20a14e1b5b75..114c55f244bc 100644 --- a/Firebird.5/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.5,Auto).sql +++ b/Firebird.5/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.5,Auto).sql @@ -21,9 +21,8 @@ FROM "Card" "t" WHERE "t"."OwnerId" = "a_Owner"."Id" - ) as "CountOfTCards", - "a_Owner"."Id" + ) as "CountOfTCards" FROM "Client" "a_Owner" - ) "t1" ON "t1"."Id" = "t2"."OwnerId" + ) "t1" ON "t1"."cond" = "t2"."OwnerId" diff --git a/Firebird.5/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.5,None).sql b/Firebird.5/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.5,None).sql index dacb34fa9782..04f52a52bafd 100644 --- a/Firebird.5/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.5,None).sql +++ b/Firebird.5/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.5,None).sql @@ -21,9 +21,8 @@ FROM Card t WHERE t.OwnerId = a_Owner.Id - ) as CountOfTCards, - a_Owner.Id + ) as CountOfTCards FROM Client a_Owner - ) t1 ON t1.Id = t2.OwnerId + ) t1 ON t1.cond = t2.OwnerId diff --git a/Firebird.5/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.5,Quote).sql b/Firebird.5/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.5,Quote).sql index 20a14e1b5b75..114c55f244bc 100644 --- a/Firebird.5/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.5,Quote).sql +++ b/Firebird.5/Tests/DataProvider/FirebirdTests/Tests.DataProvider.FirebirdTests.Issue2445Test(Firebird.5,Quote).sql @@ -21,9 +21,8 @@ FROM "Card" "t" WHERE "t"."OwnerId" = "a_Owner"."Id" - ) as "CountOfTCards", - "a_Owner"."Id" + ) as "CountOfTCards" FROM "Client" "a_Owner" - ) "t1" ON "t1"."Id" = "t2"."OwnerId" + ) "t1" ON "t1"."cond" = "t2"."OwnerId" diff --git a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.5).sql b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.5).sql index ef01e310a82c..35fafe716016 100644 --- a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Firebird.5).sql @@ -9,7 +9,7 @@ SELECT FROM "Issue2933Pet" "a_PetIds" WHERE - "a_Person"."Id" = "a_PetIds"."PersonId" + "a_Person"."Id" IS NOT NULL AND "a_Person"."Id" = "a_PetIds"."PersonId" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.5).sql b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.5).sql index febc2d1570b9..b35e9a9fe589 100644 --- a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Firebird.5).sql @@ -11,7 +11,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) END diff --git a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.5).sql b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.5).sql index ccd41ef71633..77bb6b2d15e0 100644 --- a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Firebird.5).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ), '') FROM diff --git a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.5).sql b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.5).sql index df5a60d80cb0..126b78e072d9 100644 --- a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Firebird.5).sql @@ -9,7 +9,7 @@ SELECT FROM "SubData2" "a_SubDatas" WHERE - "a_SubData"."Id" = "a_SubDatas"."Id" + "a_SubData"."Id" IS NOT NULL AND "a_SubData"."Id" = "a_SubDatas"."Id" FETCH NEXT 1 ROWS ONLY ) FROM diff --git a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.5).sql b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.5).sql index 015235c6f3e2..6959bb0640e0 100644 --- a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Firebird.5).sql @@ -21,7 +21,8 @@ FROM FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) ) "m_1" INNER JOIN "Child" "d" ON "m_1"."ParentID" = "d"."ParentID" @@ -46,6 +47,7 @@ WHERE FROM "Child" "a_1" WHERE - "a_ParentTest"."ParentID" = "a_1"."ParentID" AND "a_1"."ChildID" = 11 + "a_ParentTest"."ParentID" IS NOT NULL AND "a_ParentTest"."ParentID" = "a_1"."ParentID" AND + "a_1"."ChildID" = 11 ) diff --git a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.5).sql b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.5).sql index af8858ae8e8d..7d3d8dd67faf 100644 --- a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Firebird.5).sql @@ -22,7 +22,8 @@ FROM FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) ) "m_1" INNER JOIN "Table4" "d" ON "m_1".ID = "d".ID3 OR "m_1".ID IS NULL AND "d".ID3 IS NULL @@ -49,7 +50,8 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) BeforeExecute diff --git a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.5).sql b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.5).sql index 70f0624d5470..da360c3dcb4e 100644 --- a/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Firebird.5).sql @@ -16,6 +16,7 @@ WHERE FROM "Table4" "id" WHERE - "a_Table3".ID = "id".ID3 AND "id".ID = "r".ID + "a_Table3".ID IS NOT NULL AND ("a_Table3".ID = "id".ID3 OR "a_Table3".ID IS NULL AND "id".ID3 IS NULL) AND + "id".ID = "r".ID ) diff --git a/Firebird.5/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.5).sql b/Firebird.5/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.5).sql index 97b32a6bcd03..f5bb6e75e064 100644 --- a/Firebird.5/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Firebird.5).sql @@ -3,8 +3,8 @@ SELECT CASE - WHEN "t1"."ParentID" IS NULL THEN 0 - ELSE "t1"."ParentID" + WHEN "t1"."cond" IS NULL THEN 0 + ELSE "t1"."cond" END, "t2"."ParentID", "t2"."ChildID" @@ -12,7 +12,7 @@ FROM "Parent" "p" LEFT JOIN ( SELECT - "c_1"."ParentID" + "c_1"."ParentID" as "cond" FROM "Child" "c_1" WHERE diff --git a/Firebird.5/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.5).sql b/Firebird.5/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.5).sql index bccacbf2181d..6752a2f8ced9 100644 --- a/Firebird.5/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/ElementOperationTests/Tests.Linq.ElementOperationTests.NestedFirstOrDefault5(Firebird.5).sql @@ -15,7 +15,7 @@ FROM FROM "Child" "a_Children" WHERE - "a_Parent"."ParentID" = "a_Children"."ParentID" + "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "a_Children"."ParentID" ORDER BY "a_Children"."ChildID" FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.5/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.5).sql b/Firebird.5/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.5).sql index 84a9aad8f127..d783b3dc5bc7 100644 --- a/Firebird.5/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.JoinGroupBy2(Firebird.5).sql @@ -6,7 +6,7 @@ SELECT FROM "Child" "gc" LEFT JOIN "Parent" "a_Parent" ON "gc"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" = "g_1"."ParentID" + INNER JOIN "Child" "g_1" ON "a_Parent"."ParentID" IS NOT NULL AND "a_Parent"."ParentID" = "g_1"."ParentID" GROUP BY "g_1"."ParentID" diff --git a/Firebird.5/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.5).sql b/Firebird.5/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.5).sql index 41d3eddcf158..80f855196e70 100644 --- a/Firebird.5/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Firebird.5).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "a_Children" WHERE - "g_2"."ParentID" = "a_Children"."ParentID" + "g_2"."ParentID" IS NOT NULL AND "g_2"."ParentID" = "a_Children"."ParentID" ) FROM ( diff --git a/Firebird.5/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.5).sql b/Firebird.5/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.5).sql index eb02b234c0c6..a1900537e477 100644 --- a/Firebird.5/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Firebird.5).sql @@ -22,5 +22,5 @@ SELECT FROM "LinqDataTypes" "ia" LEFT JOIN "LinqDataTypes" "a_A1" ON "ia"."GuidValue" = "a_A1"."GuidValue" AND "a_A1".ID = 2 - LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND ("a_A2".ID <> 2 OR "a_A2".ID IS NULL) + LEFT JOIN "LinqDataTypes" "a_A2" ON "ia"."GuidValue" = "a_A2"."GuidValue" AND "a_A2".ID <> 2 diff --git a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.5).sql b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.5).sql index 0e86b8f6fc53..059d131abb90 100644 --- a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFilters(Firebird.5).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -19,13 +19,12 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "right_2" ON "right_2"."ParentID" = "t1"."ParentID" + ) "right_2" ON "right_2"."Right_1" = "t1"."Left_1" ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.5).sql b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.5).sql index f1c3c72a80a0..7d005fdcc38c 100644 --- a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithBothFiltersAlternative(Firebird.5).sql @@ -6,12 +6,12 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t2"."ParentID", - "t1"."ParentID" + "t2"."Left_1", + "t1"."Right_1" FROM ( SELECT - "left_1"."ParentID" + "left_1"."ParentID" as "Left_1" FROM "Parent" "left_1" WHERE @@ -19,12 +19,12 @@ FROM ) "t2" FULL JOIN ( SELECT - "right_1"."ParentID" + "right_1"."ParentID" as "Right_1" FROM "Parent" "right_1" WHERE "right_1"."ParentID" <> @id2 - ) "t1" ON "t1"."ParentID" = "t2"."ParentID" + ) "t1" ON "t1"."Right_1" = "t2"."Left_1" ORDER BY - "t2"."ParentID" + "t2"."Left_1" diff --git a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.5).sql b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.5).sql index bb15d6c6d73f..e4923b016b6b 100644 --- a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithConditions(Firebird.5).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,7 +20,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5).sql b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5).sql index 569e69880e71..86d202031f19 100644 --- a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.5).sql b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.5).sql index d2b00df903aa..be83afcc449b 100644 --- a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithConditions(Firebird.5).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", - "right_2"."cond" + "t1"."Left_1", + "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -21,7 +21,7 @@ FROM ) "t1" FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.5).sql b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.5).sql index 8a7c3ef69bff..00d9053f0b91 100644 --- a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlFullJoinWithInnerJoinOnRightWithoutConditions(Firebird.5).sql @@ -5,13 +5,13 @@ SET @id1 = 1 SELECT "left_1"."ParentID", - "right_2"."cond" + "right_2"."Right_1" FROM "Parent" "left_1" INNER JOIN "Parent" "left2" ON "left_1"."Value1" = "left2"."Value1" + 2 FULL JOIN ( SELECT - "right_1"."ParentID" as "cond", + "right_1"."ParentID" as "Right_1", "right_1"."Value1" + 2 as "c1" FROM "Parent" "right_1" diff --git a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.5).sql b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.5).sql index 2cbdefa541da..449b09880a86 100644 --- a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Firebird.5).sql @@ -6,13 +6,13 @@ DECLARE @id2 Integer -- Int32 SET @id2 = 2 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id2 AND "right2"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5).sql b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5).sql index 15b37db5c542..05f2404234ce 100644 --- a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Firebird.5).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_1"."ParentID" FROM ( SELECT "p"."Value1", - "p"."ParentID" + "p"."ParentID" as "Left_1" FROM "Parent" "p" WHERE @@ -20,5 +20,5 @@ FROM INNER JOIN "Parent" "right2" ON "right_1"."Value1" = "right2"."Value1" + 2 ON "right_1"."Value1" + 2 = "t1"."Value1" OR "right_1"."Value1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.5).sql b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.5).sql index 0b38c4bdb25c..4f0d646694c5 100644 --- a/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Firebird.5).sql @@ -6,12 +6,12 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - "t1"."ParentID", + "t1"."Left_1", "right_2"."Right_1" FROM ( SELECT - "left_1"."ParentID", + "left_1"."ParentID" as "Left_1", "left_1"."Value1" FROM "Parent" "left_1" @@ -29,5 +29,5 @@ FROM "right_1"."ParentID" <> @id1 ) "right_2" ON "right_2"."c1" = "t1"."Value1" OR "right_2"."c1" IS NULL AND "t1"."Value1" IS NULL ORDER BY - "t1"."ParentID" + "t1"."Left_1" diff --git a/Firebird.5/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.5).sql b/Firebird.5/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.5).sql index 7b18fcfeed20..bbb30b3a0fa6 100644 --- a/Firebird.5/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith8(Firebird.5).sql @@ -12,7 +12,7 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) LEFT JOIN "Child" "a_Child_1" ON "a_GrandChildren"."ParentID" = "a_Child_1"."ParentID" AND "a_GrandChildren"."ChildID" = "a_Child_1"."ChildID" LEFT JOIN "Parent" "a_Parent" ON "a_Child_1"."ParentID" = "a_Parent"."ParentID" FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.5/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.5).sql b/Firebird.5/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.5).sql index 481cafcbfb64..d978fe3059f1 100644 --- a/Firebird.5/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/LoadWithTests/Tests.Linq.LoadWithTests.LoadWith9(Firebird.5).sql @@ -8,6 +8,6 @@ SELECT FROM "GrandChild" "p" LEFT JOIN "Child" "a_Child" ON "p"."ParentID" = "a_Child"."ParentID" AND "p"."ChildID" = "a_Child"."ChildID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" = "a_GrandChildren"."ParentID" AND "a_Child"."ChildID" = "a_GrandChildren"."ChildID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Child"."ParentID" IS NOT NULL AND ("a_Child"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Child"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND ("a_Child"."ChildID" = "a_GrandChildren"."ChildID" OR "a_Child"."ChildID" IS NULL AND "a_GrandChildren"."ChildID" IS NULL) FETCH NEXT 1 ROWS ONLY diff --git a/Firebird.5/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.5).sql b/Firebird.5/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.5).sql index 5721197c7f0e..bab4fdb159a4 100644 --- a/Firebird.5/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.Basic5(Firebird.5).sql @@ -8,5 +8,5 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) diff --git a/Firebird.5/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.5).sql b/Firebird.5/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.5).sql index a883fa92ad3b..9282a408499a 100644 --- a/Firebird.5/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/SelectManyTests/Tests.Linq.SelectManyTests.OneParam3(Firebird.5).sql @@ -8,7 +8,7 @@ SELECT FROM "Child" "t" LEFT JOIN "Parent" "a_Parent" ON "t"."ParentID" = "a_Parent"."ParentID" - INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" + INNER JOIN "GrandChild" "a_GrandChildren" ON "a_Parent"."ParentID" IS NOT NULL AND ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) WHERE "a_GrandChildren"."ParentID" = 1 diff --git a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5,Except).sql b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5,Except).sql index 2f6242e6c1f1..c29e8440f71b 100644 --- a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5,Except).sql +++ b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5,Except).sql @@ -16,7 +16,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -34,7 +46,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute BeginTransaction(RepeatableRead) diff --git a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5,ExceptAll).sql b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5,ExceptAll).sql index 6402658afb8f..07e54036b097 100644 --- a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5,ExceptAll).sql +++ b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Firebird.5,ExceptAll).sql @@ -16,7 +16,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" LEFT JOIN "Author" "a_Author" ON "d"."FkAuthorId" = "a_Author"."AuthorId" @@ -34,7 +46,19 @@ FROM INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - "a_Book"."Discriminator" = 'Roman' + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + "Author" "t2" + INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" + LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" + WHERE + "a_Book_1"."Discriminator" = 'Novel' AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + "a_Book"."BookId" IS NULL + ) BeforeExecute BeginTransaction(RepeatableRead) diff --git a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,Except).sql b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,Except).sql index 709a83161d73..782aa5b53989 100644 --- a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,Except).sql +++ b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,Except).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,ExceptAll).sql b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,ExceptAll).sql index 2afeb6a224e7..6ee17c1117ec 100644 --- a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,ExceptAll).sql +++ b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,ExceptAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,Intersect).sql b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,Intersect).sql index 293281193ce8..8451849ffe03 100644 --- a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,Intersect).sql +++ b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,Intersect).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,IntersectAll).sql b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,IntersectAll).sql index 9635cdd4053e..9d86360117e7 100644 --- a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,IntersectAll).sql +++ b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Firebird.5,IntersectAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) ) "m_1" INNER JOIN "BookAuthor" "d" ON "d"."FkBookId" = "m_1"."BookId" @@ -55,9 +55,9 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - "a_Book"."BookId" = "a_Book_1"."BookId" AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - "a_Book"."BookId" = "a_Book_1"."BookId" + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) ) BeforeExecute diff --git a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.5).sql b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.5).sql index 74eb48998b6e..b0cc930a09ab 100644 --- a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Firebird.5).sql @@ -2,28 +2,17 @@ -- Firebird.5 Firebird4 SELECT DISTINCT - "t1"."cond", - "t1"."Discriminator", - "t1"."BookName", - "t1"."NovelScore", - "t1"."RomanScore" + "a_Book"."BookId", + "a_Book"."Discriminator", + "a_Book"."BookName", + "a_Book"."NovelScore", + "a_Book"."RomanScore" FROM - ( - SELECT - "a_Book"."BookId" as "cond", - "a_Book"."Discriminator", - "a_Book"."BookName", - "a_Book"."RomanScore", - "a_Book"."NovelScore" - FROM - "Author" "a" - INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "a"."AuthorId" - LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" - WHERE - "a_Book"."Discriminator" = 'Roman' - ) "t1" + "Author" "t1" + INNER JOIN "BookAuthor" "b" ON "b"."FkAuthorId" = "t1"."AuthorId" + LEFT JOIN "Book" "a_Book" ON "b"."FkBookId" = "a_Book"."BookId" WHERE - NOT EXISTS( + "a_Book"."Discriminator" = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE "a_Book_1"."Discriminator" = 'Novel' AND - ("t1"."cond" = "a_Book_1"."BookId" OR "t1"."cond" IS NULL AND "a_Book_1"."BookId" IS NULL) AND - ("t1"."cond" = "a_Book_1"."BookId" OR "t1"."cond" IS NULL AND "a_Book_1"."BookId" IS NULL) AND - ("t1"."Discriminator" = "a_Book_1"."Discriminator" OR "t1"."Discriminator" IS NULL AND "a_Book_1"."Discriminator" IS NULL) AND - ("t1"."BookName" = "a_Book_1"."BookName" OR "t1"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND - ("t1"."RomanScore" = "a_Book_1"."RomanScore" OR "t1"."RomanScore" IS NULL AND "a_Book_1"."RomanScore" IS NULL) AND - ("t1"."NovelScore" = "a_Book_1"."NovelScore" OR "t1"."NovelScore" IS NULL AND "a_Book_1"."NovelScore" IS NULL) + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND + ("a_Book"."Discriminator" = "a_Book_1"."Discriminator" OR "a_Book"."Discriminator" IS NULL AND "a_Book_1"."Discriminator" IS NULL) AND + ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) AND + ("a_Book"."RomanScore" = "a_Book_1"."RomanScore" OR "a_Book"."RomanScore" IS NULL AND "a_Book_1"."RomanScore" IS NULL) AND + ("a_Book"."NovelScore" = "a_Book_1"."NovelScore" OR "a_Book"."NovelScore" IS NULL AND "a_Book_1"."NovelScore" IS NULL) ) BeforeExecute diff --git a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.5).sql b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.5).sql index 6cb7cf7573ce..ffd4ef249e23 100644 --- a/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Firebird.5).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN "BookAuthor" "b_1" ON "b_1"."FkAuthorId" = "t2"."AuthorId" LEFT JOIN "Book" "a_Book_1" ON "b_1"."FkBookId" = "a_Book_1"."BookId" WHERE - "a_Book_1"."Discriminator" = 'Novel' AND "a_Book"."BookId" = "a_Book_1"."BookId" AND + "a_Book_1"."Discriminator" = 'Novel' AND ("a_Book"."BookId" = "a_Book_1"."BookId" OR "a_Book"."BookId" IS NULL AND "a_Book_1"."BookId" IS NULL) AND ("a_Book"."BookName" = "a_Book_1"."BookName" OR "a_Book"."BookName" IS NULL AND "a_Book_1"."BookName" IS NULL) ) diff --git a/Firebird.5/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.5).sql b/Firebird.5/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.5).sql index 01fcedb8d294..3cbc8bcfcddb 100644 --- a/Firebird.5/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Firebird.5).sql @@ -8,7 +8,8 @@ SELECT FROM "GrandChild" "a_GrandChildren" WHERE - "a_Parent"."ParentID" = "a_GrandChildren"."ParentID" AND + "a_Parent"."ParentID" IS NOT NULL AND + ("a_Parent"."ParentID" = "a_GrandChildren"."ParentID" OR "a_Parent"."ParentID" IS NULL AND "a_GrandChildren"."ParentID" IS NULL) AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 AND "a_GrandChildren"."ParentID" + 1 < "p1"."ParentID" + 2 ) diff --git a/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.5).sql b/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.5).sql index 532318c40b5b..81fa7295e016 100644 --- a/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Firebird.5).sql @@ -8,7 +8,8 @@ SELECT FROM "Person" "t1" WHERE - "t1"."MiddleName" = "t1"."LastName" + NOT ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) OR + ("t1"."MiddleName" <> "t1"."LastName" OR "t1"."MiddleName" IS NULL) IS NULL ) FROM rdb$database diff --git a/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.5).sql b/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.5).sql index 1559872e511b..6ac06c145282 100644 --- a/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.5).sql +++ b/Firebird.5/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Firebird.5).sql @@ -14,7 +14,8 @@ WHERE WHEN "r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL) THEN TRUE ELSE FALSE - END + END OR + ("r"."Value" = '123') IS NULL AND ("r"."Value" = '1' OR "r"."Value" = 'test' AND ("r"."Value" <> '1' OR "r"."Value" IS NULL)) IS NULL ORDER BY "r"."Id" diff --git a/Firebird.5/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.5).sql b/Firebird.5/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.5).sql index 0cd6354ef725..0e56fde44bdf 100644 --- a/Firebird.5/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.5).sql +++ b/Firebird.5/Tests/UserTests/Issue2832Tests/Tests.UserTests.Issue2832Tests.TestIssue2832(Firebird.5).sql @@ -4,8 +4,8 @@ FROM "DctSetpointtype" "spt" LEFT JOIN "VWellTree" "t2" INNER JOIN "DctOu" "tp2" ON "t2"."ShopId" = "tp2"."Id" - LEFT JOIN "UacUsersDatagroup" "cudg" ON "tp2"."Id" = "cudg"."DatagroupId" AND "cudg"."UserId" = 150 - LEFT JOIN "UacUsersDatagroup" "oudg" ON "tp2"."ParentId" = "oudg"."DatagroupId" AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 + LEFT JOIN "UacUsersDatagroup" "cudg" ON ("tp2"."Id" = "cudg"."DatagroupId" OR "tp2"."Id" IS NULL AND "cudg"."DatagroupId" IS NULL) AND "cudg"."UserId" = 150 + LEFT JOIN "UacUsersDatagroup" "oudg" ON ("tp2"."ParentId" = "oudg"."DatagroupId" OR "tp2"."ParentId" IS NULL AND "oudg"."DatagroupId" IS NULL) AND "oudg"."UserId" = 150 AND "oudg"."Inheritablepermission" > 0 INNER JOIN "Deviation" "d" ON "t2"."WellId" = "d"."WellId" ON "d"."SetpointtypeId" = "spt"."Id" AND UTILS.GREATESTNOTNULL3(CAST("cudg"."Permission" AS Decimal(18, 10)), CAST("oudg"."Inheritablepermission" AS Decimal(18, 10)), NULL) IS NOT NULL diff --git a/Firebird.5/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.5).sql b/Firebird.5/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.5).sql index 51395277beaa..d3d03f164e02 100644 --- a/Firebird.5/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.5).sql +++ b/Firebird.5/Tests/UserTests/Issue2895Tests/Tests.UserTests.Issue2895Tests.EagerLoadingTest(Firebird.5).sql @@ -23,13 +23,13 @@ FROM LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" WHERE - "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" + "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" FETCH NEXT 1 ROWS ONLY ) "t1" ON 1=1 ) "m_1" INNER JOIN "EmailAttachmentAssociation" "d" ON "m_1"."Id" = "d"."EmailId" LEFT JOIN "Attachment" "a_Attachment" ON "d"."AttachmentId" = "a_Attachment"."Id" - INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" = "a_Documents"."AttachmentId" + INNER JOIN "Document" "a_Documents" ON "a_Attachment"."Id" IS NOT NULL AND "a_Attachment"."Id" = "a_Documents"."AttachmentId" BeforeExecute DisposeTransaction @@ -53,7 +53,7 @@ FROM LEFT JOIN "InternalEmail" "a_InternalEmail" ON "a_Email"."Id" = "a_InternalEmail"."Id" LEFT JOIN "Email" "a_Email_1" ON "a_InternalEmail"."Id" = "a_Email_1"."Id" WHERE - "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" + "a_Admin"."Id" IS NOT NULL AND "a_Admin"."Id" = "a_EmailAdminAssociations"."AdminId" FETCH NEXT 1 ROWS ONLY ) "t1" ON 1=1 diff --git a/Firebird.5/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.5).sql b/Firebird.5/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.5).sql index a9520eea5707..dd00ea4248d8 100644 --- a/Firebird.5/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.5).sql +++ b/Firebird.5/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest1(Firebird.5).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/Firebird.5/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.5).sql b/Firebird.5/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.5).sql index f4ff09c2e99d..3390903049c2 100644 --- a/Firebird.5/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.5).sql +++ b/Firebird.5/Tests/UserTests/LetTests/Tests.UserTests.LetTests.LetTest2(Firebird.5).sql @@ -12,5 +12,5 @@ FROM INNER JOIN "Table3" "t2" LEFT JOIN "Table7" "a_Ref5_1" ON "t2"."Field4" = "a_Ref5_1"."Field4" INNER JOIN "Table2" "t4" ON "t2"."Field6" = "t4"."Field6" OR "t2"."Field6" IS NULL AND "t4"."Field6" IS NULL - ON "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) + ON "a_Ref1"."Field3" IS NOT NULL AND "a_Ref1"."Field3" = "t2"."Field3" AND ("a_Ref5"."Field4" = "a_Ref5_1"."Field4" OR "a_Ref5"."Field4" IS NULL AND "a_Ref5_1"."Field4" IS NULL) AND ("a_Ref5"."Field8" = "a_Ref5_1"."Field8" OR "a_Ref5"."Field8" IS NULL AND "a_Ref5_1"."Field8" IS NULL) diff --git a/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(Firebird.5).sql b/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(Firebird.5).sql index 599a29d8a916..8f5ccf4869c9 100644 --- a/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(Firebird.5).sql +++ b/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdate(Firebird.5).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(Firebird.5).sql b/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(Firebird.5).sql index b33bf5a136ce..2c560c914645 100644 --- a/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(Firebird.5).sql +++ b/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.OtherSourceAssociationInUpdatePredicate(Firebird.5).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(Firebird.5).sql b/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(Firebird.5).sql index 599a29d8a916..8f5ccf4869c9 100644 --- a/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(Firebird.5).sql +++ b/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdate(Firebird.5).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(Firebird.5).sql b/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(Firebird.5).sql index cdaa72747a54..b99d7b65afd8 100644 --- a/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(Firebird.5).sql +++ b/Firebird.5/Tests/xUpdate/MergeTests/Tests.xUpdate.MergeTests.SameSourceAssociationInUpdatePredicate(Firebird.5).sql @@ -19,7 +19,7 @@ USING ( "Person" "t1" INNER JOIN "Patient" "a_Patient" ON "t1"."PersonID" = "a_Patient"."PersonID" LEFT JOIN "Person" "Target_1" - INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" + INNER JOIN "Patient" "a_Patient_1" ON "Target_1"."PersonID" = "a_Patient_1"."PersonID" OR "Target_1"."PersonID" IS NULL AND "a_Patient_1"."PersonID" IS NULL ON "Target_1"."PersonID" = "t1"."PersonID" AND "t1"."FirstName" = 'first 4' ) "Source" ( diff --git a/Firebird.5/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(Firebird.5).sql b/Firebird.5/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(Firebird.5).sql index d740974f8ea4..3530b5a1dfd3 100644 --- a/Firebird.5/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(Firebird.5).sql +++ b/Firebird.5/Tests/xUpdate/UpdateFromTests/Tests.xUpdate.UpdateFromTests.Issue2815Test2(Firebird.5).sql @@ -6,7 +6,7 @@ UPDATE SET TRANS_CHANNEL = ( SELECT - "channel_1"."Trans_Channel" + Coalesce("channel_1"."Trans_Channel", 0) FROM "Issue2815Table1" "ext_1" LEFT JOIN "Issue2815Table2" "source_1" ON "source_1".ISO = "ext_1".SRC_BIC From 466859fd606be06391a1fe94130d6a193dafd774 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Mar 2025 22:36:56 +0000 Subject: [PATCH 39/40] [Windows / Access MDB (Jet/ODBC)] baselines --- ...e2933Test(Access.Jet.Odbc.LinqService).sql | 2 +- ...3557Case1(Access.Jet.Odbc.LinqService).sql | 2 +- ...3557Case2(Access.Jet.Odbc.LinqService).sql | 4 +- ...3557Case3(Access.Jet.Odbc.LinqService).sql | 2 +- ...e3809Test(Access.Jet.Odbc.LinqService).sql | 6 ++- ...rrelation(Access.Jet.Odbc.LinqService).sql | 6 ++- ...rojection(Access.Jet.Odbc.LinqService).sql | 3 +- ...e3791Test(Access.Jet.Odbc.LinqService).sql | 2 +- ...LetTest11(Access.Jet.Odbc.LinqService).sql | 6 +-- ...ests.Sum3(Access.Jet.Odbc.LinqService).sql | 2 +- ...ationTest(Access.Jet.Odbc.LinqService).sql | 2 +- ...1455Test1(Access.Jet.Odbc.LinqService).sql | 4 +- ...1455Test2(Access.Jet.Odbc.LinqService).sql | 4 +- ...onditions(Access.Jet.Odbc.LinqService).sql | 6 +-- ...onditions(Access.Jet.Odbc.LinqService).sql | 6 +-- ...onditions(Access.Jet.Odbc.LinqService).sql | 6 +-- ...ls(Access.Jet.Odbc.LinqService,Except).sql | 28 ++++++++++++- ...Access.Jet.Odbc.LinqService,ExceptAll).sql | 28 ++++++++++++- ...ls(Access.Jet.Odbc.LinqService,Except).sql | 8 ++-- ...Access.Jet.Odbc.LinqService,ExceptAll).sql | 8 ++-- ...Access.Jet.Odbc.LinqService,Intersect).sql | 8 ++-- ...ess.Jet.Odbc.LinqService,IntersectAll).sql | 8 ++-- ...heritance(Access.Jet.Odbc.LinqService).sql | 41 +++++++------------ ...heritance(Access.Jet.Odbc.LinqService).sql | 2 +- ...SubSub212(Access.Jet.Odbc.LinqService).sql | 3 +- ...isonTest2(Access.Jet.Odbc.LinqService).sql | 3 +- ...icateTest(Access.Jet.Odbc.LinqService).sql | 3 +- ...onTests.Issue2933Test(Access.Jet.Odbc).sql | 2 +- ...nTests.Issue3557Case1(Access.Jet.Odbc).sql | 2 +- ...nTests.Issue3557Case2(Access.Jet.Odbc).sql | 4 +- ...nTests.Issue3557Case3(Access.Jet.Odbc).sql | 2 +- ...onTests.Issue3809Test(Access.Jet.Odbc).sql | 6 ++- ...ionNonNullCorrelation(Access.Jet.Odbc).sql | 6 ++- ...elationWithProjection(Access.Jet.Odbc).sql | 3 +- ...onTests.Issue3791Test(Access.Jet.Odbc).sql | 2 +- ...essionTests.LetTest11(Access.Jet.Odbc).sql | 6 +-- ...inq.GroupByTests.Sum3(Access.Jet.Odbc).sql | 2 +- ...itanceAssociationTest(Access.Jet.Odbc).sql | 2 +- ...nTests.Issue1455Test1(Access.Jet.Odbc).sql | 32 +++++++-------- ...nTests.Issue1455Test2(Access.Jet.Odbc).sql | 32 +++++++-------- ...nOnLeftWithConditions(Access.Jet.Odbc).sql | 6 +-- ...LeftWithoutConditions(Access.Jet.Odbc).sql | 6 +-- ...OnRightWithConditions(Access.Jet.Odbc).sql | 6 +-- ...fferentDetails(Access.Jet.Odbc,Except).sql | 28 ++++++++++++- ...rentDetails(Access.Jet.Odbc,ExceptAll).sql | 28 ++++++++++++- ...gerSameDetails(Access.Jet.Odbc,Except).sql | 8 ++-- ...SameDetails(Access.Jet.Odbc,ExceptAll).sql | 8 ++-- ...SameDetails(Access.Jet.Odbc,Intersect).sql | 8 ++-- ...eDetails(Access.Jet.Odbc,IntersectAll).sql | 8 ++-- ...sts.ExceptInheritance(Access.Jet.Odbc).sql | 41 +++++++------------ ....IntersectInheritance(Access.Jet.Odbc).sql | 2 +- ...bQueryTests.SubSub212(Access.Jet.Odbc).sql | 3 +- ...BinaryComparisonTest2(Access.Jet.Odbc).sql | 3 +- ...exIsNullPredicateTest(Access.Jet.Odbc).sql | 3 +- ...2933Test(Access.Jet.OleDb.LinqService).sql | 2 +- ...557Case1(Access.Jet.OleDb.LinqService).sql | 2 +- ...557Case2(Access.Jet.OleDb.LinqService).sql | 4 +- ...557Case3(Access.Jet.OleDb.LinqService).sql | 2 +- ...3809Test(Access.Jet.OleDb.LinqService).sql | 6 ++- ...relation(Access.Jet.OleDb.LinqService).sql | 6 ++- ...ojection(Access.Jet.OleDb.LinqService).sql | 3 +- ...3791Test(Access.Jet.OleDb.LinqService).sql | 2 +- ...etTest11(Access.Jet.OleDb.LinqService).sql | 6 +-- ...sts.Sum3(Access.Jet.OleDb.LinqService).sql | 2 +- ...tionTest(Access.Jet.OleDb.LinqService).sql | 2 +- ...455Test1(Access.Jet.OleDb.LinqService).sql | 4 +- ...455Test2(Access.Jet.OleDb.LinqService).sql | 4 +- ...nditions(Access.Jet.OleDb.LinqService).sql | 6 +-- ...nditions(Access.Jet.OleDb.LinqService).sql | 6 +-- ...nditions(Access.Jet.OleDb.LinqService).sql | 6 +-- ...s(Access.Jet.OleDb.LinqService,Except).sql | 28 ++++++++++++- ...ccess.Jet.OleDb.LinqService,ExceptAll).sql | 28 ++++++++++++- ...s(Access.Jet.OleDb.LinqService,Except).sql | 8 ++-- ...ccess.Jet.OleDb.LinqService,ExceptAll).sql | 8 ++-- ...ccess.Jet.OleDb.LinqService,Intersect).sql | 8 ++-- ...ss.Jet.OleDb.LinqService,IntersectAll).sql | 8 ++-- ...eritance(Access.Jet.OleDb.LinqService).sql | 41 +++++++------------ ...eritance(Access.Jet.OleDb.LinqService).sql | 2 +- ...ubSub212(Access.Jet.OleDb.LinqService).sql | 3 +- ...sonTest2(Access.Jet.OleDb.LinqService).sql | 3 +- ...cateTest(Access.Jet.OleDb.LinqService).sql | 3 +- ...nTests.Issue2933Test(Access.Jet.OleDb).sql | 2 +- ...Tests.Issue3557Case1(Access.Jet.OleDb).sql | 2 +- ...Tests.Issue3557Case2(Access.Jet.OleDb).sql | 4 +- ...Tests.Issue3557Case3(Access.Jet.OleDb).sql | 2 +- ...nTests.Issue3809Test(Access.Jet.OleDb).sql | 6 ++- ...onNonNullCorrelation(Access.Jet.OleDb).sql | 6 ++- ...lationWithProjection(Access.Jet.OleDb).sql | 3 +- ...nTests.Issue3791Test(Access.Jet.OleDb).sql | 2 +- ...ssionTests.LetTest11(Access.Jet.OleDb).sql | 6 +-- ...nq.GroupByTests.Sum3(Access.Jet.OleDb).sql | 2 +- ...tanceAssociationTest(Access.Jet.OleDb).sql | 2 +- ...Tests.Issue1455Test1(Access.Jet.OleDb).sql | 32 +++++++-------- ...Tests.Issue1455Test2(Access.Jet.OleDb).sql | 32 +++++++-------- ...OnLeftWithConditions(Access.Jet.OleDb).sql | 6 +-- ...eftWithoutConditions(Access.Jet.OleDb).sql | 6 +-- ...nRightWithConditions(Access.Jet.OleDb).sql | 6 +-- ...ferentDetails(Access.Jet.OleDb,Except).sql | 28 ++++++++++++- ...entDetails(Access.Jet.OleDb,ExceptAll).sql | 28 ++++++++++++- ...erSameDetails(Access.Jet.OleDb,Except).sql | 8 ++-- ...ameDetails(Access.Jet.OleDb,ExceptAll).sql | 8 ++-- ...ameDetails(Access.Jet.OleDb,Intersect).sql | 8 ++-- ...Details(Access.Jet.OleDb,IntersectAll).sql | 8 ++-- ...ts.ExceptInheritance(Access.Jet.OleDb).sql | 41 +++++++------------ ...IntersectInheritance(Access.Jet.OleDb).sql | 2 +- ...QueryTests.SubSub212(Access.Jet.OleDb).sql | 3 +- ...inaryComparisonTest2(Access.Jet.OleDb).sql | 3 +- ...xIsNullPredicateTest(Access.Jet.OleDb).sql | 3 +- 108 files changed, 552 insertions(+), 372 deletions(-) diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.Odbc.LinqService).sql index 292f23d6e5ca..ddbae044037d 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.Odbc.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM [Issue2933Pet] [a_PetIds] WHERE - [a_Person].[Id] = [a_PetIds].[PersonId] + [a_Person].[Id] IS NOT NULL AND [a_Person].[Id] = [a_PetIds].[PersonId] ) FROM [Issue2933Car] [x] diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.Odbc.LinqService).sql index 2a6e11096443..567001adc077 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.Odbc.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.Odbc.LinqService).sql index f84a44e1dd02..06b0d91960ad 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.Odbc.LinqService).sql @@ -9,14 +9,14 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) IS NULL, '', ( SELECT TOP 1 [a_SubDatas].[Reason] FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.Odbc.LinqService).sql index 0081b20443a4..a5c92a791223 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.Odbc.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) FROM [Data] [i] diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.Odbc.LinqService).sql index 138fa87e9411..3ab3675b9cd6 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.Odbc.LinqService).sql @@ -19,7 +19,8 @@ FROM FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) ) [m_1] INNER JOIN [Child] [d] ON ([m_1].[ParentID] = [d].[ParentID]) @@ -42,6 +43,7 @@ WHERE FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.Odbc.LinqService).sql index 324afa97ead6..10067e6d9cc1 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.Odbc.LinqService).sql @@ -20,7 +20,8 @@ FROM FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) ) [m_1] INNER JOIN [Table4] [d] ON ([m_1].[ID] = [d].[ID3] OR [m_1].[ID] IS NULL AND [d].[ID3] IS NULL) @@ -45,7 +46,8 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) BeforeExecute diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.Odbc.LinqService).sql index 39e6ea6caacd..8b63baf2d521 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.Odbc.LinqService).sql @@ -16,6 +16,7 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.Odbc.LinqService).sql index 43b0d25cffa6..0297fdb7df85 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.Odbc.LinqService).sql @@ -7,5 +7,5 @@ SELECT [a_Association].[Id] FROM [Issue3791Table] [t1] - LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = IIF([a_Association].[Id] IS NOT NULL, CStr([a_Association].[Id]), NULL)) + LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = CStr([a_Association].[Id])) diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.Odbc.LinqService).sql index f1f7a9d7e20a..3c0eb1fb3d4b 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.Odbc.LinqService).sql @@ -2,7 +2,7 @@ -- Access.Jet.Odbc AccessODBC SELECT - IIF([t1].[ParentID_1] IS NULL, 0, [t1].[ParentID_1]), + IIF([t1].[cond] IS NULL, 0, [t1].[cond]), ( SELECT TOP 1 [c_2].[ParentID] @@ -26,7 +26,6 @@ SELECT FROM ( SELECT - [p].[ParentID], ( SELECT TOP 1 [c_1].[ParentID] @@ -36,7 +35,8 @@ FROM [c_1].[ParentID] > 0 ORDER BY [c_1].[ParentID] - ) as [ParentID_1] + ) as [cond], + [p].[ParentID] FROM [Parent] [p] ) [t1] diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.Odbc.LinqService).sql index 4e63e482457d..e3fa6a6ef70e 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.Odbc.LinqService).sql @@ -8,7 +8,7 @@ SELECT FROM [Child] [a_Children] WHERE - [g_2].[ParentID] = [a_Children].[ParentID] + [g_2].[ParentID] IS NOT NULL AND [g_2].[ParentID] = [a_Children].[ParentID] ) FROM ( diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.Odbc.LinqService).sql index c7a280ca5ccb..d28e872d22b4 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.Odbc.LinqService).sql @@ -22,5 +22,5 @@ SELECT FROM ([LinqDataTypes] [ia] LEFT JOIN [LinqDataTypes] [a_A1] ON ([ia].[GuidValue] = [a_A1].[GuidValue] AND [a_A1].[ID] = 2)) - LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND ([a_A2].[ID] <> 2 OR [a_A2].[ID] IS NULL)) + LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND [a_A2].[ID] <> 2) diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.Odbc.LinqService).sql index ad77571e1a5f..8a1589ed10e4 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.Odbc.LinqService).sql @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE ? OR [trade_1].[CounterParty] LIKE ? OR [al_group_1].[AlertCode] LIKE ? diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.Odbc.LinqService).sql index 641d86cbfbb8..05f9ff6833ec 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.Odbc.LinqService).sql @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE ? OR [trade_1].[CounterParty] LIKE ? OR [al_group_1].[AlertCode] LIKE ? diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.Odbc.LinqService).sql index e9370252159f..3ba274ac9c8a 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.Odbc.LinqService).sql @@ -8,13 +8,13 @@ DECLARE @id1 Int -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> ? AND [right2].[ParentID] <> ? ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.Odbc.LinqService).sql index a0abe8e266c8..6a527b9e64e7 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.Odbc.LinqService).sql @@ -4,13 +4,13 @@ DECLARE @id1 Int -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -25,5 +25,5 @@ FROM INNER JOIN [Parent] [right2] ON ([right_1].[Value1] = [right2].[Value1] + 2) ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.Odbc.LinqService).sql index ad648ade1ed6..29908795bc35 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.Odbc.LinqService).sql @@ -8,12 +8,12 @@ DECLARE @id1 Int -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT - [left_1].[ParentID], + [left_1].[ParentID] as [Left_1], [left_1].[Value1] FROM [Parent] [left_1] @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> ? ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc.LinqService,Except).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc.LinqService,Except).sql index a00d36b72729..f024ba6e7587 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc.LinqService,Except).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc.LinqService,Except).sql @@ -14,7 +14,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -30,7 +42,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute -- Access.Jet.Odbc AccessODBC diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc.LinqService,ExceptAll).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc.LinqService,ExceptAll).sql index 4c1f3313df48..a0b22e4aa9cd 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc.LinqService,ExceptAll).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc.LinqService,ExceptAll).sql @@ -14,7 +14,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -30,7 +42,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute -- Access.Jet.Odbc AccessODBC diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,Except).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,Except).sql index 47981eaf27f9..47c3b39edaa1 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,Except).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,Except).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,ExceptAll).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,ExceptAll).sql index ae4bf1e5be61..d82feb407bf9 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,ExceptAll).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,ExceptAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,Intersect).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,Intersect).sql index aa33bef0f81c..4a43ea54f27f 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,Intersect).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,Intersect).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,IntersectAll).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,IntersectAll).sql index 2f284a9a876e..2caaae515f28 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,IntersectAll).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc.LinqService,IntersectAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.Odbc.LinqService).sql index 708912a50bd0..1e0ee97e5839 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.Odbc.LinqService).sql @@ -2,28 +2,17 @@ -- Access.Jet.Odbc AccessODBC SELECT DISTINCT - [t1].[cond], - [t1].[Discriminator], - [t1].[BookName], - [t1].[NovelScore], - [t1].[RomanScore] + [a_Book].[BookId], + [a_Book].[Discriminator], + [a_Book].[BookName], + [a_Book].[NovelScore], + [a_Book].[RomanScore] FROM - ( - SELECT - [a_Book].[BookId] as [cond], - [a_Book].[Discriminator], - [a_Book].[BookName], - [a_Book].[RomanScore], - [a_Book].[NovelScore] - FROM - ([Author] [a] - INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [a].[AuthorId])) - LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) - WHERE - [a_Book].[Discriminator] = 'Roman' - ) [t1] + ([Author] [t1] + INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) + LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - NOT EXISTS( + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[Discriminator] = [a_Book_1].[Discriminator] OR [t1].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND - ([t1].[BookName] = [a_Book_1].[BookName] OR [t1].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - ([t1].[RomanScore] = [a_Book_1].[RomanScore] OR [t1].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND - ([t1].[NovelScore] = [a_Book_1].[NovelScore] OR [t1].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[Discriminator] = [a_Book_1].[Discriminator] OR [a_Book].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + ([a_Book].[RomanScore] = [a_Book_1].[RomanScore] OR [a_Book].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND + ([a_Book].[NovelScore] = [a_Book_1].[NovelScore] OR [a_Book].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) ) BeforeExecute diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.Odbc.LinqService).sql index 27245a865c4e..60ba64b68416 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.Odbc.LinqService).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE - [a_Book_1].[Discriminator] = 'Novel' AND [a_Book].[BookId] = [a_Book_1].[BookId] AND + [a_Book_1].[Discriminator] = 'Novel' AND ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) ) diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.Odbc.LinqService).sql index 50d40c8ec384..c4b74b1f13c8 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.Odbc.LinqService).sql @@ -8,7 +8,8 @@ SELECT FROM [GrandChild] [a_GrandChildren] WHERE - [a_Parent].[ParentID] = [a_GrandChildren].[ParentID] AND + [a_Parent].[ParentID] IS NOT NULL AND + ([a_Parent].[ParentID] = [a_GrandChildren].[ParentID] OR [a_Parent].[ParentID] IS NULL AND [a_GrandChildren].[ParentID] IS NULL) AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 ) diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.Odbc.LinqService).sql index 56ce4a1444cc..1d4082455020 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.Odbc.LinqService).sql @@ -6,5 +6,6 @@ SELECT FROM [Person] [t1] WHERE - [t1].[MiddleName] = [t1].[LastName] + NOT ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) OR + ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) IS NULL diff --git a/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.Odbc.LinqService).sql b/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.Odbc.LinqService).sql index 94e2449bbbae..decea23568b9 100644 --- a/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.Odbc.LinqService).sql +++ b/Access.Jet.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.Odbc.LinqService).sql @@ -7,7 +7,8 @@ SELECT FROM [ComplexPredicate] [r] WHERE - IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) + IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) OR + ([r].[Value] = '123') IS NULL AND ([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL)) IS NULL ORDER BY [r].[Id] diff --git a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.Odbc).sql index 292f23d6e5ca..ddbae044037d 100644 --- a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.Odbc).sql @@ -9,7 +9,7 @@ SELECT FROM [Issue2933Pet] [a_PetIds] WHERE - [a_Person].[Id] = [a_PetIds].[PersonId] + [a_Person].[Id] IS NOT NULL AND [a_Person].[Id] = [a_PetIds].[PersonId] ) FROM [Issue2933Car] [x] diff --git a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.Odbc).sql index 2a6e11096443..567001adc077 100644 --- a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.Odbc).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.Odbc).sql index f84a44e1dd02..06b0d91960ad 100644 --- a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.Odbc).sql @@ -9,14 +9,14 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) IS NULL, '', ( SELECT TOP 1 [a_SubDatas].[Reason] FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.Odbc).sql index 0081b20443a4..a5c92a791223 100644 --- a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.Odbc).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) FROM [Data] [i] diff --git a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.Odbc).sql index 34b8ca589e5b..b9fac2b0935d 100644 --- a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.Odbc).sql @@ -21,7 +21,8 @@ FROM FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) ) [m_1] INNER JOIN [Child] [d] ON ([m_1].[ParentID] = [d].[ParentID]) @@ -46,6 +47,7 @@ WHERE FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) diff --git a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.Odbc).sql index 7afaa3d047b2..1497e39f47b6 100644 --- a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.Odbc).sql @@ -22,7 +22,8 @@ FROM FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) ) [m_1] INNER JOIN [Table4] [d] ON ([m_1].[ID] = [d].[ID3] OR [m_1].[ID] IS NULL AND [d].[ID3] IS NULL) @@ -49,7 +50,8 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) BeforeExecute diff --git a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.Odbc).sql index 39e6ea6caacd..8b63baf2d521 100644 --- a/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.Odbc).sql @@ -16,6 +16,7 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) diff --git a/Access.Jet.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.Odbc).sql index 43b0d25cffa6..0297fdb7df85 100644 --- a/Access.Jet.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.Odbc).sql @@ -7,5 +7,5 @@ SELECT [a_Association].[Id] FROM [Issue3791Table] [t1] - LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = IIF([a_Association].[Id] IS NOT NULL, CStr([a_Association].[Id]), NULL)) + LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = CStr([a_Association].[Id])) diff --git a/Access.Jet.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.Odbc).sql index f1f7a9d7e20a..3c0eb1fb3d4b 100644 --- a/Access.Jet.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.Odbc).sql @@ -2,7 +2,7 @@ -- Access.Jet.Odbc AccessODBC SELECT - IIF([t1].[ParentID_1] IS NULL, 0, [t1].[ParentID_1]), + IIF([t1].[cond] IS NULL, 0, [t1].[cond]), ( SELECT TOP 1 [c_2].[ParentID] @@ -26,7 +26,6 @@ SELECT FROM ( SELECT - [p].[ParentID], ( SELECT TOP 1 [c_1].[ParentID] @@ -36,7 +35,8 @@ FROM [c_1].[ParentID] > 0 ORDER BY [c_1].[ParentID] - ) as [ParentID_1] + ) as [cond], + [p].[ParentID] FROM [Parent] [p] ) [t1] diff --git a/Access.Jet.Odbc/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.Odbc).sql index 4e63e482457d..e3fa6a6ef70e 100644 --- a/Access.Jet.Odbc/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.Odbc).sql @@ -8,7 +8,7 @@ SELECT FROM [Child] [a_Children] WHERE - [g_2].[ParentID] = [a_Children].[ParentID] + [g_2].[ParentID] IS NOT NULL AND [g_2].[ParentID] = [a_Children].[ParentID] ) FROM ( diff --git a/Access.Jet.Odbc/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.Odbc).sql index c7a280ca5ccb..d28e872d22b4 100644 --- a/Access.Jet.Odbc/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.Odbc).sql @@ -22,5 +22,5 @@ SELECT FROM ([LinqDataTypes] [ia] LEFT JOIN [LinqDataTypes] [a_A1] ON ([ia].[GuidValue] = [a_A1].[GuidValue] AND [a_A1].[ID] = 2)) - LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND ([a_A2].[ID] <> 2 OR [a_A2].[ID] IS NULL)) + LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND [a_A2].[ID] <> 2) diff --git a/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.Odbc).sql index eb8c4e25b70e..8a1589ed10e4 100644 --- a/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.Odbc).sql @@ -70,8 +70,8 @@ SELECT [al_group_3].[AlertCode], [al_group_3].[CreationDate] ) [t1] - LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = IIF([trade_2].[DealId] IS NOT NULL, CStr([trade_2].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = IIF([nomin_2].[CargoId] IS NOT NULL, CStr([nomin_2].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = CStr([trade_2].[DealId]))) + LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = CStr([nomin_2].[CargoId])) WHERE ([nomin_2].[DeliveryCounterParty] LIKE ? OR [trade_2].[CounterParty] LIKE ? OR [t1].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t1].[AlertKey] AND @@ -96,8 +96,8 @@ SELECT [al_group_4].[AlertCode], [al_group_4].[CreationDate] ) [t2] - LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = IIF([trade_3].[DealId] IS NOT NULL, CStr([trade_3].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = IIF([nomin_3].[CargoId] IS NOT NULL, CStr([nomin_3].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = CStr([trade_3].[DealId]))) + LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = CStr([nomin_3].[CargoId])) WHERE ([nomin_3].[DeliveryCounterParty] LIKE ? OR [trade_3].[CounterParty] LIKE ? OR [t2].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t2].[AlertKey] AND @@ -122,8 +122,8 @@ SELECT [al_group_5].[AlertCode], [al_group_5].[CreationDate] ) [t3] - LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = IIF([trade_4].[DealId] IS NOT NULL, CStr([trade_4].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = IIF([nomin_4].[CargoId] IS NOT NULL, CStr([nomin_4].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = CStr([trade_4].[DealId]))) + LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = CStr([nomin_4].[CargoId])) WHERE ([nomin_4].[DeliveryCounterParty] LIKE ? OR [trade_4].[CounterParty] LIKE ? OR [t3].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t3].[AlertKey] AND @@ -148,8 +148,8 @@ SELECT [al_group_6].[AlertCode], [al_group_6].[CreationDate] ) [t4] - LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = IIF([trade_5].[DealId] IS NOT NULL, CStr([trade_5].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = IIF([nomin_5].[CargoId] IS NOT NULL, CStr([nomin_5].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = CStr([trade_5].[DealId]))) + LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = CStr([nomin_5].[CargoId])) WHERE ([nomin_5].[DeliveryCounterParty] LIKE ? OR [trade_5].[CounterParty] LIKE ? OR [t4].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t4].[AlertKey] AND @@ -174,8 +174,8 @@ SELECT [al_group_7].[AlertCode], [al_group_7].[CreationDate] ) [t5] - LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = IIF([trade_6].[DealId] IS NOT NULL, CStr([trade_6].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = IIF([nomin_6].[CargoId] IS NOT NULL, CStr([nomin_6].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = CStr([trade_6].[DealId]))) + LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = CStr([nomin_6].[CargoId])) WHERE ([nomin_6].[DeliveryCounterParty] LIKE ? OR [trade_6].[CounterParty] LIKE ? OR [t5].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t5].[AlertKey] AND @@ -200,8 +200,8 @@ SELECT [al_group_8].[AlertCode], [al_group_8].[CreationDate] ) [t6] - LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = IIF([trade_7].[DealId] IS NOT NULL, CStr([trade_7].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = IIF([nomin_7].[CargoId] IS NOT NULL, CStr([nomin_7].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = CStr([trade_7].[DealId]))) + LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = CStr([nomin_7].[CargoId])) WHERE ([nomin_7].[DeliveryCounterParty] LIKE ? OR [trade_7].[CounterParty] LIKE ? OR [t6].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t6].[AlertKey] AND @@ -226,8 +226,8 @@ SELECT [al_group_9].[AlertCode], [al_group_9].[CreationDate] ) [t7] - LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = IIF([trade_8].[DealId] IS NOT NULL, CStr([trade_8].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = IIF([nomin_8].[CargoId] IS NOT NULL, CStr([nomin_8].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = CStr([trade_8].[DealId]))) + LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = CStr([nomin_8].[CargoId])) WHERE ([nomin_8].[DeliveryCounterParty] LIKE ? OR [trade_8].[CounterParty] LIKE ? OR [t7].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t7].[AlertKey] AND @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE ? OR [trade_1].[CounterParty] LIKE ? OR [al_group_1].[AlertCode] LIKE ? diff --git a/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.Odbc).sql index e00cabf0985a..05f9ff6833ec 100644 --- a/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.Odbc).sql @@ -70,8 +70,8 @@ SELECT [al_group_3].[AlertCode], [al_group_3].[CreationDate] ) [t1] - LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = IIF([trade_2].[DealId] IS NOT NULL, CStr([trade_2].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = IIF([nomin_2].[CargoId] IS NOT NULL, CStr([nomin_2].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = CStr([trade_2].[DealId]))) + LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = CStr([nomin_2].[CargoId])) WHERE ([nomin_2].[DeliveryCounterParty] LIKE ? OR [trade_2].[CounterParty] LIKE ? OR [t1].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t1].[AlertKey] AND @@ -96,8 +96,8 @@ SELECT [al_group_4].[AlertCode], [al_group_4].[CreationDate] ) [t2] - LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = IIF([trade_3].[DealId] IS NOT NULL, CStr([trade_3].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = IIF([nomin_3].[CargoId] IS NOT NULL, CStr([nomin_3].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = CStr([trade_3].[DealId]))) + LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = CStr([nomin_3].[CargoId])) WHERE ([nomin_3].[DeliveryCounterParty] LIKE ? OR [trade_3].[CounterParty] LIKE ? OR [t2].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t2].[AlertKey] AND @@ -122,8 +122,8 @@ SELECT [al_group_5].[AlertCode], [al_group_5].[CreationDate] ) [t3] - LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = IIF([trade_4].[DealId] IS NOT NULL, CStr([trade_4].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = IIF([nomin_4].[CargoId] IS NOT NULL, CStr([nomin_4].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = CStr([trade_4].[DealId]))) + LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = CStr([nomin_4].[CargoId])) WHERE ([nomin_4].[DeliveryCounterParty] LIKE ? OR [trade_4].[CounterParty] LIKE ? OR [t3].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t3].[AlertKey] AND @@ -148,8 +148,8 @@ SELECT [al_group_6].[AlertCode], [al_group_6].[CreationDate] ) [t4] - LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = IIF([trade_5].[DealId] IS NOT NULL, CStr([trade_5].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = IIF([nomin_5].[CargoId] IS NOT NULL, CStr([nomin_5].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = CStr([trade_5].[DealId]))) + LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = CStr([nomin_5].[CargoId])) WHERE ([nomin_5].[DeliveryCounterParty] LIKE ? OR [trade_5].[CounterParty] LIKE ? OR [t4].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t4].[AlertKey] AND @@ -174,8 +174,8 @@ SELECT [al_group_7].[AlertCode], [al_group_7].[CreationDate] ) [t5] - LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = IIF([trade_6].[DealId] IS NOT NULL, CStr([trade_6].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = IIF([nomin_6].[CargoId] IS NOT NULL, CStr([nomin_6].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = CStr([trade_6].[DealId]))) + LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = CStr([nomin_6].[CargoId])) WHERE ([nomin_6].[DeliveryCounterParty] LIKE ? OR [trade_6].[CounterParty] LIKE ? OR [t5].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t5].[AlertKey] AND @@ -200,8 +200,8 @@ SELECT [al_group_8].[AlertCode], [al_group_8].[CreationDate] ) [t6] - LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = IIF([trade_7].[DealId] IS NOT NULL, CStr([trade_7].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = IIF([nomin_7].[CargoId] IS NOT NULL, CStr([nomin_7].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = CStr([trade_7].[DealId]))) + LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = CStr([nomin_7].[CargoId])) WHERE ([nomin_7].[DeliveryCounterParty] LIKE ? OR [trade_7].[CounterParty] LIKE ? OR [t6].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t6].[AlertKey] AND @@ -226,8 +226,8 @@ SELECT [al_group_9].[AlertCode], [al_group_9].[CreationDate] ) [t7] - LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = IIF([trade_8].[DealId] IS NOT NULL, CStr([trade_8].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = IIF([nomin_8].[CargoId] IS NOT NULL, CStr([nomin_8].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = CStr([trade_8].[DealId]))) + LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = CStr([nomin_8].[CargoId])) WHERE ([nomin_8].[DeliveryCounterParty] LIKE ? OR [trade_8].[CounterParty] LIKE ? OR [t7].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t7].[AlertKey] AND @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE ? OR [trade_1].[CounterParty] LIKE ? OR [al_group_1].[AlertCode] LIKE ? diff --git a/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.Odbc).sql index e9370252159f..3ba274ac9c8a 100644 --- a/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.Odbc).sql @@ -8,13 +8,13 @@ DECLARE @id1 Int -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> ? AND [right2].[ParentID] <> ? ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.Odbc).sql index a0abe8e266c8..6a527b9e64e7 100644 --- a/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.Odbc).sql @@ -4,13 +4,13 @@ DECLARE @id1 Int -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -25,5 +25,5 @@ FROM INNER JOIN [Parent] [right2] ON ([right_1].[Value1] = [right2].[Value1] + 2) ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.Odbc).sql index ad648ade1ed6..29908795bc35 100644 --- a/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.Odbc).sql @@ -8,12 +8,12 @@ DECLARE @id1 Int -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT - [left_1].[ParentID], + [left_1].[ParentID] as [Left_1], [left_1].[Value1] FROM [Parent] [left_1] @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> ? ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc,Except).sql b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc,Except).sql index e4badd57132c..86cb9716c98f 100644 --- a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc,Except).sql +++ b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc,Except).sql @@ -16,7 +16,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -34,7 +46,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute BeginTransaction(Unspecified) diff --git a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc,ExceptAll).sql b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc,ExceptAll).sql index 5a9dd3e9beec..9e065881884a 100644 --- a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc,ExceptAll).sql +++ b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.Odbc,ExceptAll).sql @@ -16,7 +16,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -34,7 +46,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute BeginTransaction(Unspecified) diff --git a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,Except).sql b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,Except).sql index 8e73cbabce9d..b8d756c51869 100644 --- a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,Except).sql +++ b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,Except).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,ExceptAll).sql b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,ExceptAll).sql index 7a9e3e6b322e..caa75634e4b4 100644 --- a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,ExceptAll).sql +++ b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,ExceptAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,Intersect).sql b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,Intersect).sql index 174c516e1ee0..0c2dd6fb0b22 100644 --- a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,Intersect).sql +++ b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,Intersect).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,IntersectAll).sql b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,IntersectAll).sql index 45ee966afc3b..f38fe16d4b2b 100644 --- a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,IntersectAll).sql +++ b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.Odbc,IntersectAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.Odbc).sql index 68fe06c8c3c7..fc70b1748d16 100644 --- a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.Odbc).sql @@ -2,28 +2,17 @@ -- Access.Jet.Odbc AccessODBC SELECT DISTINCT - [t1].[cond], - [t1].[Discriminator], - [t1].[BookName], - [t1].[NovelScore], - [t1].[RomanScore] + [a_Book].[BookId], + [a_Book].[Discriminator], + [a_Book].[BookName], + [a_Book].[NovelScore], + [a_Book].[RomanScore] FROM - ( - SELECT - [a_Book].[BookId] as [cond], - [a_Book].[Discriminator], - [a_Book].[BookName], - [a_Book].[RomanScore], - [a_Book].[NovelScore] - FROM - ([Author] [a] - INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [a].[AuthorId])) - LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) - WHERE - [a_Book].[Discriminator] = 'Roman' - ) [t1] + ([Author] [t1] + INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) + LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - NOT EXISTS( + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[Discriminator] = [a_Book_1].[Discriminator] OR [t1].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND - ([t1].[BookName] = [a_Book_1].[BookName] OR [t1].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - ([t1].[RomanScore] = [a_Book_1].[RomanScore] OR [t1].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND - ([t1].[NovelScore] = [a_Book_1].[NovelScore] OR [t1].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[Discriminator] = [a_Book_1].[Discriminator] OR [a_Book].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + ([a_Book].[RomanScore] = [a_Book_1].[RomanScore] OR [a_Book].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND + ([a_Book].[NovelScore] = [a_Book_1].[NovelScore] OR [a_Book].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) ) BeforeExecute diff --git a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.Odbc).sql index 8656539479c1..5276e35c2aa3 100644 --- a/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.Odbc).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE - [a_Book_1].[Discriminator] = 'Novel' AND [a_Book].[BookId] = [a_Book_1].[BookId] AND + [a_Book_1].[Discriminator] = 'Novel' AND ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) ) diff --git a/Access.Jet.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.Odbc).sql index 50d40c8ec384..c4b74b1f13c8 100644 --- a/Access.Jet.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.Odbc).sql @@ -8,7 +8,8 @@ SELECT FROM [GrandChild] [a_GrandChildren] WHERE - [a_Parent].[ParentID] = [a_GrandChildren].[ParentID] AND + [a_Parent].[ParentID] IS NOT NULL AND + ([a_Parent].[ParentID] = [a_GrandChildren].[ParentID] OR [a_Parent].[ParentID] IS NULL AND [a_GrandChildren].[ParentID] IS NULL) AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 ) diff --git a/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.Odbc).sql index 56ce4a1444cc..1d4082455020 100644 --- a/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.Odbc).sql @@ -6,5 +6,6 @@ SELECT FROM [Person] [t1] WHERE - [t1].[MiddleName] = [t1].[LastName] + NOT ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) OR + ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) IS NULL diff --git a/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.Odbc).sql b/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.Odbc).sql index 94e2449bbbae..decea23568b9 100644 --- a/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.Odbc).sql +++ b/Access.Jet.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.Odbc).sql @@ -7,7 +7,8 @@ SELECT FROM [ComplexPredicate] [r] WHERE - IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) + IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) OR + ([r].[Value] = '123') IS NULL AND ([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL)) IS NULL ORDER BY [r].[Id] diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.OleDb.LinqService).sql index 9a0e71d06a70..9457df58d95e 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.OleDb.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM [Issue2933Pet] [a_PetIds] WHERE - [a_Person].[Id] = [a_PetIds].[PersonId] + [a_Person].[Id] IS NOT NULL AND [a_Person].[Id] = [a_PetIds].[PersonId] ) FROM [Issue2933Car] [x] diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.OleDb.LinqService).sql index b07ceee226d1..f143d45adf83 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.OleDb.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.OleDb.LinqService).sql index c7c8293b7290..2aebbd5f4e7e 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.OleDb.LinqService).sql @@ -9,14 +9,14 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) IS NULL, '', ( SELECT TOP 1 [a_SubDatas].[Reason] FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.OleDb.LinqService).sql index ec1f92136a92..29a5b42d5168 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.OleDb.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) FROM [Data] [i] diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.OleDb.LinqService).sql index 844b8e17696b..8821888a9949 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.OleDb.LinqService).sql @@ -19,7 +19,8 @@ FROM FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) ) [m_1] INNER JOIN [Child] [d] ON ([m_1].[ParentID] = [d].[ParentID]) @@ -42,6 +43,7 @@ WHERE FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.OleDb.LinqService).sql index 984321991bd9..2b9ccce63295 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.OleDb.LinqService).sql @@ -20,7 +20,8 @@ FROM FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) ) [m_1] INNER JOIN [Table4] [d] ON ([m_1].[ID] = [d].[ID3] OR [m_1].[ID] IS NULL AND [d].[ID3] IS NULL) @@ -45,7 +46,8 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) BeforeExecute diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.OleDb.LinqService).sql index f5ea690ca706..b6f0a2e0d067 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.OleDb.LinqService).sql @@ -16,6 +16,7 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.OleDb.LinqService).sql index 8c1f345eec75..cbf57c9e9551 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.OleDb.LinqService).sql @@ -7,5 +7,5 @@ SELECT [a_Association].[Id] FROM [Issue3791Table] [t1] - LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = IIF([a_Association].[Id] IS NOT NULL, CStr([a_Association].[Id]), NULL)) + LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = CStr([a_Association].[Id])) diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.OleDb.LinqService).sql index cb896548e02c..5eb73c0310f6 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.OleDb.LinqService).sql @@ -2,7 +2,7 @@ -- Access.Jet.OleDb AccessOleDb SELECT - IIF([t1].[ParentID_1] IS NULL, 0, [t1].[ParentID_1]), + IIF([t1].[cond] IS NULL, 0, [t1].[cond]), ( SELECT TOP 1 [c_2].[ParentID] @@ -26,7 +26,6 @@ SELECT FROM ( SELECT - [p].[ParentID], ( SELECT TOP 1 [c_1].[ParentID] @@ -36,7 +35,8 @@ FROM [c_1].[ParentID] > 0 ORDER BY [c_1].[ParentID] - ) as [ParentID_1] + ) as [cond], + [p].[ParentID] FROM [Parent] [p] ) [t1] diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.OleDb.LinqService).sql index 0a60de8f420c..8fc3cd938ce6 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.OleDb.LinqService).sql @@ -8,7 +8,7 @@ SELECT FROM [Child] [a_Children] WHERE - [g_2].[ParentID] = [a_Children].[ParentID] + [g_2].[ParentID] IS NOT NULL AND [g_2].[ParentID] = [a_Children].[ParentID] ) FROM ( diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.OleDb.LinqService).sql index b53ccdfb7add..9cf9d007abbe 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.OleDb.LinqService).sql @@ -22,5 +22,5 @@ SELECT FROM ([LinqDataTypes] [ia] LEFT JOIN [LinqDataTypes] [a_A1] ON ([ia].[GuidValue] = [a_A1].[GuidValue] AND [a_A1].[ID] = 2)) - LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND ([a_A2].[ID] <> 2 OR [a_A2].[ID] IS NULL)) + LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND [a_A2].[ID] <> 2) diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.OleDb.LinqService).sql index ab81c5953ce2..bda5ad4c38b2 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.OleDb.LinqService).sql @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE @cpty_21 OR [trade_1].[CounterParty] LIKE @cpty_22 OR [al_group_1].[AlertCode] LIKE @cpty_23 diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.OleDb.LinqService).sql index e74931e8cf8b..f09a16032652 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.OleDb.LinqService).sql @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE @cond_21 OR [trade_1].[CounterParty] LIKE @cond_22 OR [al_group_1].[AlertCode] LIKE @cond_23 diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.OleDb.LinqService).sql index 6415e6fafa4d..d73042f9c669 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.OleDb.LinqService).sql @@ -8,13 +8,13 @@ DECLARE @id1_1 Integer -- Int32 SET @id1_1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> @id2 AND [right2].[ParentID] <> @id1_1 ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.OleDb.LinqService).sql index 7c059b2bea57..ea7a06821196 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.OleDb.LinqService).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -25,5 +25,5 @@ FROM INNER JOIN [Parent] [right2] ON ([right_1].[Value1] = [right2].[Value1] + 2) ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.OleDb.LinqService).sql index 5e99450dc5d1..225edc28920c 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.OleDb.LinqService).sql @@ -8,12 +8,12 @@ DECLARE @id1_1 Integer -- Int32 SET @id1_1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT - [left_1].[ParentID], + [left_1].[ParentID] as [Left_1], [left_1].[Value1] FROM [Parent] [left_1] @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> @id1_1 ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb.LinqService,Except).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb.LinqService,Except).sql index 98dcdac22c3c..fc3a7b0a4809 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb.LinqService,Except).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb.LinqService,Except).sql @@ -14,7 +14,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -30,7 +42,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute -- Access.Jet.OleDb AccessOleDb diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb.LinqService,ExceptAll).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb.LinqService,ExceptAll).sql index 2411fa94cb4c..0fc2e0f0de70 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb.LinqService,ExceptAll).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb.LinqService,ExceptAll).sql @@ -14,7 +14,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -30,7 +42,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute -- Access.Jet.OleDb AccessOleDb diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,Except).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,Except).sql index bdee24a3f271..b0d83a286940 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,Except).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,Except).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,ExceptAll).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,ExceptAll).sql index 8dfc251264f4..1fdf3c5cdc10 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,ExceptAll).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,ExceptAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,Intersect).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,Intersect).sql index 53aafe7ac143..e0301ec4706f 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,Intersect).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,Intersect).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,IntersectAll).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,IntersectAll).sql index fba02aedbe66..67783b9bad68 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,IntersectAll).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb.LinqService,IntersectAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.OleDb.LinqService).sql index 351a54b2201b..9ef9e3698999 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.OleDb.LinqService).sql @@ -2,28 +2,17 @@ -- Access.Jet.OleDb AccessOleDb SELECT DISTINCT - [t1].[cond], - [t1].[Discriminator], - [t1].[BookName], - [t1].[NovelScore], - [t1].[RomanScore] + [a_Book].[BookId], + [a_Book].[Discriminator], + [a_Book].[BookName], + [a_Book].[NovelScore], + [a_Book].[RomanScore] FROM - ( - SELECT - [a_Book].[BookId] as [cond], - [a_Book].[Discriminator], - [a_Book].[BookName], - [a_Book].[RomanScore], - [a_Book].[NovelScore] - FROM - ([Author] [a] - INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [a].[AuthorId])) - LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) - WHERE - [a_Book].[Discriminator] = 'Roman' - ) [t1] + ([Author] [t1] + INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) + LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - NOT EXISTS( + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[Discriminator] = [a_Book_1].[Discriminator] OR [t1].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND - ([t1].[BookName] = [a_Book_1].[BookName] OR [t1].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - ([t1].[RomanScore] = [a_Book_1].[RomanScore] OR [t1].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND - ([t1].[NovelScore] = [a_Book_1].[NovelScore] OR [t1].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[Discriminator] = [a_Book_1].[Discriminator] OR [a_Book].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + ([a_Book].[RomanScore] = [a_Book_1].[RomanScore] OR [a_Book].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND + ([a_Book].[NovelScore] = [a_Book_1].[NovelScore] OR [a_Book].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) ) BeforeExecute diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.OleDb.LinqService).sql index f55db7230329..09d5791b5bcb 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.OleDb.LinqService).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE - [a_Book_1].[Discriminator] = 'Novel' AND [a_Book].[BookId] = [a_Book_1].[BookId] AND + [a_Book_1].[Discriminator] = 'Novel' AND ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) ) diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.OleDb.LinqService).sql index b33985cf8df5..28e1fadfdb6a 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.OleDb.LinqService).sql @@ -8,7 +8,8 @@ SELECT FROM [GrandChild] [a_GrandChildren] WHERE - [a_Parent].[ParentID] = [a_GrandChildren].[ParentID] AND + [a_Parent].[ParentID] IS NOT NULL AND + ([a_Parent].[ParentID] = [a_GrandChildren].[ParentID] OR [a_Parent].[ParentID] IS NULL AND [a_GrandChildren].[ParentID] IS NULL) AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 ) diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.OleDb.LinqService).sql index f085ff5a25ee..83a365cbdeff 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.OleDb.LinqService).sql @@ -6,5 +6,6 @@ SELECT FROM [Person] [t1] WHERE - [t1].[MiddleName] = [t1].[LastName] + NOT ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) OR + ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) IS NULL diff --git a/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.OleDb.LinqService).sql b/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.OleDb.LinqService).sql index 6e4ca97092f0..9395446dbc2e 100644 --- a/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.OleDb.LinqService).sql +++ b/Access.Jet.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.OleDb.LinqService).sql @@ -7,7 +7,8 @@ SELECT FROM [ComplexPredicate] [r] WHERE - IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) + IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) OR + ([r].[Value] = '123') IS NULL AND ([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL)) IS NULL ORDER BY [r].[Id] diff --git a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.OleDb).sql index 9a0e71d06a70..9457df58d95e 100644 --- a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Jet.OleDb).sql @@ -9,7 +9,7 @@ SELECT FROM [Issue2933Pet] [a_PetIds] WHERE - [a_Person].[Id] = [a_PetIds].[PersonId] + [a_Person].[Id] IS NOT NULL AND [a_Person].[Id] = [a_PetIds].[PersonId] ) FROM [Issue2933Car] [x] diff --git a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.OleDb).sql index b07ceee226d1..f143d45adf83 100644 --- a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Jet.OleDb).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.OleDb).sql index c7c8293b7290..2aebbd5f4e7e 100644 --- a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Jet.OleDb).sql @@ -9,14 +9,14 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) IS NULL, '', ( SELECT TOP 1 [a_SubDatas].[Reason] FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.OleDb).sql index ec1f92136a92..29a5b42d5168 100644 --- a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Jet.OleDb).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) FROM [Data] [i] diff --git a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.OleDb).sql index 770534fd4112..aa940404a8e9 100644 --- a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Jet.OleDb).sql @@ -21,7 +21,8 @@ FROM FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) ) [m_1] INNER JOIN [Child] [d] ON ([m_1].[ParentID] = [d].[ParentID]) @@ -46,6 +47,7 @@ WHERE FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) diff --git a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.OleDb).sql index 8c96fe944409..0dfd6b71294a 100644 --- a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Jet.OleDb).sql @@ -22,7 +22,8 @@ FROM FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) ) [m_1] INNER JOIN [Table4] [d] ON ([m_1].[ID] = [d].[ID3] OR [m_1].[ID] IS NULL AND [d].[ID3] IS NULL) @@ -49,7 +50,8 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) BeforeExecute diff --git a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.OleDb).sql index f5ea690ca706..b6f0a2e0d067 100644 --- a/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Jet.OleDb).sql @@ -16,6 +16,7 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) diff --git a/Access.Jet.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.OleDb).sql index 8c1f345eec75..cbf57c9e9551 100644 --- a/Access.Jet.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Jet.OleDb).sql @@ -7,5 +7,5 @@ SELECT [a_Association].[Id] FROM [Issue3791Table] [t1] - LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = IIF([a_Association].[Id] IS NOT NULL, CStr([a_Association].[Id]), NULL)) + LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = CStr([a_Association].[Id])) diff --git a/Access.Jet.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.OleDb).sql index cb896548e02c..5eb73c0310f6 100644 --- a/Access.Jet.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Jet.OleDb).sql @@ -2,7 +2,7 @@ -- Access.Jet.OleDb AccessOleDb SELECT - IIF([t1].[ParentID_1] IS NULL, 0, [t1].[ParentID_1]), + IIF([t1].[cond] IS NULL, 0, [t1].[cond]), ( SELECT TOP 1 [c_2].[ParentID] @@ -26,7 +26,6 @@ SELECT FROM ( SELECT - [p].[ParentID], ( SELECT TOP 1 [c_1].[ParentID] @@ -36,7 +35,8 @@ FROM [c_1].[ParentID] > 0 ORDER BY [c_1].[ParentID] - ) as [ParentID_1] + ) as [cond], + [p].[ParentID] FROM [Parent] [p] ) [t1] diff --git a/Access.Jet.OleDb/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.OleDb).sql index 0a60de8f420c..8fc3cd938ce6 100644 --- a/Access.Jet.OleDb/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Jet.OleDb).sql @@ -8,7 +8,7 @@ SELECT FROM [Child] [a_Children] WHERE - [g_2].[ParentID] = [a_Children].[ParentID] + [g_2].[ParentID] IS NOT NULL AND [g_2].[ParentID] = [a_Children].[ParentID] ) FROM ( diff --git a/Access.Jet.OleDb/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.OleDb).sql index b53ccdfb7add..9cf9d007abbe 100644 --- a/Access.Jet.OleDb/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Jet.OleDb).sql @@ -22,5 +22,5 @@ SELECT FROM ([LinqDataTypes] [ia] LEFT JOIN [LinqDataTypes] [a_A1] ON ([ia].[GuidValue] = [a_A1].[GuidValue] AND [a_A1].[ID] = 2)) - LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND ([a_A2].[ID] <> 2 OR [a_A2].[ID] IS NULL)) + LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND [a_A2].[ID] <> 2) diff --git a/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.OleDb).sql index fc892362c028..bda5ad4c38b2 100644 --- a/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Jet.OleDb).sql @@ -70,8 +70,8 @@ SELECT [al_group_3].[AlertCode], [al_group_3].[CreationDate] ) [t1] - LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = IIF([trade_2].[DealId] IS NOT NULL, CStr([trade_2].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = IIF([nomin_2].[CargoId] IS NOT NULL, CStr([nomin_2].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = CStr([trade_2].[DealId]))) + LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = CStr([nomin_2].[CargoId])) WHERE ([nomin_2].[DeliveryCounterParty] LIKE @cpty OR [trade_2].[CounterParty] LIKE @cpty_1 OR [t1].[AlertCode] LIKE @cpty_2) AND [al_group_2].[AlertKey] = [t1].[AlertKey] AND @@ -96,8 +96,8 @@ SELECT [al_group_4].[AlertCode], [al_group_4].[CreationDate] ) [t2] - LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = IIF([trade_3].[DealId] IS NOT NULL, CStr([trade_3].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = IIF([nomin_3].[CargoId] IS NOT NULL, CStr([nomin_3].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = CStr([trade_3].[DealId]))) + LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = CStr([nomin_3].[CargoId])) WHERE ([nomin_3].[DeliveryCounterParty] LIKE @cpty_3 OR [trade_3].[CounterParty] LIKE @cpty_4 OR [t2].[AlertCode] LIKE @cpty_5) AND [al_group_2].[AlertKey] = [t2].[AlertKey] AND @@ -122,8 +122,8 @@ SELECT [al_group_5].[AlertCode], [al_group_5].[CreationDate] ) [t3] - LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = IIF([trade_4].[DealId] IS NOT NULL, CStr([trade_4].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = IIF([nomin_4].[CargoId] IS NOT NULL, CStr([nomin_4].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = CStr([trade_4].[DealId]))) + LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = CStr([nomin_4].[CargoId])) WHERE ([nomin_4].[DeliveryCounterParty] LIKE @cpty_6 OR [trade_4].[CounterParty] LIKE @cpty_7 OR [t3].[AlertCode] LIKE @cpty_8) AND [al_group_2].[AlertKey] = [t3].[AlertKey] AND @@ -148,8 +148,8 @@ SELECT [al_group_6].[AlertCode], [al_group_6].[CreationDate] ) [t4] - LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = IIF([trade_5].[DealId] IS NOT NULL, CStr([trade_5].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = IIF([nomin_5].[CargoId] IS NOT NULL, CStr([nomin_5].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = CStr([trade_5].[DealId]))) + LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = CStr([nomin_5].[CargoId])) WHERE ([nomin_5].[DeliveryCounterParty] LIKE @cpty_9 OR [trade_5].[CounterParty] LIKE @cpty_10 OR [t4].[AlertCode] LIKE @cpty_11) AND [al_group_2].[AlertKey] = [t4].[AlertKey] AND @@ -174,8 +174,8 @@ SELECT [al_group_7].[AlertCode], [al_group_7].[CreationDate] ) [t5] - LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = IIF([trade_6].[DealId] IS NOT NULL, CStr([trade_6].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = IIF([nomin_6].[CargoId] IS NOT NULL, CStr([nomin_6].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = CStr([trade_6].[DealId]))) + LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = CStr([nomin_6].[CargoId])) WHERE ([nomin_6].[DeliveryCounterParty] LIKE @cpty_12 OR [trade_6].[CounterParty] LIKE @cpty_13 OR [t5].[AlertCode] LIKE @cpty_14) AND [al_group_2].[AlertKey] = [t5].[AlertKey] AND @@ -200,8 +200,8 @@ SELECT [al_group_8].[AlertCode], [al_group_8].[CreationDate] ) [t6] - LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = IIF([trade_7].[DealId] IS NOT NULL, CStr([trade_7].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = IIF([nomin_7].[CargoId] IS NOT NULL, CStr([nomin_7].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = CStr([trade_7].[DealId]))) + LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = CStr([nomin_7].[CargoId])) WHERE ([nomin_7].[DeliveryCounterParty] LIKE @cpty_15 OR [trade_7].[CounterParty] LIKE @cpty_16 OR [t6].[AlertCode] LIKE @cpty_17) AND [al_group_2].[AlertKey] = [t6].[AlertKey] AND @@ -226,8 +226,8 @@ SELECT [al_group_9].[AlertCode], [al_group_9].[CreationDate] ) [t7] - LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = IIF([trade_8].[DealId] IS NOT NULL, CStr([trade_8].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = IIF([nomin_8].[CargoId] IS NOT NULL, CStr([nomin_8].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = CStr([trade_8].[DealId]))) + LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = CStr([nomin_8].[CargoId])) WHERE ([nomin_8].[DeliveryCounterParty] LIKE @cpty_18 OR [trade_8].[CounterParty] LIKE @cpty_19 OR [t7].[AlertCode] LIKE @cpty_20) AND [al_group_2].[AlertKey] = [t7].[AlertKey] AND @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE @cpty_21 OR [trade_1].[CounterParty] LIKE @cpty_22 OR [al_group_1].[AlertCode] LIKE @cpty_23 diff --git a/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.OleDb).sql index 85d5001161c0..f09a16032652 100644 --- a/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Jet.OleDb).sql @@ -70,8 +70,8 @@ SELECT [al_group_3].[AlertCode], [al_group_3].[CreationDate] ) [t1] - LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = IIF([trade_2].[DealId] IS NOT NULL, CStr([trade_2].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = IIF([nomin_2].[CargoId] IS NOT NULL, CStr([nomin_2].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = CStr([trade_2].[DealId]))) + LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = CStr([nomin_2].[CargoId])) WHERE ([nomin_2].[DeliveryCounterParty] LIKE @cond OR [trade_2].[CounterParty] LIKE @cond_1 OR [t1].[AlertCode] LIKE @cond_2) AND [al_group_2].[AlertKey] = [t1].[AlertKey] AND @@ -96,8 +96,8 @@ SELECT [al_group_4].[AlertCode], [al_group_4].[CreationDate] ) [t2] - LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = IIF([trade_3].[DealId] IS NOT NULL, CStr([trade_3].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = IIF([nomin_3].[CargoId] IS NOT NULL, CStr([nomin_3].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = CStr([trade_3].[DealId]))) + LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = CStr([nomin_3].[CargoId])) WHERE ([nomin_3].[DeliveryCounterParty] LIKE @cond_3 OR [trade_3].[CounterParty] LIKE @cond_4 OR [t2].[AlertCode] LIKE @cond_5) AND [al_group_2].[AlertKey] = [t2].[AlertKey] AND @@ -122,8 +122,8 @@ SELECT [al_group_5].[AlertCode], [al_group_5].[CreationDate] ) [t3] - LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = IIF([trade_4].[DealId] IS NOT NULL, CStr([trade_4].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = IIF([nomin_4].[CargoId] IS NOT NULL, CStr([nomin_4].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = CStr([trade_4].[DealId]))) + LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = CStr([nomin_4].[CargoId])) WHERE ([nomin_4].[DeliveryCounterParty] LIKE @cond_6 OR [trade_4].[CounterParty] LIKE @cond_7 OR [t3].[AlertCode] LIKE @cond_8) AND [al_group_2].[AlertKey] = [t3].[AlertKey] AND @@ -148,8 +148,8 @@ SELECT [al_group_6].[AlertCode], [al_group_6].[CreationDate] ) [t4] - LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = IIF([trade_5].[DealId] IS NOT NULL, CStr([trade_5].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = IIF([nomin_5].[CargoId] IS NOT NULL, CStr([nomin_5].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = CStr([trade_5].[DealId]))) + LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = CStr([nomin_5].[CargoId])) WHERE ([nomin_5].[DeliveryCounterParty] LIKE @cond_9 OR [trade_5].[CounterParty] LIKE @cond_10 OR [t4].[AlertCode] LIKE @cond_11) AND [al_group_2].[AlertKey] = [t4].[AlertKey] AND @@ -174,8 +174,8 @@ SELECT [al_group_7].[AlertCode], [al_group_7].[CreationDate] ) [t5] - LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = IIF([trade_6].[DealId] IS NOT NULL, CStr([trade_6].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = IIF([nomin_6].[CargoId] IS NOT NULL, CStr([nomin_6].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = CStr([trade_6].[DealId]))) + LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = CStr([nomin_6].[CargoId])) WHERE ([nomin_6].[DeliveryCounterParty] LIKE @cond_12 OR [trade_6].[CounterParty] LIKE @cond_13 OR [t5].[AlertCode] LIKE @cond_14) AND [al_group_2].[AlertKey] = [t5].[AlertKey] AND @@ -200,8 +200,8 @@ SELECT [al_group_8].[AlertCode], [al_group_8].[CreationDate] ) [t6] - LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = IIF([trade_7].[DealId] IS NOT NULL, CStr([trade_7].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = IIF([nomin_7].[CargoId] IS NOT NULL, CStr([nomin_7].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = CStr([trade_7].[DealId]))) + LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = CStr([nomin_7].[CargoId])) WHERE ([nomin_7].[DeliveryCounterParty] LIKE @cond_15 OR [trade_7].[CounterParty] LIKE @cond_16 OR [t6].[AlertCode] LIKE @cond_17) AND [al_group_2].[AlertKey] = [t6].[AlertKey] AND @@ -226,8 +226,8 @@ SELECT [al_group_9].[AlertCode], [al_group_9].[CreationDate] ) [t7] - LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = IIF([trade_8].[DealId] IS NOT NULL, CStr([trade_8].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = IIF([nomin_8].[CargoId] IS NOT NULL, CStr([nomin_8].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = CStr([trade_8].[DealId]))) + LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = CStr([nomin_8].[CargoId])) WHERE ([nomin_8].[DeliveryCounterParty] LIKE @cond_18 OR [trade_8].[CounterParty] LIKE @cond_19 OR [t7].[AlertCode] LIKE @cond_20) AND [al_group_2].[AlertKey] = [t7].[AlertKey] AND @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE @cond_21 OR [trade_1].[CounterParty] LIKE @cond_22 OR [al_group_1].[AlertCode] LIKE @cond_23 diff --git a/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.OleDb).sql index 6415e6fafa4d..d73042f9c669 100644 --- a/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Jet.OleDb).sql @@ -8,13 +8,13 @@ DECLARE @id1_1 Integer -- Int32 SET @id1_1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> @id2 AND [right2].[ParentID] <> @id1_1 ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.OleDb).sql index 7c059b2bea57..ea7a06821196 100644 --- a/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Jet.OleDb).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -25,5 +25,5 @@ FROM INNER JOIN [Parent] [right2] ON ([right_1].[Value1] = [right2].[Value1] + 2) ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.OleDb).sql index 5e99450dc5d1..225edc28920c 100644 --- a/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Jet.OleDb).sql @@ -8,12 +8,12 @@ DECLARE @id1_1 Integer -- Int32 SET @id1_1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT - [left_1].[ParentID], + [left_1].[ParentID] as [Left_1], [left_1].[Value1] FROM [Parent] [left_1] @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> @id1_1 ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb,Except).sql b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb,Except).sql index bedcad048b54..755e085685f8 100644 --- a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb,Except).sql +++ b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb,Except).sql @@ -16,7 +16,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -34,7 +46,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute BeginTransaction(Unspecified) diff --git a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb,ExceptAll).sql b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb,ExceptAll).sql index d9a09153bd04..fe1579dbdd7c 100644 --- a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb,ExceptAll).sql +++ b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Jet.OleDb,ExceptAll).sql @@ -16,7 +16,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -34,7 +46,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute BeginTransaction(Unspecified) diff --git a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,Except).sql b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,Except).sql index 4f2c7ded4fe8..421f74460109 100644 --- a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,Except).sql +++ b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,Except).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,ExceptAll).sql b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,ExceptAll).sql index 9d002bd5a26d..ce1e080ba20d 100644 --- a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,ExceptAll).sql +++ b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,ExceptAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,Intersect).sql b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,Intersect).sql index 49e391d24f84..47dc5c793078 100644 --- a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,Intersect).sql +++ b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,Intersect).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,IntersectAll).sql b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,IntersectAll).sql index 21770db978be..2244e7381ce6 100644 --- a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,IntersectAll).sql +++ b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Jet.OleDb,IntersectAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.OleDb).sql index 406280bffc6e..1b276aa008db 100644 --- a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Jet.OleDb).sql @@ -2,28 +2,17 @@ -- Access.Jet.OleDb AccessOleDb SELECT DISTINCT - [t1].[cond], - [t1].[Discriminator], - [t1].[BookName], - [t1].[NovelScore], - [t1].[RomanScore] + [a_Book].[BookId], + [a_Book].[Discriminator], + [a_Book].[BookName], + [a_Book].[NovelScore], + [a_Book].[RomanScore] FROM - ( - SELECT - [a_Book].[BookId] as [cond], - [a_Book].[Discriminator], - [a_Book].[BookName], - [a_Book].[RomanScore], - [a_Book].[NovelScore] - FROM - ([Author] [a] - INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [a].[AuthorId])) - LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) - WHERE - [a_Book].[Discriminator] = 'Roman' - ) [t1] + ([Author] [t1] + INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) + LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - NOT EXISTS( + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[Discriminator] = [a_Book_1].[Discriminator] OR [t1].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND - ([t1].[BookName] = [a_Book_1].[BookName] OR [t1].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - ([t1].[RomanScore] = [a_Book_1].[RomanScore] OR [t1].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND - ([t1].[NovelScore] = [a_Book_1].[NovelScore] OR [t1].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[Discriminator] = [a_Book_1].[Discriminator] OR [a_Book].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + ([a_Book].[RomanScore] = [a_Book_1].[RomanScore] OR [a_Book].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND + ([a_Book].[NovelScore] = [a_Book_1].[NovelScore] OR [a_Book].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) ) BeforeExecute diff --git a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.OleDb).sql index a26a97a3001c..d5eeacf0840a 100644 --- a/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Jet.OleDb).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE - [a_Book_1].[Discriminator] = 'Novel' AND [a_Book].[BookId] = [a_Book_1].[BookId] AND + [a_Book_1].[Discriminator] = 'Novel' AND ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) ) diff --git a/Access.Jet.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.OleDb).sql index b33985cf8df5..28e1fadfdb6a 100644 --- a/Access.Jet.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Jet.OleDb).sql @@ -8,7 +8,8 @@ SELECT FROM [GrandChild] [a_GrandChildren] WHERE - [a_Parent].[ParentID] = [a_GrandChildren].[ParentID] AND + [a_Parent].[ParentID] IS NOT NULL AND + ([a_Parent].[ParentID] = [a_GrandChildren].[ParentID] OR [a_Parent].[ParentID] IS NULL AND [a_GrandChildren].[ParentID] IS NULL) AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 ) diff --git a/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.OleDb).sql index f085ff5a25ee..83a365cbdeff 100644 --- a/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Jet.OleDb).sql @@ -6,5 +6,6 @@ SELECT FROM [Person] [t1] WHERE - [t1].[MiddleName] = [t1].[LastName] + NOT ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) OR + ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) IS NULL diff --git a/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.OleDb).sql b/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.OleDb).sql index 6e4ca97092f0..9395446dbc2e 100644 --- a/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.OleDb).sql +++ b/Access.Jet.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Jet.OleDb).sql @@ -7,7 +7,8 @@ SELECT FROM [ComplexPredicate] [r] WHERE - IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) + IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) OR + ([r].[Value] = '123') IS NULL AND ([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL)) IS NULL ORDER BY [r].[Id] From a350ec9f7bfb5a746655bdff6fc9ed285d038024 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Sun, 23 Mar 2025 22:45:02 +0000 Subject: [PATCH 40/40] [Windows / Access ACE (OLEDB/ODBC) x86] baselines --- ...e2933Test(Access.Ace.Odbc.LinqService).sql | 2 +- ...3557Case1(Access.Ace.Odbc.LinqService).sql | 2 +- ...3557Case2(Access.Ace.Odbc.LinqService).sql | 4 +- ...3557Case3(Access.Ace.Odbc.LinqService).sql | 2 +- ...e3809Test(Access.Ace.Odbc.LinqService).sql | 6 ++- ...rrelation(Access.Ace.Odbc.LinqService).sql | 6 ++- ...rojection(Access.Ace.Odbc.LinqService).sql | 3 +- ...e3791Test(Access.Ace.Odbc.LinqService).sql | 2 +- ...LetTest11(Access.Ace.Odbc.LinqService).sql | 6 +-- ...ests.Sum3(Access.Ace.Odbc.LinqService).sql | 2 +- ...ationTest(Access.Ace.Odbc.LinqService).sql | 2 +- ...1455Test1(Access.Ace.Odbc.LinqService).sql | 4 +- ...1455Test2(Access.Ace.Odbc.LinqService).sql | 4 +- ...onditions(Access.Ace.Odbc.LinqService).sql | 6 +-- ...onditions(Access.Ace.Odbc.LinqService).sql | 6 +-- ...onditions(Access.Ace.Odbc.LinqService).sql | 6 +-- ...ls(Access.Ace.Odbc.LinqService,Except).sql | 28 ++++++++++++- ...Access.Ace.Odbc.LinqService,ExceptAll).sql | 28 ++++++++++++- ...ls(Access.Ace.Odbc.LinqService,Except).sql | 8 ++-- ...Access.Ace.Odbc.LinqService,ExceptAll).sql | 8 ++-- ...Access.Ace.Odbc.LinqService,Intersect).sql | 8 ++-- ...ess.Ace.Odbc.LinqService,IntersectAll).sql | 8 ++-- ...heritance(Access.Ace.Odbc.LinqService).sql | 41 +++++++------------ ...heritance(Access.Ace.Odbc.LinqService).sql | 2 +- ...SubSub212(Access.Ace.Odbc.LinqService).sql | 3 +- ...isonTest2(Access.Ace.Odbc.LinqService).sql | 3 +- ...icateTest(Access.Ace.Odbc.LinqService).sql | 3 +- ...onTests.Issue2933Test(Access.Ace.Odbc).sql | 2 +- ...nTests.Issue3557Case1(Access.Ace.Odbc).sql | 2 +- ...nTests.Issue3557Case2(Access.Ace.Odbc).sql | 4 +- ...nTests.Issue3557Case3(Access.Ace.Odbc).sql | 2 +- ...onTests.Issue3809Test(Access.Ace.Odbc).sql | 6 ++- ...ionNonNullCorrelation(Access.Ace.Odbc).sql | 6 ++- ...elationWithProjection(Access.Ace.Odbc).sql | 3 +- ...onTests.Issue3791Test(Access.Ace.Odbc).sql | 2 +- ...essionTests.LetTest11(Access.Ace.Odbc).sql | 6 +-- ...inq.GroupByTests.Sum3(Access.Ace.Odbc).sql | 2 +- ...itanceAssociationTest(Access.Ace.Odbc).sql | 2 +- ...nTests.Issue1455Test1(Access.Ace.Odbc).sql | 32 +++++++-------- ...nTests.Issue1455Test2(Access.Ace.Odbc).sql | 32 +++++++-------- ...nOnLeftWithConditions(Access.Ace.Odbc).sql | 6 +-- ...LeftWithoutConditions(Access.Ace.Odbc).sql | 6 +-- ...OnRightWithConditions(Access.Ace.Odbc).sql | 6 +-- ...fferentDetails(Access.Ace.Odbc,Except).sql | 28 ++++++++++++- ...rentDetails(Access.Ace.Odbc,ExceptAll).sql | 28 ++++++++++++- ...gerSameDetails(Access.Ace.Odbc,Except).sql | 8 ++-- ...SameDetails(Access.Ace.Odbc,ExceptAll).sql | 8 ++-- ...SameDetails(Access.Ace.Odbc,Intersect).sql | 8 ++-- ...eDetails(Access.Ace.Odbc,IntersectAll).sql | 8 ++-- ...sts.ExceptInheritance(Access.Ace.Odbc).sql | 41 +++++++------------ ....IntersectInheritance(Access.Ace.Odbc).sql | 2 +- ...bQueryTests.SubSub212(Access.Ace.Odbc).sql | 3 +- ...BinaryComparisonTest2(Access.Ace.Odbc).sql | 3 +- ...exIsNullPredicateTest(Access.Ace.Odbc).sql | 3 +- ...2933Test(Access.Ace.OleDb.LinqService).sql | 2 +- ...557Case1(Access.Ace.OleDb.LinqService).sql | 2 +- ...557Case2(Access.Ace.OleDb.LinqService).sql | 4 +- ...557Case3(Access.Ace.OleDb.LinqService).sql | 2 +- ...3809Test(Access.Ace.OleDb.LinqService).sql | 6 ++- ...relation(Access.Ace.OleDb.LinqService).sql | 6 ++- ...ojection(Access.Ace.OleDb.LinqService).sql | 3 +- ...3791Test(Access.Ace.OleDb.LinqService).sql | 2 +- ...etTest11(Access.Ace.OleDb.LinqService).sql | 6 +-- ...sts.Sum3(Access.Ace.OleDb.LinqService).sql | 2 +- ...tionTest(Access.Ace.OleDb.LinqService).sql | 2 +- ...455Test1(Access.Ace.OleDb.LinqService).sql | 4 +- ...455Test2(Access.Ace.OleDb.LinqService).sql | 4 +- ...nditions(Access.Ace.OleDb.LinqService).sql | 6 +-- ...nditions(Access.Ace.OleDb.LinqService).sql | 6 +-- ...nditions(Access.Ace.OleDb.LinqService).sql | 6 +-- ...s(Access.Ace.OleDb.LinqService,Except).sql | 28 ++++++++++++- ...ccess.Ace.OleDb.LinqService,ExceptAll).sql | 28 ++++++++++++- ...s(Access.Ace.OleDb.LinqService,Except).sql | 8 ++-- ...ccess.Ace.OleDb.LinqService,ExceptAll).sql | 8 ++-- ...ccess.Ace.OleDb.LinqService,Intersect).sql | 8 ++-- ...ss.Ace.OleDb.LinqService,IntersectAll).sql | 8 ++-- ...eritance(Access.Ace.OleDb.LinqService).sql | 41 +++++++------------ ...eritance(Access.Ace.OleDb.LinqService).sql | 2 +- ...ubSub212(Access.Ace.OleDb.LinqService).sql | 3 +- ...sonTest2(Access.Ace.OleDb.LinqService).sql | 3 +- ...cateTest(Access.Ace.OleDb.LinqService).sql | 3 +- ...nTests.Issue2933Test(Access.Ace.OleDb).sql | 2 +- ...Tests.Issue3557Case1(Access.Ace.OleDb).sql | 2 +- ...Tests.Issue3557Case2(Access.Ace.OleDb).sql | 4 +- ...Tests.Issue3557Case3(Access.Ace.OleDb).sql | 2 +- ...nTests.Issue3809Test(Access.Ace.OleDb).sql | 6 ++- ...onNonNullCorrelation(Access.Ace.OleDb).sql | 6 ++- ...lationWithProjection(Access.Ace.OleDb).sql | 3 +- ...nTests.Issue3791Test(Access.Ace.OleDb).sql | 2 +- ...ssionTests.LetTest11(Access.Ace.OleDb).sql | 6 +-- ...nq.GroupByTests.Sum3(Access.Ace.OleDb).sql | 2 +- ...tanceAssociationTest(Access.Ace.OleDb).sql | 2 +- ...Tests.Issue1455Test1(Access.Ace.OleDb).sql | 32 +++++++-------- ...Tests.Issue1455Test2(Access.Ace.OleDb).sql | 32 +++++++-------- ...OnLeftWithConditions(Access.Ace.OleDb).sql | 6 +-- ...eftWithoutConditions(Access.Ace.OleDb).sql | 6 +-- ...nRightWithConditions(Access.Ace.OleDb).sql | 6 +-- ...ferentDetails(Access.Ace.OleDb,Except).sql | 28 ++++++++++++- ...entDetails(Access.Ace.OleDb,ExceptAll).sql | 28 ++++++++++++- ...erSameDetails(Access.Ace.OleDb,Except).sql | 8 ++-- ...ameDetails(Access.Ace.OleDb,ExceptAll).sql | 8 ++-- ...ameDetails(Access.Ace.OleDb,Intersect).sql | 8 ++-- ...Details(Access.Ace.OleDb,IntersectAll).sql | 8 ++-- ...ts.ExceptInheritance(Access.Ace.OleDb).sql | 41 +++++++------------ ...IntersectInheritance(Access.Ace.OleDb).sql | 2 +- ...QueryTests.SubSub212(Access.Ace.OleDb).sql | 3 +- ...inaryComparisonTest2(Access.Ace.OleDb).sql | 3 +- ...xIsNullPredicateTest(Access.Ace.OleDb).sql | 3 +- 108 files changed, 552 insertions(+), 372 deletions(-) diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.Odbc.LinqService).sql index c384efcf28ab..2a5bc48ee0bc 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.Odbc.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM [Issue2933Pet] [a_PetIds] WHERE - [a_Person].[Id] = [a_PetIds].[PersonId] + [a_Person].[Id] IS NOT NULL AND [a_Person].[Id] = [a_PetIds].[PersonId] ) FROM [Issue2933Car] [x] diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.Odbc.LinqService).sql index b9f50cf9176a..e065f762601b 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.Odbc.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.Odbc.LinqService).sql index bdfb4bac7d32..39eccb74411b 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.Odbc.LinqService).sql @@ -9,14 +9,14 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) IS NULL, '', ( SELECT TOP 1 [a_SubDatas].[Reason] FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.Odbc.LinqService).sql index f491cb966eb1..d76fee289ccd 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.Odbc.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) FROM [Data] [i] diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.Odbc.LinqService).sql index e3ea84a2bbb1..6d7a0874bac1 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.Odbc.LinqService).sql @@ -19,7 +19,8 @@ FROM FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) ) [m_1] INNER JOIN [Child] [d] ON ([m_1].[ParentID] = [d].[ParentID]) @@ -42,6 +43,7 @@ WHERE FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.Odbc.LinqService).sql index b9d0d03d9c0c..73dbbbd3c1d3 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.Odbc.LinqService).sql @@ -20,7 +20,8 @@ FROM FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) ) [m_1] INNER JOIN [Table4] [d] ON ([m_1].[ID] = [d].[ID3] OR [m_1].[ID] IS NULL AND [d].[ID3] IS NULL) @@ -45,7 +46,8 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) BeforeExecute diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.Odbc.LinqService).sql index a3bf944b82e1..17d3e1b59070 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.Odbc.LinqService).sql @@ -16,6 +16,7 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.Odbc.LinqService).sql index c9700debe205..e24bd7aa275d 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.Odbc.LinqService).sql @@ -7,5 +7,5 @@ SELECT [a_Association].[Id] FROM [Issue3791Table] [t1] - LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = IIF([a_Association].[Id] IS NOT NULL, CStr([a_Association].[Id]), NULL)) + LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = CStr([a_Association].[Id])) diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.Odbc.LinqService).sql index 3864f9a3c1d3..15d4a2f7525b 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.Odbc.LinqService).sql @@ -2,7 +2,7 @@ -- Access.Ace.Odbc AccessODBC SELECT - IIF([t1].[ParentID_1] IS NULL, 0, [t1].[ParentID_1]), + IIF([t1].[cond] IS NULL, 0, [t1].[cond]), ( SELECT TOP 1 [c_2].[ParentID] @@ -26,7 +26,6 @@ SELECT FROM ( SELECT - [p].[ParentID], ( SELECT TOP 1 [c_1].[ParentID] @@ -36,7 +35,8 @@ FROM [c_1].[ParentID] > 0 ORDER BY [c_1].[ParentID] - ) as [ParentID_1] + ) as [cond], + [p].[ParentID] FROM [Parent] [p] ) [t1] diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.Odbc.LinqService).sql index 6917692dd913..348c0fbfd8af 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.Odbc.LinqService).sql @@ -8,7 +8,7 @@ SELECT FROM [Child] [a_Children] WHERE - [g_2].[ParentID] = [a_Children].[ParentID] + [g_2].[ParentID] IS NOT NULL AND [g_2].[ParentID] = [a_Children].[ParentID] ) FROM ( diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.Odbc.LinqService).sql index 60f50b1195ba..d47cfc92984a 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.Odbc.LinqService).sql @@ -22,5 +22,5 @@ SELECT FROM ([LinqDataTypes] [ia] LEFT JOIN [LinqDataTypes] [a_A1] ON ([ia].[GuidValue] = [a_A1].[GuidValue] AND [a_A1].[ID] = 2)) - LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND ([a_A2].[ID] <> 2 OR [a_A2].[ID] IS NULL)) + LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND [a_A2].[ID] <> 2) diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.Odbc.LinqService).sql index bb9dd69832dd..6f8fe326f64a 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.Odbc.LinqService).sql @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE ? OR [trade_1].[CounterParty] LIKE ? OR [al_group_1].[AlertCode] LIKE ? diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.Odbc.LinqService).sql index 79064ae146c3..c7a1ad613ab8 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.Odbc.LinqService).sql @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE ? OR [trade_1].[CounterParty] LIKE ? OR [al_group_1].[AlertCode] LIKE ? diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.Odbc.LinqService).sql index 5378815b3c75..76906d6b9b73 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.Odbc.LinqService).sql @@ -8,13 +8,13 @@ DECLARE @id1 Int -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> ? AND [right2].[ParentID] <> ? ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.Odbc.LinqService).sql index a74f922778e3..b2c53acb750a 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.Odbc.LinqService).sql @@ -4,13 +4,13 @@ DECLARE @id1 Int -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -25,5 +25,5 @@ FROM INNER JOIN [Parent] [right2] ON ([right_1].[Value1] = [right2].[Value1] + 2) ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.Odbc.LinqService).sql index 847467bd0fa4..8b6a6e92bf04 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.Odbc.LinqService).sql @@ -8,12 +8,12 @@ DECLARE @id1 Int -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT - [left_1].[ParentID], + [left_1].[ParentID] as [Left_1], [left_1].[Value1] FROM [Parent] [left_1] @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> ? ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc.LinqService,Except).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc.LinqService,Except).sql index 4b96b92543a3..eecc0c7b2bb0 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc.LinqService,Except).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc.LinqService,Except).sql @@ -14,7 +14,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -30,7 +42,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute -- Access.Ace.Odbc AccessODBC diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc.LinqService,ExceptAll).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc.LinqService,ExceptAll).sql index e38c210139e6..5088f121260a 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc.LinqService,ExceptAll).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc.LinqService,ExceptAll).sql @@ -14,7 +14,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -30,7 +42,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute -- Access.Ace.Odbc AccessODBC diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,Except).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,Except).sql index d12e665058f8..91b1b6527dc1 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,Except).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,Except).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,ExceptAll).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,ExceptAll).sql index dc90d354164b..74f543619635 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,ExceptAll).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,ExceptAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,Intersect).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,Intersect).sql index fcf68393e358..8f6a8273d44c 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,Intersect).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,Intersect).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,IntersectAll).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,IntersectAll).sql index 157f77efb80c..8d528e03030c 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,IntersectAll).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc.LinqService,IntersectAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.Odbc.LinqService).sql index 2b30534bac56..0db56eb173c6 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.Odbc.LinqService).sql @@ -2,28 +2,17 @@ -- Access.Ace.Odbc AccessODBC SELECT DISTINCT - [t1].[cond], - [t1].[Discriminator], - [t1].[BookName], - [t1].[NovelScore], - [t1].[RomanScore] + [a_Book].[BookId], + [a_Book].[Discriminator], + [a_Book].[BookName], + [a_Book].[NovelScore], + [a_Book].[RomanScore] FROM - ( - SELECT - [a_Book].[BookId] as [cond], - [a_Book].[Discriminator], - [a_Book].[BookName], - [a_Book].[RomanScore], - [a_Book].[NovelScore] - FROM - ([Author] [a] - INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [a].[AuthorId])) - LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) - WHERE - [a_Book].[Discriminator] = 'Roman' - ) [t1] + ([Author] [t1] + INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) + LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - NOT EXISTS( + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[Discriminator] = [a_Book_1].[Discriminator] OR [t1].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND - ([t1].[BookName] = [a_Book_1].[BookName] OR [t1].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - ([t1].[RomanScore] = [a_Book_1].[RomanScore] OR [t1].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND - ([t1].[NovelScore] = [a_Book_1].[NovelScore] OR [t1].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[Discriminator] = [a_Book_1].[Discriminator] OR [a_Book].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + ([a_Book].[RomanScore] = [a_Book_1].[RomanScore] OR [a_Book].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND + ([a_Book].[NovelScore] = [a_Book_1].[NovelScore] OR [a_Book].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) ) BeforeExecute diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.Odbc.LinqService).sql index 73f877730363..7ac60f064520 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.Odbc.LinqService).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE - [a_Book_1].[Discriminator] = 'Novel' AND [a_Book].[BookId] = [a_Book_1].[BookId] AND + [a_Book_1].[Discriminator] = 'Novel' AND ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) ) diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.Odbc.LinqService).sql index c03b80177a6c..27cfa7f8807c 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.Odbc.LinqService).sql @@ -8,7 +8,8 @@ SELECT FROM [GrandChild] [a_GrandChildren] WHERE - [a_Parent].[ParentID] = [a_GrandChildren].[ParentID] AND + [a_Parent].[ParentID] IS NOT NULL AND + ([a_Parent].[ParentID] = [a_GrandChildren].[ParentID] OR [a_Parent].[ParentID] IS NULL AND [a_GrandChildren].[ParentID] IS NULL) AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 ) diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.Odbc.LinqService).sql index a50e1d90141b..f87636377635 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.Odbc.LinqService).sql @@ -6,5 +6,6 @@ SELECT FROM [Person] [t1] WHERE - [t1].[MiddleName] = [t1].[LastName] + NOT ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) OR + ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) IS NULL diff --git a/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.Odbc.LinqService).sql b/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.Odbc.LinqService).sql index 97872b748774..fc32fa08fa27 100644 --- a/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.Odbc.LinqService).sql +++ b/Access.Ace.Odbc.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.Odbc.LinqService).sql @@ -7,7 +7,8 @@ SELECT FROM [ComplexPredicate] [r] WHERE - IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) + IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) OR + ([r].[Value] = '123') IS NULL AND ([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL)) IS NULL ORDER BY [r].[Id] diff --git a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.Odbc).sql index c384efcf28ab..2a5bc48ee0bc 100644 --- a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.Odbc).sql @@ -9,7 +9,7 @@ SELECT FROM [Issue2933Pet] [a_PetIds] WHERE - [a_Person].[Id] = [a_PetIds].[PersonId] + [a_Person].[Id] IS NOT NULL AND [a_Person].[Id] = [a_PetIds].[PersonId] ) FROM [Issue2933Car] [x] diff --git a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.Odbc).sql index b9f50cf9176a..e065f762601b 100644 --- a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.Odbc).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.Odbc).sql index bdfb4bac7d32..39eccb74411b 100644 --- a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.Odbc).sql @@ -9,14 +9,14 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) IS NULL, '', ( SELECT TOP 1 [a_SubDatas].[Reason] FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.Odbc).sql index f491cb966eb1..d76fee289ccd 100644 --- a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.Odbc).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) FROM [Data] [i] diff --git a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.Odbc).sql index 0cee84239c5d..917b923fdf3a 100644 --- a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.Odbc).sql @@ -21,7 +21,8 @@ FROM FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) ) [m_1] INNER JOIN [Child] [d] ON ([m_1].[ParentID] = [d].[ParentID]) @@ -46,6 +47,7 @@ WHERE FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) diff --git a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.Odbc).sql index 9a177766fd64..a40415e02cb9 100644 --- a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.Odbc).sql @@ -22,7 +22,8 @@ FROM FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) ) [m_1] INNER JOIN [Table4] [d] ON ([m_1].[ID] = [d].[ID3] OR [m_1].[ID] IS NULL AND [d].[ID3] IS NULL) @@ -49,7 +50,8 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) BeforeExecute diff --git a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.Odbc).sql index a3bf944b82e1..17d3e1b59070 100644 --- a/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.Odbc).sql @@ -16,6 +16,7 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) diff --git a/Access.Ace.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.Odbc).sql index c9700debe205..e24bd7aa275d 100644 --- a/Access.Ace.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.Odbc).sql @@ -7,5 +7,5 @@ SELECT [a_Association].[Id] FROM [Issue3791Table] [t1] - LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = IIF([a_Association].[Id] IS NOT NULL, CStr([a_Association].[Id]), NULL)) + LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = CStr([a_Association].[Id])) diff --git a/Access.Ace.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.Odbc).sql index 3864f9a3c1d3..15d4a2f7525b 100644 --- a/Access.Ace.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.Odbc).sql @@ -2,7 +2,7 @@ -- Access.Ace.Odbc AccessODBC SELECT - IIF([t1].[ParentID_1] IS NULL, 0, [t1].[ParentID_1]), + IIF([t1].[cond] IS NULL, 0, [t1].[cond]), ( SELECT TOP 1 [c_2].[ParentID] @@ -26,7 +26,6 @@ SELECT FROM ( SELECT - [p].[ParentID], ( SELECT TOP 1 [c_1].[ParentID] @@ -36,7 +35,8 @@ FROM [c_1].[ParentID] > 0 ORDER BY [c_1].[ParentID] - ) as [ParentID_1] + ) as [cond], + [p].[ParentID] FROM [Parent] [p] ) [t1] diff --git a/Access.Ace.Odbc/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.Odbc).sql index 6917692dd913..348c0fbfd8af 100644 --- a/Access.Ace.Odbc/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.Odbc).sql @@ -8,7 +8,7 @@ SELECT FROM [Child] [a_Children] WHERE - [g_2].[ParentID] = [a_Children].[ParentID] + [g_2].[ParentID] IS NOT NULL AND [g_2].[ParentID] = [a_Children].[ParentID] ) FROM ( diff --git a/Access.Ace.Odbc/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.Odbc).sql index 60f50b1195ba..d47cfc92984a 100644 --- a/Access.Ace.Odbc/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.Odbc).sql @@ -22,5 +22,5 @@ SELECT FROM ([LinqDataTypes] [ia] LEFT JOIN [LinqDataTypes] [a_A1] ON ([ia].[GuidValue] = [a_A1].[GuidValue] AND [a_A1].[ID] = 2)) - LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND ([a_A2].[ID] <> 2 OR [a_A2].[ID] IS NULL)) + LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND [a_A2].[ID] <> 2) diff --git a/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.Odbc).sql index 6821bedaaebd..6f8fe326f64a 100644 --- a/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.Odbc).sql @@ -70,8 +70,8 @@ SELECT [al_group_3].[AlertCode], [al_group_3].[CreationDate] ) [t1] - LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = IIF([trade_2].[DealId] IS NOT NULL, CStr([trade_2].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = IIF([nomin_2].[CargoId] IS NOT NULL, CStr([nomin_2].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = CStr([trade_2].[DealId]))) + LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = CStr([nomin_2].[CargoId])) WHERE ([nomin_2].[DeliveryCounterParty] LIKE ? OR [trade_2].[CounterParty] LIKE ? OR [t1].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t1].[AlertKey] AND @@ -96,8 +96,8 @@ SELECT [al_group_4].[AlertCode], [al_group_4].[CreationDate] ) [t2] - LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = IIF([trade_3].[DealId] IS NOT NULL, CStr([trade_3].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = IIF([nomin_3].[CargoId] IS NOT NULL, CStr([nomin_3].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = CStr([trade_3].[DealId]))) + LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = CStr([nomin_3].[CargoId])) WHERE ([nomin_3].[DeliveryCounterParty] LIKE ? OR [trade_3].[CounterParty] LIKE ? OR [t2].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t2].[AlertKey] AND @@ -122,8 +122,8 @@ SELECT [al_group_5].[AlertCode], [al_group_5].[CreationDate] ) [t3] - LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = IIF([trade_4].[DealId] IS NOT NULL, CStr([trade_4].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = IIF([nomin_4].[CargoId] IS NOT NULL, CStr([nomin_4].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = CStr([trade_4].[DealId]))) + LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = CStr([nomin_4].[CargoId])) WHERE ([nomin_4].[DeliveryCounterParty] LIKE ? OR [trade_4].[CounterParty] LIKE ? OR [t3].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t3].[AlertKey] AND @@ -148,8 +148,8 @@ SELECT [al_group_6].[AlertCode], [al_group_6].[CreationDate] ) [t4] - LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = IIF([trade_5].[DealId] IS NOT NULL, CStr([trade_5].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = IIF([nomin_5].[CargoId] IS NOT NULL, CStr([nomin_5].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = CStr([trade_5].[DealId]))) + LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = CStr([nomin_5].[CargoId])) WHERE ([nomin_5].[DeliveryCounterParty] LIKE ? OR [trade_5].[CounterParty] LIKE ? OR [t4].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t4].[AlertKey] AND @@ -174,8 +174,8 @@ SELECT [al_group_7].[AlertCode], [al_group_7].[CreationDate] ) [t5] - LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = IIF([trade_6].[DealId] IS NOT NULL, CStr([trade_6].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = IIF([nomin_6].[CargoId] IS NOT NULL, CStr([nomin_6].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = CStr([trade_6].[DealId]))) + LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = CStr([nomin_6].[CargoId])) WHERE ([nomin_6].[DeliveryCounterParty] LIKE ? OR [trade_6].[CounterParty] LIKE ? OR [t5].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t5].[AlertKey] AND @@ -200,8 +200,8 @@ SELECT [al_group_8].[AlertCode], [al_group_8].[CreationDate] ) [t6] - LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = IIF([trade_7].[DealId] IS NOT NULL, CStr([trade_7].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = IIF([nomin_7].[CargoId] IS NOT NULL, CStr([nomin_7].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = CStr([trade_7].[DealId]))) + LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = CStr([nomin_7].[CargoId])) WHERE ([nomin_7].[DeliveryCounterParty] LIKE ? OR [trade_7].[CounterParty] LIKE ? OR [t6].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t6].[AlertKey] AND @@ -226,8 +226,8 @@ SELECT [al_group_9].[AlertCode], [al_group_9].[CreationDate] ) [t7] - LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = IIF([trade_8].[DealId] IS NOT NULL, CStr([trade_8].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = IIF([nomin_8].[CargoId] IS NOT NULL, CStr([nomin_8].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = CStr([trade_8].[DealId]))) + LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = CStr([nomin_8].[CargoId])) WHERE ([nomin_8].[DeliveryCounterParty] LIKE ? OR [trade_8].[CounterParty] LIKE ? OR [t7].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t7].[AlertKey] AND @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE ? OR [trade_1].[CounterParty] LIKE ? OR [al_group_1].[AlertCode] LIKE ? diff --git a/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.Odbc).sql index e50f12af354d..c7a1ad613ab8 100644 --- a/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.Odbc).sql @@ -70,8 +70,8 @@ SELECT [al_group_3].[AlertCode], [al_group_3].[CreationDate] ) [t1] - LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = IIF([trade_2].[DealId] IS NOT NULL, CStr([trade_2].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = IIF([nomin_2].[CargoId] IS NOT NULL, CStr([nomin_2].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = CStr([trade_2].[DealId]))) + LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = CStr([nomin_2].[CargoId])) WHERE ([nomin_2].[DeliveryCounterParty] LIKE ? OR [trade_2].[CounterParty] LIKE ? OR [t1].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t1].[AlertKey] AND @@ -96,8 +96,8 @@ SELECT [al_group_4].[AlertCode], [al_group_4].[CreationDate] ) [t2] - LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = IIF([trade_3].[DealId] IS NOT NULL, CStr([trade_3].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = IIF([nomin_3].[CargoId] IS NOT NULL, CStr([nomin_3].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = CStr([trade_3].[DealId]))) + LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = CStr([nomin_3].[CargoId])) WHERE ([nomin_3].[DeliveryCounterParty] LIKE ? OR [trade_3].[CounterParty] LIKE ? OR [t2].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t2].[AlertKey] AND @@ -122,8 +122,8 @@ SELECT [al_group_5].[AlertCode], [al_group_5].[CreationDate] ) [t3] - LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = IIF([trade_4].[DealId] IS NOT NULL, CStr([trade_4].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = IIF([nomin_4].[CargoId] IS NOT NULL, CStr([nomin_4].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = CStr([trade_4].[DealId]))) + LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = CStr([nomin_4].[CargoId])) WHERE ([nomin_4].[DeliveryCounterParty] LIKE ? OR [trade_4].[CounterParty] LIKE ? OR [t3].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t3].[AlertKey] AND @@ -148,8 +148,8 @@ SELECT [al_group_6].[AlertCode], [al_group_6].[CreationDate] ) [t4] - LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = IIF([trade_5].[DealId] IS NOT NULL, CStr([trade_5].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = IIF([nomin_5].[CargoId] IS NOT NULL, CStr([nomin_5].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = CStr([trade_5].[DealId]))) + LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = CStr([nomin_5].[CargoId])) WHERE ([nomin_5].[DeliveryCounterParty] LIKE ? OR [trade_5].[CounterParty] LIKE ? OR [t4].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t4].[AlertKey] AND @@ -174,8 +174,8 @@ SELECT [al_group_7].[AlertCode], [al_group_7].[CreationDate] ) [t5] - LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = IIF([trade_6].[DealId] IS NOT NULL, CStr([trade_6].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = IIF([nomin_6].[CargoId] IS NOT NULL, CStr([nomin_6].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = CStr([trade_6].[DealId]))) + LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = CStr([nomin_6].[CargoId])) WHERE ([nomin_6].[DeliveryCounterParty] LIKE ? OR [trade_6].[CounterParty] LIKE ? OR [t5].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t5].[AlertKey] AND @@ -200,8 +200,8 @@ SELECT [al_group_8].[AlertCode], [al_group_8].[CreationDate] ) [t6] - LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = IIF([trade_7].[DealId] IS NOT NULL, CStr([trade_7].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = IIF([nomin_7].[CargoId] IS NOT NULL, CStr([nomin_7].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = CStr([trade_7].[DealId]))) + LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = CStr([nomin_7].[CargoId])) WHERE ([nomin_7].[DeliveryCounterParty] LIKE ? OR [trade_7].[CounterParty] LIKE ? OR [t6].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t6].[AlertKey] AND @@ -226,8 +226,8 @@ SELECT [al_group_9].[AlertCode], [al_group_9].[CreationDate] ) [t7] - LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = IIF([trade_8].[DealId] IS NOT NULL, CStr([trade_8].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = IIF([nomin_8].[CargoId] IS NOT NULL, CStr([nomin_8].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = CStr([trade_8].[DealId]))) + LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = CStr([nomin_8].[CargoId])) WHERE ([nomin_8].[DeliveryCounterParty] LIKE ? OR [trade_8].[CounterParty] LIKE ? OR [t7].[AlertCode] LIKE ?) AND [al_group_2].[AlertKey] = [t7].[AlertKey] AND @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE ? OR [trade_1].[CounterParty] LIKE ? OR [al_group_1].[AlertCode] LIKE ? diff --git a/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.Odbc).sql index 5378815b3c75..76906d6b9b73 100644 --- a/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.Odbc).sql @@ -8,13 +8,13 @@ DECLARE @id1 Int -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> ? AND [right2].[ParentID] <> ? ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.Odbc).sql index a74f922778e3..b2c53acb750a 100644 --- a/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.Odbc).sql @@ -4,13 +4,13 @@ DECLARE @id1 Int -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -25,5 +25,5 @@ FROM INNER JOIN [Parent] [right2] ON ([right_1].[Value1] = [right2].[Value1] + 2) ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.Odbc).sql index 847467bd0fa4..8b6a6e92bf04 100644 --- a/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.Odbc).sql @@ -8,12 +8,12 @@ DECLARE @id1 Int -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT - [left_1].[ParentID], + [left_1].[ParentID] as [Left_1], [left_1].[Value1] FROM [Parent] [left_1] @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> ? ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc,Except).sql b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc,Except).sql index f35f95e50c65..b9ec80fed037 100644 --- a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc,Except).sql +++ b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc,Except).sql @@ -16,7 +16,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -34,7 +46,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute BeginTransaction(Unspecified) diff --git a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc,ExceptAll).sql b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc,ExceptAll).sql index 29548ac95b4f..186bfe8424b4 100644 --- a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc,ExceptAll).sql +++ b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.Odbc,ExceptAll).sql @@ -16,7 +16,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -34,7 +46,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute BeginTransaction(Unspecified) diff --git a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,Except).sql b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,Except).sql index 1b3b10814467..e33cebb68a20 100644 --- a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,Except).sql +++ b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,Except).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,ExceptAll).sql b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,ExceptAll).sql index d6944214cd26..eddd5e8d88f6 100644 --- a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,ExceptAll).sql +++ b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,ExceptAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,Intersect).sql b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,Intersect).sql index 2e0d8ec194f2..bbc27ea1d5e9 100644 --- a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,Intersect).sql +++ b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,Intersect).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,IntersectAll).sql b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,IntersectAll).sql index e594ef5bb681..1f55960882b9 100644 --- a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,IntersectAll).sql +++ b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.Odbc,IntersectAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.Odbc).sql index a43d9441e8cb..8d416277e32a 100644 --- a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.Odbc).sql @@ -2,28 +2,17 @@ -- Access.Ace.Odbc AccessODBC SELECT DISTINCT - [t1].[cond], - [t1].[Discriminator], - [t1].[BookName], - [t1].[NovelScore], - [t1].[RomanScore] + [a_Book].[BookId], + [a_Book].[Discriminator], + [a_Book].[BookName], + [a_Book].[NovelScore], + [a_Book].[RomanScore] FROM - ( - SELECT - [a_Book].[BookId] as [cond], - [a_Book].[Discriminator], - [a_Book].[BookName], - [a_Book].[RomanScore], - [a_Book].[NovelScore] - FROM - ([Author] [a] - INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [a].[AuthorId])) - LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) - WHERE - [a_Book].[Discriminator] = 'Roman' - ) [t1] + ([Author] [t1] + INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) + LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - NOT EXISTS( + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[Discriminator] = [a_Book_1].[Discriminator] OR [t1].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND - ([t1].[BookName] = [a_Book_1].[BookName] OR [t1].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - ([t1].[RomanScore] = [a_Book_1].[RomanScore] OR [t1].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND - ([t1].[NovelScore] = [a_Book_1].[NovelScore] OR [t1].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[Discriminator] = [a_Book_1].[Discriminator] OR [a_Book].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + ([a_Book].[RomanScore] = [a_Book_1].[RomanScore] OR [a_Book].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND + ([a_Book].[NovelScore] = [a_Book_1].[NovelScore] OR [a_Book].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) ) BeforeExecute diff --git a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.Odbc).sql index 21a1179122ce..f82de86da58d 100644 --- a/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.Odbc).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE - [a_Book_1].[Discriminator] = 'Novel' AND [a_Book].[BookId] = [a_Book_1].[BookId] AND + [a_Book_1].[Discriminator] = 'Novel' AND ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) ) diff --git a/Access.Ace.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.Odbc).sql index c03b80177a6c..27cfa7f8807c 100644 --- a/Access.Ace.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.Odbc).sql @@ -8,7 +8,8 @@ SELECT FROM [GrandChild] [a_GrandChildren] WHERE - [a_Parent].[ParentID] = [a_GrandChildren].[ParentID] AND + [a_Parent].[ParentID] IS NOT NULL AND + ([a_Parent].[ParentID] = [a_GrandChildren].[ParentID] OR [a_Parent].[ParentID] IS NULL AND [a_GrandChildren].[ParentID] IS NULL) AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 ) diff --git a/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.Odbc).sql index a50e1d90141b..f87636377635 100644 --- a/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.Odbc).sql @@ -6,5 +6,6 @@ SELECT FROM [Person] [t1] WHERE - [t1].[MiddleName] = [t1].[LastName] + NOT ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) OR + ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) IS NULL diff --git a/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.Odbc).sql b/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.Odbc).sql index 97872b748774..fc32fa08fa27 100644 --- a/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.Odbc).sql +++ b/Access.Ace.Odbc/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.Odbc).sql @@ -7,7 +7,8 @@ SELECT FROM [ComplexPredicate] [r] WHERE - IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) + IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) OR + ([r].[Value] = '123') IS NULL AND ([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL)) IS NULL ORDER BY [r].[Id] diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.OleDb.LinqService).sql index 95619c73e0ff..a1929d3b0381 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.OleDb.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM [Issue2933Pet] [a_PetIds] WHERE - [a_Person].[Id] = [a_PetIds].[PersonId] + [a_Person].[Id] IS NOT NULL AND [a_Person].[Id] = [a_PetIds].[PersonId] ) FROM [Issue2933Car] [x] diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.OleDb.LinqService).sql index 4f7e5e345b6a..2d6b2c08bdd1 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.OleDb.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.OleDb.LinqService).sql index 5132318c7d5f..b32a25be3053 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.OleDb.LinqService).sql @@ -9,14 +9,14 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) IS NULL, '', ( SELECT TOP 1 [a_SubDatas].[Reason] FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.OleDb.LinqService).sql index 3a483ff6e78f..91c0142b802e 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.OleDb.LinqService).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) FROM [Data] [i] diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.OleDb.LinqService).sql index affd92da8023..8482439f1bd1 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.OleDb.LinqService).sql @@ -19,7 +19,8 @@ FROM FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) ) [m_1] INNER JOIN [Child] [d] ON ([m_1].[ParentID] = [d].[ParentID]) @@ -42,6 +43,7 @@ WHERE FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.OleDb.LinqService).sql index 65b35d48bd14..adaad5959434 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.OleDb.LinqService).sql @@ -20,7 +20,8 @@ FROM FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) ) [m_1] INNER JOIN [Table4] [d] ON ([m_1].[ID] = [d].[ID3] OR [m_1].[ID] IS NULL AND [d].[ID3] IS NULL) @@ -45,7 +46,8 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) BeforeExecute diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.OleDb.LinqService).sql index 2e14e8ade48c..9b4ed329ba52 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.OleDb.LinqService).sql @@ -16,6 +16,7 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.OleDb.LinqService).sql index a1a76f264141..3ae1189718c1 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.OleDb.LinqService).sql @@ -7,5 +7,5 @@ SELECT [a_Association].[Id] FROM [Issue3791Table] [t1] - LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = IIF([a_Association].[Id] IS NOT NULL, CStr([a_Association].[Id]), NULL)) + LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = CStr([a_Association].[Id])) diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.OleDb.LinqService).sql index ced8e167b573..6b27e44f31ad 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.OleDb.LinqService).sql @@ -2,7 +2,7 @@ -- Access.Ace.OleDb AccessOleDb SELECT - IIF([t1].[ParentID_1] IS NULL, 0, [t1].[ParentID_1]), + IIF([t1].[cond] IS NULL, 0, [t1].[cond]), ( SELECT TOP 1 [c_2].[ParentID] @@ -26,7 +26,6 @@ SELECT FROM ( SELECT - [p].[ParentID], ( SELECT TOP 1 [c_1].[ParentID] @@ -36,7 +35,8 @@ FROM [c_1].[ParentID] > 0 ORDER BY [c_1].[ParentID] - ) as [ParentID_1] + ) as [cond], + [p].[ParentID] FROM [Parent] [p] ) [t1] diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.OleDb.LinqService).sql index 0e952abe85d1..9fd990f9786c 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.OleDb.LinqService).sql @@ -8,7 +8,7 @@ SELECT FROM [Child] [a_Children] WHERE - [g_2].[ParentID] = [a_Children].[ParentID] + [g_2].[ParentID] IS NOT NULL AND [g_2].[ParentID] = [a_Children].[ParentID] ) FROM ( diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.OleDb.LinqService).sql index 3b8d2a59d242..871bf39c0651 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.OleDb.LinqService).sql @@ -22,5 +22,5 @@ SELECT FROM ([LinqDataTypes] [ia] LEFT JOIN [LinqDataTypes] [a_A1] ON ([ia].[GuidValue] = [a_A1].[GuidValue] AND [a_A1].[ID] = 2)) - LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND ([a_A2].[ID] <> 2 OR [a_A2].[ID] IS NULL)) + LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND [a_A2].[ID] <> 2) diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.OleDb.LinqService).sql index fd3021bd2b57..74c28d9818dc 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.OleDb.LinqService).sql @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE @cpty_21 OR [trade_1].[CounterParty] LIKE @cpty_22 OR [al_group_1].[AlertCode] LIKE @cpty_23 diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.OleDb.LinqService).sql index fa92b53947c0..cc6425ee994c 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.OleDb.LinqService).sql @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE @cond_21 OR [trade_1].[CounterParty] LIKE @cond_22 OR [al_group_1].[AlertCode] LIKE @cond_23 diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.OleDb.LinqService).sql index 8588c8ef12a4..0dbd9e81316a 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.OleDb.LinqService).sql @@ -8,13 +8,13 @@ DECLARE @id1_1 Integer -- Int32 SET @id1_1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> @id2 AND [right2].[ParentID] <> @id1_1 ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.OleDb.LinqService).sql index fe90d6059897..12e510c0bb22 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.OleDb.LinqService).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -25,5 +25,5 @@ FROM INNER JOIN [Parent] [right2] ON ([right_1].[Value1] = [right2].[Value1] + 2) ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.OleDb.LinqService).sql index 88b44194642c..0c749877b9aa 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.OleDb.LinqService).sql @@ -8,12 +8,12 @@ DECLARE @id1_1 Integer -- Int32 SET @id1_1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT - [left_1].[ParentID], + [left_1].[ParentID] as [Left_1], [left_1].[Value1] FROM [Parent] [left_1] @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> @id1_1 ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb.LinqService,Except).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb.LinqService,Except).sql index 816e12396ff8..e2d26a1ddfb7 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb.LinqService,Except).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb.LinqService,Except).sql @@ -14,7 +14,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -30,7 +42,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute -- Access.Ace.OleDb AccessOleDb diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb.LinqService,ExceptAll).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb.LinqService,ExceptAll).sql index f08acf155ae0..6e6e7e8001d0 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb.LinqService,ExceptAll).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb.LinqService,ExceptAll).sql @@ -14,7 +14,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -30,7 +42,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute -- Access.Ace.OleDb AccessOleDb diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,Except).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,Except).sql index e46c46be1948..3c0957d0e791 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,Except).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,Except).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,ExceptAll).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,ExceptAll).sql index bbc9df941abe..6115b01d3cec 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,ExceptAll).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,ExceptAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,Intersect).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,Intersect).sql index 5ebd657eb10a..b85509f5cdd8 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,Intersect).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,Intersect).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,IntersectAll).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,IntersectAll).sql index 43cd7b273216..e5d7b0c394af 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,IntersectAll).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb.LinqService,IntersectAll).sql @@ -23,9 +23,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -51,9 +51,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.OleDb.LinqService).sql index 6195adcdd7b1..600e80244dc6 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.OleDb.LinqService).sql @@ -2,28 +2,17 @@ -- Access.Ace.OleDb AccessOleDb SELECT DISTINCT - [t1].[cond], - [t1].[Discriminator], - [t1].[BookName], - [t1].[NovelScore], - [t1].[RomanScore] + [a_Book].[BookId], + [a_Book].[Discriminator], + [a_Book].[BookName], + [a_Book].[NovelScore], + [a_Book].[RomanScore] FROM - ( - SELECT - [a_Book].[BookId] as [cond], - [a_Book].[Discriminator], - [a_Book].[BookName], - [a_Book].[RomanScore], - [a_Book].[NovelScore] - FROM - ([Author] [a] - INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [a].[AuthorId])) - LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) - WHERE - [a_Book].[Discriminator] = 'Roman' - ) [t1] + ([Author] [t1] + INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) + LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - NOT EXISTS( + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[Discriminator] = [a_Book_1].[Discriminator] OR [t1].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND - ([t1].[BookName] = [a_Book_1].[BookName] OR [t1].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - ([t1].[RomanScore] = [a_Book_1].[RomanScore] OR [t1].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND - ([t1].[NovelScore] = [a_Book_1].[NovelScore] OR [t1].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[Discriminator] = [a_Book_1].[Discriminator] OR [a_Book].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + ([a_Book].[RomanScore] = [a_Book_1].[RomanScore] OR [a_Book].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND + ([a_Book].[NovelScore] = [a_Book_1].[NovelScore] OR [a_Book].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) ) BeforeExecute diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.OleDb.LinqService).sql index d8c09a8ea5e4..27c22acfdd61 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.OleDb.LinqService).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE - [a_Book_1].[Discriminator] = 'Novel' AND [a_Book].[BookId] = [a_Book_1].[BookId] AND + [a_Book_1].[Discriminator] = 'Novel' AND ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) ) diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.OleDb.LinqService).sql index 474100c8c9b9..2c7f0cad4a1d 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.OleDb.LinqService).sql @@ -8,7 +8,8 @@ SELECT FROM [GrandChild] [a_GrandChildren] WHERE - [a_Parent].[ParentID] = [a_GrandChildren].[ParentID] AND + [a_Parent].[ParentID] IS NOT NULL AND + ([a_Parent].[ParentID] = [a_GrandChildren].[ParentID] OR [a_Parent].[ParentID] IS NULL AND [a_GrandChildren].[ParentID] IS NULL) AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 ) diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.OleDb.LinqService).sql index c27a82035f53..62ecb2699a89 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.OleDb.LinqService).sql @@ -6,5 +6,6 @@ SELECT FROM [Person] [t1] WHERE - [t1].[MiddleName] = [t1].[LastName] + NOT ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) OR + ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) IS NULL diff --git a/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.OleDb.LinqService).sql b/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.OleDb.LinqService).sql index debee66b731d..b8ef166cdeec 100644 --- a/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.OleDb.LinqService).sql +++ b/Access.Ace.OleDb.LinqService/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.OleDb.LinqService).sql @@ -7,7 +7,8 @@ SELECT FROM [ComplexPredicate] [r] WHERE - IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) + IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) OR + ([r].[Value] = '123') IS NULL AND ([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL)) IS NULL ORDER BY [r].[Id] diff --git a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.OleDb).sql index 95619c73e0ff..a1929d3b0381 100644 --- a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue2933Test(Access.Ace.OleDb).sql @@ -9,7 +9,7 @@ SELECT FROM [Issue2933Pet] [a_PetIds] WHERE - [a_Person].[Id] = [a_PetIds].[PersonId] + [a_Person].[Id] IS NOT NULL AND [a_Person].[Id] = [a_PetIds].[PersonId] ) FROM [Issue2933Car] [x] diff --git a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.OleDb).sql index 4f7e5e345b6a..2d6b2c08bdd1 100644 --- a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case1(Access.Ace.OleDb).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.OleDb).sql index 5132318c7d5f..b32a25be3053 100644 --- a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case2(Access.Ace.OleDb).sql @@ -9,14 +9,14 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) IS NULL, '', ( SELECT TOP 1 [a_SubDatas].[Reason] FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] )) FROM [Data] [i] diff --git a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.OleDb).sql index 3a483ff6e78f..91c0142b802e 100644 --- a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3557Case3(Access.Ace.OleDb).sql @@ -9,7 +9,7 @@ SELECT FROM [SubData2] [a_SubDatas] WHERE - [a_SubData].[Id] = [a_SubDatas].[Id] + [a_SubData].[Id] IS NOT NULL AND [a_SubData].[Id] = [a_SubDatas].[Id] ) FROM [Data] [i] diff --git a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.OleDb).sql index c95f4169c928..e930f0cec3c8 100644 --- a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.Issue3809Test(Access.Ace.OleDb).sql @@ -21,7 +21,8 @@ FROM FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) ) [m_1] INNER JOIN [Child] [d] ON ([m_1].[ParentID] = [d].[ParentID]) @@ -46,6 +47,7 @@ WHERE FROM [Child] [a_1] WHERE - [a_ParentTest].[ParentID] = [a_1].[ParentID] AND [a_1].[ChildID] = 11 + [a_ParentTest].[ParentID] IS NOT NULL AND [a_ParentTest].[ParentID] = [a_1].[ParentID] AND + [a_1].[ChildID] = 11 ) diff --git a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.OleDb).sql index bbd27fff3dc3..04423394d813 100644 --- a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelation(Access.Ace.OleDb).sql @@ -22,7 +22,8 @@ FROM FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) ) [m_1] INNER JOIN [Table4] [d] ON ([m_1].[ID] = [d].[ID3] OR [m_1].[ID] IS NULL AND [d].[ID3] IS NULL) @@ -49,7 +50,8 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) BeforeExecute diff --git a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.OleDb).sql index 2e14e8ade48c..9b4ed329ba52 100644 --- a/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/AssociationTests/Tests.Linq.AssociationTests.OptionalAssociationNonNullCorrelationWithProjection(Access.Ace.OleDb).sql @@ -16,6 +16,7 @@ WHERE FROM [Table4] [id] WHERE - [a_Table3].[ID] = [id].[ID3] AND [id].[ID] = [r].[ID] + [a_Table3].[ID] IS NOT NULL AND ([a_Table3].[ID] = [id].[ID3] OR [a_Table3].[ID] IS NULL AND [id].[ID3] IS NULL) AND + [id].[ID] = [r].[ID] ) diff --git a/Access.Ace.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.OleDb).sql index a1a76f264141..3ae1189718c1 100644 --- a/Access.Ace.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.Issue3791Test(Access.Ace.OleDb).sql @@ -7,5 +7,5 @@ SELECT [a_Association].[Id] FROM [Issue3791Table] [t1] - LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = IIF([a_Association].[Id] IS NOT NULL, CStr([a_Association].[Id]), NULL)) + LEFT JOIN [Issue3791GuidTable] [a_Association] ON ([t1].[OtherId] = CStr([a_Association].[Id])) diff --git a/Access.Ace.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.OleDb).sql index ced8e167b573..6b27e44f31ad 100644 --- a/Access.Ace.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/ConvertExpressionTests/Tests.Linq.ConvertExpressionTests.LetTest11(Access.Ace.OleDb).sql @@ -2,7 +2,7 @@ -- Access.Ace.OleDb AccessOleDb SELECT - IIF([t1].[ParentID_1] IS NULL, 0, [t1].[ParentID_1]), + IIF([t1].[cond] IS NULL, 0, [t1].[cond]), ( SELECT TOP 1 [c_2].[ParentID] @@ -26,7 +26,6 @@ SELECT FROM ( SELECT - [p].[ParentID], ( SELECT TOP 1 [c_1].[ParentID] @@ -36,7 +35,8 @@ FROM [c_1].[ParentID] > 0 ORDER BY [c_1].[ParentID] - ) as [ParentID_1] + ) as [cond], + [p].[ParentID] FROM [Parent] [p] ) [t1] diff --git a/Access.Ace.OleDb/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.OleDb).sql index 0e952abe85d1..9fd990f9786c 100644 --- a/Access.Ace.OleDb/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/GroupByTests/Tests.Linq.GroupByTests.Sum3(Access.Ace.OleDb).sql @@ -8,7 +8,7 @@ SELECT FROM [Child] [a_Children] WHERE - [g_2].[ParentID] = [a_Children].[ParentID] + [g_2].[ParentID] IS NOT NULL AND [g_2].[ParentID] = [a_Children].[ParentID] ) FROM ( diff --git a/Access.Ace.OleDb/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.OleDb).sql index 3b8d2a59d242..871bf39c0651 100644 --- a/Access.Ace.OleDb/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/InheritanceTests/Tests.Linq.InheritanceTests.InheritanceAssociationTest(Access.Ace.OleDb).sql @@ -22,5 +22,5 @@ SELECT FROM ([LinqDataTypes] [ia] LEFT JOIN [LinqDataTypes] [a_A1] ON ([ia].[GuidValue] = [a_A1].[GuidValue] AND [a_A1].[ID] = 2)) - LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND ([a_A2].[ID] <> 2 OR [a_A2].[ID] IS NULL)) + LEFT JOIN [LinqDataTypes] [a_A2] ON ([ia].[GuidValue] = [a_A2].[GuidValue] AND [a_A2].[ID] <> 2) diff --git a/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.OleDb).sql index 636c418ca26f..74c28d9818dc 100644 --- a/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test1(Access.Ace.OleDb).sql @@ -70,8 +70,8 @@ SELECT [al_group_3].[AlertCode], [al_group_3].[CreationDate] ) [t1] - LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = IIF([trade_2].[DealId] IS NOT NULL, CStr([trade_2].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = IIF([nomin_2].[CargoId] IS NOT NULL, CStr([nomin_2].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = CStr([trade_2].[DealId]))) + LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = CStr([nomin_2].[CargoId])) WHERE ([nomin_2].[DeliveryCounterParty] LIKE @cpty OR [trade_2].[CounterParty] LIKE @cpty_1 OR [t1].[AlertCode] LIKE @cpty_2) AND [al_group_2].[AlertKey] = [t1].[AlertKey] AND @@ -96,8 +96,8 @@ SELECT [al_group_4].[AlertCode], [al_group_4].[CreationDate] ) [t2] - LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = IIF([trade_3].[DealId] IS NOT NULL, CStr([trade_3].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = IIF([nomin_3].[CargoId] IS NOT NULL, CStr([nomin_3].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = CStr([trade_3].[DealId]))) + LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = CStr([nomin_3].[CargoId])) WHERE ([nomin_3].[DeliveryCounterParty] LIKE @cpty_3 OR [trade_3].[CounterParty] LIKE @cpty_4 OR [t2].[AlertCode] LIKE @cpty_5) AND [al_group_2].[AlertKey] = [t2].[AlertKey] AND @@ -122,8 +122,8 @@ SELECT [al_group_5].[AlertCode], [al_group_5].[CreationDate] ) [t3] - LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = IIF([trade_4].[DealId] IS NOT NULL, CStr([trade_4].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = IIF([nomin_4].[CargoId] IS NOT NULL, CStr([nomin_4].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = CStr([trade_4].[DealId]))) + LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = CStr([nomin_4].[CargoId])) WHERE ([nomin_4].[DeliveryCounterParty] LIKE @cpty_6 OR [trade_4].[CounterParty] LIKE @cpty_7 OR [t3].[AlertCode] LIKE @cpty_8) AND [al_group_2].[AlertKey] = [t3].[AlertKey] AND @@ -148,8 +148,8 @@ SELECT [al_group_6].[AlertCode], [al_group_6].[CreationDate] ) [t4] - LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = IIF([trade_5].[DealId] IS NOT NULL, CStr([trade_5].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = IIF([nomin_5].[CargoId] IS NOT NULL, CStr([nomin_5].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = CStr([trade_5].[DealId]))) + LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = CStr([nomin_5].[CargoId])) WHERE ([nomin_5].[DeliveryCounterParty] LIKE @cpty_9 OR [trade_5].[CounterParty] LIKE @cpty_10 OR [t4].[AlertCode] LIKE @cpty_11) AND [al_group_2].[AlertKey] = [t4].[AlertKey] AND @@ -174,8 +174,8 @@ SELECT [al_group_7].[AlertCode], [al_group_7].[CreationDate] ) [t5] - LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = IIF([trade_6].[DealId] IS NOT NULL, CStr([trade_6].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = IIF([nomin_6].[CargoId] IS NOT NULL, CStr([nomin_6].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = CStr([trade_6].[DealId]))) + LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = CStr([nomin_6].[CargoId])) WHERE ([nomin_6].[DeliveryCounterParty] LIKE @cpty_12 OR [trade_6].[CounterParty] LIKE @cpty_13 OR [t5].[AlertCode] LIKE @cpty_14) AND [al_group_2].[AlertKey] = [t5].[AlertKey] AND @@ -200,8 +200,8 @@ SELECT [al_group_8].[AlertCode], [al_group_8].[CreationDate] ) [t6] - LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = IIF([trade_7].[DealId] IS NOT NULL, CStr([trade_7].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = IIF([nomin_7].[CargoId] IS NOT NULL, CStr([nomin_7].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = CStr([trade_7].[DealId]))) + LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = CStr([nomin_7].[CargoId])) WHERE ([nomin_7].[DeliveryCounterParty] LIKE @cpty_15 OR [trade_7].[CounterParty] LIKE @cpty_16 OR [t6].[AlertCode] LIKE @cpty_17) AND [al_group_2].[AlertKey] = [t6].[AlertKey] AND @@ -226,8 +226,8 @@ SELECT [al_group_9].[AlertCode], [al_group_9].[CreationDate] ) [t7] - LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = IIF([trade_8].[DealId] IS NOT NULL, CStr([trade_8].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = IIF([nomin_8].[CargoId] IS NOT NULL, CStr([nomin_8].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = CStr([trade_8].[DealId]))) + LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = CStr([nomin_8].[CargoId])) WHERE ([nomin_8].[DeliveryCounterParty] LIKE @cpty_18 OR [trade_8].[CounterParty] LIKE @cpty_19 OR [t7].[AlertCode] LIKE @cpty_20) AND [al_group_2].[AlertKey] = [t7].[AlertKey] AND @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE @cpty_21 OR [trade_1].[CounterParty] LIKE @cpty_22 OR [al_group_1].[AlertCode] LIKE @cpty_23 diff --git a/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.OleDb).sql index b2042b7c58f6..cc6425ee994c 100644 --- a/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.Issue1455Test2(Access.Ace.OleDb).sql @@ -70,8 +70,8 @@ SELECT [al_group_3].[AlertCode], [al_group_3].[CreationDate] ) [t1] - LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = IIF([trade_2].[DealId] IS NOT NULL, CStr([trade_2].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = IIF([nomin_2].[CargoId] IS NOT NULL, CStr([nomin_2].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_2] ON ([t1].[AlertKey] = CStr([trade_2].[DealId]))) + LEFT JOIN [Nomin] [nomin_2] ON ([t1].[AlertKey] = CStr([nomin_2].[CargoId])) WHERE ([nomin_2].[DeliveryCounterParty] LIKE @cond OR [trade_2].[CounterParty] LIKE @cond_1 OR [t1].[AlertCode] LIKE @cond_2) AND [al_group_2].[AlertKey] = [t1].[AlertKey] AND @@ -96,8 +96,8 @@ SELECT [al_group_4].[AlertCode], [al_group_4].[CreationDate] ) [t2] - LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = IIF([trade_3].[DealId] IS NOT NULL, CStr([trade_3].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = IIF([nomin_3].[CargoId] IS NOT NULL, CStr([nomin_3].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_3] ON ([t2].[AlertKey] = CStr([trade_3].[DealId]))) + LEFT JOIN [Nomin] [nomin_3] ON ([t2].[AlertKey] = CStr([nomin_3].[CargoId])) WHERE ([nomin_3].[DeliveryCounterParty] LIKE @cond_3 OR [trade_3].[CounterParty] LIKE @cond_4 OR [t2].[AlertCode] LIKE @cond_5) AND [al_group_2].[AlertKey] = [t2].[AlertKey] AND @@ -122,8 +122,8 @@ SELECT [al_group_5].[AlertCode], [al_group_5].[CreationDate] ) [t3] - LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = IIF([trade_4].[DealId] IS NOT NULL, CStr([trade_4].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = IIF([nomin_4].[CargoId] IS NOT NULL, CStr([nomin_4].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_4] ON ([t3].[AlertKey] = CStr([trade_4].[DealId]))) + LEFT JOIN [Nomin] [nomin_4] ON ([t3].[AlertKey] = CStr([nomin_4].[CargoId])) WHERE ([nomin_4].[DeliveryCounterParty] LIKE @cond_6 OR [trade_4].[CounterParty] LIKE @cond_7 OR [t3].[AlertCode] LIKE @cond_8) AND [al_group_2].[AlertKey] = [t3].[AlertKey] AND @@ -148,8 +148,8 @@ SELECT [al_group_6].[AlertCode], [al_group_6].[CreationDate] ) [t4] - LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = IIF([trade_5].[DealId] IS NOT NULL, CStr([trade_5].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = IIF([nomin_5].[CargoId] IS NOT NULL, CStr([nomin_5].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_5] ON ([t4].[AlertKey] = CStr([trade_5].[DealId]))) + LEFT JOIN [Nomin] [nomin_5] ON ([t4].[AlertKey] = CStr([nomin_5].[CargoId])) WHERE ([nomin_5].[DeliveryCounterParty] LIKE @cond_9 OR [trade_5].[CounterParty] LIKE @cond_10 OR [t4].[AlertCode] LIKE @cond_11) AND [al_group_2].[AlertKey] = [t4].[AlertKey] AND @@ -174,8 +174,8 @@ SELECT [al_group_7].[AlertCode], [al_group_7].[CreationDate] ) [t5] - LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = IIF([trade_6].[DealId] IS NOT NULL, CStr([trade_6].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = IIF([nomin_6].[CargoId] IS NOT NULL, CStr([nomin_6].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_6] ON ([t5].[AlertKey] = CStr([trade_6].[DealId]))) + LEFT JOIN [Nomin] [nomin_6] ON ([t5].[AlertKey] = CStr([nomin_6].[CargoId])) WHERE ([nomin_6].[DeliveryCounterParty] LIKE @cond_12 OR [trade_6].[CounterParty] LIKE @cond_13 OR [t5].[AlertCode] LIKE @cond_14) AND [al_group_2].[AlertKey] = [t5].[AlertKey] AND @@ -200,8 +200,8 @@ SELECT [al_group_8].[AlertCode], [al_group_8].[CreationDate] ) [t6] - LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = IIF([trade_7].[DealId] IS NOT NULL, CStr([trade_7].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = IIF([nomin_7].[CargoId] IS NOT NULL, CStr([nomin_7].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_7] ON ([t6].[AlertKey] = CStr([trade_7].[DealId]))) + LEFT JOIN [Nomin] [nomin_7] ON ([t6].[AlertKey] = CStr([nomin_7].[CargoId])) WHERE ([nomin_7].[DeliveryCounterParty] LIKE @cond_15 OR [trade_7].[CounterParty] LIKE @cond_16 OR [t6].[AlertCode] LIKE @cond_17) AND [al_group_2].[AlertKey] = [t6].[AlertKey] AND @@ -226,8 +226,8 @@ SELECT [al_group_9].[AlertCode], [al_group_9].[CreationDate] ) [t7] - LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = IIF([trade_8].[DealId] IS NOT NULL, CStr([trade_8].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = IIF([nomin_8].[CargoId] IS NOT NULL, CStr([nomin_8].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_8] ON ([t7].[AlertKey] = CStr([trade_8].[DealId]))) + LEFT JOIN [Nomin] [nomin_8] ON ([t7].[AlertKey] = CStr([nomin_8].[CargoId])) WHERE ([nomin_8].[DeliveryCounterParty] LIKE @cond_18 OR [trade_8].[CounterParty] LIKE @cond_19 OR [t7].[AlertCode] LIKE @cond_20) AND [al_group_2].[AlertKey] = [t7].[AlertKey] AND @@ -254,8 +254,8 @@ FROM [al_group].[AlertCode], [al_group].[CreationDate] ) [al_group_1] - LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = IIF([trade_1].[DealId] IS NOT NULL, CStr([trade_1].[DealId]), NULL))) - LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = IIF([nomin_1].[CargoId] IS NOT NULL, CStr([nomin_1].[CargoId]), NULL)) + LEFT JOIN [Trade] [trade_1] ON ([al_group_1].[AlertKey] = CStr([trade_1].[DealId]))) + LEFT JOIN [Nomin] [nomin_1] ON ([al_group_1].[AlertKey] = CStr([nomin_1].[CargoId])) WHERE [nomin_1].[DeliveryCounterParty] LIKE @cond_21 OR [trade_1].[CounterParty] LIKE @cond_22 OR [al_group_1].[AlertCode] LIKE @cond_23 diff --git a/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.OleDb).sql index 8588c8ef12a4..0dbd9e81316a 100644 --- a/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithConditions(Access.Ace.OleDb).sql @@ -8,13 +8,13 @@ DECLARE @id1_1 Integer -- Int32 SET @id1_1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> @id2 AND [right2].[ParentID] <> @id1_1 ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.OleDb).sql index fe90d6059897..12e510c0bb22 100644 --- a/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnLeftWithoutConditions(Access.Ace.OleDb).sql @@ -4,13 +4,13 @@ DECLARE @id1 Integer -- Int32 SET @id1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT [p].[Value1], - [p].[ParentID] + [p].[ParentID] as [Left_1] FROM [Parent] [p] WHERE @@ -25,5 +25,5 @@ FROM INNER JOIN [Parent] [right2] ON ([right_1].[Value1] = [right2].[Value1] + 2) ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.OleDb).sql index 88b44194642c..0c749877b9aa 100644 --- a/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/JoinTests/Tests.Linq.JoinTests.SqlRightJoinWithInnerJoinOnRightWithConditions(Access.Ace.OleDb).sql @@ -8,12 +8,12 @@ DECLARE @id1_1 Integer -- Int32 SET @id1_1 = 1 SELECT - [t1].[ParentID], + [t1].[Left_1], [right_2].[Right_1] FROM ( SELECT - [left_1].[ParentID], + [left_1].[ParentID] as [Left_1], [left_1].[Value1] FROM [Parent] [left_1] @@ -31,5 +31,5 @@ FROM [right_1].[ParentID] <> @id1_1 ) [right_2] ON ([right_2].[c1] = [t1].[Value1] OR [right_2].[c1] IS NULL AND [t1].[Value1] IS NULL) ORDER BY - [t1].[ParentID] + [t1].[Left_1] diff --git a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb,Except).sql b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb,Except).sql index 2b86d6603009..74f2e9e32083 100644 --- a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb,Except).sql +++ b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb,Except).sql @@ -16,7 +16,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -34,7 +46,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute BeginTransaction(Unspecified) diff --git a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb,ExceptAll).sql b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb,ExceptAll).sql index 8235fcbef75d..a0067819beb6 100644 --- a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb,ExceptAll).sql +++ b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerDifferentDetails(Access.Ace.OleDb,ExceptAll).sql @@ -16,7 +16,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) LEFT JOIN [Author] [a_Author] ON ([d].[FkAuthorId] = [a_Author].[AuthorId]) @@ -34,7 +46,19 @@ FROM INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - [a_Book].[Discriminator] = 'Roman' + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( + SELECT + * + FROM + ([Author] [t2] + INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) + LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) + WHERE + [a_Book_1].[Discriminator] = 'Novel' AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + [a_Book].[BookId] IS NULL + ) BeforeExecute BeginTransaction(Unspecified) diff --git a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,Except).sql b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,Except).sql index bb644a567178..cec43562339f 100644 --- a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,Except).sql +++ b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,Except).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,ExceptAll).sql b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,ExceptAll).sql index 16bf50bccd73..0c5777408f8c 100644 --- a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,ExceptAll).sql +++ b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,ExceptAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,Intersect).sql b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,Intersect).sql index c8aa9e7ed507..1bee1e06e3b3 100644 --- a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,Intersect).sql +++ b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,Intersect).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,IntersectAll).sql b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,IntersectAll).sql index 755cdc39c201..b765dffd5761 100644 --- a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,IntersectAll).sql +++ b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.EagerSameDetails(Access.Ace.OleDb,IntersectAll).sql @@ -25,9 +25,9 @@ FROM LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) ) [m_1] INNER JOIN [BookAuthor] [d] ON ([d].[FkBookId] = [m_1].[BookId])) @@ -55,9 +55,9 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - [a_Book].[BookId] = [a_Book_1].[BookId] AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - [a_Book].[BookId] = [a_Book_1].[BookId] + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) ) BeforeExecute diff --git a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.OleDb).sql index 6ef136cf77dc..fabc4d02a0b8 100644 --- a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.ExceptInheritance(Access.Ace.OleDb).sql @@ -2,28 +2,17 @@ -- Access.Ace.OleDb AccessOleDb SELECT DISTINCT - [t1].[cond], - [t1].[Discriminator], - [t1].[BookName], - [t1].[NovelScore], - [t1].[RomanScore] + [a_Book].[BookId], + [a_Book].[Discriminator], + [a_Book].[BookName], + [a_Book].[NovelScore], + [a_Book].[RomanScore] FROM - ( - SELECT - [a_Book].[BookId] as [cond], - [a_Book].[Discriminator], - [a_Book].[BookName], - [a_Book].[RomanScore], - [a_Book].[NovelScore] - FROM - ([Author] [a] - INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [a].[AuthorId])) - LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) - WHERE - [a_Book].[Discriminator] = 'Roman' - ) [t1] + ([Author] [t1] + INNER JOIN [BookAuthor] [b] ON ([b].[FkAuthorId] = [t1].[AuthorId])) + LEFT JOIN [Book] [a_Book] ON ([b].[FkBookId] = [a_Book].[BookId]) WHERE - NOT EXISTS( + [a_Book].[Discriminator] = 'Roman' AND NOT EXISTS( SELECT * FROM @@ -32,12 +21,12 @@ WHERE LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE [a_Book_1].[Discriminator] = 'Novel' AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[cond] = [a_Book_1].[BookId] OR [t1].[cond] IS NULL AND [a_Book_1].[BookId] IS NULL) AND - ([t1].[Discriminator] = [a_Book_1].[Discriminator] OR [t1].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND - ([t1].[BookName] = [a_Book_1].[BookName] OR [t1].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND - ([t1].[RomanScore] = [a_Book_1].[RomanScore] OR [t1].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND - ([t1].[NovelScore] = [a_Book_1].[NovelScore] OR [t1].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND + ([a_Book].[Discriminator] = [a_Book_1].[Discriminator] OR [a_Book].[Discriminator] IS NULL AND [a_Book_1].[Discriminator] IS NULL) AND + ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) AND + ([a_Book].[RomanScore] = [a_Book_1].[RomanScore] OR [a_Book].[RomanScore] IS NULL AND [a_Book_1].[RomanScore] IS NULL) AND + ([a_Book].[NovelScore] = [a_Book_1].[NovelScore] OR [a_Book].[NovelScore] IS NULL AND [a_Book_1].[NovelScore] IS NULL) ) BeforeExecute diff --git a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.OleDb).sql index c611e86cc86f..09f402c979fe 100644 --- a/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/SetOperatorComplexTests/Tests.Linq.SetOperatorComplexTests.IntersectInheritance(Access.Ace.OleDb).sql @@ -17,7 +17,7 @@ WHERE INNER JOIN [BookAuthor] [b_1] ON ([b_1].[FkAuthorId] = [t2].[AuthorId])) LEFT JOIN [Book] [a_Book_1] ON ([b_1].[FkBookId] = [a_Book_1].[BookId]) WHERE - [a_Book_1].[Discriminator] = 'Novel' AND [a_Book].[BookId] = [a_Book_1].[BookId] AND + [a_Book_1].[Discriminator] = 'Novel' AND ([a_Book].[BookId] = [a_Book_1].[BookId] OR [a_Book].[BookId] IS NULL AND [a_Book_1].[BookId] IS NULL) AND ([a_Book].[BookName] = [a_Book_1].[BookName] OR [a_Book].[BookName] IS NULL AND [a_Book_1].[BookName] IS NULL) ) diff --git a/Access.Ace.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.OleDb).sql index 474100c8c9b9..2c7f0cad4a1d 100644 --- a/Access.Ace.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/SubQueryTests/Tests.Linq.SubQueryTests.SubSub212(Access.Ace.OleDb).sql @@ -8,7 +8,8 @@ SELECT FROM [GrandChild] [a_GrandChildren] WHERE - [a_Parent].[ParentID] = [a_GrandChildren].[ParentID] AND + [a_Parent].[ParentID] IS NOT NULL AND + ([a_Parent].[ParentID] = [a_GrandChildren].[ParentID] OR [a_Parent].[ParentID] IS NULL AND [a_GrandChildren].[ParentID] IS NULL) AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 AND [a_GrandChildren].[ParentID] + 1 < [p1].[ParentID] + 2 ) diff --git a/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.OleDb).sql index c27a82035f53..62ecb2699a89 100644 --- a/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.BinaryComparisonTest2(Access.Ace.OleDb).sql @@ -6,5 +6,6 @@ SELECT FROM [Person] [t1] WHERE - [t1].[MiddleName] = [t1].[LastName] + NOT ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) OR + ([t1].[MiddleName] <> [t1].[LastName] OR [t1].[MiddleName] IS NULL) IS NULL diff --git a/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.OleDb).sql b/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.OleDb).sql index debee66b731d..b8ef166cdeec 100644 --- a/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.OleDb).sql +++ b/Access.Ace.OleDb/Tests/Linq/WhereTests/Tests.Linq.WhereTests.ComplexIsNullPredicateTest(Access.Ace.OleDb).sql @@ -7,7 +7,8 @@ SELECT FROM [ComplexPredicate] [r] WHERE - IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) + IIF([r].[Value] = '123', True, False) = IIF([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL), True, False) OR + ([r].[Value] = '123') IS NULL AND ([r].[Value] = '1' OR [r].[Value] = 'test' AND ([r].[Value] <> '1' OR [r].[Value] IS NULL)) IS NULL ORDER BY [r].[Id]