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

supabase / supabase-flutter / 36537528666
94%

Build:
DEFAULT BRANCH: main
Ran 29 Sep 2026 07:36AM 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 07:35AM UTC coverage: 91.226% (+0.07%) from 91.154%
36537528666

push

github

web-flow
feat(postgrest): type the embedded rows of a relation (#1891)

Stacked on https://github.com/supabase/supabase-flutter/pull/1890, which
adds `PostgrestRelation.select` and merges same-relation entries. Only
the last commit is this PR.

## Summary

Embedded rows came back as `Map<String, dynamic>` (or a list of them)
even on the typed surface, so reading `order.lineItems` meant casting by
hand. The generated row types now read embedded rows as their row type,
and hinted embeds get an alias so two relations to one table no longer
collide in the response.

## Changes

- **Row getters for relations (typegen).** Every generated row type gets
a getter per relation, named like the relation constant on the namespace
class. A to-one relation reads `AuthorsRow?`, `null` unless the relation
was selected and the key points at a row. A to-many relation reads
`List<BooksRow>`, and is only readable when the relation was selected,
in line with how column getters behave for columns left out of a
`select`.
- **Relation names are settled once.** The generator claims relation
member names against both scopes they appear in, the namespace class and
the row type, so the constant and the getter share a name.
- **`PostgrestRelation.alias` and `key`.** A hinted embed comes back
under the plain table name, so two hinted relations to the same table
overwrite each other in the response. `alias` renders as
`alias:table!hint(...)` in `select` and replaces the name in `order` and
in the filter form, which PostgREST requires once an alias is set. `key`
names what the embedded rows come back under: the alias, or the table
name. Verified against the local stack that an aliased embed must be
ordered and filtered by the alias, and that `limit` on the embed accepts
either.
- **Typegen aliases ambiguous relations** to the member name in snake
case, `map_by_mood:map!postgrest_table_mood_fkey`, and the row getter
reads under that key.

## Tests

- Postgrest: alias rendering in select, order... (continued)

79 of 81 new or added lines in 5 files covered. (97.53%)

8796 of 9642 relevant lines covered (91.23%)

4.95 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
96.92
0.05% packages/postgrest/lib/src/postgrest_column_expression.dart
1
96.0
0.44% packages/postgrest/lib/src/postgrest_embedded_relation.dart
Jobs
ID Job ID Ran Files Coverage
3 supabase - 36537528666.3 29 Sep 2026 07:40AM UTC 18
93.71
GitHub Action Run
4 supabase_realtime - 36537528666.4 29 Sep 2026 07:39AM UTC 13
90.66
GitHub Action Run
5 iceberg - 36537528666.5 29 Sep 2026 07:36AM UTC 6
68.52
GitHub Action Run
6 supabase_flutter - 36537528666.6 29 Sep 2026 07:37AM UTC 14
78.5
GitHub Action Run
7 supabase_storage - 36537528666.7 29 Sep 2026 07:39AM UTC 9
97.83
GitHub Action Run
8 postgrest - 36537528666.8 29 Sep 2026 07:39AM UTC 28
94.17
GitHub Action Run
9 supabase_functions - 36537528666.9 29 Sep 2026 07:36AM UTC 4
96.0
GitHub Action Run
10 supabase_auth - 36537528666.10 29 Sep 2026 07:43AM UTC 32
92.06
GitHub Action Run
11 supabase_typegen - 36537528666.11 29 Sep 2026 07:38AM UTC 24
95.58
GitHub Action Run
8 supabase_common - 35998092270.8 24 Sep 2026 12:18PM UTC 22
87.5
GitHub Action Run
2 yet_another_json_isolate - 35608843571.2 21 Sep 2026 01:58PM UTC 1
98.44
GitHub Action Run
Source Files on build 36537528666
  • Tree
  • List 171
  • Changed 7
  • Source Changed 7
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36537528666
  • 0281f352 on github
  • Prev Build on main (#36532319957)
  • Next Build on main (#36549440608)
  • 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