Skip to content

Commit 96cc0f2

Browse files
committed
Put RETURNING on its own line
1 parent 466fe62 commit 96cc0f2

File tree

6 files changed

+50
-24
lines changed

6 files changed

+50
-24
lines changed

src/EFCore.Relational/Update/UpdateSqlGenerator.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,8 @@ protected virtual void AppendReturningClause(
418418
if (operations.Count > 0)
419419
{
420420
commandStringBuilder
421-
.Append(" RETURNING ")
421+
.AppendLine()
422+
.Append("RETURNING ")
422423
.AppendJoin(
423424
operations,
424425
SqlGenerationHelper,

src/EFCore.SqlServer/Update/Internal/SqlServerUpdateSqlGenerator.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -601,8 +601,12 @@ private void AppendOutputClause(
601601

602602
if (additionalColumns != null)
603603
{
604-
commandStringBuilder
605-
.Append(", ").Append(additionalColumns);
604+
if (operations.Count > 0)
605+
{
606+
commandStringBuilder.Append(", ");
607+
}
608+
609+
commandStringBuilder.Append(additionalColumns);
606610
}
607611
}
608612
}

test/EFCore.Relational.Tests/Update/UpdateSqlGeneratorTest.cs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,37 +19,42 @@ protected override IUpdateSqlGenerator CreateSqlGenerator()
1919
protected override void AppendInsertOperation_insert_if_store_generated_columns_exist_verification(StringBuilder stringBuilder)
2020
=> AssertBaseline(
2121
@"INSERT INTO ""dbo"".""Ducks"" (""Name"", ""Quacks"", ""ConcurrencyToken"")
22-
VALUES (@p0, @p1, @p2) RETURNING ""Id"", ""Computed"";
22+
VALUES (@p0, @p1, @p2)
23+
RETURNING ""Id"", ""Computed"";
2324
",
2425
stringBuilder.ToString());
2526

2627
protected override void AppendInsertOperation_for_store_generated_columns_but_no_identity_verification(
2728
StringBuilder stringBuilder)
2829
=> AssertBaseline(
2930
@"INSERT INTO ""dbo"".""Ducks"" (""Id"", ""Name"", ""Quacks"", ""ConcurrencyToken"")
30-
VALUES (@p0, @p1, @p2, @p3) RETURNING ""Computed"";
31+
VALUES (@p0, @p1, @p2, @p3)
32+
RETURNING ""Computed"";
3133
",
3234
stringBuilder.ToString());
3335

3436
protected override void AppendInsertOperation_for_only_identity_verification(StringBuilder stringBuilder)
3537
=> AssertBaseline(
3638
@"INSERT INTO ""dbo"".""Ducks"" (""Name"", ""Quacks"", ""ConcurrencyToken"")
37-
VALUES (@p0, @p1, @p2) RETURNING ""Id"";
39+
VALUES (@p0, @p1, @p2)
40+
RETURNING ""Id"";
3841
",
3942
stringBuilder.ToString());
4043

4144
protected override void AppendInsertOperation_for_all_store_generated_columns_verification(StringBuilder stringBuilder)
4245
=> AssertBaseline(
4346
@"INSERT INTO ""dbo"".""Ducks""
44-
DEFAULT VALUES RETURNING ""Id"", ""Computed"";
47+
DEFAULT VALUES
48+
RETURNING ""Id"", ""Computed"";
4549
",
4650
stringBuilder.ToString());
4751

4852
protected override void AppendInsertOperation_for_only_single_identity_columns_verification(
4953
StringBuilder stringBuilder)
5054
=> AssertBaseline(
5155
@"INSERT INTO ""dbo"".""Ducks""
52-
DEFAULT VALUES RETURNING ""Id"";
56+
DEFAULT VALUES
57+
RETURNING ""Id"";
5358
",
5459
stringBuilder.ToString());
5560

test/EFCore.Sqlite.FunctionalTests/DataAnnotationSqliteTest.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,8 @@ public override void DatabaseGeneratedAttribute_autogenerates_values_when_set_to
133133
@p6='0' (Nullable = true)
134134
135135
INSERT INTO ""Sample"" (""MaxLengthProperty"", ""Name"", ""RowVersion"", ""AdditionalDetails_Name"", ""AdditionalDetails_Value"", ""Details_Name"", ""Details_Value"")
136-
VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6) RETURNING ""Unique_No"";");
136+
VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6)
137+
RETURNING ""Unique_No"";");
137138
}
138139

139140
// Sqlite does not support length

test/EFCore.Sqlite.FunctionalTests/Update/SqliteUpdateSqlGeneratorTest.cs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,37 +44,42 @@ public override void GenerateNextSequenceValueOperation_returns_statement_with_s
4444
protected override void AppendInsertOperation_insert_if_store_generated_columns_exist_verification(StringBuilder stringBuilder)
4545
=> AssertBaseline(
4646
@"INSERT INTO ""Ducks"" (""Name"", ""Quacks"", ""ConcurrencyToken"")
47-
VALUES (@p0, @p1, @p2) RETURNING ""Id"", ""Computed"";
47+
VALUES (@p0, @p1, @p2)
48+
RETURNING ""Id"", ""Computed"";
4849
",
4950
stringBuilder.ToString());
5051

5152
protected override void AppendInsertOperation_for_store_generated_columns_but_no_identity_verification(
5253
StringBuilder stringBuilder)
5354
=> AssertBaseline(
5455
@"INSERT INTO ""Ducks"" (""Id"", ""Name"", ""Quacks"", ""ConcurrencyToken"")
55-
VALUES (@p0, @p1, @p2, @p3) RETURNING ""Computed"";
56+
VALUES (@p0, @p1, @p2, @p3)
57+
RETURNING ""Computed"";
5658
",
5759
stringBuilder.ToString());
5860

