Skip to content

Commit fce6cff

Browse files
committed
optional fix
1 parent d51d98b commit fce6cff

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

Sources/StructuredQueriesCore/TableAlias.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ where Base.TableColumns.PrimaryColumn: WritableTableColumnExpression {
252252
}
253253

254254
extension TableAlias: QueryExpression where Base: QueryExpression {
255-
public typealias QueryValue = Base.QueryValue
255+
public typealias QueryValue = Self
256256

257257
public var queryFragment: QueryFragment {
258258
base.queryFragment

Tests/StructuredQueriesTests/SelectionTests.swift

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,22 @@ extension SnapshotTests {
284284
"""
285285
}
286286
}
287+
288+
@Test func optionalAlias() {
289+
let baseQuery =
290+
Reminder
291+
.leftJoin(RemindersList.as(RL.self).all) { $0.remindersListID.eq($1.id) }
292+
293+
assertQuery(
294+
baseQuery
295+
.select {
296+
OptionalRemindersListAliasAndReminderCount.Columns(
297+
remindersList: $1,
298+
remindersCount: $0.id.count()
299+
)
300+
}
301+
)
302+
}
287303
}
288304
}
289305

@@ -313,6 +329,13 @@ struct RemindersListAliasAndReminderCount {
313329
let remindersCount: Int
314330
}
315331

332+
@Selection
333+
struct OptionalRemindersListAliasAndReminderCount {
334+
@Columns(as: TableAlias<RemindersList, RL>?.self)
335+
let remindersList: RemindersList?
336+
let remindersCount: Int
337+
}
338+
316339
@Selection
317340
struct Stats {
318341
let completedCount: Int

0 commit comments

Comments
 (0)