• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-swift / 33421709958
88%

Build:
DEFAULT BRANCH: main
Ran 31 Aug 2026 05:54PM UTC
Jobs 1
Files 116
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

31 Aug 2026 05:49PM UTC coverage: 87.272% (-0.008%) from 87.28%
33421709958

push

github

web-flow
feat(postgrest): add casts and JSON paths as column expressions (#1293)

* feat(postgrest): add the where and order closures

`where(_:)` takes a closure over the relation's column namespace and returns a
`PostgrestFilter`, so a whole boolean expression is one call instead of a chain
of per-operator methods. Because the filter is a value, one that depends on
runtime state is assembled in the closure body like any other value.

`order(_:)` takes a column expression and is constrained to
`PostgrestOrderableExpression` — a third position set, verified against
PostgREST 16.1, that overlaps the filterable set without matching it. A cast
(`order=cost::text.desc`) and an aggregate are both 400s there, so neither
compiles.

The direction is optional: `order { $0.dueDate }` sends no direction and lets
PostgREST apply its own default. `.asc()`/`.desc()` are for when it matters,
and chain into `nullsFirst()`/`nullsLast()`.

Existing key-path call sites move over. The key-path surface itself is removed
in the next commit.

* refactor(postgrest): remove the key-path filter surface

Deletes `PostgrestTypedQuery+Filters.swift`. All three readers of the key-path
spelling have moved: `where`/`order`, `@SelectionOf`'s `selectString`, and
`PostgrestUpdate`'s subscript. There is now exactly one way to write a filter:
`.where { $0.column.eq(value) }` in place of `.eq(\.column, value)`, and
`.order { $0.column.desc() }` in place of `.order(\.column, ascending:)`.

`@Table` stops generating `columnName(for:)` and `PostgrestRelation` drops the
requirement, which also removes the generated `default: fatalError` — a key
path to a computed property was a runtime trap and is now a compile error.
Hand-written conformances declare a `Columns` namespace instead.

`PostgrestKeyPathFilterable` is renamed `PostgrestFilterableRequest`, since it
no longer has anything to do with key paths, and moves next to `where(_:)`.
`limit(_:)` moves alongside `order(_:)`.

Not marked breaking: the ... (continued)

20 of 24 new or added lines in 1 file covered. (83.33%)

9503 of 10889 relevant lines covered (87.27%)

89.66 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
83.33
Sources/PostgREST/Columns/PostgrestDerivedColumn.swift
Jobs
ID Job ID Ran Files Coverage
1 33421709958.1 31 Aug 2026 05:54PM UTC 116
87.27
GitHub Action Run
Source Files on build 33421709958
  • Tree
  • List 116
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #33421709958
  • 1852b9e0 on github
  • Prev Build on main (#33420017583)
  • Next Build on main (#33425268985)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc