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

supabase / supabase-flutter / 36532319957
94%

Build:
DEFAULT BRANCH: main
Ran 29 Sep 2026 06:41AM UTC
Jobs 11
Files 171
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

29 Sep 2026 06:40AM UTC coverage: 91.154% (+0.02%) from 91.135%
36532319957

push

github

web-flow
feat(postgrest): select several columns of an embed (#1890)

## Summary

Selecting two columns of the same relation on the typed surface, for
example `select([Books.author(Authors.id),
Books.author(Authors.name)])`, sent `author(id),author(name)`. PostgREST
joins the relation once per embed and Postgres rejects the repeated join
with 42803, so the request failed outright. One column per relation
worked.

This PR merges the entries of one relation into a single embed and adds
a way to select an embed as a whole.

## Changes

- **Merging.** Entries of one relation in a `select` list are rendered
as one embed at the position of the first entry, so the list above is
sent as `author(id,name)`. Merging recurses through nested embeds.
- **`PostgrestRelation.select`.** `Books.author.select([Authors.id,
Authors.name])` renders `author(id,name)` and `Books.author.select()`
renders `author(*)`. It returns a `PostgrestToOneEmbed` or
`PostgrestToManyEmbed`, both `PostgrestEmbed`, which is select position
only: not orderable, not filterable, no cast or aggregate. `select([])`
throws like the builder does. `columns` was not available as the method
name since the relation already carries its key columns under that name.
- **Sugar.** A single-column projection, `Books.author(Authors.name)`,
renders through the same path as a one-entry `select`, so there is one
code path to attach typed embedded rows to later
(https://linear.app/supabase/issue/SDK-1973/featpostgrest-type-the-nested-rows-of-an-embed-on-the-typed-surface).
- **`PostgrestSelectable`.** New sealed base of everything a `select`
list takes. `PostgrestColumnExpression` and `PostgrestEmbed` extend it,
and the typed `select` methods plus `PostgrestTableRequest.columns`
accept it.
- **Derivations inside embeds are structural.**
`PostgrestDerivedExpression` is now sealed over a plain derivation and
an embedded one that keeps its relation. A derivation of a nested
projection lands on the innermost column, `todo(or... (continued)

74 of 78 new or added lines in 6 files covered. (94.87%)

8738 of 9586 relevant lines covered (91.15%)

4.96 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
80.0
-0.95% packages/postgrest/lib/src/postgrest_derived_expression.dart
2
95.56
-4.44% packages/postgrest/lib/src/postgrest_embedded_relation.dart
Jobs
ID Job ID Ran Files Coverage
3 supabase - 36532319957.3 29 Sep 2026 06:48AM UTC 18
93.71
GitHub Action Run
4 supabase_functions - 36532319957.4 29 Sep 2026 06:41AM UTC 4
96.0
GitHub Action Run
5 supabase_auth - 36532319957.5 29 Sep 2026 06:45AM UTC 32
92.06
GitHub Action Run
6 supabase_flutter - 36532319957.6 29 Sep 2026 06:42AM UTC 14
78.5
GitHub Action Run
7 supabase_realtime - 36532319957.7 29 Sep 2026 06:44AM UTC 13
90.66
GitHub Action Run
8 postgrest - 36532319957.8 29 Sep 2026 06:44AM UTC 28
94.15
GitHub Action Run
9 iceberg - 36532319957.9 29 Sep 2026 06:42AM UTC 6
68.52
GitHub Action Run
10 supabase_typegen - 36532319957.10 29 Sep 2026 06:43AM UTC 24
95.2
GitHub Action Run
11 supabase_storage - 36532319957.11 29 Sep 2026 06:44AM UTC 9
97.83
GitHub Action Run
2 yet_another_json_isolate - 35608843571.2 21 Sep 2026 01:58PM UTC 1
98.44
GitHub Action Run
8 supabase_common - 35998092270.8 24 Sep 2026 12:18PM UTC 22
87.5
GitHub Action Run
Source Files on build 36532319957
  • Tree
  • List 171
  • Changed 9
  • Source Changed 9
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36532319957
  • 8741aae6 on github
  • Prev Build on main (#36168016912)
  • Next Build on main (#36537528666)
  • Delete
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