Some leftover fixes from #63#79
Merged
Merged
Conversation
Previously, `@FetchOne var authUser: AuthUser?` would not work because it was using a `FetchOne` initializer which did not create a query. This change adds another overloaded initializer that creates a `Select` statement limiting the results to just 1. Considerations: - The statement does not provide a default ordering, so if there are multiple records, it will just return the first one. Added some tests to cover the original failure.
mackoj
pushed a commit
to mackoj/sqlite-data
that referenced
this pull request
Dec 5, 2025
This PR allows the following to work without qualifying the expression
type:
```diff
Reminder.group {
- #sql("date(\($0.dueDate))", as: Date?.self)
+ #sql("date(\($0.dueDate))")
}
```
mackoj
pushed a commit
to mackoj/sqlite-data
that referenced
this pull request
Dec 5, 2025
* Temporary triggers * wip * touch triggers * fix * wip * wip * wip * wip * wip * Remove trailing comma (pointfreeco#75) * Remove trailing comma while we support Swift 6.0 * compile for swift 6.0 * Don't require decodable fields in `GROUP BY` (pointfreeco#79) This PR allows the following to work without qualifying the expression type: ```diff Reminder.group { - #sql("date(\($0.dueDate))", as: Date?.self) + #sql("date(\($0.dueDate))") } ``` * Add `QueryExpression<Optional>.map,flatMap` (pointfreeco#80) * Add `QueryExpression<Optional>.map,flatMap` This PR adds helpers that make it a little easier to work with optional query expressions in a builder. For example, if you want to execute a `LIKE` operator on an optional string, you currently have to resort to one of the following workarounds: ```swift .where { ($0.title ?? "").like("%foo%") } // or: .where { #sql("\($0.title) LIKE '%foo%') } ``` This PR introduces `map` and `flatMap` operations on optional `QueryExpression`s that unwraps the expression, giving you additional flexibility in how you express your builder code: ```swift .where { $0.title.map { $0.like("%foo%") } ?? false } ``` While this is more code than the above options, some may prefer its readability, and should we merge the other optional helpers from pointfreeco#61, it could be further shortened: ```swift .where { $0.title.map { $0.like("%foo%") } } ``` * tests * wip * wip * wip * wip * wip * find update remove later * Revert "find update remove later" This reverts commit a3de95c5f6eca051ec8581d9242573ca4a6ed8af. * wip * wip * wip * more overloads * wip * wip * wip * Support multiple statements in triggers * Reuse query fragment builder * wip * wip * wip * wip --------- Co-authored-by: Brandon Williams <mbrandonw@hey.com> Co-authored-by: Brandon Williams <135203+mbrandonw@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.