From b50aa791f0ebc9668cc1e8496768c4a271891d31 Mon Sep 17 00:00:00 2001 From: Stephen Celis Date: Tue, 9 Dec 2025 09:59:07 -0800 Subject: [PATCH 1/2] Add `TableAlias` docs for selection decoding This has come up a few times on Slack and we don't have the functionality documented. --- Sources/StructuredQueriesCore/TableAlias.swift | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Sources/StructuredQueriesCore/TableAlias.swift b/Sources/StructuredQueriesCore/TableAlias.swift index 91c1c3ec..817500bc 100644 --- a/Sources/StructuredQueriesCore/TableAlias.swift +++ b/Sources/StructuredQueriesCore/TableAlias.swift @@ -60,6 +60,21 @@ extension Table { /// // ON "users"."referrerID" = "referrers"."id" /// ``` /// + /// Table aliases are representable in selections by providing the type to the `@Column` macro: + /// + /// ```swift + /// @Selection + /// struct UserWithReferrer { + /// let user: User + /// @Column(as: TableAlias.self) + /// let referrer: User + /// } + /// + /// let usersWithReferrers = User + /// .join(User.as(Referrer.self).all) { $0.referrerID == $1.id } + /// .select { UserWithReferrer.Columns(user: $0, referrer: $1) } + /// ``` + /// /// - Parameter aliasName: An alias name for this table. /// - Returns: A table alias of this table type. public static func `as`(_ aliasName: Name.Type) -> TableAlias.Type { From 51a5619010f2bb1bf1c0c61e8e7ca64d35c2e037 Mon Sep 17 00:00:00 2001 From: Stephen Celis Date: Wed, 10 Dec 2025 08:39:25 -0800 Subject: [PATCH 2/2] Update TableAlias.swift --- Sources/StructuredQueriesCore/TableAlias.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/StructuredQueriesCore/TableAlias.swift b/Sources/StructuredQueriesCore/TableAlias.swift index 817500bc..222517ea 100644 --- a/Sources/StructuredQueriesCore/TableAlias.swift +++ b/Sources/StructuredQueriesCore/TableAlias.swift @@ -60,13 +60,13 @@ extension Table { /// // ON "users"."referrerID" = "referrers"."id" /// ``` /// - /// Table aliases are representable in selections by providing the type to the `@Column` macro: + /// Table aliases are representable in selections by providing the type to the `@Columns` macro: /// /// ```swift /// @Selection /// struct UserWithReferrer { /// let user: User - /// @Column(as: TableAlias.self) + /// @Columns(as: TableAlias.self) /// let referrer: User /// } ///