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

supabase / etl / 29562147892
74%

Build:
DEFAULT BRANCH: main
Ran 17 Jul 2026 07:35AM UTC
Jobs 1
Files 263
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

17 Jul 2026 07:08AM UTC coverage: 73.649% (-0.03%) from 73.677%
29562147892

push

github

web-flow
test(etl): Add Postgres value roundtrip property tests (#910)

* fix(etl-postgres): Preserve display scale of zero numerics

Postgres renders a zero numeric with its stored display scale, e.g.
'0e-1'::numeric prints as 0.0, but PgNumeric's Display dropped the
scale and printed a bare 0 even though the parser and the binary wire
format both preserve it. Two values that compared unequal could render
identically, and destinations received a less faithful text form than
Postgres emits. Print the fractional zeros for scaled zero values.

Found by the value roundtrip property test with minimal input 0e-1.

* test(etl): Add proptest value roundtrip properties against Postgres

Add a differential property harness: each property generates typed
values, has a real Postgres render them in the text format that
replication tuples and COPY carry, parses that text with the
production codec, and asserts the parsed cell equals the value
Postgres stores. Postgres is the oracle, so the properties catch
silent value corruption rather than only parser panics.

First properties cover text[] and int8[] literals, numeric text
(including NaN and infinities), date, timestamptz, and full COPY rows
through the copy codec. Every property runs fresh random cases until a
wall-clock budget elapses, controlled by
ROUNDTRIP_PROPERTY_BUDGET_SECS (default 3), so the regular suite pays
seconds while CI or local deep runs can raise it to minutes.

Exposes the text cell parser through test_utils::replication_stream
next to the existing copy row and tuple helpers.

* test(etl): Extend value roundtrip properties to more Postgres types

Cover time, timestamp, and timetz (including offsets with seconds) in
addition to date and timestamptz; enums with generated adversarial
labels parsed through catalog-derived enum and enum-array types;
float4/float8 and float8[] over all bit patterns with NaN-aware
comparison; timestamptz[] and bytea[] to exercise quoted and escaped
array elements; jsonb docum... (continued)

50 of 54 new or added lines in 3 files covered. (92.59%)

32 existing lines in 3 files now uncovered.

42799 of 58112 relevant lines covered (73.65%)

5949.09 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
88.57
crates/etl/src/test_utils/property.rs

Coverage Regressions

Lines Coverage ∆ File
26
82.59
-1.43% crates/etl/src/replication/apply.rs
4
79.28
-0.44% crates/etl-destinations/src/bigquery/client.rs
2
40.75
0.0% crates/etl-maintenance/src/ducklake/runner.rs
Jobs
ID Job ID Ran Files Coverage
1 29562147892.1 17 Jul 2026 07:35AM UTC 263
73.65
GitHub Action Run
Source Files on build 29562147892
  • Tree
  • List 263
  • Changed 6
  • Source Changed 2
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29562147892
  • ea5ad3dd on github
  • Prev Build on main (#29521304220)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc