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

supabase / supabase-swift / 37760470206
95%

Build:
DEFAULT BRANCH: main
Ran 08 Oct 2026 10:03AM 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

08 Oct 2026 09:59AM UTC coverage: 90.191% (-0.02%) from 90.214%
37760470206

push

github

web-flow
refactor(postgrest): render untyped filters through the core, retire pendingError, add the typed/untyped parity suite (#1464)

* refactor(postgrest): render untyped filters through the filter node

`PostgrestFilter<R>.Node` and its renderer move to a non-generic
`PostgrestFilterNode`, so the untyped builder, which has no relation
type, can build the same nodes the typed `where` builds. Every string
filter method now appends `node.queryItems()` instead of formatting a
query item by hand; `or`, `filter` and `not` become raw nodes so a
hand-written operator or group is still sent as written.

No escaping changes. Spec §9.5 verified that a top-level scalar operand
must stay unquoted, which the core already honors, and `in`/`notIn`
were already quoted. The only wire change is `is(_:value: nil)` sending
`is.null` instead of `is.NULL`, which PostgREST reads case-insensitively.

`escapePostgRESTFilterValue` stays: the renderer and Realtime call it.

Refs SDK-2167

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor(postgrest): retire pendingError on the untyped builders

The csv + stripNulls conflict is now caught by `PostgrestRequest`
before anything is sent, as a `PostgrestError` of kind
`.invalidRequest`, so the builder no longer carries a deferred error
string across phase changes. One message replaces the two
order-dependent ones.

The typed `csv()`/`geojson()`/`explain()` clear `stripsNulls` when they
build the raw request, which is the behavior
`stripNullsBeforeCSVIsNotSent()` already pins.

Refs SDK-2168

Co-Authored-By: Claude <noreply@anthropic.com>

* test(postgrest): assert the typed and untyped paths build the same request

Every operation and a representative set of filters and modifiers,
spelled through `from(Todo.self)` and through `from("todos")`, compared
on method, path, query, every header field and body. `QueryCapture`
gains a `headers` dictionary for that.

`rpc` has no typed spelling yet (SDK-1577) and `maybeSingle()` differs
by ... (continued)

57 of 57 new or added lines in 4 files covered. (100.0%)

10712 of 11877 relevant lines covered (90.19%)

67.85 hits per line

Jobs
ID Job ID Ran Files Coverage
1 37760470206.1 08 Oct 2026 10:03AM UTC 150
90.19
GitHub Action Run
Source Files on build 37760470206
  • Tree
  • List 150
  • Changed 8
  • Source Changed 6
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #37760470206
  • ff9a1481 on github
  • Prev Build on main (#37705176865)
  • Next Build on main (#37761003938)
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