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

supabase / supabase-flutter / 40333345355
94%

Build:
DEFAULT BRANCH: main
Ran 26 Oct 2026 01:47PM UTC
Jobs 12
Files 187
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

26 Oct 2026 01:45PM UTC coverage: 94.051% (-0.02%) from 94.071%
40333345355

push

github

web-flow
perf(postgrest): stop wrapping every inserted and upserted row in a cast view (#2058)

Stacked on #2057.

Fixes
[SDK-2402](https://linear.app/supabase/issue/SDK-2402/perfpostgrest-stop-wrapping-every-inserted-and-upserted-row-in-a-cast).

## Summary

`_jsonRow`, which `insert()` and `upsert()` (and the typed
`insertAll`/`upsertAll`) use to turn each row of a list into a JSON
object, ended with `json.cast()`. `Map.cast` always returns a wrapping
view, even when the row already is a `Map<String, dynamic>`, so the key
check, the `columns` collection, `jsonEncode` and the copy of the body
to the encoding isolate all went through a type-checking view.

Rows that already are a `Map<String, dynamic>` are now returned as they
are. Other maps with only String keys are copied once with `Map.from`. A
row with a non-String key still throws `ArgumentError`.

Measured with a canned HTTP transport, AOT compiled, on macOS arm64:

| Insert, v3 default codec | Before | After |
| --- | --: | --: |
| 10000 rows, total | 10.78 ms | 8.25 ms |
| 10000 rows, longest main isolate stall | 5.42 ms | 2.59 ms |
| 1000 rows, total | 834 µs | 776 µs |

## Tests

`insert()` and `upsert()` of a list holding a `Map<dynamic, dynamic>`
and a `Map<String, Object?>` send the right body and `columns`
parameter, and a row with a non-String key throws.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

<!-- coderabbit-ai-generated:v1 -->

## Summary by CodeRabbit

* **Bug Fixes**
* Insert and upsert requests now correctly serialize rows provided as
maps with string keys, including maps using different value types.
  * Request columns are correctly included based on the row keys.
* Rows with non-string keys continue to be rejected with an
`ArgumentError`.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

2 of 2 new or added lines in 1 file covered. (100.0%)

16 existing lines in 4 files now uncovered.

12127 of 12894 relevant lines covered (94.05%)

6.34 hits per line

Coverage Regressions

Lines Coverage ∆ File
7
77.42
-14.25% packages/postgrest/lib/src/postgrest_rpc.dart
5
97.47
0.0% packages/supabase/lib/src/supabase_client.dart
2
66.67
33.33% packages/supabase/lib/src/supabase_client_interceptor.dart
2
97.62
0.0% packages/postgrest/lib/src/postgrest_table_executor.dart
Jobs
ID Job ID Ran Files Coverage
3 supabase_functions - 40333345355.3 26 Oct 2026 01:47PM UTC 4
94.01
GitHub Action Run
4 supabase_flutter - 40333345355.4 26 Oct 2026 01:47PM UTC 16
89.29
GitHub Action Run
5 supabase_test - 40333345355.5 26 Oct 2026 01:47PM UTC 9
93.55
GitHub Action Run
6 supabase_auth - 40333345355.6 26 Oct 2026 01:51PM UTC 34
94.06
GitHub Action Run
7 supabase - 40333345355.7 26 Oct 2026 01:50PM UTC 21
94.16
GitHub Action Run
8 supabase_typegen - 40333345355.8 26 Oct 2026 01:49PM UTC 6
94.46
GitHub Action Run
9 iceberg - 40333345355.9 26 Oct 2026 01:47PM UTC 6
100.0
GitHub Action Run
10 supabase_storage - 40333345355.10 26 Oct 2026 01:49PM UTC 10
96.51
GitHub Action Run
11 supabase_realtime - 40333345355.11 26 Oct 2026 01:49PM UTC 14
91.77
GitHub Action Run
12 postgrest - 40333345355.12 26 Oct 2026 01:49PM UTC 29
92.45
GitHub Action Run
4 yet_another_json_isolate - 40330369462.4 26 Oct 2026 01:27PM UTC 2
98.65
GitHub Action Run
1 supabase_common - 40299077241.1 26 Oct 2026 09:24AM UTC 36
94.12
GitHub Action Run
Source Files on build 40333345355
  • Tree
  • List 187
  • Changed 7
  • Source Changed 7
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #40333345355
  • a05c51bf on github
  • Prev Build on main (#40331848863)
  • Next Build on main (#40336741954)
  • 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