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" + ) + 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" + ) + 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" + ) + 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) + ) + 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) + ) + 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` + ) + 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` + 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" + ) + 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) + ) + 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) + ) + 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) + ) + 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) + ) + 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) + ) + 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) + 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) + 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) + 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) + 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) + 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) + 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] + ) + 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] + ) + 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) + ) + 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] + 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] + 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] + 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] + 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] +