Skip to content

Commit 2d1bffe

Browse files
committed
more overloads
1 parent 386e8f8 commit 2d1bffe

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

Sources/StructuredQueriesCore/Triggers.swift

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,68 @@ extension Table {
143143
column: column
144144
)
145145
}
146+
147+
public static func createTemporaryTrigger(
148+
_ name: String? = nil,
149+
ifNotExists: Bool = false,
150+
afterUpdateTouch date: KeyPath<TableColumns, TableColumn<Self, Date?>>,
151+
fileID: StaticString = #fileID,
152+
line: UInt = #line,
153+
column: UInt = #column
154+
) -> TemporaryTrigger<Self> {
155+
Self.createTemporaryTrigger(
156+
name,
157+
ifNotExists: ifNotExists,
158+
afterUpdateTouch: {
159+
$0[dynamicMember: date] = SQLQueryExpression("datetime('subsec')")
160+
},
161+
fileID: fileID,
162+
line: line,
163+
column: column
164+
)
165+
}
166+
167+
public static func createTemporaryTrigger(
168+
_ name: String? = nil,
169+
ifNotExists: Bool = false,
170+
afterInsertTouch updates: (inout Updates<Self>) -> Void,
171+
fileID: StaticString = #fileID,
172+
line: UInt = #line,
173+
column: UInt = #column
174+
) -> TemporaryTrigger<Self> {
175+
Self.createTemporaryTrigger(
176+
name,
177+
ifNotExists: ifNotExists,
178+
after: .insert { new in
179+
Self
180+
.where { $0.rowid.eq(new.rowid) }
181+
.update { updates(&$0) }
182+
},
183+
fileID: fileID,
184+
line: line,
185+
column: column
186+
)
187+
}
188+
189+
public static func createTemporaryTrigger(
190+
_ name: String? = nil,
191+
ifNotExists: Bool = false,
192+
afterInsertTouch date: KeyPath<TableColumns, TableColumn<Self, Date?>>,
193+
fileID: StaticString = #fileID,
194+
line: UInt = #line,
195+
column: UInt = #column
196+
) -> TemporaryTrigger<Self> {
197+
Self.createTemporaryTrigger(
198+
name,
199+
ifNotExists: ifNotExists,
200+
afterUpdateTouch: {
201+
$0[dynamicMember: date] = SQLQueryExpression("datetime('subsec')")
202+
},
203+
fileID: fileID,
204+
line: line,
205+
column: column
206+
)
207+
}
146208
}
147209

148210
public struct TemporaryTrigger<On: Table>: Statement {

0 commit comments

Comments
 (0)