Skip to content

Conversation

mbrandonw
Copy link
Member

Since we still support Swift 6.0 we can't yet use trailing commas.

@mbrandonw mbrandonw requested a review from stephencelis June 15, 2025 15:52
@stephencelis stephencelis merged commit ea20f9c into main Jun 16, 2025
3 checks passed
@stephencelis stephencelis deleted the fix-trailing-comma branch June 16, 2025 15:28
stephencelis pushed a commit that referenced this pull request Jun 16, 2025
* Remove trailing comma while we support Swift 6.0

* compile for swift 6.0
stephencelis added a commit that referenced this pull request Jun 23, 2025
* Temporary triggers

* wip

* touch triggers

* fix

* wip

* wip

* wip

* wip

* wip

* Remove trailing comma (#75)

* Remove trailing comma while we support Swift 6.0

* compile for swift 6.0

* Don't require decodable fields in `GROUP BY` (#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` (#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 #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 a3de95c.

* 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 <[email protected]>
Co-authored-by: Brandon Williams <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants