Skip to content

Conversation

stephencelis
Copy link
Member

Temporary triggers always work with the most up-to-date schema, and thus are safe to build with the type-safe schema representation provided by the library.

stephencelis and others added 16 commits June 12, 2025 11:12
* Remove trailing comma while we support Swift 6.0

* compile for swift 6.0
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`

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
@stephencelis stephencelis requested a review from mbrandonw June 16, 2025 21:22
@stephencelis stephencelis marked this pull request as ready for review June 17, 2025 21:18
@stephencelis stephencelis marked this pull request as draft June 17, 2025 21:19
@mbrandonw mbrandonw marked this pull request as ready for review June 23, 2025 16:32
@stephencelis stephencelis merged commit 0ae47cf into main Jun 23, 2025
3 checks passed
@stephencelis stephencelis deleted the temp-triggers branch June 23, 2025 18:22
stephencelis added a commit that referenced this pull request Sep 17, 2025
Like temporary triggers
(#82),
temporary views can be created in a completely type-safe manner due to
their transitive nature.
stephencelis added a commit that referenced this pull request Sep 17, 2025
* Add type-safe API for creating temporary views

Like temporary triggers
(#82),
temporary views can be created in a completely type-safe manner due to
their transitive nature.

* wip
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