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

supabase / supabase-flutter / 36696892879
92%

Build:
DEFAULT BRANCH: main
Ran 30 Sep 2026 09:36AM UTC
Jobs 9
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

30 Sep 2026 09:33AM UTC coverage: 91.444%. First build
36696892879

push

github

web-flow
feat(postgrest)!: type a partial select as a partial row instead of the full row (#1897)

Closes
[SDK-1976](https://linear.app/supabase/issue/SDK-1976/featpostgrest-type-a-partial-select-as-a-selection-instead-of-the-full).

## Problem

`select([Books.id, Books.title])` on the typed builders resolved to
`List<BooksRow>`. The generated row type reads `_json['created_at'] as
String`, so every getter of a column the list left out compiled and
crashed at runtime with a null cast that did not name the column. Since
#1891 the same applied to embeds: `Books.author.select([Authors.name])`
was read through `BooksRow.authors`, which converted the partial
embedded object into a full `AuthorsRow`.

## What changes

### `postgrest`

- **`selectOnly([...])`** replaces `select([...])` on
`PostgrestTypedQueryBuilder` and `PostgrestTypedTransformBuilder` and
resolves to `List<PostgrestPartialRow<Row>>`. `select()` keeps resolving
to `List<Row>`.
- **`PostgrestPartialRow.read`** reads a value through the select list
entry, so the entry types the read and an entry of another table does
not compile:

  ```dart
  final books = await client
      .table(Books.table)
.selectOnly([Books.id, Books.title,
Books.author.select([Authors.name])]);

  final int id = books.first.read(Books.id);
final String? author =
books.first.read(Books.author)?.read(Authors.name);
books.first.read(Books.createdAt); // StateError: `created_at` was not
selected. The row holds `id`, `title`, `authors`.
  ```

A `PostgrestColumn` reads as its value type, a
`PostgrestNullableColumn`, a derived expression and a JSON path as the
nullable form, a to-one relation as a nested `PostgrestPartialRow?`, a
to-many relation as a list of them. Aggregates come back under the
function name, a cast under the key of what was cast, a JSON path under
its last key. Entries of one relation merge into the nested row the way
they merge into one embed, and `Books.author.select()` lets any column
of the embedded table be re... (continued)

180 of 190 new or added lines in 10 files covered. (94.74%)

8711 of 9526 relevant lines covered (91.44%)

5.08 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
76.47
packages/postgrest/lib/src/postgrest_derived_expression.dart
2
94.2
packages/postgrest/lib/src/postgrest_embedded_relation.dart
2
91.67
packages/postgrest/lib/src/postgrest_vector.dart
Jobs
ID Job ID Ran Files Coverage
1 iceberg - 36696892879.1 30 Sep 2026 09:36AM UTC 6
68.52
GitHub Action Run
2 supabase_functions - 36696892879.2 30 Sep 2026 09:37AM UTC 4
96.0
GitHub Action Run
3 supabase_typegen - 36696892879.3 30 Sep 2026 09:38AM UTC 24
95.78
GitHub Action Run
4 postgrest - 36696892879.4 30 Sep 2026 09:40AM UTC 29
94.06
GitHub Action Run
5 supabase - 36696892879.5 30 Sep 2026 09:40AM UTC 18
94.26
GitHub Action Run
6 supabase_realtime - 36696892879.6 30 Sep 2026 09:39AM UTC 13
90.66
GitHub Action Run
7 supabase_flutter - 36696892879.7 30 Sep 2026 09:37AM UTC 15
81.0
GitHub Action Run
8 supabase_auth - 36696892879.8 30 Sep 2026 09:40AM UTC 32
92.07
GitHub Action Run
9 supabase_storage - 36696892879.9 30 Sep 2026 09:39AM UTC 9
97.83
GitHub Action Run
Source Files on build 36696892879
  • Tree
  • List 150
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36696892879
  • 9378ac89 on github
  • Prev Build on main (#36696205739)
  • Next Build on main (#36698110206)
  • 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