5961
protected override void AppendInsertOperation_for_only_identity_verification(StringBuilder stringBuilder)
6062
=> AssertBaseline(
6163
@"INSERT INTO ""Ducks"" (""Name"", ""Quacks"", ""ConcurrencyToken"")
62-
VALUES (@p0, @p1, @p2) RETURNING ""Id"";
64+
VALUES (@p0, @p1, @p2)
65+
RETURNING ""Id"";
6366
",
6467
stringBuilder.ToString());
6568

6669
protected override void AppendInsertOperation_for_all_store_generated_columns_verification(StringBuilder stringBuilder)
6770
=> AssertBaseline(
6871
@"INSERT INTO ""Ducks""
69-
DEFAULT VALUES RETURNING ""Id"", ""Computed"";
72+
DEFAULT VALUES
73+
RETURNING ""Id"", ""Computed"";
7074
",
7175
stringBuilder.ToString());
7276

7377
protected override void AppendInsertOperation_for_only_single_identity_columns_verification(
7478
StringBuilder stringBuilder)
7579
=> AssertBaseline(
7680
@"INSERT INTO ""Ducks""
77-
DEFAULT VALUES RETURNING ""Id"";
81+
DEFAULT VALUES
82+
RETURNING ""Id"";
7883
",
7984
stringBuilder.ToString());
8085

test/EFCore.Sqlite.FunctionalTests/Update/StoreValueGenerationSqliteTest.cs

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ public override async Task Add_with_generated_values(bool async)
3232
@"@p0='1000'
3333
3434
INSERT INTO ""WithSomeDatabaseGenerated"" (""Data2"")
35-
VALUES (@p0) RETURNING ""Id"", ""Data1"";");
35+
VALUES (@p0)
36+
RETURNING ""Id"", ""Data1"";");
3637
}
3738

3839
public override async Task Add_with_no_generated_values(bool async)
@@ -54,7 +55,8 @@ public override async Task Add_with_all_generated_values(bool async)
5455

5556
AssertSql(
5657
@"INSERT INTO ""WithAllDatabaseGenerated""
57-
DEFAULT VALUES RETURNING ""Id"", ""Data1"", ""Data2"";");
58+
DEFAULT VALUES
59+
RETURNING ""Id"", ""Data1"", ""Data2"";");
5860
}
5961

6062
public override async Task Modify_with_generated_values(bool async)
@@ -110,12 +112,14 @@ public override async Task Add_Add_with_same_entity_type_and_generated_values(bo
110112
@"@p0='1000'
111113
112114
INSERT INTO ""WithSomeDatabaseGenerated"" (""Data2"")
113-
VALUES (@p0) RETURNING ""Id"", ""Data1"";",
115+
VALUES (@p0)
116+
RETURNING ""Id"", ""Data1"";",
114117
//
115118
@"@p0='1001'
116119
117120
INSERT INTO ""WithSomeDatabaseGenerated"" (""Data2"")
118-
VALUES (@p0) RETURNING ""Id"", ""Data1"";");
121+
VALUES (@p0)
122+
RETURNING ""Id"", ""Data1"";");
119123
}
120124

121125
public override async Task Add_Add_with_same_entity_type_and_no_generated_values(bool async)
@@ -144,10 +148,12 @@ public override async Task Add_Add_with_same_entity_type_and_all_generated_value
144148

145149
AssertSql(
146150
@"INSERT INTO ""WithAllDatabaseGenerated""
147-
DEFAULT VALUES RETURNING ""Id"", ""Data1"", ""Data2"";",
151+
DEFAULT VALUES
152+
RETURNING ""Id"", ""Data1"", ""Data2"";",
148153
//
149154
@"INSERT INTO ""WithAllDatabaseGenerated""
150-
DEFAULT VALUES RETURNING ""Id"", ""Data1"", ""Data2"";");
155+
DEFAULT VALUES
156+
RETURNING ""Id"", ""Data1"", ""Data2"";");
151157
}
152158

153159
public override async Task Modify_Modify_with_same_entity_type_and_generated_values(bool async)
@@ -226,12 +232,14 @@ public override async Task Add_Add_with_different_entity_types_and_generated_val
226232
@"@p0='1000'
227233
228234
INSERT INTO ""WithSomeDatabaseGenerated"" (""Data2"")
229-
VALUES (@p0) RETURNING ""Id"", ""Data1"";",
235+
VALUES (@p0)
236+
RETURNING ""Id"", ""Data1"";",
230237
//
231238
@"@p0='1001'
232239
233240
INSERT INTO ""WithSomeDatabaseGenerated2"" (""Data2"")
234-
VALUES (@p0) RETURNING ""Id"", ""Data1"";");
241+
VALUES (@p0)
242+
RETURNING ""Id"", ""Data1"";");
235243
}
236244

237245
public override async Task Add_Add_with_different_entity_types_and_no_generated_values(bool async)
@@ -260,10 +268,12 @@ public override async Task Add_Add_with_different_entity_types_and_all_generated
260268

261269
AssertSql(
262270
@"INSERT INTO ""WithAllDatabaseGenerated""
263-
DEFAULT VALUES RETURNING ""Id"", ""Data1"", ""Data2"";",
271+
DEFAULT VALUES
272+
RETURNING ""Id"", ""Data1"", ""Data2"";",
264273
//
265274
@"INSERT INTO ""WithAllDatabaseGenerated2""
266-
DEFAULT VALUES RETURNING ""Id"", ""Data1"", ""Data2"";");
275+
DEFAULT VALUES
276+
RETURNING ""Id"", ""Data1"", ""Data2"";");
267277
}
268278

269279
public override async Task Modify_Modify_with_different_entity_types_and_generated_values(bool async)

0 commit comments

Comments
 (0)