From 13bfa4848d79b06ba70ddc28f6537cd79c00200a Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 11:49:11 +0000 Subject: [PATCH 01/28] [Windows / SQLite (specialized tests)] baselines --- ...ionSubqueryUpdate1(SQLite.Classic.MPM).sql | 22 +++++++++++++++++++ ...ionSubqueryUpdate2(SQLite.Classic.MPM).sql | 22 +++++++++++++++++++ ...ionSubqueryUpdate1(SQLite.Classic.MPU).sql | 22 +++++++++++++++++++ ...ionSubqueryUpdate2(SQLite.Classic.MPU).sql | 22 +++++++++++++++++++ 4 files changed, 88 insertions(+) create mode 100644 SQLite.Classic.MPM/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.Classic.MPM).sql create mode 100644 SQLite.Classic.MPM/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.Classic.MPM).sql create mode 100644 SQLite.Classic.MPU/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.Classic.MPU).sql create mode 100644 SQLite.Classic.MPU/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.Classic.MPU).sql diff --git a/SQLite.Classic.MPM/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.Classic.MPM).sql new file mode 100644 index 000000000000..eb686ff7197c --- /dev/null +++ b/SQLite.Classic.MPM/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.Classic.MPM).sql @@ -0,0 +1,22 @@ +-- SQLite.Classic.MPM SQLite.Classic SQLite + +UPDATE + [SampleClass] +SET + [VarcharValue] = ( + SELECT + GROUP_CONCAT([a_Children].[VarcharValue], ' | ') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ), + [NVarcharValue] = ( + SELECT + GROUP_CONCAT([a_Children].[VarcharValue], ' | ') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ) + diff --git a/SQLite.Classic.MPM/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.Classic.MPM).sql b/SQLite.Classic.MPM/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.Classic.MPM).sql new file mode 100644 index 000000000000..6bfea02255db --- /dev/null +++ b/SQLite.Classic.MPM/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.Classic.MPM).sql @@ -0,0 +1,22 @@ +-- SQLite.Classic.MPM SQLite.Classic SQLite + +UPDATE + [SampleClass] +SET + [VarcharValue] = ( + SELECT + Coalesce(GROUP_CONCAT(Coalesce([a_Children].[VarcharValue], ''), ', '), '') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ), + [NVarcharValue] = ( + SELECT + Coalesce(GROUP_CONCAT(Coalesce([a_Children].[VarcharValue], ''), ', '), '') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ) + diff --git a/SQLite.Classic.MPU/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.Classic.MPU).sql new file mode 100644 index 000000000000..3b7c7e081a17 --- /dev/null +++ b/SQLite.Classic.MPU/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.Classic.MPU).sql @@ -0,0 +1,22 @@ +-- SQLite.Classic.MPU SQLite.Classic SQLite + +UPDATE + [SampleClass] +SET + [VarcharValue] = ( + SELECT + GROUP_CONCAT([a_Children].[VarcharValue], ' | ') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ), + [NVarcharValue] = ( + SELECT + GROUP_CONCAT([a_Children].[VarcharValue], ' | ') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ) + diff --git a/SQLite.Classic.MPU/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.Classic.MPU).sql b/SQLite.Classic.MPU/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.Classic.MPU).sql new file mode 100644 index 000000000000..3a285f9e9018 --- /dev/null +++ b/SQLite.Classic.MPU/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.Classic.MPU).sql @@ -0,0 +1,22 @@ +-- SQLite.Classic.MPU SQLite.Classic SQLite + +UPDATE + [SampleClass] +SET + [VarcharValue] = ( + SELECT + Coalesce(GROUP_CONCAT(Coalesce([a_Children].[VarcharValue], ''), ', '), '') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ), + [NVarcharValue] = ( + SELECT + Coalesce(GROUP_CONCAT(Coalesce([a_Children].[VarcharValue], ''), ', '), '') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ) + From 74af8011b8bdc456fe0106e982f45a8bab4396b1 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:02:57 +0000 Subject: [PATCH 02/28] [Windows / SQLite (both providers)] baselines --- ...sts.NorthwindTest(Northwind.SQLite.MS).sql | 18 +++++++-------- ...rTests.NorthwindTest(Northwind.SQLite).sql | 18 +++++++-------- ...ciationSubqueryUpdate1(SQLite.Classic).sql | 22 +++++++++++++++++++ ...ciationSubqueryUpdate2(SQLite.Classic).sql | 22 +++++++++++++++++++ ...nAssociationSubqueryUpdate1(SQLite.MS).sql | 22 +++++++++++++++++++ ...nAssociationSubqueryUpdate2(SQLite.MS).sql | 22 +++++++++++++++++++ 6 files changed, 106 insertions(+), 18 deletions(-) create mode 100644 SQLite.Classic/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.Classic).sql create mode 100644 SQLite.Classic/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.Classic).sql create mode 100644 SQLite.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.MS).sql create mode 100644 SQLite.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.MS).sql diff --git a/Northwind.SQLite.MS/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite.MS).sql b/Northwind.SQLite.MS/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite.MS).sql index 25eefa605df2..d600db65a524 100644 --- a/Northwind.SQLite.MS/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite.MS).sql +++ b/Northwind.SQLite.MS/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite.MS).sql @@ -68,7 +68,7 @@ -- Northwind.SQLite.MS SQLite.MS SQLite -SELECT * FROM [Products by Category] +SELECT * FROM [Summary of Sales by Quarter] -- Northwind.SQLite.MS SQLite.MS SQLite @@ -76,18 +76,10 @@ SELECT * FROM [Summary of Sales by Year] -- Northwind.SQLite.MS SQLite.MS SQLite -SELECT * FROM [Summary of Sales by Quarter] - --- Northwind.SQLite.MS SQLite.MS SQLite - SELECT * FROM [Order Subtotals] -- Northwind.SQLite.MS SQLite.MS SQLite -SELECT * FROM [Alphabetical list of products] - --- Northwind.SQLite.MS SQLite.MS SQLite - SELECT * FROM [Products Above Average Price] -- Northwind.SQLite.MS SQLite.MS SQLite @@ -106,6 +98,14 @@ SELECT * FROM [Customer and Suppliers by City] SELECT * FROM [Current Product List] +-- Northwind.SQLite.MS SQLite.MS SQLite + +SELECT * FROM [Products by Category] + +-- Northwind.SQLite.MS SQLite.MS SQLite + +SELECT * FROM [Alphabetical list of products] + -- Northwind.SQLite.MS SQLite.MS SQLite diff --git a/Northwind.SQLite/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite).sql b/Northwind.SQLite/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite).sql index d487d6bab6d0..df84d78f22fc 100644 --- a/Northwind.SQLite/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite).sql +++ b/Northwind.SQLite/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite).sql @@ -68,7 +68,7 @@ -- Northwind.SQLite SQLite.Classic SQLite -SELECT * FROM [Products by Category] +SELECT * FROM [Summary of Sales by Quarter] -- Northwind.SQLite SQLite.Classic SQLite @@ -76,18 +76,10 @@ SELECT * FROM [Summary of Sales by Year] -- Northwind.SQLite SQLite.Classic SQLite -SELECT * FROM [Summary of Sales by Quarter] - --- Northwind.SQLite SQLite.Classic SQLite - SELECT * FROM [Order Subtotals] -- Northwind.SQLite SQLite.Classic SQLite -SELECT * FROM [Alphabetical list of products] - --- Northwind.SQLite SQLite.Classic SQLite - SELECT * FROM [Products Above Average Price] -- Northwind.SQLite SQLite.Classic SQLite @@ -106,6 +98,14 @@ SELECT * FROM [Customer and Suppliers by City] SELECT * FROM [Current Product List] +-- Northwind.SQLite SQLite.Classic SQLite + +SELECT * FROM [Products by Category] + +-- Northwind.SQLite SQLite.Classic SQLite + +SELECT * FROM [Alphabetical list of products] + -- Northwind.SQLite SQLite.Classic SQLite diff --git a/SQLite.Classic/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.Classic).sql new file mode 100644 index 000000000000..990208030233 --- /dev/null +++ b/SQLite.Classic/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.Classic).sql @@ -0,0 +1,22 @@ +-- SQLite.Classic SQLite + +UPDATE + [SampleClass] +SET + [VarcharValue] = ( + SELECT + GROUP_CONCAT([a_Children].[VarcharValue], ' | ') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ), + [NVarcharValue] = ( + SELECT + GROUP_CONCAT([a_Children].[VarcharValue], ' | ') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ) + diff --git a/SQLite.Classic/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.Classic).sql b/SQLite.Classic/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.Classic).sql new file mode 100644 index 000000000000..d3cbd36491a3 --- /dev/null +++ b/SQLite.Classic/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.Classic).sql @@ -0,0 +1,22 @@ +-- SQLite.Classic SQLite + +UPDATE + [SampleClass] +SET + [VarcharValue] = ( + SELECT + Coalesce(GROUP_CONCAT(Coalesce([a_Children].[VarcharValue], ''), ', '), '') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ), + [NVarcharValue] = ( + SELECT + Coalesce(GROUP_CONCAT(Coalesce([a_Children].[VarcharValue], ''), ', '), '') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ) + diff --git a/SQLite.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.MS).sql b/SQLite.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.MS).sql new file mode 100644 index 000000000000..0dd60ab3aafa --- /dev/null +++ b/SQLite.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SQLite.MS).sql @@ -0,0 +1,22 @@ +-- SQLite.MS SQLite + +UPDATE + [SampleClass] +SET + [VarcharValue] = ( + SELECT + GROUP_CONCAT([a_Children].[VarcharValue], ' | ') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ), + [NVarcharValue] = ( + SELECT + GROUP_CONCAT([a_Children].[VarcharValue], ' | ') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ) + diff --git a/SQLite.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.MS).sql b/SQLite.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.MS).sql new file mode 100644 index 000000000000..5ace21609286 --- /dev/null +++ b/SQLite.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SQLite.MS).sql @@ -0,0 +1,22 @@ +-- SQLite.MS SQLite + +UPDATE + [SampleClass] +SET + [VarcharValue] = ( + SELECT + Coalesce(GROUP_CONCAT(Coalesce([a_Children].[VarcharValue], ''), ', '), '') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ), + [NVarcharValue] = ( + SELECT + Coalesce(GROUP_CONCAT(Coalesce([a_Children].[VarcharValue], ''), ', '), '') + FROM + [SampleClass] [a_Children] + WHERE + [SampleClass].[Id] = [a_Children].[Id] + ) + From 83625f15f5a3dad30c70a2a540cbddd3e1faa936 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:16:18 +0000 Subject: [PATCH 03/28] [Linux / Firebird 2.5] baselines --- ...sociationSubqueryUpdate1(Firebird.2.5).sql | 22 +++++++++++++++++++ ...sociationSubqueryUpdate2(Firebird.2.5).sql | 22 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 Firebird.2.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.2.5).sql create mode 100644 Firebird.2.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.2.5).sql diff --git a/Firebird.2.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.2.5).sql b/Firebird.2.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.2.5).sql new file mode 100644 index 000000000000..a512a80f6dce --- /dev/null +++ b/Firebird.2.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.2.5).sql @@ -0,0 +1,22 @@ +-- Firebird.2.5 Firebird + +UPDATE + "SampleClass" "t" +SET + "VarcharValue" = ( + SELECT + LIST("a_Children"."VarcharValue", ' | ') + FROM + "SampleClass" "a_Children" + WHERE + "t"."Id" = "a_Children"."Id" + ), + "NVarcharValue" = ( + SELECT + LIST("a_Children"."VarcharValue", ' | ') + FROM + "SampleClass" "a_Children" + WHERE + "t"."Id" = "a_Children"."Id" + ) + diff --git a/Firebird.2.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.2.5).sql b/Firebird.2.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.2.5).sql new file mode 100644 index 000000000000..89541ab3366e --- /dev/null +++ b/Firebird.2.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.2.5).sql @@ -0,0 +1,22 @@ +-- Firebird.2.5 Firebird + +UPDATE + "SampleClass" "t" +SET + "VarcharValue" = ( + SELECT + Coalesce(LIST(Coalesce("a_Children"."VarcharValue", ''), ', '), '') + FROM + "SampleClass" "a_Children" + WHERE + "t"."Id" = "a_Children"."Id" + ), + "NVarcharValue" = ( + SELECT + Coalesce(LIST(Coalesce("a_Children"."VarcharValue", ''), ', '), '') + FROM + "SampleClass" "a_Children" + WHERE + "t"."Id" = "a_Children"."Id" + ) + From 683cea400d6b2544f76c5d7f90724bb70cac35c5 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:17:13 +0000 Subject: [PATCH 04/28] [Linux / DB2 LUW 11.5] baselines --- ...ingJoinAssociationSubqueryUpdate1(DB2).sql | 22 +++++++++++++++++++ ...ingJoinAssociationSubqueryUpdate2(DB2).sql | 22 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 DB2/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(DB2).sql create mode 100644 DB2/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(DB2).sql diff --git a/DB2/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(DB2).sql b/DB2/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(DB2).sql new file mode 100644 index 000000000000..def4d60c5b85 --- /dev/null +++ b/DB2/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(DB2).sql @@ -0,0 +1,22 @@ +-- DB2 DB2.LUW DB2LUW + +UPDATE + "SampleClass" "t" +SET + "VarcharValue" = ( + SELECT + LISTAGG("a_Children"."VarcharValue", ' | ') + FROM + "SampleClass" "a_Children" + WHERE + "t"."Id" = "a_Children"."Id" + ), + "NVarcharValue" = ( + SELECT + LISTAGG("a_Children"."VarcharValue", ' | ') + FROM + "SampleClass" "a_Children" + WHERE + "t"."Id" = "a_Children"."Id" + ) + diff --git a/DB2/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(DB2).sql b/DB2/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(DB2).sql new file mode 100644 index 000000000000..ce16bd2c5310 --- /dev/null +++ b/DB2/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(DB2).sql @@ -0,0 +1,22 @@ +-- DB2 DB2.LUW DB2LUW + +UPDATE + "SampleClass" "t" +SET + "VarcharValue" = ( + SELECT + Coalesce(LISTAGG(Coalesce("a_Children"."VarcharValue", ''), ', '), '') + FROM + "SampleClass" "a_Children" + WHERE + "t"."Id" = "a_Children"."Id" + ), + "NVarcharValue" = ( + SELECT + Coalesce(LISTAGG(Coalesce("a_Children"."VarcharValue", ''), ', '), '') + FROM + "SampleClass" "a_Children" + WHERE + "t"."Id" = "a_Children"."Id" + ) + From 57744166c446dc337bea0ad58ea9401c52d028fa Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:20:00 +0000 Subject: [PATCH 05/28] [Linux / Firebird 3.0] baselines --- ...AssociationSubqueryUpdate1(Firebird.3).sql | 22 +++++++++++++++++++ ...AssociationSubqueryUpdate2(Firebird.3).sql | 22 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 Firebird.3/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.3).sql create mode 100644 Firebird.3/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.3).sql diff --git a/Firebird.3/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.3).sql b/Firebird.3/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.3).sql new file mode 100644 index 000000000000..77503e00928f --- /dev/null +++ b/Firebird.3/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.3).sql @@ -0,0 +1,22 @@ +-- Firebird.3 Firebird3 + +UPDATE + "SampleClass" "t" +SET + "VarcharValue" = ( + SELECT + LIST("a_Children"."VarcharValue", ' | ') + FROM + "SampleClass" "a_Children" + WHERE + "t"."Id" = "a_Children"."Id" + ), + "NVarcharValue" = ( + SELECT + LIST("a_Children"."VarcharValue", ' | ') + FROM + "SampleClass" "a_Children" + WHERE + "t"."Id" = "a_Children"."Id" + ) + diff --git a/Firebird.3/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.3).sql b/Firebird.3/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.3).sql new file mode 100644 index 000000000000..550006103459 --- /dev/null +++ b/Firebird.3/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.3).sql @@ -0,0 +1,22 @@ +-- Firebird.3 Firebird3 + +UPDATE + "SampleClass" "t" +SET + "VarcharValue" = ( + SELECT + Coalesce(LIST(Coalesce("a_Children"."VarcharValue", ''), ', '), '') + FROM + "SampleClass" "a_Children" + WHERE + "t"."Id" = "a_Children"."Id" + ), + "NVarcharValue" = ( + SELECT + Coalesce(LIST(Coalesce("a_Children"."VarcharValue", ''), ', '), '') + FROM + "SampleClass" "a_Children" + WHERE + "t"."Id" = "a_Children"."Id" + ) + From bd18ab26ee67db2a4620fadf0664d84721ca5418 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:20:17 +0000 Subject: [PATCH 06/28] [Linux / Firebird 4.0] baselines --- ...AssociationSubqueryUpdate1(Firebird.4).sql | 57 +++++++++++++++++++ ...AssociationSubqueryUpdate2(Firebird.4).sql | 57 +++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 Firebird.4/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.4).sql create mode 100644 Firebird.4/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.4).sql diff --git a/Firebird.4/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.4).sql b/Firebird.4/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.4).sql new file mode 100644 index 000000000000..5ef00d33ac52 --- /dev/null +++ b/Firebird.4/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.4).sql @@ -0,0 +1,57 @@ +-- Firebird.4 Firebird4 + +UPDATE + "SampleClass" +SET + "VarcharValue" = ( + SELECT + ( + SELECT + LIST("a_Children"."VarcharValue", ' | ') + FROM + "SampleClass" "a_Children" + WHERE + "t_1"."Id" = "a_Children"."Id" + ) + FROM + "SampleClass" "t_1" + WHERE + "SampleClass"."Id" = "t_1"."Id" AND + ("SampleClass"."NullableValue" = "t_1"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t_1"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t_1"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t_1"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t_1"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t_1"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t_1"."NVarcharValue" IS NULL) + ), + "NVarcharValue" = ( + SELECT + ( + SELECT + LIST("a_Children_1"."VarcharValue", ' | ') + FROM + "SampleClass" "a_Children_1" + WHERE + "t_2"."Id" = "a_Children_1"."Id" + ) + FROM + "SampleClass" "t_2" + WHERE + "SampleClass"."Id" = "t_2"."Id" AND + ("SampleClass"."NullableValue" = "t_2"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t_2"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t_2"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t_2"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t_2"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t_2"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t_2"."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" "t" + WHERE + "SampleClass"."Id" = "t"."Id" AND + ("SampleClass"."NullableValue" = "t"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t"."NVarcharValue" IS NULL) + ) + diff --git a/Firebird.4/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.4).sql b/Firebird.4/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.4).sql new file mode 100644 index 000000000000..ae9f520a7ba4 --- /dev/null +++ b/Firebird.4/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.4).sql @@ -0,0 +1,57 @@ +-- Firebird.4 Firebird4 + +UPDATE + "SampleClass" +SET + "VarcharValue" = ( + SELECT + ( + SELECT + Coalesce(LIST(Coalesce("a_Children"."VarcharValue", ''), ', '), '') + FROM + "SampleClass" "a_Children" + WHERE + "t_1"."Id" = "a_Children"."Id" + ) + FROM + "SampleClass" "t_1" + WHERE + "SampleClass"."Id" = "t_1"."Id" AND + ("SampleClass"."NullableValue" = "t_1"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t_1"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t_1"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t_1"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t_1"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t_1"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t_1"."NVarcharValue" IS NULL) + ), + "NVarcharValue" = ( + SELECT + ( + SELECT + Coalesce(LIST(Coalesce("a_Children_1"."VarcharValue", ''), ', '), '') + FROM + "SampleClass" "a_Children_1" + WHERE + "t_2"."Id" = "a_Children_1"."Id" + ) + FROM + "SampleClass" "t_2" + WHERE + "SampleClass"."Id" = "t_2"."Id" AND + ("SampleClass"."NullableValue" = "t_2"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t_2"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t_2"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t_2"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t_2"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t_2"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t_2"."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" "t" + WHERE + "SampleClass"."Id" = "t"."Id" AND + ("SampleClass"."NullableValue" = "t"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t"."NVarcharValue" IS NULL) + ) + From a3a88da8f160fd33d2fc98f184d8465134e89cbd Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:25:23 +0000 Subject: [PATCH 07/28] [Linux / Firebird 5.0] baselines --- ...AssociationSubqueryUpdate1(Firebird.5).sql | 57 +++++++++++++++++++ ...AssociationSubqueryUpdate2(Firebird.5).sql | 57 +++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 Firebird.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.5).sql create mode 100644 Firebird.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.5).sql diff --git a/Firebird.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.5).sql b/Firebird.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.5).sql new file mode 100644 index 000000000000..e6f4264c1932 --- /dev/null +++ b/Firebird.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Firebird.5).sql @@ -0,0 +1,57 @@ +-- Firebird.5 Firebird4 + +UPDATE + "SampleClass" +SET + "VarcharValue" = ( + SELECT + ( + SELECT + LIST("a_Children"."VarcharValue", ' | ') + FROM + "SampleClass" "a_Children" + WHERE + "t_1"."Id" = "a_Children"."Id" + ) + FROM + "SampleClass" "t_1" + WHERE + "SampleClass"."Id" = "t_1"."Id" AND + ("SampleClass"."NullableValue" = "t_1"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t_1"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t_1"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t_1"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t_1"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t_1"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t_1"."NVarcharValue" IS NULL) + ), + "NVarcharValue" = ( + SELECT + ( + SELECT + LIST("a_Children_1"."VarcharValue", ' | ') + FROM + "SampleClass" "a_Children_1" + WHERE + "t_2"."Id" = "a_Children_1"."Id" + ) + FROM + "SampleClass" "t_2" + WHERE + "SampleClass"."Id" = "t_2"."Id" AND + ("SampleClass"."NullableValue" = "t_2"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t_2"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t_2"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t_2"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t_2"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t_2"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t_2"."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" "t" + WHERE + "SampleClass"."Id" = "t"."Id" AND + ("SampleClass"."NullableValue" = "t"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t"."NVarcharValue" IS NULL) + ) + diff --git a/Firebird.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.5).sql b/Firebird.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.5).sql new file mode 100644 index 000000000000..b4bce31c5989 --- /dev/null +++ b/Firebird.5/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Firebird.5).sql @@ -0,0 +1,57 @@ +-- Firebird.5 Firebird4 + +UPDATE + "SampleClass" +SET + "VarcharValue" = ( + SELECT + ( + SELECT + Coalesce(LIST(Coalesce("a_Children"."VarcharValue", ''), ', '), '') + FROM + "SampleClass" "a_Children" + WHERE + "t_1"."Id" = "a_Children"."Id" + ) + FROM + "SampleClass" "t_1" + WHERE + "SampleClass"."Id" = "t_1"."Id" AND + ("SampleClass"."NullableValue" = "t_1"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t_1"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t_1"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t_1"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t_1"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t_1"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t_1"."NVarcharValue" IS NULL) + ), + "NVarcharValue" = ( + SELECT + ( + SELECT + Coalesce(LIST(Coalesce("a_Children_1"."VarcharValue", ''), ', '), '') + FROM + "SampleClass" "a_Children_1" + WHERE + "t_2"."Id" = "a_Children_1"."Id" + ) + FROM + "SampleClass" "t_2" + WHERE + "SampleClass"."Id" = "t_2"."Id" AND + ("SampleClass"."NullableValue" = "t_2"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t_2"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t_2"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t_2"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t_2"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t_2"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t_2"."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" "t" + WHERE + "SampleClass"."Id" = "t"."Id" AND + ("SampleClass"."NullableValue" = "t"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t"."NVarcharValue" IS NULL) + ) + From 2feba8ce783b85b646142dc6b39cb3c8e33d4f29 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:27:15 +0000 Subject: [PATCH 08/28] [Linux / MariaDB 11] baselines --- ...AssociationSubqueryUpdate1(MariaDB.11).sql | 22 +++++++++++++++++++ ...AssociationSubqueryUpdate2(MariaDB.11).sql | 22 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 MariaDB.11/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(MariaDB.11).sql create mode 100644 MariaDB.11/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(MariaDB.11).sql diff --git a/MariaDB.11/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(MariaDB.11).sql b/MariaDB.11/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(MariaDB.11).sql new file mode 100644 index 000000000000..b1d414f7ac28 --- /dev/null +++ b/MariaDB.11/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(MariaDB.11).sql @@ -0,0 +1,22 @@ +-- MariaDB.11 MariaDB.10.MySqlConnector MariaDB + +UPDATE + `SampleClass` `t` +SET + `t`.`VarcharValue` = ( + SELECT + GROUP_CONCAT(`a_Children`.`VarcharValue` SEPARATOR ' | ') + FROM + `SampleClass` `a_Children` + WHERE + `t`.`Id` = `a_Children`.`Id` + ), + `t`.`NVarcharValue` = ( + SELECT + GROUP_CONCAT(`a_Children`.`VarcharValue` SEPARATOR ' | ') + FROM + `SampleClass` `a_Children` + WHERE + `t`.`Id` = `a_Children`.`Id` + ) + diff --git a/MariaDB.11/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(MariaDB.11).sql b/MariaDB.11/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(MariaDB.11).sql new file mode 100644 index 000000000000..6944287152d5 --- /dev/null +++ b/MariaDB.11/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(MariaDB.11).sql @@ -0,0 +1,22 @@ +-- MariaDB.11 MariaDB.10.MySqlConnector MariaDB + +UPDATE + `SampleClass` `t` +SET + `t`.`VarcharValue` = ( + SELECT + Coalesce(GROUP_CONCAT(Coalesce(`a_Children`.`VarcharValue`, '') SEPARATOR ', '), '') + FROM + `SampleClass` `a_Children` + WHERE + `t`.`Id` = `a_Children`.`Id` + ), + `t`.`NVarcharValue` = ( + SELECT + Coalesce(GROUP_CONCAT(Coalesce(`a_Children`.`VarcharValue`, '') SEPARATOR ', '), '') + FROM + `SampleClass` `a_Children` + WHERE + `t`.`Id` = `a_Children`.`Id` + ) + From fd3899e2ecc02c55d9bfd91d02d8a9f5860b14da Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:36:16 +0000 Subject: [PATCH 09/28] [Linux / MySQL 9 (both providers)] baselines --- ...JoinAssociationSubqueryUpdate1(MySql.8.0).sql | 16 ++++++++++++++++ ...JoinAssociationSubqueryUpdate2(MySql.8.0).sql | 16 ++++++++++++++++ ...iationSubqueryUpdate1(MySqlConnector.8.0).sql | 16 ++++++++++++++++ ...iationSubqueryUpdate2(MySqlConnector.8.0).sql | 16 ++++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 MySql.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(MySql.8.0).sql create mode 100644 MySql.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(MySql.8.0).sql create mode 100644 MySqlConnector.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(MySqlConnector.8.0).sql create mode 100644 MySqlConnector.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(MySqlConnector.8.0).sql diff --git a/MySql.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(MySql.8.0).sql b/MySql.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(MySql.8.0).sql new file mode 100644 index 000000000000..fbaa1386969d --- /dev/null +++ b/MySql.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(MySql.8.0).sql @@ -0,0 +1,16 @@ +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +UPDATE + `SampleClass` `t` + LEFT JOIN LATERAL ( + SELECT + GROUP_CONCAT(`a_Children`.`VarcharValue` SEPARATOR ' | ') as `Result_1` + FROM + `SampleClass` `a_Children` + WHERE + `t`.`Id` = `a_Children`.`Id` + ) `t1` ON 1=1 +SET + `t`.`VarcharValue` = `t1`.`Result_1`, + `t`.`NVarcharValue` = `t1`.`Result_1` + diff --git a/MySql.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(MySql.8.0).sql b/MySql.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(MySql.8.0).sql new file mode 100644 index 000000000000..92f452aad3d7 --- /dev/null +++ b/MySql.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(MySql.8.0).sql @@ -0,0 +1,16 @@ +-- MySql.8.0 MySql.8.0.MySql.Data MySql80 + +UPDATE + `SampleClass` `t` + LEFT JOIN LATERAL ( + SELECT + Coalesce(GROUP_CONCAT(Coalesce(`a_Children`.`VarcharValue`, '') SEPARATOR ', '), '') as `Result_1` + FROM + `SampleClass` `a_Children` + WHERE + `t`.`Id` = `a_Children`.`Id` + ) `t1` ON 1=1 +SET + `t`.`VarcharValue` = `t1`.`Result_1`, + `t`.`NVarcharValue` = `t1`.`Result_1` + diff --git a/MySqlConnector.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(MySqlConnector.8.0).sql b/MySqlConnector.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(MySqlConnector.8.0).sql new file mode 100644 index 000000000000..0e76424687af --- /dev/null +++ b/MySqlConnector.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(MySqlConnector.8.0).sql @@ -0,0 +1,16 @@ +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +UPDATE + `SampleClass` `t` + LEFT JOIN LATERAL ( + SELECT + GROUP_CONCAT(`a_Children`.`VarcharValue` SEPARATOR ' | ') as `Result_1` + FROM + `SampleClass` `a_Children` + WHERE + `t`.`Id` = `a_Children`.`Id` + ) `t1` ON 1=1 +SET + `t`.`VarcharValue` = `t1`.`Result_1`, + `t`.`NVarcharValue` = `t1`.`Result_1` + diff --git a/MySqlConnector.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(MySqlConnector.8.0).sql b/MySqlConnector.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(MySqlConnector.8.0).sql new file mode 100644 index 000000000000..3331af7699c8 --- /dev/null +++ b/MySqlConnector.8.0/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(MySqlConnector.8.0).sql @@ -0,0 +1,16 @@ +-- MySqlConnector.8.0 MySql.8.0.MySqlConnector MySql80 + +UPDATE + `SampleClass` `t` + LEFT JOIN LATERAL ( + SELECT + Coalesce(GROUP_CONCAT(Coalesce(`a_Children`.`VarcharValue`, '') SEPARATOR ', '), '') as `Result_1` + FROM + `SampleClass` `a_Children` + WHERE + `t`.`Id` = `a_Children`.`Id` + ) `t1` ON 1=1 +SET + `t`.`VarcharValue` = `t1`.`Result_1`, + `t`.`NVarcharValue` = `t1`.`Result_1` + From 20ff74ce264124c96deab92e6f8ba87f12e4f8b6 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 13:36:55 +0100 Subject: [PATCH 10/28] [Linux / Oracle 11g XE] baselines --- ...tionSubqueryUpdate1(Oracle.11.Managed).sql | 22 +++++++++++++++++++ ...tionSubqueryUpdate2(Oracle.11.Managed).sql | 22 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 Oracle.11.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.11.Managed).sql create mode 100644 Oracle.11.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.11.Managed).sql diff --git a/Oracle.11.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.11.Managed).sql b/Oracle.11.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.11.Managed).sql new file mode 100644 index 000000000000..b768fb26d84f --- /dev/null +++ b/Oracle.11.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.11.Managed).sql @@ -0,0 +1,22 @@ +-- Oracle.11.Managed Oracle11 + +UPDATE + "SampleClass" t +SET + "VarcharValue" = ( + SELECT + LISTAGG(a_Children."VarcharValue", ' | ') WITHIN GROUP (ORDER BY a_Children."VarcharValue") + FROM + "SampleClass" a_Children + WHERE + t."Id" = a_Children."Id" + ), + "NVarcharValue" = ( + SELECT + LISTAGG(a_Children."VarcharValue", ' | ') WITHIN GROUP (ORDER BY a_Children."VarcharValue") + FROM + "SampleClass" a_Children + WHERE + t."Id" = a_Children."Id" + ) + diff --git a/Oracle.11.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.11.Managed).sql b/Oracle.11.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.11.Managed).sql new file mode 100644 index 000000000000..788ab98e8071 --- /dev/null +++ b/Oracle.11.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.11.Managed).sql @@ -0,0 +1,22 @@ +-- Oracle.11.Managed Oracle11 + +UPDATE + "SampleClass" t +SET + "VarcharValue" = ( + SELECT + Coalesce(LISTAGG(Coalesce(a_Children."VarcharValue", ''), ', ') WITHIN GROUP (ORDER BY a_Children."VarcharValue"), '') + FROM + "SampleClass" a_Children + WHERE + t."Id" = a_Children."Id" + ), + "NVarcharValue" = ( + SELECT + Coalesce(LISTAGG(Coalesce(a_Children."VarcharValue", ''), ', ') WITHIN GROUP (ORDER BY a_Children."VarcharValue"), '') + FROM + "SampleClass" a_Children + WHERE + t."Id" = a_Children."Id" + ) + From 37676bc19882f6f0720f5736889b364b7b9d4e7f Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:39:10 +0000 Subject: [PATCH 11/28] [Windows / SQL Server 2017] baselines --- ...eTests.Issue4816Test(SqlServer.2017.MS).sql | 13 +++++++++++++ ...eTests.Issue4816Test(SqlServer.2017.MS).sql | 13 +++++++++++++ ...eTests.Issue4816Test(SqlServer.2017.MS).sql | 13 +++++++++++++ ...eTests.Issue4816Test(SqlServer.2017.MS).sql | 13 +++++++++++++ ...Parameter3(SqlServer.2017.MS, -0x003E ).sql | 4 +--- ...Parameter3(SqlServer.2017.MS, =0x003E ).sql | 4 +--- ...Parameter4(SqlServer.2017.MS, -0x003E ).sql | 4 +--- ...Parameter4(SqlServer.2017.MS, =0x003E ).sql | 4 +--- ...GroupingParameter(SqlServer.2017.MS,, ).sql | 6 ++---- ...ingParameter(SqlServer.2017.MS,0x003A ).sql | 6 ++---- ...ationSubqueryUpdate1(SqlServer.2017.MS).sql | 18 ++++++++++++++++++ ...ationSubqueryUpdate2(SqlServer.2017.MS).sql | 18 ++++++++++++++++++ ...estParameter3(SqlServer.2017, -0x003E ).sql | 4 +--- ...estParameter3(SqlServer.2017, =0x003E ).sql | 4 +--- ...estParameter4(SqlServer.2017, -0x003E ).sql | 4 +--- ...estParameter4(SqlServer.2017, =0x003E ).sql | 4 +--- ...ithGroupingParameter(SqlServer.2017,, ).sql | 6 ++---- ...oupingParameter(SqlServer.2017,0x003A ).sql | 6 ++---- ...ociationSubqueryUpdate1(SqlServer.2017).sql | 18 ++++++++++++++++++ ...ociationSubqueryUpdate2(SqlServer.2017).sql | 18 ++++++++++++++++++ 20 files changed, 140 insertions(+), 40 deletions(-) create mode 100644 SqlServer.2017.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql create mode 100644 SqlServer.2017.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql create mode 100644 SqlServer.2017.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql create mode 100644 SqlServer.2017.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql create mode 100644 SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2017.MS).sql create mode 100644 SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2017.MS).sql create mode 100644 SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2017).sql create mode 100644 SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2017).sql diff --git a/SqlServer.2017.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql b/SqlServer.2017.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql new file mode 100644 index 000000000000..1f93ac38add5 --- /dev/null +++ b/SqlServer.2017.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2017 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2017.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql b/SqlServer.2017.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql new file mode 100644 index 000000000000..1f93ac38add5 --- /dev/null +++ b/SqlServer.2017.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2017 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2017.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql b/SqlServer.2017.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql new file mode 100644 index 000000000000..1f93ac38add5 --- /dev/null +++ b/SqlServer.2017.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2017 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2017.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql b/SqlServer.2017.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql new file mode 100644 index 000000000000..1f93ac38add5 --- /dev/null +++ b/SqlServer.2017.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2017.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2017 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017.MS, -0x003E ).sql b/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017.MS, -0x003E ).sql index ecf207f14e6b..c5a808405527 100644 --- a/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017.MS, -0x003E ).sql +++ b/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017.MS, -0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2017.MS SqlServer.2017 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' -> ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017.MS, =0x003E ).sql b/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017.MS, =0x003E ).sql index f3dfb8cb079a..04f84b90f98b 100644 --- a/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017.MS, =0x003E ).sql +++ b/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017.MS, =0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2017.MS SqlServer.2017 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' => ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017.MS, -0x003E ).sql b/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017.MS, -0x003E ).sql index 1758d9488582..43f4b83317a6 100644 --- a/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017.MS, -0x003E ).sql +++ b/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017.MS, -0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2017.MS SqlServer.2017 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' -> ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017.MS, =0x003E ).sql b/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017.MS, =0x003E ).sql index f05c7038c355..bc30b5e59066 100644 --- a/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017.MS, =0x003E ).sql +++ b/SqlServer.2017.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017.MS, =0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2017.MS SqlServer.2017 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' => ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017.MS,, ).sql b/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017.MS,, ).sql index b13ad5633e59..03f0055a4109 100644 --- a/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017.MS,, ).sql +++ b/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017.MS,, ).sql @@ -1,11 +1,9 @@ -- SqlServer.2017.MS SqlServer.2017 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N', ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N', '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N', '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017.MS,0x003A ).sql b/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017.MS,0x003A ).sql index c4a73e740eff..9328368c83d7 100644 --- a/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017.MS,0x003A ).sql +++ b/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017.MS,0x003A ).sql @@ -1,11 +1,9 @@ -- SqlServer.2017.MS SqlServer.2017 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N': ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N': '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N': '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2017.MS).sql b/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2017.MS).sql new file mode 100644 index 000000000000..0e515f2334e5 --- /dev/null +++ b/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2017.MS).sql @@ -0,0 +1,18 @@ +-- SqlServer.2017.MS SqlServer.2017 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + STRING_AGG([a_Children].[VarcharValue], ' | ') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2017.MS).sql b/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2017.MS).sql new file mode 100644 index 000000000000..c285c83d165c --- /dev/null +++ b/SqlServer.2017.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2017.MS).sql @@ -0,0 +1,18 @@ +-- SqlServer.2017.MS SqlServer.2017 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + Coalesce(STRING_AGG(Coalesce([a_Children].[VarcharValue], ''), ', '), '') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017, -0x003E ).sql b/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017, -0x003E ).sql index cd7429591a41..9ae397ca2bab 100644 --- a/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017, -0x003E ).sql +++ b/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017, -0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2017 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' -> ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017, =0x003E ).sql b/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017, =0x003E ).sql index 0960aa38c0b6..1454b4d26ca1 100644 --- a/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017, =0x003E ).sql +++ b/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2017, =0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2017 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' => ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017, -0x003E ).sql b/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017, -0x003E ).sql index 2ddf55bbc804..7db5a4a1813e 100644 --- a/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017, -0x003E ).sql +++ b/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017, -0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2017 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' -> ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017, =0x003E ).sql b/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017, =0x003E ).sql index e71775e387db..16dab20411a4 100644 --- a/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017, =0x003E ).sql +++ b/SqlServer.2017/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2017, =0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2017 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' => ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017,, ).sql b/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017,, ).sql index 4b9c12c74499..149b970cf21a 100644 --- a/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017,, ).sql +++ b/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017,, ).sql @@ -1,11 +1,9 @@ -- SqlServer.2017 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N', ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N', '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N', '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017,0x003A ).sql b/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017,0x003A ).sql index d49a54330447..34018565ed0b 100644 --- a/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017,0x003A ).sql +++ b/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2017,0x003A ).sql @@ -1,11 +1,9 @@ -- SqlServer.2017 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N': ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N': '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N': '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2017).sql b/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2017).sql new file mode 100644 index 000000000000..0f5e324183b2 --- /dev/null +++ b/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2017).sql @@ -0,0 +1,18 @@ +-- SqlServer.2017 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + STRING_AGG([a_Children].[VarcharValue], ' | ') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2017).sql b/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2017).sql new file mode 100644 index 000000000000..59bce6a8bb4a --- /dev/null +++ b/SqlServer.2017/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2017).sql @@ -0,0 +1,18 @@ +-- SqlServer.2017 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + Coalesce(STRING_AGG(Coalesce([a_Children].[VarcharValue], ''), ', '), '') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + From 929dd181e2491b3af14897e31dfa9caab9fb7335 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:45:14 +0000 Subject: [PATCH 12/28] [Windows / SQL Server 2019] baselines --- ...eTests.Issue4816Test(SqlServer.2019.MS).sql | 13 +++++++++++++ ...eTests.Issue4816Test(SqlServer.2019.MS).sql | 13 +++++++++++++ ...eTests.Issue4816Test(SqlServer.2019.MS).sql | 13 +++++++++++++ ...eTests.Issue4816Test(SqlServer.2019.MS).sql | 13 +++++++++++++ ...Parameter3(SqlServer.2019.MS, -0x003E ).sql | 4 +--- ...Parameter3(SqlServer.2019.MS, =0x003E ).sql | 4 +--- ...Parameter4(SqlServer.2019.MS, -0x003E ).sql | 4 +--- ...Parameter4(SqlServer.2019.MS, =0x003E ).sql | 4 +--- ...GroupingParameter(SqlServer.2019.MS,, ).sql | 6 ++---- ...ingParameter(SqlServer.2019.MS,0x003A ).sql | 6 ++---- ...ationSubqueryUpdate1(SqlServer.2019.MS).sql | 18 ++++++++++++++++++ ...ationSubqueryUpdate2(SqlServer.2019.MS).sql | 18 ++++++++++++++++++ ...estParameter3(SqlServer.2019, -0x003E ).sql | 4 +--- ...estParameter3(SqlServer.2019, =0x003E ).sql | 4 +--- ...estParameter4(SqlServer.2019, -0x003E ).sql | 4 +--- ...estParameter4(SqlServer.2019, =0x003E ).sql | 4 +--- ...ithGroupingParameter(SqlServer.2019,, ).sql | 6 ++---- ...oupingParameter(SqlServer.2019,0x003A ).sql | 6 ++---- ...ociationSubqueryUpdate1(SqlServer.2019).sql | 18 ++++++++++++++++++ ...ociationSubqueryUpdate2(SqlServer.2019).sql | 18 ++++++++++++++++++ 20 files changed, 140 insertions(+), 40 deletions(-) create mode 100644 SqlServer.2019.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql create mode 100644 SqlServer.2019.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql create mode 100644 SqlServer.2019.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql create mode 100644 SqlServer.2019.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql create mode 100644 SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2019.MS).sql create mode 100644 SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2019.MS).sql create mode 100644 SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2019).sql create mode 100644 SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2019).sql diff --git a/SqlServer.2019.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql b/SqlServer.2019.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql new file mode 100644 index 000000000000..2eac7159a16c --- /dev/null +++ b/SqlServer.2019.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2019 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2019.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql b/SqlServer.2019.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql new file mode 100644 index 000000000000..2eac7159a16c --- /dev/null +++ b/SqlServer.2019.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2019 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2019.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql b/SqlServer.2019.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql new file mode 100644 index 000000000000..2eac7159a16c --- /dev/null +++ b/SqlServer.2019.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2019 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2019.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql b/SqlServer.2019.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql new file mode 100644 index 000000000000..2eac7159a16c --- /dev/null +++ b/SqlServer.2019.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2019.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2019 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019.MS, -0x003E ).sql b/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019.MS, -0x003E ).sql index 84418188d09e..23d73b45c282 100644 --- a/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019.MS, -0x003E ).sql +++ b/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019.MS, -0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2019.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' -> ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019.MS, =0x003E ).sql b/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019.MS, =0x003E ).sql index b7ad503d0bc7..f29f52aa3f10 100644 --- a/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019.MS, =0x003E ).sql +++ b/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019.MS, =0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2019.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' => ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019.MS, -0x003E ).sql b/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019.MS, -0x003E ).sql index 80cad3b0f777..cde4f476a9a8 100644 --- a/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019.MS, -0x003E ).sql +++ b/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019.MS, -0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2019.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' -> ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019.MS, =0x003E ).sql b/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019.MS, =0x003E ).sql index 5633b1235272..a216e4155d05 100644 --- a/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019.MS, =0x003E ).sql +++ b/SqlServer.2019.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019.MS, =0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2019.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' => ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019.MS,, ).sql b/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019.MS,, ).sql index 6f00081ceb5e..bbfe029521ce 100644 --- a/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019.MS,, ).sql +++ b/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019.MS,, ).sql @@ -1,11 +1,9 @@ -- SqlServer.2019.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N', ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N', '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N', '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019.MS,0x003A ).sql b/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019.MS,0x003A ).sql index 2f197328c7f0..a4061119670a 100644 --- a/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019.MS,0x003A ).sql +++ b/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019.MS,0x003A ).sql @@ -1,11 +1,9 @@ -- SqlServer.2019.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N': ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N': '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N': '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2019.MS).sql b/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2019.MS).sql new file mode 100644 index 000000000000..f36e710d9b58 --- /dev/null +++ b/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2019.MS).sql @@ -0,0 +1,18 @@ +-- SqlServer.2019.MS SqlServer.2019 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + STRING_AGG([a_Children].[VarcharValue], ' | ') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2019.MS).sql b/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2019.MS).sql new file mode 100644 index 000000000000..06bd0ab0c3f9 --- /dev/null +++ b/SqlServer.2019.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2019.MS).sql @@ -0,0 +1,18 @@ +-- SqlServer.2019.MS SqlServer.2019 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + Coalesce(STRING_AGG(Coalesce([a_Children].[VarcharValue], ''), ', '), '') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019, -0x003E ).sql b/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019, -0x003E ).sql index b281fa4c66ca..87548e2b2649 100644 --- a/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019, -0x003E ).sql +++ b/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019, -0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' -> ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019, =0x003E ).sql b/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019, =0x003E ).sql index 47bb282b31d5..197cacefd7f6 100644 --- a/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019, =0x003E ).sql +++ b/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2019, =0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' => ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019, -0x003E ).sql b/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019, -0x003E ).sql index a89d0cb2f74c..42e89aef6cb5 100644 --- a/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019, -0x003E ).sql +++ b/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019, -0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' -> ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019, =0x003E ).sql b/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019, =0x003E ).sql index 84dfa7372d74..7b01db47072b 100644 --- a/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019, =0x003E ).sql +++ b/SqlServer.2019/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2019, =0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' => ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019,, ).sql b/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019,, ).sql index 87163ce02698..b70e41d8ad73 100644 --- a/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019,, ).sql +++ b/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019,, ).sql @@ -1,11 +1,9 @@ -- SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N', ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N', '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N', '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019,0x003A ).sql b/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019,0x003A ).sql index f9c8c5efb141..bbbb61a97a9c 100644 --- a/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019,0x003A ).sql +++ b/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2019,0x003A ).sql @@ -1,11 +1,9 @@ -- SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N': ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N': '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N': '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2019).sql b/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2019).sql new file mode 100644 index 000000000000..4f5c86b13497 --- /dev/null +++ b/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2019).sql @@ -0,0 +1,18 @@ +-- SqlServer.2019 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + STRING_AGG([a_Children].[VarcharValue], ' | ') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2019).sql b/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2019).sql new file mode 100644 index 000000000000..6453a153b8f5 --- /dev/null +++ b/SqlServer.2019/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2019).sql @@ -0,0 +1,18 @@ +-- SqlServer.2019 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + Coalesce(STRING_AGG(Coalesce([a_Children].[VarcharValue], ''), ', '), '') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + From 8f7680215e63daaf0ea17fe2153ce92e4416fa95 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 13:48:34 +0100 Subject: [PATCH 13/28] [Linux / Oracle 12c] baselines --- ...tionSubqueryUpdate1(Oracle.12.Managed).sql | 49 +++++++++++++++++++ ...tionSubqueryUpdate2(Oracle.12.Managed).sql | 49 +++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 Oracle.12.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.12.Managed).sql create mode 100644 Oracle.12.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.12.Managed).sql diff --git a/Oracle.12.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.12.Managed).sql b/Oracle.12.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.12.Managed).sql new file mode 100644 index 000000000000..6346a3c09c2e --- /dev/null +++ b/Oracle.12.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.12.Managed).sql @@ -0,0 +1,49 @@ +-- Oracle.12.Managed Oracle.Managed Oracle12 + +UPDATE + "SampleClass" +SET + ("VarcharValue", "NVarcharValue") = ( + SELECT + t1."Result_1", + t1."Result_1" + FROM + ( + SELECT + ( + SELECT + LISTAGG(a_Children."VarcharValue", ' | ') WITHIN GROUP (ORDER BY a_Children."VarcharValue") + FROM + "SampleClass" a_Children + WHERE + t_1."Id" = a_Children."Id" + ) as "Result_1", + t_1."Id", + t_1."NullableValue", + t_1."NotNullableValue", + t_1."VarcharValue", + t_1."NVarcharValue" + FROM + "SampleClass" t_1 + ) t1 + WHERE + "SampleClass"."Id" = t1."Id" AND + ("SampleClass"."NullableValue" = t1."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t1."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t1."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t1."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t1."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t1."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t1."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" t + WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + ) + diff --git a/Oracle.12.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.12.Managed).sql b/Oracle.12.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.12.Managed).sql new file mode 100644 index 000000000000..47991dfda1a9 --- /dev/null +++ b/Oracle.12.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.12.Managed).sql @@ -0,0 +1,49 @@ +-- Oracle.12.Managed Oracle.Managed Oracle12 + +UPDATE + "SampleClass" +SET + ("VarcharValue", "NVarcharValue") = ( + SELECT + t1."Result_1", + t1."Result_1" + FROM + ( + SELECT + ( + SELECT + Coalesce(LISTAGG(Coalesce(a_Children."VarcharValue", ''), ', ') WITHIN GROUP (ORDER BY a_Children."VarcharValue"), '') + FROM + "SampleClass" a_Children + WHERE + t_1."Id" = a_Children."Id" + ) as "Result_1", + t_1."Id", + t_1."NullableValue", + t_1."NotNullableValue", + t_1."VarcharValue", + t_1."NVarcharValue" + FROM + "SampleClass" t_1 + ) t1 + WHERE + "SampleClass"."Id" = t1."Id" AND + ("SampleClass"."NullableValue" = t1."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t1."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t1."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t1."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t1."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t1."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t1."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" t + WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + ) + From 551e7c20e2d5988cf4dfd9dc0a29d62b96398af7 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 13:50:28 +0100 Subject: [PATCH 14/28] [Linux / Oracle 21c] baselines --- ...tionSubqueryUpdate1(Oracle.21.Managed).sql | 49 +++++++++++++++++++ ...tionSubqueryUpdate2(Oracle.21.Managed).sql | 49 +++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 Oracle.21.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.21.Managed).sql create mode 100644 Oracle.21.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.21.Managed).sql diff --git a/Oracle.21.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.21.Managed).sql b/Oracle.21.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.21.Managed).sql new file mode 100644 index 000000000000..84464473cdc8 --- /dev/null +++ b/Oracle.21.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.21.Managed).sql @@ -0,0 +1,49 @@ +-- Oracle.21.Managed Oracle.Managed Oracle12 + +UPDATE + "SampleClass" +SET + ("VarcharValue", "NVarcharValue") = ( + SELECT + t1."Result_1", + t1."Result_1" + FROM + ( + SELECT + ( + SELECT + LISTAGG(a_Children."VarcharValue", ' | ') WITHIN GROUP (ORDER BY a_Children."VarcharValue") + FROM + "SampleClass" a_Children + WHERE + t_1."Id" = a_Children."Id" + ) as "Result_1", + t_1."Id", + t_1."NullableValue", + t_1."NotNullableValue", + t_1."VarcharValue", + t_1."NVarcharValue" + FROM + "SampleClass" t_1 + ) t1 + WHERE + "SampleClass"."Id" = t1."Id" AND + ("SampleClass"."NullableValue" = t1."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t1."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t1."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t1."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t1."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t1."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t1."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" t + WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + ) + diff --git a/Oracle.21.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.21.Managed).sql b/Oracle.21.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.21.Managed).sql new file mode 100644 index 000000000000..0da9fb3b721b --- /dev/null +++ b/Oracle.21.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.21.Managed).sql @@ -0,0 +1,49 @@ +-- Oracle.21.Managed Oracle.Managed Oracle12 + +UPDATE + "SampleClass" +SET + ("VarcharValue", "NVarcharValue") = ( + SELECT + t1."Result_1", + t1."Result_1" + FROM + ( + SELECT + ( + SELECT + Coalesce(LISTAGG(Coalesce(a_Children."VarcharValue", ''), ', ') WITHIN GROUP (ORDER BY a_Children."VarcharValue"), '') + FROM + "SampleClass" a_Children + WHERE + t_1."Id" = a_Children."Id" + ) as "Result_1", + t_1."Id", + t_1."NullableValue", + t_1."NotNullableValue", + t_1."VarcharValue", + t_1."NVarcharValue" + FROM + "SampleClass" t_1 + ) t1 + WHERE + "SampleClass"."Id" = t1."Id" AND + ("SampleClass"."NullableValue" = t1."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t1."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t1."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t1."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t1."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t1."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t1."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" t + WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + ) + From db28d6705d49234fcea1a700e2af2fc76ddecf02 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:53:24 +0000 Subject: [PATCH 15/28] [Linux / PostgreSQL 13] baselines --- ...ociationSubqueryUpdate1(PostgreSQL.13).sql | 24 +++++++++++++++++++ ...ociationSubqueryUpdate2(PostgreSQL.13).sql | 24 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 PostgreSQL.13/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.13).sql create mode 100644 PostgreSQL.13/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.13).sql diff --git a/PostgreSQL.13/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.13).sql b/PostgreSQL.13/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.13).sql new file mode 100644 index 000000000000..c575eb4207a7 --- /dev/null +++ b/PostgreSQL.13/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.13).sql @@ -0,0 +1,24 @@ +-- PostgreSQL.13 PostgreSQL + +UPDATE + "SampleClass" +SET + "VarcharValue" = t1."Result_1", + "NVarcharValue" = t1."Result_1" +FROM + "SampleClass" t + LEFT JOIN LATERAL ( + SELECT + STRING_AGG("a_Children"."VarcharValue", ' | ') as "Result_1" + FROM + "SampleClass" "a_Children" + WHERE + t."Id" = "a_Children"."Id" + ) t1 ON 1=1 +WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + diff --git a/PostgreSQL.13/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.13).sql b/PostgreSQL.13/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.13).sql new file mode 100644 index 000000000000..7db33dd59518 --- /dev/null +++ b/PostgreSQL.13/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.13).sql @@ -0,0 +1,24 @@ +-- PostgreSQL.13 PostgreSQL + +UPDATE + "SampleClass" +SET + "VarcharValue" = t1."Result_1", + "NVarcharValue" = t1."Result_1" +FROM + "SampleClass" t + LEFT JOIN LATERAL ( + SELECT + Coalesce(STRING_AGG(Coalesce("a_Children"."VarcharValue", ''), ', '), '') as "Result_1" + FROM + "SampleClass" "a_Children" + WHERE + t."Id" = "a_Children"."Id" + ) t1 ON 1=1 +WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + From 2c4ef97b2e17fcabaa7d97fbeb1bf9f82aeaf562 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:55:27 +0000 Subject: [PATCH 16/28] [Windows / SQL Server 2022] baselines --- ...eTests.Issue4816Test(SqlServer.2022.MS).sql | 13 +++++++++++++ ...eTests.Issue4816Test(SqlServer.2022.MS).sql | 13 +++++++++++++ ...eTests.Issue4816Test(SqlServer.2022.MS).sql | 13 +++++++++++++ ...eTests.Issue4816Test(SqlServer.2022.MS).sql | 13 +++++++++++++ ...Parameter3(SqlServer.2022.MS, -0x003E ).sql | 4 +--- ...Parameter3(SqlServer.2022.MS, =0x003E ).sql | 4 +--- ...Parameter4(SqlServer.2022.MS, -0x003E ).sql | 4 +--- ...Parameter4(SqlServer.2022.MS, =0x003E ).sql | 4 +--- ...GroupingParameter(SqlServer.2022.MS,, ).sql | 6 ++---- ...ingParameter(SqlServer.2022.MS,0x003A ).sql | 6 ++---- ...ationSubqueryUpdate1(SqlServer.2022.MS).sql | 18 ++++++++++++++++++ ...ationSubqueryUpdate2(SqlServer.2022.MS).sql | 18 ++++++++++++++++++ ...estParameter3(SqlServer.2022, -0x003E ).sql | 4 +--- ...estParameter3(SqlServer.2022, =0x003E ).sql | 4 +--- ...estParameter4(SqlServer.2022, -0x003E ).sql | 4 +--- ...estParameter4(SqlServer.2022, =0x003E ).sql | 4 +--- ...ithGroupingParameter(SqlServer.2022,, ).sql | 6 ++---- ...oupingParameter(SqlServer.2022,0x003A ).sql | 6 ++---- ...ociationSubqueryUpdate1(SqlServer.2022).sql | 18 ++++++++++++++++++ ...ociationSubqueryUpdate2(SqlServer.2022).sql | 18 ++++++++++++++++++ 20 files changed, 140 insertions(+), 40 deletions(-) create mode 100644 SqlServer.2022.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql create mode 100644 SqlServer.2022.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql create mode 100644 SqlServer.2022.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql create mode 100644 SqlServer.2022.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql create mode 100644 SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2022.MS).sql create mode 100644 SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2022.MS).sql create mode 100644 SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2022).sql create mode 100644 SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2022).sql diff --git a/SqlServer.2022.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql b/SqlServer.2022.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql new file mode 100644 index 000000000000..c9dbac86d23d --- /dev/null +++ b/SqlServer.2022.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2022 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2022.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql b/SqlServer.2022.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql new file mode 100644 index 000000000000..c9dbac86d23d --- /dev/null +++ b/SqlServer.2022.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2022 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2022.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql b/SqlServer.2022.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql new file mode 100644 index 000000000000..c9dbac86d23d --- /dev/null +++ b/SqlServer.2022.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2022 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2022.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql b/SqlServer.2022.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql new file mode 100644 index 000000000000..c9dbac86d23d --- /dev/null +++ b/SqlServer.2022.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2022.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2022 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022.MS, -0x003E ).sql b/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022.MS, -0x003E ).sql index 37023f24c450..5734d73f6699 100644 --- a/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022.MS, -0x003E ).sql +++ b/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022.MS, -0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2022.MS SqlServer.2022 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' -> ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022.MS, =0x003E ).sql b/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022.MS, =0x003E ).sql index ed0eb272a813..8053b1bfde09 100644 --- a/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022.MS, =0x003E ).sql +++ b/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022.MS, =0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2022.MS SqlServer.2022 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' => ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022.MS, -0x003E ).sql b/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022.MS, -0x003E ).sql index 0284224e263a..1b0439878a4b 100644 --- a/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022.MS, -0x003E ).sql +++ b/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022.MS, -0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2022.MS SqlServer.2022 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' -> ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022.MS, =0x003E ).sql b/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022.MS, =0x003E ).sql index 18b1fe4957ee..518a8473fd33 100644 --- a/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022.MS, =0x003E ).sql +++ b/SqlServer.2022.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022.MS, =0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2022.MS SqlServer.2022 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' => ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022.MS,, ).sql b/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022.MS,, ).sql index aca324b25519..fa86fe6adb15 100644 --- a/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022.MS,, ).sql +++ b/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022.MS,, ).sql @@ -1,11 +1,9 @@ -- SqlServer.2022.MS SqlServer.2022 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N', ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N', '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N', '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022.MS,0x003A ).sql b/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022.MS,0x003A ).sql index fbac2e9a906f..44031202a256 100644 --- a/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022.MS,0x003A ).sql +++ b/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022.MS,0x003A ).sql @@ -1,11 +1,9 @@ -- SqlServer.2022.MS SqlServer.2022 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N': ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N': '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N': '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2022.MS).sql b/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2022.MS).sql new file mode 100644 index 000000000000..51dbc37aa429 --- /dev/null +++ b/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2022.MS).sql @@ -0,0 +1,18 @@ +-- SqlServer.2022.MS SqlServer.2022 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + STRING_AGG([a_Children].[VarcharValue], ' | ') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2022.MS).sql b/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2022.MS).sql new file mode 100644 index 000000000000..4d77b969ee4b --- /dev/null +++ b/SqlServer.2022.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2022.MS).sql @@ -0,0 +1,18 @@ +-- SqlServer.2022.MS SqlServer.2022 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + Coalesce(STRING_AGG(Coalesce([a_Children].[VarcharValue], ''), ', '), '') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022, -0x003E ).sql b/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022, -0x003E ).sql index d36775c78a4d..29e56b58a3d4 100644 --- a/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022, -0x003E ).sql +++ b/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022, -0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2022 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' -> ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022, =0x003E ).sql b/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022, =0x003E ).sql index 018133600711..a08252fe7ac0 100644 --- a/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022, =0x003E ).sql +++ b/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2022, =0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2022 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' => ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022, -0x003E ).sql b/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022, -0x003E ).sql index f2dc927979ba..6337cde59c6c 100644 --- a/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022, -0x003E ).sql +++ b/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022, -0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2022 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' -> ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022, =0x003E ).sql b/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022, =0x003E ).sql index ea5fe759b4a7..9d4b03ae46e4 100644 --- a/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022, =0x003E ).sql +++ b/SqlServer.2022/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2022, =0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2022 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' => ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022,, ).sql b/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022,, ).sql index 5df296094621..f2eb1368c966 100644 --- a/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022,, ).sql +++ b/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022,, ).sql @@ -1,11 +1,9 @@ -- SqlServer.2022 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N', ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N', '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N', '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022,0x003A ).sql b/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022,0x003A ).sql index 700f1ea2a938..9a70a8e3b38e 100644 --- a/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022,0x003A ).sql +++ b/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2022,0x003A ).sql @@ -1,11 +1,9 @@ -- SqlServer.2022 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N': ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N': '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N': '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2022).sql b/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2022).sql new file mode 100644 index 000000000000..cf5b4af512ac --- /dev/null +++ b/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2022).sql @@ -0,0 +1,18 @@ +-- SqlServer.2022 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + STRING_AGG([a_Children].[VarcharValue], ' | ') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2022).sql b/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2022).sql new file mode 100644 index 000000000000..357af05e1692 --- /dev/null +++ b/SqlServer.2022/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2022).sql @@ -0,0 +1,18 @@ +-- SqlServer.2022 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + Coalesce(STRING_AGG(Coalesce([a_Children].[VarcharValue], ''), ', '), '') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + From 7ecb246424884d0e399e06fdd9a5197478621208 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:56:26 +0000 Subject: [PATCH 17/28] [Linux / PostgreSQL 15] baselines --- ...ociationSubqueryUpdate1(PostgreSQL.15).sql | 24 +++++++++++++++++++ ...ociationSubqueryUpdate2(PostgreSQL.15).sql | 24 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 PostgreSQL.15/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.15).sql create mode 100644 PostgreSQL.15/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.15).sql diff --git a/PostgreSQL.15/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.15).sql b/PostgreSQL.15/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.15).sql new file mode 100644 index 000000000000..a91f08c1d18b --- /dev/null +++ b/PostgreSQL.15/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.15).sql @@ -0,0 +1,24 @@ +-- PostgreSQL.15 PostgreSQL + +UPDATE + "SampleClass" +SET + "VarcharValue" = t1."Result_1", + "NVarcharValue" = t1."Result_1" +FROM + "SampleClass" t + LEFT JOIN LATERAL ( + SELECT + STRING_AGG("a_Children"."VarcharValue", ' | ') as "Result_1" + FROM + "SampleClass" "a_Children" + WHERE + t."Id" = "a_Children"."Id" + ) t1 ON 1=1 +WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + diff --git a/PostgreSQL.15/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.15).sql b/PostgreSQL.15/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.15).sql new file mode 100644 index 000000000000..be5e6802edcb --- /dev/null +++ b/PostgreSQL.15/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.15).sql @@ -0,0 +1,24 @@ +-- PostgreSQL.15 PostgreSQL + +UPDATE + "SampleClass" +SET + "VarcharValue" = t1."Result_1", + "NVarcharValue" = t1."Result_1" +FROM + "SampleClass" t + LEFT JOIN LATERAL ( + SELECT + Coalesce(STRING_AGG(Coalesce("a_Children"."VarcharValue", ''), ', '), '') as "Result_1" + FROM + "SampleClass" "a_Children" + WHERE + t."Id" = "a_Children"."Id" + ) t1 ON 1=1 +WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + From 77f17a270de2cbedbea96eecd89bb3ef0edccd58 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 13:58:26 +0100 Subject: [PATCH 18/28] [Linux / Oracle 19c] baselines --- ...tionSubqueryUpdate1(Oracle.19.Managed).sql | 49 +++++++++++++++++++ ...tionSubqueryUpdate2(Oracle.19.Managed).sql | 49 +++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 Oracle.19.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.19.Managed).sql create mode 100644 Oracle.19.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.19.Managed).sql diff --git a/Oracle.19.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.19.Managed).sql b/Oracle.19.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.19.Managed).sql new file mode 100644 index 000000000000..42ac761bf677 --- /dev/null +++ b/Oracle.19.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.19.Managed).sql @@ -0,0 +1,49 @@ +-- Oracle.19.Managed Oracle.Managed Oracle12 + +UPDATE + "SampleClass" +SET + ("VarcharValue", "NVarcharValue") = ( + SELECT + t1."Result_1", + t1."Result_1" + FROM + ( + SELECT + ( + SELECT + LISTAGG(a_Children."VarcharValue", ' | ') WITHIN GROUP (ORDER BY a_Children."VarcharValue") + FROM + "SampleClass" a_Children + WHERE + t_1."Id" = a_Children."Id" + ) as "Result_1", + t_1."Id", + t_1."NullableValue", + t_1."NotNullableValue", + t_1."VarcharValue", + t_1."NVarcharValue" + FROM + "SampleClass" t_1 + ) t1 + WHERE + "SampleClass"."Id" = t1."Id" AND + ("SampleClass"."NullableValue" = t1."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t1."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t1."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t1."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t1."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t1."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t1."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" t + WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + ) + diff --git a/Oracle.19.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.19.Managed).sql b/Oracle.19.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.19.Managed).sql new file mode 100644 index 000000000000..d20b43348efc --- /dev/null +++ b/Oracle.19.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.19.Managed).sql @@ -0,0 +1,49 @@ +-- Oracle.19.Managed Oracle.Managed Oracle12 + +UPDATE + "SampleClass" +SET + ("VarcharValue", "NVarcharValue") = ( + SELECT + t1."Result_1", + t1."Result_1" + FROM + ( + SELECT + ( + SELECT + Coalesce(LISTAGG(Coalesce(a_Children."VarcharValue", ''), ', ') WITHIN GROUP (ORDER BY a_Children."VarcharValue"), '') + FROM + "SampleClass" a_Children + WHERE + t_1."Id" = a_Children."Id" + ) as "Result_1", + t_1."Id", + t_1."NullableValue", + t_1."NotNullableValue", + t_1."VarcharValue", + t_1."NVarcharValue" + FROM + "SampleClass" t_1 + ) t1 + WHERE + "SampleClass"."Id" = t1."Id" AND + ("SampleClass"."NullableValue" = t1."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t1."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t1."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t1."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t1."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t1."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t1."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" t + WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + ) + From 261cd34e1b6e6866a81da7c3c66c20f3620716e9 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 12:58:32 +0000 Subject: [PATCH 19/28] [Linux / PostgreSQL 14] baselines --- ...ociationSubqueryUpdate1(PostgreSQL.14).sql | 24 +++++++++++++++++++ ...ociationSubqueryUpdate2(PostgreSQL.14).sql | 24 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 PostgreSQL.14/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.14).sql create mode 100644 PostgreSQL.14/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.14).sql diff --git a/PostgreSQL.14/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.14).sql b/PostgreSQL.14/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.14).sql new file mode 100644 index 000000000000..e5682eb5d29f --- /dev/null +++ b/PostgreSQL.14/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.14).sql @@ -0,0 +1,24 @@ +-- PostgreSQL.14 PostgreSQL.13 PostgreSQL + +UPDATE + "SampleClass" +SET + "VarcharValue" = t1."Result_1", + "NVarcharValue" = t1."Result_1" +FROM + "SampleClass" t + LEFT JOIN LATERAL ( + SELECT + STRING_AGG("a_Children"."VarcharValue", ' | ') as "Result_1" + FROM + "SampleClass" "a_Children" + WHERE + t."Id" = "a_Children"."Id" + ) t1 ON 1=1 +WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + diff --git a/PostgreSQL.14/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.14).sql b/PostgreSQL.14/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.14).sql new file mode 100644 index 000000000000..39a15f909f30 --- /dev/null +++ b/PostgreSQL.14/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.14).sql @@ -0,0 +1,24 @@ +-- PostgreSQL.14 PostgreSQL.13 PostgreSQL + +UPDATE + "SampleClass" +SET + "VarcharValue" = t1."Result_1", + "NVarcharValue" = t1."Result_1" +FROM + "SampleClass" t + LEFT JOIN LATERAL ( + SELECT + Coalesce(STRING_AGG(Coalesce("a_Children"."VarcharValue", ''), ', '), '') as "Result_1" + FROM + "SampleClass" "a_Children" + WHERE + t."Id" = "a_Children"."Id" + ) t1 ON 1=1 +WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + From e20f0bddd0471cb8f659bb32787ba81719be2729 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 13:01:52 +0000 Subject: [PATCH 20/28] [Linux / PostgreSQL 16] baselines --- ...ociationSubqueryUpdate1(PostgreSQL.16).sql | 24 +++++++++++++++++++ ...ociationSubqueryUpdate2(PostgreSQL.16).sql | 24 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 PostgreSQL.16/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.16).sql create mode 100644 PostgreSQL.16/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.16).sql diff --git a/PostgreSQL.16/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.16).sql b/PostgreSQL.16/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.16).sql new file mode 100644 index 000000000000..dac56aba9d86 --- /dev/null +++ b/PostgreSQL.16/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.16).sql @@ -0,0 +1,24 @@ +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +UPDATE + "SampleClass" +SET + "VarcharValue" = t1."Result_1", + "NVarcharValue" = t1."Result_1" +FROM + "SampleClass" t + LEFT JOIN LATERAL ( + SELECT + STRING_AGG("a_Children"."VarcharValue", ' | ') as "Result_1" + FROM + "SampleClass" "a_Children" + WHERE + t."Id" = "a_Children"."Id" + ) t1 ON 1=1 +WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + diff --git a/PostgreSQL.16/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.16).sql b/PostgreSQL.16/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.16).sql new file mode 100644 index 000000000000..944016837a54 --- /dev/null +++ b/PostgreSQL.16/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.16).sql @@ -0,0 +1,24 @@ +-- PostgreSQL.16 PostgreSQL.15 PostgreSQL + +UPDATE + "SampleClass" +SET + "VarcharValue" = t1."Result_1", + "NVarcharValue" = t1."Result_1" +FROM + "SampleClass" t + LEFT JOIN LATERAL ( + SELECT + Coalesce(STRING_AGG(Coalesce("a_Children"."VarcharValue", ''), ', '), '') as "Result_1" + FROM + "SampleClass" "a_Children" + WHERE + t."Id" = "a_Children"."Id" + ) t1 ON 1=1 +WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + From 71b65f3930269f5cd3802d44cb8b41fc32e4eac6 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 13:02:15 +0000 Subject: [PATCH 21/28] [Linux / PostgreSQL 17] baselines --- ...ociationSubqueryUpdate1(PostgreSQL.17).sql | 24 +++++++++++++++++++ ...ociationSubqueryUpdate2(PostgreSQL.17).sql | 24 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 PostgreSQL.17/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.17).sql create mode 100644 PostgreSQL.17/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.17).sql diff --git a/PostgreSQL.17/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.17).sql b/PostgreSQL.17/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.17).sql new file mode 100644 index 000000000000..2eac03b2873e --- /dev/null +++ b/PostgreSQL.17/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.17).sql @@ -0,0 +1,24 @@ +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +UPDATE + "SampleClass" +SET + "VarcharValue" = t1."Result_1", + "NVarcharValue" = t1."Result_1" +FROM + "SampleClass" t + LEFT JOIN LATERAL ( + SELECT + STRING_AGG("a_Children"."VarcharValue", ' | ') as "Result_1" + FROM + "SampleClass" "a_Children" + WHERE + t."Id" = "a_Children"."Id" + ) t1 ON 1=1 +WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + diff --git a/PostgreSQL.17/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.17).sql b/PostgreSQL.17/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.17).sql new file mode 100644 index 000000000000..62223493d03a --- /dev/null +++ b/PostgreSQL.17/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.17).sql @@ -0,0 +1,24 @@ +-- PostgreSQL.17 PostgreSQL.15 PostgreSQL + +UPDATE + "SampleClass" +SET + "VarcharValue" = t1."Result_1", + "NVarcharValue" = t1."Result_1" +FROM + "SampleClass" t + LEFT JOIN LATERAL ( + SELECT + Coalesce(STRING_AGG(Coalesce("a_Children"."VarcharValue", ''), ', '), '') as "Result_1" + FROM + "SampleClass" "a_Children" + WHERE + t."Id" = "a_Children"."Id" + ) t1 ON 1=1 +WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + From 2654e0cc53ea2aac847140fe4fdabce432c76f37 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 13:03:19 +0000 Subject: [PATCH 22/28] [Windows / SQL Server 2025] baselines --- ...eTests.Issue4816Test(SqlServer.2025.MS).sql | 13 +++++++++++++ ...eTests.Issue4816Test(SqlServer.2025.MS).sql | 13 +++++++++++++ ...eTests.Issue4816Test(SqlServer.2025.MS).sql | 13 +++++++++++++ ...eTests.Issue4816Test(SqlServer.2025.MS).sql | 13 +++++++++++++ ...ValueConvertInMapper(SqlServer.2025.MS).sql | 2 +- ...s.LeftJoinWithFilter(SqlServer.2025.MS).sql | 6 +++--- ...LeftJoinWithSubquery(SqlServer.2025.MS).sql | 6 +++--- ...ests.RightJoinSimple(SqlServer.2025.MS).sql | 6 +++--- ...JoinWithCompositeKey(SqlServer.2025.MS).sql | 6 +++--- ....RightJoinWithFilter(SqlServer.2025.MS).sql | 6 +++--- ...tJoinWithNullableKey(SqlServer.2025.MS).sql | 4 ++-- ...ightJoinWithSubquery(SqlServer.2025.MS).sql | 6 +++--- ...Parameter3(SqlServer.2025.MS, -0x003E ).sql | 4 +--- ...Parameter3(SqlServer.2025.MS, =0x003E ).sql | 4 +--- ...Parameter4(SqlServer.2025.MS, -0x003E ).sql | 4 +--- ...Parameter4(SqlServer.2025.MS, =0x003E ).sql | 4 +--- ...GroupingParameter(SqlServer.2025.MS,, ).sql | 6 ++---- ...ingParameter(SqlServer.2025.MS,0x003A ).sql | 6 ++---- ...ationSubqueryUpdate1(SqlServer.2025.MS).sql | 18 ++++++++++++++++++ ...ationSubqueryUpdate2(SqlServer.2025.MS).sql | 18 ++++++++++++++++++ ...ullValueConvertInMapper(SqlServer.2025).sql | 2 +- ...ests.LeftJoinWithFilter(SqlServer.2025).sql | 6 +++--- ...ts.LeftJoinWithSubquery(SqlServer.2025).sql | 6 +++--- ...inTests.RightJoinSimple(SqlServer.2025).sql | 6 +++--- ...ghtJoinWithCompositeKey(SqlServer.2025).sql | 6 +++--- ...sts.RightJoinWithFilter(SqlServer.2025).sql | 6 +++--- ...ightJoinWithNullableKey(SqlServer.2025).sql | 4 ++-- ...s.RightJoinWithSubquery(SqlServer.2025).sql | 6 +++--- ...estParameter3(SqlServer.2025, -0x003E ).sql | 4 +--- ...estParameter3(SqlServer.2025, =0x003E ).sql | 4 +--- ...estParameter4(SqlServer.2025, -0x003E ).sql | 4 +--- ...estParameter4(SqlServer.2025, =0x003E ).sql | 4 +--- ...ithGroupingParameter(SqlServer.2025,, ).sql | 6 ++---- ...oupingParameter(SqlServer.2025,0x003A ).sql | 6 ++---- ...ociationSubqueryUpdate1(SqlServer.2025).sql | 18 ++++++++++++++++++ ...ociationSubqueryUpdate2(SqlServer.2025).sql | 18 ++++++++++++++++++ 36 files changed, 182 insertions(+), 82 deletions(-) create mode 100644 SqlServer.2025.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql create mode 100644 SqlServer.2025.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql create mode 100644 SqlServer.2025.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql create mode 100644 SqlServer.2025.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql create mode 100644 SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2025.MS).sql create mode 100644 SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2025.MS).sql create mode 100644 SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2025).sql create mode 100644 SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2025).sql diff --git a/SqlServer.2025.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql b/SqlServer.2025.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql new file mode 100644 index 000000000000..84e24678381a --- /dev/null +++ b/SqlServer.2025.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2025 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2025.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql b/SqlServer.2025.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql new file mode 100644 index 000000000000..84e24678381a --- /dev/null +++ b/SqlServer.2025.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2025 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2025.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql b/SqlServer.2025.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql new file mode 100644 index 000000000000..84e24678381a --- /dev/null +++ b/SqlServer.2025.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2025 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2025.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql b/SqlServer.2025.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql new file mode 100644 index 000000000000..84e24678381a --- /dev/null +++ b/SqlServer.2025.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.2025.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2025 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.2025.MS/Tests/Linq/MappingTests/Tests.Linq.MappingTests.NullValueConvertInMapper(SqlServer.2025.MS).sql b/SqlServer.2025.MS/Tests/Linq/MappingTests/Tests.Linq.MappingTests.NullValueConvertInMapper(SqlServer.2025.MS).sql index 7c570fc86f7d..098a4dd8b3b3 100644 --- a/SqlServer.2025.MS/Tests/Linq/MappingTests/Tests.Linq.MappingTests.NullValueConvertInMapper(SqlServer.2025.MS).sql +++ b/SqlServer.2025.MS/Tests/Linq/MappingTests/Tests.Linq.MappingTests.NullValueConvertInMapper(SqlServer.2025.MS).sql @@ -1,4 +1,4 @@ --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [p].[Value1] diff --git a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithFilter(SqlServer.2025.MS).sql b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithFilter(SqlServer.2025.MS).sql index 0e91f7e4ec86..bd322a5e7e7c 100644 --- a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithFilter(SqlServer.2025.MS).sql +++ b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithFilter(SqlServer.2025.MS).sql @@ -1,4 +1,4 @@ --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [p].[ParentID], @@ -11,7 +11,7 @@ FROM WHERE [p].[ParentID] >= 4 --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [t1].[ParentID], @@ -19,7 +19,7 @@ SELECT FROM [Parent] [t1] --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithSubquery(SqlServer.2025.MS).sql b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithSubquery(SqlServer.2025.MS).sql index d406d6df926e..78b3759fb5c6 100644 --- a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithSubquery(SqlServer.2025.MS).sql +++ b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithSubquery(SqlServer.2025.MS).sql @@ -1,4 +1,4 @@ --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 DECLARE @take Int -- Int32 SET @take = 10 @@ -16,7 +16,7 @@ FROM ) [p_1] LEFT JOIN [Child] [c_1] ON [p_1].[ParentID] = [c_1].[ParentID] --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [t1].[ParentID], @@ -24,7 +24,7 @@ SELECT FROM [Parent] [t1] --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinSimple(SqlServer.2025.MS).sql b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinSimple(SqlServer.2025.MS).sql index 5429529cc7d0..c788772fa646 100644 --- a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinSimple(SqlServer.2025.MS).sql +++ b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinSimple(SqlServer.2025.MS).sql @@ -1,4 +1,4 @@ --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [p].[ParentID], @@ -7,7 +7,7 @@ FROM [Parent] [p] RIGHT JOIN [Child] [c_1] ON [p].[ParentID] = [c_1].[ParentID] --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [t1].[ParentID], @@ -15,7 +15,7 @@ SELECT FROM [Parent] [t1] --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithCompositeKey(SqlServer.2025.MS).sql b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithCompositeKey(SqlServer.2025.MS).sql index 9ff2b0e02d68..228eb36aeada 100644 --- a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithCompositeKey(SqlServer.2025.MS).sql +++ b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithCompositeKey(SqlServer.2025.MS).sql @@ -1,4 +1,4 @@ --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [p].[ParentID], @@ -9,7 +9,7 @@ FROM [Parent] [p] RIGHT JOIN [Child] [c_1] ON [p].[ParentID] = [c_1].[ParentID] AND Coalesce([p].[Value1], 0) = [c_1].[ParentID] --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [t1].[ParentID], @@ -17,7 +17,7 @@ SELECT FROM [Parent] [t1] --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithFilter(SqlServer.2025.MS).sql b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithFilter(SqlServer.2025.MS).sql index 01ac03d1ff4e..1f7c88bc8b29 100644 --- a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithFilter(SqlServer.2025.MS).sql +++ b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithFilter(SqlServer.2025.MS).sql @@ -1,4 +1,4 @@ --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [p_1].[ParentID], @@ -17,7 +17,7 @@ FROM ) [p_1] RIGHT JOIN [Child] [c_1] ON [p_1].[ParentID] = [c_1].[ParentID] --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [t1].[ParentID], @@ -25,7 +25,7 @@ SELECT FROM [Parent] [t1] --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithNullableKey(SqlServer.2025.MS).sql b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithNullableKey(SqlServer.2025.MS).sql index 638a11beb58a..dcdfa0a73938 100644 --- a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithNullableKey(SqlServer.2025.MS).sql +++ b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithNullableKey(SqlServer.2025.MS).sql @@ -1,4 +1,4 @@ --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [p2].[ParentID], @@ -7,7 +7,7 @@ FROM [Parent] [p1] RIGHT JOIN [Parent] [p2] ON [p1].[ParentID] = [p2].[ParentID] AND ([p1].[Value1] = [p2].[Value1] OR [p1].[Value1] IS NULL AND [p2].[Value1] IS NULL) --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithSubquery(SqlServer.2025.MS).sql b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithSubquery(SqlServer.2025.MS).sql index a4adc629e8e1..115d6a8f6d1f 100644 --- a/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithSubquery(SqlServer.2025.MS).sql +++ b/SqlServer.2025.MS/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithSubquery(SqlServer.2025.MS).sql @@ -1,4 +1,4 @@ --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 DECLARE @take Int -- Int32 SET @take = 10 @@ -16,7 +16,7 @@ FROM ) [p_1] RIGHT JOIN [Child] [c_1] ON [p_1].[ParentID] = [c_1].[ParentID] --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [t1].[ParentID], @@ -24,7 +24,7 @@ SELECT FROM [Parent] [t1] --- SqlServer.2025.MS SqlServer.2025 SqlServer.2022 +-- SqlServer.2025.MS SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025.MS, -0x003E ).sql b/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025.MS, -0x003E ).sql index 4251f192a501..d17491c6b6fa 100644 --- a/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025.MS, -0x003E ).sql +++ b/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025.MS, -0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2025.MS SqlServer.2025 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' -> ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025.MS, =0x003E ).sql b/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025.MS, =0x003E ).sql index 2d17fb933016..ff98fe532762 100644 --- a/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025.MS, =0x003E ).sql +++ b/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025.MS, =0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2025.MS SqlServer.2025 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' => ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025.MS, -0x003E ).sql b/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025.MS, -0x003E ).sql index 2da9d9650d91..2579aa6271e9 100644 --- a/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025.MS, -0x003E ).sql +++ b/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025.MS, -0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2025.MS SqlServer.2025 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' -> ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025.MS, =0x003E ).sql b/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025.MS, =0x003E ).sql index c56e996e335f..f14960cc6c89 100644 --- a/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025.MS, =0x003E ).sql +++ b/SqlServer.2025.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025.MS, =0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2025.MS SqlServer.2025 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' => ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025.MS,, ).sql b/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025.MS,, ).sql index ba1e2cdd7701..151d4eea9e21 100644 --- a/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025.MS,, ).sql +++ b/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025.MS,, ).sql @@ -1,11 +1,9 @@ -- SqlServer.2025.MS SqlServer.2025 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N', ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N', '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N', '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025.MS,0x003A ).sql b/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025.MS,0x003A ).sql index 9d1a907564b7..6526c7f09c05 100644 --- a/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025.MS,0x003A ).sql +++ b/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025.MS,0x003A ).sql @@ -1,11 +1,9 @@ -- SqlServer.2025.MS SqlServer.2025 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N': ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N': '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N': '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2025.MS).sql b/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2025.MS).sql new file mode 100644 index 000000000000..5af7eccbe389 --- /dev/null +++ b/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2025.MS).sql @@ -0,0 +1,18 @@ +-- SqlServer.2025.MS SqlServer.2025 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + STRING_AGG([a_Children].[VarcharValue], ' | ') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2025.MS).sql b/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2025.MS).sql new file mode 100644 index 000000000000..9455ac957793 --- /dev/null +++ b/SqlServer.2025.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2025.MS).sql @@ -0,0 +1,18 @@ +-- SqlServer.2025.MS SqlServer.2025 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + Coalesce(STRING_AGG(Coalesce([a_Children].[VarcharValue], ''), ', '), '') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.2025/Tests/Linq/MappingTests/Tests.Linq.MappingTests.NullValueConvertInMapper(SqlServer.2025).sql b/SqlServer.2025/Tests/Linq/MappingTests/Tests.Linq.MappingTests.NullValueConvertInMapper(SqlServer.2025).sql index 20266d9e6ca2..5b333068d0ce 100644 --- a/SqlServer.2025/Tests/Linq/MappingTests/Tests.Linq.MappingTests.NullValueConvertInMapper(SqlServer.2025).sql +++ b/SqlServer.2025/Tests/Linq/MappingTests/Tests.Linq.MappingTests.NullValueConvertInMapper(SqlServer.2025).sql @@ -1,4 +1,4 @@ --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [p].[Value1] diff --git a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithFilter(SqlServer.2025).sql b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithFilter(SqlServer.2025).sql index 39b772b41f11..013b147c05b8 100644 --- a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithFilter(SqlServer.2025).sql +++ b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithFilter(SqlServer.2025).sql @@ -1,4 +1,4 @@ --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [p].[ParentID], @@ -11,7 +11,7 @@ FROM WHERE [p].[ParentID] >= 4 --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [t1].[ParentID], @@ -19,7 +19,7 @@ SELECT FROM [Parent] [t1] --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithSubquery(SqlServer.2025).sql b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithSubquery(SqlServer.2025).sql index cfac5e8588c4..6b08361948ff 100644 --- a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithSubquery(SqlServer.2025).sql +++ b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.LeftJoinWithSubquery(SqlServer.2025).sql @@ -1,4 +1,4 @@ --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 DECLARE @take Int -- Int32 SET @take = 10 @@ -16,7 +16,7 @@ FROM ) [p_1] LEFT JOIN [Child] [c_1] ON [p_1].[ParentID] = [c_1].[ParentID] --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [t1].[ParentID], @@ -24,7 +24,7 @@ SELECT FROM [Parent] [t1] --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinSimple(SqlServer.2025).sql b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinSimple(SqlServer.2025).sql index 4b66cfe5f1f9..b608aff81c4e 100644 --- a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinSimple(SqlServer.2025).sql +++ b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinSimple(SqlServer.2025).sql @@ -1,4 +1,4 @@ --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [p].[ParentID], @@ -7,7 +7,7 @@ FROM [Parent] [p] RIGHT JOIN [Child] [c_1] ON [p].[ParentID] = [c_1].[ParentID] --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [t1].[ParentID], @@ -15,7 +15,7 @@ SELECT FROM [Parent] [t1] --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithCompositeKey(SqlServer.2025).sql b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithCompositeKey(SqlServer.2025).sql index b4a74a53b277..62738d0675b9 100644 --- a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithCompositeKey(SqlServer.2025).sql +++ b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithCompositeKey(SqlServer.2025).sql @@ -1,4 +1,4 @@ --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [p].[ParentID], @@ -9,7 +9,7 @@ FROM [Parent] [p] RIGHT JOIN [Child] [c_1] ON [p].[ParentID] = [c_1].[ParentID] AND Coalesce([p].[Value1], 0) = [c_1].[ParentID] --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [t1].[ParentID], @@ -17,7 +17,7 @@ SELECT FROM [Parent] [t1] --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithFilter(SqlServer.2025).sql b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithFilter(SqlServer.2025).sql index e1f8b6e46d58..1854115ea0a4 100644 --- a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithFilter(SqlServer.2025).sql +++ b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithFilter(SqlServer.2025).sql @@ -1,4 +1,4 @@ --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [p_1].[ParentID], @@ -17,7 +17,7 @@ FROM ) [p_1] RIGHT JOIN [Child] [c_1] ON [p_1].[ParentID] = [c_1].[ParentID] --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [t1].[ParentID], @@ -25,7 +25,7 @@ SELECT FROM [Parent] [t1] --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithNullableKey(SqlServer.2025).sql b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithNullableKey(SqlServer.2025).sql index 34da295f0f89..d0aa070c0918 100644 --- a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithNullableKey(SqlServer.2025).sql +++ b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithNullableKey(SqlServer.2025).sql @@ -1,4 +1,4 @@ --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [p2].[ParentID], @@ -7,7 +7,7 @@ FROM [Parent] [p1] RIGHT JOIN [Parent] [p2] ON [p1].[ParentID] = [p2].[ParentID] AND ([p1].[Value1] = [p2].[Value1] OR [p1].[Value1] IS NULL AND [p2].[Value1] IS NULL) --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithSubquery(SqlServer.2025).sql b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithSubquery(SqlServer.2025).sql index 24e3262d2ce8..b99fc5832c29 100644 --- a/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithSubquery(SqlServer.2025).sql +++ b/SqlServer.2025/Tests/Linq/Net10JoinTests/Tests.Linq.Net10JoinTests.RightJoinWithSubquery(SqlServer.2025).sql @@ -1,4 +1,4 @@ --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 DECLARE @take Int -- Int32 SET @take = 10 @@ -16,7 +16,7 @@ FROM ) [p_1] RIGHT JOIN [Child] [c_1] ON [p_1].[ParentID] = [c_1].[ParentID] --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [t1].[ParentID], @@ -24,7 +24,7 @@ SELECT FROM [Parent] [t1] --- SqlServer.2025 SqlServer.2022 +-- SqlServer.2025 SELECT [t1].[ParentID], diff --git a/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025, -0x003E ).sql b/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025, -0x003E ).sql index cd67eaecb09b..fd6892b4e242 100644 --- a/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025, -0x003E ).sql +++ b/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025, -0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2025 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' -> ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025, =0x003E ).sql b/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025, =0x003E ).sql index 9f8972c3e72f..af9b9d84f597 100644 --- a/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025, =0x003E ).sql +++ b/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.2025, =0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.2025 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' => ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025, -0x003E ).sql b/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025, -0x003E ).sql index ba02ca480406..46355b43ae76 100644 --- a/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025, -0x003E ).sql +++ b/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025, -0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2025 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' -> ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025, =0x003E ).sql b/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025, =0x003E ).sql index 6d54220ad836..591b584b8fe8 100644 --- a/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025, =0x003E ).sql +++ b/SqlServer.2025/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.2025, =0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.2025 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' => ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025,, ).sql b/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025,, ).sql index 08be96925c31..7344e8e9bd9c 100644 --- a/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025,, ).sql +++ b/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025,, ).sql @@ -1,11 +1,9 @@ -- SqlServer.2025 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N', ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N', '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N', '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025,0x003A ).sql b/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025,0x003A ).sql index 631899e02bd0..37caab144a09 100644 --- a/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025,0x003A ).sql +++ b/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.2025,0x003A ).sql @@ -1,11 +1,9 @@ -- SqlServer.2025 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N': ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N': '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N': '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2025).sql b/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2025).sql new file mode 100644 index 000000000000..362511754aae --- /dev/null +++ b/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.2025).sql @@ -0,0 +1,18 @@ +-- SqlServer.2025 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + STRING_AGG([a_Children].[VarcharValue], ' | ') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2025).sql b/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2025).sql new file mode 100644 index 000000000000..5adb4137d77a --- /dev/null +++ b/SqlServer.2025/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.2025).sql @@ -0,0 +1,18 @@ +-- SqlServer.2025 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + Coalesce(STRING_AGG(Coalesce([a_Children].[VarcharValue], ''), ', '), '') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + From 84a31203768e24d9f5b9e475979887a9cdea5c2d Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 13:03:58 +0000 Subject: [PATCH 23/28] [Linux / PostgreSQL 18] baselines --- ...ociationSubqueryUpdate1(PostgreSQL.18).sql | 24 +++++++++++++++++++ ...ociationSubqueryUpdate2(PostgreSQL.18).sql | 24 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 PostgreSQL.18/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.18).sql create mode 100644 PostgreSQL.18/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.18).sql diff --git a/PostgreSQL.18/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.18).sql b/PostgreSQL.18/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.18).sql new file mode 100644 index 000000000000..46b8d00c9c3e --- /dev/null +++ b/PostgreSQL.18/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(PostgreSQL.18).sql @@ -0,0 +1,24 @@ +-- PostgreSQL.18 PostgreSQL + +UPDATE + "SampleClass" +SET + "VarcharValue" = t1."Result_1", + "NVarcharValue" = t1."Result_1" +FROM + "SampleClass" t + LEFT JOIN LATERAL ( + SELECT + STRING_AGG("a_Children"."VarcharValue", ' | ') as "Result_1" + FROM + "SampleClass" "a_Children" + WHERE + t."Id" = "a_Children"."Id" + ) t1 ON 1=1 +WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + diff --git a/PostgreSQL.18/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.18).sql b/PostgreSQL.18/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.18).sql new file mode 100644 index 000000000000..11f6cfab7e22 --- /dev/null +++ b/PostgreSQL.18/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(PostgreSQL.18).sql @@ -0,0 +1,24 @@ +-- PostgreSQL.18 PostgreSQL + +UPDATE + "SampleClass" +SET + "VarcharValue" = t1."Result_1", + "NVarcharValue" = t1."Result_1" +FROM + "SampleClass" t + LEFT JOIN LATERAL ( + SELECT + Coalesce(STRING_AGG(Coalesce("a_Children"."VarcharValue", ''), ', '), '') as "Result_1" + FROM + "SampleClass" "a_Children" + WHERE + t."Id" = "a_Children"."Id" + ) t1 ON 1=1 +WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + From 4c0e34e9d0425e59ae99cd28b3c477512052fbef Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 14:05:04 +0100 Subject: [PATCH 24/28] [Linux / Oracle 18c] baselines --- ...ingAttributes(Oracle.18.Managed).sql.other | 88 +++++++++++++++++++ ...tionSubqueryUpdate1(Oracle.18.Managed).sql | 49 +++++++++++ ...tionSubqueryUpdate2(Oracle.18.Managed).sql | 49 +++++++++++ 3 files changed, 186 insertions(+) create mode 100644 Oracle.18.Managed/Tests/Linq/ComplexTests2/Tests.Linq.ComplexTests2.TestInsertUsingDerivedObjectUsingAttributes(Oracle.18.Managed).sql.other create mode 100644 Oracle.18.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.18.Managed).sql create mode 100644 Oracle.18.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.18.Managed).sql diff --git a/Oracle.18.Managed/Tests/Linq/ComplexTests2/Tests.Linq.ComplexTests2.TestInsertUsingDerivedObjectUsingAttributes(Oracle.18.Managed).sql.other b/Oracle.18.Managed/Tests/Linq/ComplexTests2/Tests.Linq.ComplexTests2.TestInsertUsingDerivedObjectUsingAttributes(Oracle.18.Managed).sql.other new file mode 100644 index 000000000000..e0c585bb1a9c --- /dev/null +++ b/Oracle.18.Managed/Tests/Linq/ComplexTests2/Tests.Linq.ComplexTests2.TestInsertUsingDerivedObjectUsingAttributes(Oracle.18.Managed).sql.other @@ -0,0 +1,88 @@ +-- Oracle.18.Managed Oracle.Managed Oracle12 +DECLARE @FirstName Varchar2(21) -- String +SET @FirstName = 'test_inherited_insert' +DECLARE @LastName Varchar2(4) -- String +SET @LastName = 'test' +DECLARE @MiddleName Varchar2(4) -- String +SET @MiddleName = 'test' +DECLARE @Gender Char(1) -- AnsiStringFixedLength +SET @Gender = 'U' +DECLARE @IDENTITY_PARAMETER Decimal +SET @IDENTITY_PARAMETER = NULL + +INSERT INTO "Person" +( + "FirstName", + "LastName", + "MiddleName", + "Gender" +) +VALUES +( + :FirstName, + :LastName, + :MiddleName, + :Gender +) +RETURNING + "PersonID" INTO :IDENTITY_PARAMETER + +-- Oracle.18.Managed Oracle.Managed Oracle12 + +SELECT + t1."FirstName", + t1."PersonID" as ID, + t1."LastName", + t1."MiddleName", + t1."Gender" +FROM + "Person" t1 +WHERE + t1."FirstName" = 'test_inherited_insert' +FETCH NEXT 1 ROWS ONLY + +-- Oracle.18.Managed Oracle.Managed Oracle12 +DECLARE @FirstName Varchar2(21) -- String +SET @FirstName = 'test_inherited_insert' +DECLARE @LastName Varchar2(4) -- String +SET @LastName = 'test' +DECLARE @MiddleName Varchar2(4) -- String +SET @MiddleName = 'test' +DECLARE @Gender Char(1) -- AnsiStringFixedLength +SET @Gender = 'U' +DECLARE @ID Int32 +SET @ID = 5 + +UPDATE + "Person" t1 +SET + "FirstName" = :FirstName, + "LastName" = :LastName, + "MiddleName" = :MiddleName, + "Gender" = :Gender +WHERE + t1."PersonID" = :ID + +-- Oracle.18.Managed Oracle.Managed Oracle12 + +SELECT + t1."FirstName", + t1."PersonID" as ID, + t1."LastName", + t1."MiddleName", + t1."Gender" +FROM + "Person" t1 +WHERE + t1."FirstName" = 'test_inherited_insert' +FETCH NEXT 1 ROWS ONLY + +-- Oracle.18.Managed Oracle.Managed Oracle12 +DECLARE @ID Int32 +SET @ID = 5 + +DELETE FROM + "Person" t1 +WHERE + t1."PersonID" = :ID + diff --git a/Oracle.18.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.18.Managed).sql b/Oracle.18.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.18.Managed).sql new file mode 100644 index 000000000000..6e4da894b202 --- /dev/null +++ b/Oracle.18.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.18.Managed).sql @@ -0,0 +1,49 @@ +-- Oracle.18.Managed Oracle.Managed Oracle12 + +UPDATE + "SampleClass" +SET + ("VarcharValue", "NVarcharValue") = ( + SELECT + t1."Result_1", + t1."Result_1" + FROM + ( + SELECT + ( + SELECT + LISTAGG(a_Children."VarcharValue", ' | ') WITHIN GROUP (ORDER BY a_Children."VarcharValue") + FROM + "SampleClass" a_Children + WHERE + t_1."Id" = a_Children."Id" + ) as "Result_1", + t_1."Id", + t_1."NullableValue", + t_1."NotNullableValue", + t_1."VarcharValue", + t_1."NVarcharValue" + FROM + "SampleClass" t_1 + ) t1 + WHERE + "SampleClass"."Id" = t1."Id" AND + ("SampleClass"."NullableValue" = t1."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t1."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t1."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t1."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t1."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t1."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t1."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" t + WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + ) + diff --git a/Oracle.18.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.18.Managed).sql b/Oracle.18.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.18.Managed).sql new file mode 100644 index 000000000000..ee0b6cfce88b --- /dev/null +++ b/Oracle.18.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.18.Managed).sql @@ -0,0 +1,49 @@ +-- Oracle.18.Managed Oracle.Managed Oracle12 + +UPDATE + "SampleClass" +SET + ("VarcharValue", "NVarcharValue") = ( + SELECT + t1."Result_1", + t1."Result_1" + FROM + ( + SELECT + ( + SELECT + Coalesce(LISTAGG(Coalesce(a_Children."VarcharValue", ''), ', ') WITHIN GROUP (ORDER BY a_Children."VarcharValue"), '') + FROM + "SampleClass" a_Children + WHERE + t_1."Id" = a_Children."Id" + ) as "Result_1", + t_1."Id", + t_1."NullableValue", + t_1."NotNullableValue", + t_1."VarcharValue", + t_1."NVarcharValue" + FROM + "SampleClass" t_1 + ) t1 + WHERE + "SampleClass"."Id" = t1."Id" AND + ("SampleClass"."NullableValue" = t1."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t1."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t1."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t1."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t1."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t1."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t1."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" t + WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + ) + From 78bae41901c5d55f9866027cb3f6811f7d4929ce Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 14:05:26 +0100 Subject: [PATCH 25/28] [Linux / Oracle 23c] baselines --- ...estCorrOracle(Oracle.23.Managed).sql.other | 31 ++++++++++++ ...tionSubqueryUpdate1(Oracle.23.Managed).sql | 49 +++++++++++++++++++ ...tionSubqueryUpdate2(Oracle.23.Managed).sql | 49 +++++++++++++++++++ 3 files changed, 129 insertions(+) create mode 100644 Oracle.23.Managed/Tests/Linq/AnalyticTests/Tests.Linq.AnalyticTests.TestCorrOracle(Oracle.23.Managed).sql.other create mode 100644 Oracle.23.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.23.Managed).sql create mode 100644 Oracle.23.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.23.Managed).sql diff --git a/Oracle.23.Managed/Tests/Linq/AnalyticTests/Tests.Linq.AnalyticTests.TestCorrOracle(Oracle.23.Managed).sql.other b/Oracle.23.Managed/Tests/Linq/AnalyticTests/Tests.Linq.AnalyticTests.TestCorrOracle(Oracle.23.Managed).sql.other new file mode 100644 index 000000000000..75a912d68938 --- /dev/null +++ b/Oracle.23.Managed/Tests/Linq/AnalyticTests/Tests.Linq.AnalyticTests.TestCorrOracle(Oracle.23.Managed).sql.other @@ -0,0 +1,31 @@ +-- Oracle.23.Managed Oracle.Managed Oracle12 + +SELECT + CORR(p."Value1", c_1."ChildID") OVER(PARTITION BY p."Value1", c_1."ChildID"), + CORR(p."Value1", c_1."ChildID") OVER(PARTITION BY p."Value1", c_1."ChildID"), + CORR(p."Value1", c_1."ChildID") OVER(PARTITION BY p."Value1", c_1."ChildID"), + CORR(p."Value1", c_1."ChildID") OVER(PARTITION BY p."Value1", c_1."ChildID"), + CORR(p."Value1", c_1."ChildID") OVER(), + CORR(p."Value1", c_1."ChildID") OVER(PARTITION BY p."Value1", c_1."ChildID" ORDER BY p."Value1"), + CORR(p."Value1", c_1."ChildID") OVER(ORDER BY p."Value1") +FROM + "Parent" p + INNER JOIN "Child" c_1 ON p."ParentID" = c_1."ParentID" + +-- Oracle.23.Managed Oracle.Managed Oracle12 + +SELECT + CORR(c_1."ParentID", c_1."ChildID") +FROM + "Parent" g_1 + INNER JOIN "Child" c_1 ON g_1."ParentID" = c_1."ParentID" +GROUP BY + g_1."ParentID" + +-- Oracle.23.Managed Oracle.Managed Oracle12 + +SELECT + CORR(t1."ParentID", t1."ChildID") +FROM + "Child" t1 + diff --git a/Oracle.23.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.23.Managed).sql b/Oracle.23.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.23.Managed).sql new file mode 100644 index 000000000000..a417312d17c7 --- /dev/null +++ b/Oracle.23.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(Oracle.23.Managed).sql @@ -0,0 +1,49 @@ +-- Oracle.23.Managed Oracle.Managed Oracle12 + +UPDATE + "SampleClass" +SET + ("VarcharValue", "NVarcharValue") = ( + SELECT + t1."Result_1", + t1."Result_1" + FROM + ( + SELECT + ( + SELECT + LISTAGG(a_Children."VarcharValue", ' | ') WITHIN GROUP (ORDER BY a_Children."VarcharValue") + FROM + "SampleClass" a_Children + WHERE + t_1."Id" = a_Children."Id" + ) as "Result_1", + t_1."Id", + t_1."NullableValue", + t_1."NotNullableValue", + t_1."VarcharValue", + t_1."NVarcharValue" + FROM + "SampleClass" t_1 + ) t1 + WHERE + "SampleClass"."Id" = t1."Id" AND + ("SampleClass"."NullableValue" = t1."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t1."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t1."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t1."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t1."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t1."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t1."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" t + WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + ) + diff --git a/Oracle.23.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.23.Managed).sql b/Oracle.23.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.23.Managed).sql new file mode 100644 index 000000000000..af053010fb35 --- /dev/null +++ b/Oracle.23.Managed/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(Oracle.23.Managed).sql @@ -0,0 +1,49 @@ +-- Oracle.23.Managed Oracle.Managed Oracle12 + +UPDATE + "SampleClass" +SET + ("VarcharValue", "NVarcharValue") = ( + SELECT + t1."Result_1", + t1."Result_1" + FROM + ( + SELECT + ( + SELECT + Coalesce(LISTAGG(Coalesce(a_Children."VarcharValue", ''), ', ') WITHIN GROUP (ORDER BY a_Children."VarcharValue"), '') + FROM + "SampleClass" a_Children + WHERE + t_1."Id" = a_Children."Id" + ) as "Result_1", + t_1."Id", + t_1."NullableValue", + t_1."NotNullableValue", + t_1."VarcharValue", + t_1."NVarcharValue" + FROM + "SampleClass" t_1 + ) t1 + WHERE + "SampleClass"."Id" = t1."Id" AND + ("SampleClass"."NullableValue" = t1."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t1."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t1."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t1."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t1."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t1."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t1."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" t + WHERE + "SampleClass"."Id" = t."Id" AND + ("SampleClass"."NullableValue" = t."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND t."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = t."NotNullableValue" AND + ("SampleClass"."VarcharValue" = t."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND t."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = t."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND t."NVarcharValue" IS NULL) + ) + From a6c688baa388af7fd588bc76a01fcf4112f5c5df Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 13:14:39 +0000 Subject: [PATCH 26/28] [Linux / SQLite (both providers)] baselines --- ...ests.NorthwindTest(Northwind.SQLite.MS).sql | 18 +++++++++--------- ...erTests.NorthwindTest(Northwind.SQLite).sql | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Northwind.SQLite.MS/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite.MS).sql b/Northwind.SQLite.MS/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite.MS).sql index d600db65a524..25eefa605df2 100644 --- a/Northwind.SQLite.MS/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite.MS).sql +++ b/Northwind.SQLite.MS/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite.MS).sql @@ -68,7 +68,7 @@ -- Northwind.SQLite.MS SQLite.MS SQLite -SELECT * FROM [Summary of Sales by Quarter] +SELECT * FROM [Products by Category] -- Northwind.SQLite.MS SQLite.MS SQLite @@ -76,35 +76,35 @@ SELECT * FROM [Summary of Sales by Year] -- Northwind.SQLite.MS SQLite.MS SQLite -SELECT * FROM [Order Subtotals] +SELECT * FROM [Summary of Sales by Quarter] -- Northwind.SQLite.MS SQLite.MS SQLite -SELECT * FROM [Products Above Average Price] +SELECT * FROM [Order Subtotals] -- Northwind.SQLite.MS SQLite.MS SQLite -SELECT * FROM [Orders Qry] +SELECT * FROM [Alphabetical list of products] -- Northwind.SQLite.MS SQLite.MS SQLite -SELECT * FROM [Order Details Extended] +SELECT * FROM [Products Above Average Price] -- Northwind.SQLite.MS SQLite.MS SQLite -SELECT * FROM [Customer and Suppliers by City] +SELECT * FROM [Orders Qry] -- Northwind.SQLite.MS SQLite.MS SQLite -SELECT * FROM [Current Product List] +SELECT * FROM [Order Details Extended] -- Northwind.SQLite.MS SQLite.MS SQLite -SELECT * FROM [Products by Category] +SELECT * FROM [Customer and Suppliers by City] -- Northwind.SQLite.MS SQLite.MS SQLite -SELECT * FROM [Alphabetical list of products] +SELECT * FROM [Current Product List] -- Northwind.SQLite.MS SQLite.MS SQLite diff --git a/Northwind.SQLite/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite).sql b/Northwind.SQLite/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite).sql index df84d78f22fc..d487d6bab6d0 100644 --- a/Northwind.SQLite/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite).sql +++ b/Northwind.SQLite/Tests/SchemaProvider/SchemaProviderTests/Tests.SchemaProvider.SchemaProviderTests.NorthwindTest(Northwind.SQLite).sql @@ -68,7 +68,7 @@ -- Northwind.SQLite SQLite.Classic SQLite -SELECT * FROM [Summary of Sales by Quarter] +SELECT * FROM [Products by Category] -- Northwind.SQLite SQLite.Classic SQLite @@ -76,35 +76,35 @@ SELECT * FROM [Summary of Sales by Year] -- Northwind.SQLite SQLite.Classic SQLite -SELECT * FROM [Order Subtotals] +SELECT * FROM [Summary of Sales by Quarter] -- Northwind.SQLite SQLite.Classic SQLite -SELECT * FROM [Products Above Average Price] +SELECT * FROM [Order Subtotals] -- Northwind.SQLite SQLite.Classic SQLite -SELECT * FROM [Orders Qry] +SELECT * FROM [Alphabetical list of products] -- Northwind.SQLite SQLite.Classic SQLite -SELECT * FROM [Order Details Extended] +SELECT * FROM [Products Above Average Price] -- Northwind.SQLite SQLite.Classic SQLite -SELECT * FROM [Customer and Suppliers by City] +SELECT * FROM [Orders Qry] -- Northwind.SQLite SQLite.Classic SQLite -SELECT * FROM [Current Product List] +SELECT * FROM [Order Details Extended] -- Northwind.SQLite SQLite.Classic SQLite -SELECT * FROM [Products by Category] +SELECT * FROM [Customer and Suppliers by City] -- Northwind.SQLite SQLite.Classic SQLite -SELECT * FROM [Alphabetical list of products] +SELECT * FROM [Current Product List] -- Northwind.SQLite SQLite.Classic SQLite From f6c1b775677f94b8ca244e56d12c53a5d3f5b610 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 13:23:39 +0000 Subject: [PATCH 27/28] [Windows / SQL Server EXTRAS] baselines --- ...s.Issue4816Test(SqlServer.Contained.MS).sql | 13 +++++++++++++ ...s.Issue4816Test(SqlServer.Contained.MS).sql | 13 +++++++++++++ ...s.Issue4816Test(SqlServer.Contained.MS).sql | 13 +++++++++++++ ...s.Issue4816Test(SqlServer.Contained.MS).sql | 13 +++++++++++++ ...eter3(SqlServer.Contained.MS, -0x003E ).sql | 4 +--- ...eter3(SqlServer.Contained.MS, =0x003E ).sql | 4 +--- ...eter4(SqlServer.Contained.MS, -0x003E ).sql | 4 +--- ...eter4(SqlServer.Contained.MS, =0x003E ).sql | 4 +--- ...ingParameter(SqlServer.Contained.MS,, ).sql | 6 ++---- ...rameter(SqlServer.Contained.MS,0x003A ).sql | 6 ++---- ...SubqueryUpdate1(SqlServer.Contained.MS).sql | 18 ++++++++++++++++++ ...SubqueryUpdate2(SqlServer.Contained.MS).sql | 18 ++++++++++++++++++ ...rameter3(SqlServer.Contained, -0x003E ).sql | 4 +--- ...rameter3(SqlServer.Contained, =0x003E ).sql | 4 +--- ...rameter4(SqlServer.Contained, -0x003E ).sql | 4 +--- ...rameter4(SqlServer.Contained, =0x003E ).sql | 4 +--- ...oupingParameter(SqlServer.Contained,, ).sql | 6 ++---- ...gParameter(SqlServer.Contained,0x003A ).sql | 6 ++---- ...ionSubqueryUpdate1(SqlServer.Contained).sql | 18 ++++++++++++++++++ ...ionSubqueryUpdate2(SqlServer.Contained).sql | 18 ++++++++++++++++++ ...sueTests.Issue4816Test(SqlServer.SA.MS).sql | 13 +++++++++++++ ...sueTests.Issue4816Test(SqlServer.SA.MS).sql | 13 +++++++++++++ ...sueTests.Issue4816Test(SqlServer.SA.MS).sql | 13 +++++++++++++ ...sueTests.Issue4816Test(SqlServer.SA.MS).sql | 13 +++++++++++++ ...stParameter3(SqlServer.SA.MS, -0x003E ).sql | 4 +--- ...stParameter3(SqlServer.SA.MS, =0x003E ).sql | 4 +--- ...stParameter4(SqlServer.SA.MS, -0x003E ).sql | 4 +--- ...stParameter4(SqlServer.SA.MS, =0x003E ).sql | 4 +--- ...thGroupingParameter(SqlServer.SA.MS,, ).sql | 6 ++---- ...upingParameter(SqlServer.SA.MS,0x003A ).sql | 6 ++---- ...ciationSubqueryUpdate1(SqlServer.SA.MS).sql | 18 ++++++++++++++++++ ...ciationSubqueryUpdate2(SqlServer.SA.MS).sql | 18 ++++++++++++++++++ ...5TestParameter3(SqlServer.SA, -0x003E ).sql | 4 +--- ...5TestParameter3(SqlServer.SA, =0x003E ).sql | 4 +--- ...5TestParameter4(SqlServer.SA, -0x003E ).sql | 4 +--- ...5TestParameter4(SqlServer.SA, =0x003E ).sql | 4 +--- ...nWithGroupingParameter(SqlServer.SA,, ).sql | 6 ++---- ...GroupingParameter(SqlServer.SA,0x003A ).sql | 6 ++---- ...ssociationSubqueryUpdate1(SqlServer.SA).sql | 18 ++++++++++++++++++ ...ssociationSubqueryUpdate2(SqlServer.SA).sql | 18 ++++++++++++++++++ 40 files changed, 280 insertions(+), 80 deletions(-) create mode 100644 SqlServer.Contained.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql create mode 100644 SqlServer.Contained.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql create mode 100644 SqlServer.Contained.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql create mode 100644 SqlServer.Contained.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql create mode 100644 SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.Contained.MS).sql create mode 100644 SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.Contained.MS).sql create mode 100644 SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.Contained).sql create mode 100644 SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.Contained).sql create mode 100644 SqlServer.SA.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql create mode 100644 SqlServer.SA.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql create mode 100644 SqlServer.SA.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql create mode 100644 SqlServer.SA.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql create mode 100644 SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.SA.MS).sql create mode 100644 SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.SA.MS).sql create mode 100644 SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.SA).sql create mode 100644 SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.SA).sql diff --git a/SqlServer.Contained.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql b/SqlServer.Contained.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql new file mode 100644 index 000000000000..2eac7159a16c --- /dev/null +++ b/SqlServer.Contained.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2019 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.Contained.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql b/SqlServer.Contained.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql new file mode 100644 index 000000000000..2eac7159a16c --- /dev/null +++ b/SqlServer.Contained.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2019 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.Contained.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql b/SqlServer.Contained.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql new file mode 100644 index 000000000000..2eac7159a16c --- /dev/null +++ b/SqlServer.Contained.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2019 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.Contained.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql b/SqlServer.Contained.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql new file mode 100644 index 000000000000..2eac7159a16c --- /dev/null +++ b/SqlServer.Contained.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.Contained.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2019 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained.MS, -0x003E ).sql b/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained.MS, -0x003E ).sql index 5d7f0199b83d..871529a4d790 100644 --- a/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained.MS, -0x003E ).sql +++ b/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained.MS, -0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.Contained.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' -> ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained.MS, =0x003E ).sql b/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained.MS, =0x003E ).sql index 10d5fefebbd4..423b01ca08d5 100644 --- a/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained.MS, =0x003E ).sql +++ b/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained.MS, =0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.Contained.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' => ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained.MS, -0x003E ).sql b/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained.MS, -0x003E ).sql index be77107364ca..9583c0791a0c 100644 --- a/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained.MS, -0x003E ).sql +++ b/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained.MS, -0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.Contained.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' -> ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained.MS, =0x003E ).sql b/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained.MS, =0x003E ).sql index 9d48c77bca24..533833e91388 100644 --- a/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained.MS, =0x003E ).sql +++ b/SqlServer.Contained.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained.MS, =0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.Contained.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' => ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained.MS,, ).sql b/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained.MS,, ).sql index 4a386407b909..22d227312be8 100644 --- a/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained.MS,, ).sql +++ b/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained.MS,, ).sql @@ -1,11 +1,9 @@ -- SqlServer.Contained.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N', ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N', '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N', '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained.MS,0x003A ).sql b/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained.MS,0x003A ).sql index 6260c0068c5b..bb74ad126143 100644 --- a/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained.MS,0x003A ).sql +++ b/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained.MS,0x003A ).sql @@ -1,11 +1,9 @@ -- SqlServer.Contained.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N': ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N': '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N': '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.Contained.MS).sql b/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.Contained.MS).sql new file mode 100644 index 000000000000..5207b66bcd8d --- /dev/null +++ b/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.Contained.MS).sql @@ -0,0 +1,18 @@ +-- SqlServer.Contained.MS SqlServer.2019 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + STRING_AGG([a_Children].[VarcharValue], ' | ') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.Contained.MS).sql b/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.Contained.MS).sql new file mode 100644 index 000000000000..b587377a99a4 --- /dev/null +++ b/SqlServer.Contained.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.Contained.MS).sql @@ -0,0 +1,18 @@ +-- SqlServer.Contained.MS SqlServer.2019 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + Coalesce(STRING_AGG(Coalesce([a_Children].[VarcharValue], ''), ', '), '') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained, -0x003E ).sql b/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained, -0x003E ).sql index 12405a735da2..694cc3a2d4b8 100644 --- a/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained, -0x003E ).sql +++ b/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained, -0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.Contained SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' -> ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained, =0x003E ).sql b/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained, =0x003E ).sql index e9328a1b5026..1d80ac1659a2 100644 --- a/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained, =0x003E ).sql +++ b/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.Contained, =0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.Contained SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' => ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained, -0x003E ).sql b/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained, -0x003E ).sql index 4a0e7cbd1aad..58a65eb14072 100644 --- a/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained, -0x003E ).sql +++ b/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained, -0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.Contained SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' -> ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained, =0x003E ).sql b/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained, =0x003E ).sql index 54f8f5088c49..90b8209b8c4a 100644 --- a/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained, =0x003E ).sql +++ b/SqlServer.Contained/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.Contained, =0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.Contained SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' => ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained,, ).sql b/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained,, ).sql index 44918abdd0a9..c59d7b410447 100644 --- a/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained,, ).sql +++ b/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained,, ).sql @@ -1,11 +1,9 @@ -- SqlServer.Contained SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N', ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N', '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N', '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained,0x003A ).sql b/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained,0x003A ).sql index efb0380c7eb1..2a4c89f2daa5 100644 --- a/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained,0x003A ).sql +++ b/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.Contained,0x003A ).sql @@ -1,11 +1,9 @@ -- SqlServer.Contained SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N': ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N': '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N': '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.Contained).sql b/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.Contained).sql new file mode 100644 index 000000000000..dc19f0a94cb6 --- /dev/null +++ b/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.Contained).sql @@ -0,0 +1,18 @@ +-- SqlServer.Contained SqlServer.2019 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + STRING_AGG([a_Children].[VarcharValue], ' | ') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.Contained).sql b/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.Contained).sql new file mode 100644 index 000000000000..deda0947a646 --- /dev/null +++ b/SqlServer.Contained/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.Contained).sql @@ -0,0 +1,18 @@ +-- SqlServer.Contained SqlServer.2019 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + Coalesce(STRING_AGG(Coalesce([a_Children].[VarcharValue], ''), ', '), '') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.SA.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql b/SqlServer.SA.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql new file mode 100644 index 000000000000..2eac7159a16c --- /dev/null +++ b/SqlServer.SA.MS.EF10/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2019 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.SA.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql b/SqlServer.SA.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql new file mode 100644 index 000000000000..2eac7159a16c --- /dev/null +++ b/SqlServer.SA.MS.EF31/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2019 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.SA.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql b/SqlServer.SA.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql new file mode 100644 index 000000000000..2eac7159a16c --- /dev/null +++ b/SqlServer.SA.MS.EF8/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2019 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.SA.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql b/SqlServer.SA.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql new file mode 100644 index 000000000000..2eac7159a16c --- /dev/null +++ b/SqlServer.SA.MS.EF9/LinqToDB/EntityFrameworkCore/Tests/IssueTests/LinqToDB.EntityFrameworkCore.Tests.IssueTests.Issue4816Test(SqlServer.SA.MS).sql @@ -0,0 +1,13 @@ +-- SqlServer.2019 + +SELECT + [g_1].[Id], + STRING_AGG([g_1].[ValueVarChar], ','), + STRING_AGG([g_1].[ValueNVarChar], N',') +FROM + [Issue4816Table] [g_1] +GROUP BY + [g_1].[Id] + + + diff --git a/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA.MS, -0x003E ).sql b/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA.MS, -0x003E ).sql index 0f18804ce9d9..ae0654db5f86 100644 --- a/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA.MS, -0x003E ).sql +++ b/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA.MS, -0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.SA.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' -> ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA.MS, =0x003E ).sql b/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA.MS, =0x003E ).sql index aa66030b2600..37f34846f7ac 100644 --- a/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA.MS, =0x003E ).sql +++ b/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA.MS, =0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.SA.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' => ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA.MS, -0x003E ).sql b/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA.MS, -0x003E ).sql index 7d444a5dca31..2c1f386777ce 100644 --- a/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA.MS, -0x003E ).sql +++ b/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA.MS, -0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.SA.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' -> ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA.MS, =0x003E ).sql b/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA.MS, =0x003E ).sql index 9299821e02f5..e69cd2cadf81 100644 --- a/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA.MS, =0x003E ).sql +++ b/SqlServer.SA.MS/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA.MS, =0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.SA.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' => ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA.MS,, ).sql b/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA.MS,, ).sql index ce7314af8287..441f4d17f8df 100644 --- a/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA.MS,, ).sql +++ b/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA.MS,, ).sql @@ -1,11 +1,9 @@ -- SqlServer.SA.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N', ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N', '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N', '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA.MS,0x003A ).sql b/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA.MS,0x003A ).sql index 1f14ff95f8e9..e748e645f2f9 100644 --- a/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA.MS,0x003A ).sql +++ b/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA.MS,0x003A ).sql @@ -1,11 +1,9 @@ -- SqlServer.SA.MS SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N': ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N': '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N': '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.SA.MS).sql b/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.SA.MS).sql new file mode 100644 index 000000000000..c7039ff6aee8 --- /dev/null +++ b/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.SA.MS).sql @@ -0,0 +1,18 @@ +-- SqlServer.SA.MS SqlServer.2019 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + STRING_AGG([a_Children].[VarcharValue], ' | ') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.SA.MS).sql b/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.SA.MS).sql new file mode 100644 index 000000000000..963444ed2163 --- /dev/null +++ b/SqlServer.SA.MS/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.SA.MS).sql @@ -0,0 +1,18 @@ +-- SqlServer.SA.MS SqlServer.2019 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + Coalesce(STRING_AGG(Coalesce([a_Children].[VarcharValue], ''), ', '), '') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA, -0x003E ).sql b/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA, -0x003E ).sql index 343e46da21e1..579fc06de726 100644 --- a/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA, -0x003E ).sql +++ b/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA, -0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.SA SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' -> ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA, =0x003E ).sql b/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA, =0x003E ).sql index 9ac15d3e9128..31e6fe4d2fe1 100644 --- a/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA, =0x003E ).sql +++ b/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter3(SqlServer.SA, =0x003E ).sql @@ -1,9 +1,7 @@ -- SqlServer.SA SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT - STRING_AGG([g_1].[Value4], @separator) WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) + STRING_AGG([g_1].[Value4], N' => ') WITHIN GROUP (ORDER BY [g_1].[Value3] DESC, [g_1].[Value4]) FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA, -0x003E ).sql b/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA, -0x003E ).sql index 958b167cfa68..48581b934def 100644 --- a/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA, -0x003E ).sql +++ b/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA, -0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.SA SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' -> ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' -> ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA, =0x003E ).sql b/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA, =0x003E ).sql index eeccb7dc6776..f910cc0f178c 100644 --- a/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA, =0x003E ).sql +++ b/SqlServer.SA/Tests/Linq/StringFunctionsTests/Tests.Linq.StringFunctionsTests.Issue1765TestParameter4(SqlServer.SA, =0x003E ).sql @@ -1,10 +1,8 @@ -- SqlServer.SA SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N' => ' SELECT MAX([g_1].[Value4]), - STRING_AGG([g_1].[Value4], @separator) + STRING_AGG([g_1].[Value4], N' => ') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA,, ).sql b/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA,, ).sql index 19e75fb25091..57f0813bb0cb 100644 --- a/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA,, ).sql +++ b/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA,, ).sql @@ -1,11 +1,9 @@ -- SqlServer.SA SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N', ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N', '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N', '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA,0x003A ).sql b/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA,0x003A ).sql index 8c213ed5e39d..41e637278d9f 100644 --- a/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA,0x003A ).sql +++ b/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.JoinWithGroupingParameter(SqlServer.SA,0x003A ).sql @@ -1,11 +1,9 @@ -- SqlServer.SA SqlServer.2019 -DECLARE @separator NVarChar(4000) -- String -SET @separator = N': ' SELECT [g_1].[Id], - Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), @separator), N''), - Coalesce(STRING_AGG([g_1].[NotNullableValue], @separator), N'') + Coalesce(STRING_AGG(Coalesce([g_1].[NullableValue], N''), N': '), N''), + Coalesce(STRING_AGG([g_1].[NotNullableValue], N': '), N'') FROM [SampleClass] [g_1] GROUP BY diff --git a/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.SA).sql b/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.SA).sql new file mode 100644 index 000000000000..44c1846998db --- /dev/null +++ b/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SqlServer.SA).sql @@ -0,0 +1,18 @@ +-- SqlServer.SA SqlServer.2019 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + STRING_AGG([a_Children].[VarcharValue], ' | ') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + diff --git a/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.SA).sql b/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.SA).sql new file mode 100644 index 000000000000..7532f7ccab00 --- /dev/null +++ b/SqlServer.SA/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SqlServer.SA).sql @@ -0,0 +1,18 @@ +-- SqlServer.SA SqlServer.2019 + +UPDATE + [t] +SET + [t].[VarcharValue] = [t1].[Result_1], + [t].[NVarcharValue] = [t1].[Result_1] +FROM + [SampleClass] [t] + OUTER APPLY ( + SELECT + Coalesce(STRING_AGG(Coalesce([a_Children].[VarcharValue], ''), ', '), '') as [Result_1] + FROM + [SampleClass] [a_Children] + WHERE + [t].[Id] = [a_Children].[Id] + ) [t1] + From f7db5462a7ed2c91fa01e092db3d57d6ad9f5ae2 Mon Sep 17 00:00:00 2001 From: Azure Pipelines Bot Date: Wed, 10 Dec 2025 13:39:01 +0000 Subject: [PATCH 28/28] [Linux / SAP HANA 2] baselines --- ...sociationSubqueryUpdate1(SapHana.Odbc).sql | 57 +++++++++++++++++++ ...sociationSubqueryUpdate2(SapHana.Odbc).sql | 57 +++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 SapHana.Odbc/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SapHana.Odbc).sql create mode 100644 SapHana.Odbc/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SapHana.Odbc).sql diff --git a/SapHana.Odbc/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SapHana.Odbc).sql b/SapHana.Odbc/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SapHana.Odbc).sql new file mode 100644 index 000000000000..8761fb26bfc2 --- /dev/null +++ b/SapHana.Odbc/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate1(SapHana.Odbc).sql @@ -0,0 +1,57 @@ +-- SapHana.Odbc SapHanaOdbc + +UPDATE + "SampleClass" +SET + "VarcharValue" = ( + SELECT + ( + SELECT + STRING_AGG("a_Children"."VarcharValue", ' | ') + FROM + "SampleClass" "a_Children" + WHERE + "t_1"."Id" = "a_Children"."Id" + ) + FROM + "SampleClass" "t_1" + WHERE + "SampleClass"."Id" = "t_1"."Id" AND + ("SampleClass"."NullableValue" = "t_1"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t_1"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t_1"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t_1"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t_1"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t_1"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t_1"."NVarcharValue" IS NULL) + ), + "NVarcharValue" = ( + SELECT + ( + SELECT + STRING_AGG("a_Children_1"."VarcharValue", ' | ') + FROM + "SampleClass" "a_Children_1" + WHERE + "t_2"."Id" = "a_Children_1"."Id" + ) + FROM + "SampleClass" "t_2" + WHERE + "SampleClass"."Id" = "t_2"."Id" AND + ("SampleClass"."NullableValue" = "t_2"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t_2"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t_2"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t_2"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t_2"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t_2"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t_2"."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" "t" + WHERE + "SampleClass"."Id" = "t"."Id" AND + ("SampleClass"."NullableValue" = "t"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t"."NVarcharValue" IS NULL) + ) + diff --git a/SapHana.Odbc/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SapHana.Odbc).sql b/SapHana.Odbc/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SapHana.Odbc).sql new file mode 100644 index 000000000000..e3b27a815ffe --- /dev/null +++ b/SapHana.Odbc/Tests/Linq/StringJoinTests/Tests.Linq.StringJoinTests.StringJoinAssociationSubqueryUpdate2(SapHana.Odbc).sql @@ -0,0 +1,57 @@ +-- SapHana.Odbc SapHanaOdbc + +UPDATE + "SampleClass" +SET + "VarcharValue" = ( + SELECT + ( + SELECT + Coalesce(STRING_AGG(Coalesce("a_Children"."VarcharValue", ''), ', '), '') + FROM + "SampleClass" "a_Children" + WHERE + "t_1"."Id" = "a_Children"."Id" + ) + FROM + "SampleClass" "t_1" + WHERE + "SampleClass"."Id" = "t_1"."Id" AND + ("SampleClass"."NullableValue" = "t_1"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t_1"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t_1"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t_1"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t_1"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t_1"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t_1"."NVarcharValue" IS NULL) + ), + "NVarcharValue" = ( + SELECT + ( + SELECT + Coalesce(STRING_AGG(Coalesce("a_Children_1"."VarcharValue", ''), ', '), '') + FROM + "SampleClass" "a_Children_1" + WHERE + "t_2"."Id" = "a_Children_1"."Id" + ) + FROM + "SampleClass" "t_2" + WHERE + "SampleClass"."Id" = "t_2"."Id" AND + ("SampleClass"."NullableValue" = "t_2"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t_2"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t_2"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t_2"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t_2"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t_2"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t_2"."NVarcharValue" IS NULL) + ) +WHERE + EXISTS( + SELECT + * + FROM + "SampleClass" "t" + WHERE + "SampleClass"."Id" = "t"."Id" AND + ("SampleClass"."NullableValue" = "t"."NullableValue" OR "SampleClass"."NullableValue" IS NULL AND "t"."NullableValue" IS NULL) AND + "SampleClass"."NotNullableValue" = "t"."NotNullableValue" AND + ("SampleClass"."VarcharValue" = "t"."VarcharValue" OR "SampleClass"."VarcharValue" IS NULL AND "t"."VarcharValue" IS NULL) AND + ("SampleClass"."NVarcharValue" = "t"."NVarcharValue" OR "SampleClass"."NVarcharValue" IS NULL AND "t"."NVarcharValue" IS NULL) + ) +