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

supabase / supabase-swift / 37662187290
95%

Build:
DEFAULT BRANCH: main
Ran 07 Oct 2026 05:55PM UTC
Jobs 1
Files 150
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

07 Oct 2026 05:50PM UTC coverage: 90.216% (+0.08%) from 90.134%
37662187290

push

github

web-flow
feat(postgrest): add the embedded and requiring scope (#1458)

* fix(helpers): keep PostgREST error details that are not a string

PostgREST answers an ambiguous embed (HTTP 300, PGRST201) with `details` as an
array of candidate relationships. `ServerError` decoded it as `String?`, so the
whole body failed to decode and the caller got "Unexpected response with status
code 300" with the code, hint and candidates dropped. Structured details are now
kept as JSON text, so the field's type is unchanged and nothing is lost.

Refs SDK-1575

* feat(postgrest): add the embedded and requiring scope

Two methods on a typed query that selects a selection with embeds:

- `embedded(\.comments) { … }` shapes the nested rows only. This is PostgREST's
  default, and every parent row still comes back.
- `requiring(\.comments) { … }` emits `!inner` and also drops the parents with
  no match.

They are separate methods rather than a flag because whichever default a flag
chose would be silently wrong half the time. The scope offers where, order,
limit and range, and nests (`comments.replies.limit=3`). Filters target the
embedded relation's columns, so a column the selection leaves out is still
filterable. The key path roots on the selection's generated `Embeds` namespace,
so a whole-row `select()` has no such member.

`@SelectionOf` now emits `Embeds` (one `PostgrestEmbed` per `@Relationship`) and
conforms the type to `PostgrestEmbeddingSelection`; the select list reads the
embed entry off it, so the `!inner` rewrite and the select string cannot
disagree. Hint order is pinned to `comments!todo_id!inner(…)`.

Fixes SDK-1575

* chore(compliance): register the embedded scope under relationship_embed

Refs SDK-1575

* test(postgrest): cover the embedded scope against a live PostgREST

Every property the scope encodes, asserted on the rows the server returns
rather than on the query string:

- an embedded filter keeps every parent row; requiring drops the unmatched
- or, order... (continued)

119 of 126 new or added lines in 3 files covered. (94.44%)

3 existing lines in 1 file now uncovered.

10816 of 11989 relevant lines covered (90.22%)

63.9 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
93.0
Sources/PostgREST/Query/PostgrestEmbeddedScope.swift

Coverage Regressions

Lines Coverage ∆ File
3
97.35
-2.65% Sources/Helpers/JSONValue/JSONValue.swift
Jobs
ID Job ID Ran Files Coverage
1 37662187290.1 07 Oct 2026 05:55PM UTC 150
90.22
GitHub Action Run
Source Files on build 37662187290
  • Tree
  • List 150
  • Changed 7
  • Source Changed 3
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #37662187290
  • e52251ea on github
  • Prev Build on main (#37525749602)
  • Next Build on main (#37705176865)
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