Skip to content

Commit bcac786

Browse files
committed
wip
1 parent e29eccc commit bcac786

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

Sources/StructuredQueriesCore/Triggers.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public struct TemporaryTrigger<On: Table>: Statement {
150150
public typealias Joins = ()
151151
public typealias QueryValue = ()
152152

153-
fileprivate enum When: String {
153+
fileprivate enum When: QueryFragment {
154154
case before = "BEFORE"
155155
case after = "AFTER"
156156
}
@@ -263,7 +263,7 @@ public struct TemporaryTrigger<On: Table>: Statement {
263263
}
264264
statement = begin
265265
case .delete(let begin):
266-
query.append(" DELETE")
266+
query.append("DELETE")
267267
statement = begin
268268
}
269269
query.append(" ON \(On.self)\(.newlineOrSpace)FOR EACH ROW")
@@ -311,7 +311,7 @@ public struct TemporaryTrigger<On: Table>: Statement {
311311
query.append(" IF NOT EXISTS")
312312
}
313313
query.append("\(.newlineOrSpace)\(triggerName.indented())")
314-
query.append("\(.newlineOrSpace)\(raw: when.rawValue) \(operation)")
314+
query.append("\(.newlineOrSpace)\(when.rawValue) \(operation)")
315315
return query.segments.reduce(into: QueryFragment()) {
316316
switch $1 {
317317
case .sql(let sql):

Tests/StructuredQueriesTests/TriggersTests.swift

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,19 @@ import Testing
88
extension SnapshotTests {
99
@Suite struct TriggersTests {
1010
@Test func basics() {
11-
assertQuery(
12-
RemindersList.createTemporaryTrigger(
13-
after: .insert { new in
14-
RemindersList
15-
.update {
16-
$0.position = RemindersList.select { ($0.position.max() ?? -1) + 1 }
17-
}
18-
.where { $0.id.eq(new.id) }
19-
}
20-
)
21-
) {
11+
let trigger = RemindersList.createTemporaryTrigger(
12+
after: .insert { new in
13+
RemindersList
14+
.update {
15+
$0.position = RemindersList.select { ($0.position.max() ?? -1) + 1 }
16+
}
17+
.where { $0.id.eq(new.id) }
18+
}
19+
)
20+
assertQuery(trigger) {
2221
"""
2322
CREATE TEMPORARY TRIGGER
24-
"after_insert_on_remindersLists@StructuredQueriesTests/TriggersTests.swift:12:45"
23+
"after_insert_on_remindersLists@StructuredQueriesTests/TriggersTests.swift:11:57"
2524
AFTER INSERT ON "remindersLists"
2625
FOR EACH ROW BEGIN
2726
UPDATE "remindersLists"
@@ -33,6 +32,11 @@ extension SnapshotTests {
3332
END
3433
"""
3534
}
35+
assertQuery(trigger.drop()) {
36+
"""
37+
DROP TRIGGER "after_insert_on_remindersLists@StructuredQueriesTests/TriggersTests.swift:11:57"
38+
"""
39+
}
3640
}
3741

3842
@Test func dateDiagnostic() {
@@ -48,7 +52,7 @@ extension SnapshotTests {
4852
) {
4953
"""
5054
CREATE TEMPORARY TRIGGER
51-
"after_update_on_reminders@StructuredQueriesTests/TriggersTests.swift:41:42"
55+
"after_update_on_reminders@StructuredQueriesTests/TriggersTests.swift:45:42"
5256
AFTER UPDATE ON "reminders"
5357
FOR EACH ROW BEGIN
5458
UPDATE "reminders"
@@ -83,7 +87,7 @@ extension SnapshotTests {
8387
) {
8488
"""
8589
CREATE TEMPORARY TRIGGER
86-
"after_update_on_remindersLists@StructuredQueriesTests/TriggersTests.swift:78:45"
90+
"after_update_on_remindersLists@StructuredQueriesTests/TriggersTests.swift:82:45"
8791
AFTER UPDATE ON "remindersLists"
8892
FOR EACH ROW BEGIN
8993
UPDATE "remindersLists"
@@ -100,7 +104,7 @@ extension SnapshotTests {
100104
) {
101105
"""
102106
CREATE TEMPORARY TRIGGER
103-
"after_update_on_reminders@StructuredQueriesTests/TriggersTests.swift:99:40"
107+
"after_update_on_reminders@StructuredQueriesTests/TriggersTests.swift:103:40"
104108
AFTER UPDATE ON "reminders"
105109
FOR EACH ROW BEGIN
106110
UPDATE "reminders"

0 commit comments

Comments
 (0)