Skip to content

Commit 386e8f8

Browse files
committed
Merge remote-tracking branch 'origin/main' into temp-triggers
2 parents 1807da7 + ec9a634 commit 386e8f8

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

Sources/StructuredQueriesCore/Statements/Insert.swift

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -303,13 +303,11 @@ extension Table {
303303
V1,
304304
each V2,
305305
C1: QueryExpression,
306-
each C2: QueryExpression,
307-
From,
308-
Joins
306+
each C2: QueryExpression
309307
>(
310308
or conflictResolution: ConflictResolution? = nil,
311309
_ columns: (TableColumns) -> (TableColumn<Self, V1>, repeat TableColumn<Self, each V2>),
312-
select selection: () -> Select<(C1, repeat each C2), From, Joins>,
310+
select selection: () -> some PartialSelectStatement<(C1, repeat each C2)>,
313311
onConflictDoUpdate updates: ((inout Updates<Self>) -> Void)? = nil,
314312
@QueryFragmentBuilder<Bool>
315313
where updateFilter: (TableColumns) -> [QueryFragment] = { _ in [] }
@@ -346,14 +344,12 @@ extension Table {
346344
each V2,
347345
C1: QueryExpression,
348346
each C2: QueryExpression,
349-
From,
350-
Joins,
351347
T1,
352348
each T2
353349
>(
354350
or conflictResolution: ConflictResolution? = nil,
355351
_ columns: (TableColumns) -> (TableColumn<Self, V1>, repeat TableColumn<Self, each V2>),
356-
select selection: () -> Select<(C1, repeat each C2), From, Joins>,
352+
select selection: () -> some PartialSelectStatement<(C1, repeat each C2)>,
357353
onConflict conflictTargets: (TableColumns) -> (
358354
TableColumn<Self, T1>, repeat TableColumn<Self, each T2>
359355
),
@@ -380,13 +376,11 @@ extension Table {
380376
private static func _insert<
381377
each Value,
382378
each ResultColumn: QueryExpression,
383-
From,
384-
Joins,
385379
each ConflictTarget
386380
>(
387381
or conflictResolution: ConflictResolution? = nil,
388382
_ columns: (TableColumns) -> (repeat TableColumn<Self, each Value>),
389-
select selection: () -> Select<(repeat each ResultColumn), From, Joins>,
383+
select selection: () -> some PartialSelectStatement<(repeat each ResultColumn)>,
390384
onConflict conflictTargets: (TableColumns) -> (repeat TableColumn<Self, each ConflictTarget>)?,
391385
@QueryFragmentBuilder<Bool>
392386
where targetFilter: (TableColumns) -> [QueryFragment] = { _ in [] },

Tests/StructuredQueriesTests/InsertTests.swift

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,31 @@ extension SnapshotTests {
196196
└─────────────────────┘
197197
"""
198198
}
199+
200+
assertQuery(
201+
Tag.insert {
202+
$0.title
203+
} select: {
204+
Values("vacation")
205+
}
206+
.returning(\.self)
207+
) {
208+
"""
209+
INSERT INTO "tags"
210+
("title")
211+
SELECT 'vacation'
212+
RETURNING "id", "title"
213+
"""
214+
} results: {
215+
"""
216+
┌─────────────────────┐
217+
│ Tag( │
218+
│ id: 8, │
219+
│ title: "vacation"
220+
│ ) │
221+
└─────────────────────┘
222+
"""
223+
}
199224
}
200225

201226
@Test func draft() {

0 commit comments

Comments
 (0)