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

supabase / etl / 39296640087
81%

Build:
DEFAULT BRANCH: main
Ran 19 Oct 2026 05:52PM UTC
Jobs 1
Files 236
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

19 Oct 2026 05:43PM UTC coverage: 80.15% (+0.7%) from 79.445%
39296640087

push

github

web-flow
test: add fuzz and property tests for data-loss paths (#1131)

* fix(etl-postgres): decode negative numeric scales

Postgres 15+ stores the NUMERIC scale as an 11-bit two's-complement
field, but numeric_modifiers read 16 bits, so numeric(5,-2) decoded
as scale 2046. Mirror numeric.c and treat any typmod below VARHDRSZ as
unconstrained.

The old unit tests built typmods with the same wrong encoding, so they
passed on the bug. Replace them with atttypmod values read from a PG 18
server and an exhaustive check against the Postgres encoder for every
valid precision and scale. DuckLake still maps negative scales to
varchar, so its output does not change.

* test(etl): fuzz pgoutput tuple decoding

Add the decode_pgoutput_tuple cargo-fuzz target. It builds a small
schema and replica-identity masks from the input, assembles a pgoutput
Insert, Update, or Delete body, parses it with postgres_replication,
and runs the etl decoders. Decoding must never panic, and accepted
rows must have the replicated width with sorted, in-range, disjoint
missing-column indexes.

Six hand-written seeds cover insert, unchanged TOAST, key change, full
old row, and key-only and full deletes. The target joins the nightly
Fuzz matrix; the PR corpus replay finds it through cargo fuzz list.
A 60 second local run made 311,000 executions with no findings.

* test: add property tests for data-loss paths

Add model and differential properties on the shared budget runner for
the paths where a bug would silently corrupt or lose replicated data:

- etl: pgoutput update and delete decoding against a reference model,
  RELATION materialization, schema-change plan replay, durable table
  state, COPY vs pgoutput decoding, JSON and array element laws, and
  default expressions against the value Postgres backfills.
- BigQuery: CDC merge order and protobuf wire agreement.
- ClickHouse: CDC history with crash and replay, and SQL quoting.
- DuckLake: encoder agreement, identity predicates, and replay.... (continued)

3273 of 3719 new or added lines in 14 files covered. (88.01%)

180 existing lines in 5 files now uncovered.

56036 of 69914 relevant lines covered (80.15%)

43044.9 hits per line

Uncovered Changes

Lines Coverage ∆ File
152
0.0
0.0% crates/etl/src/fuzzing.rs
79
83.07
18.96% crates/etl-destinations/src/ducklake/encoding.rs
73
89.91
-1.6% crates/etl-destinations/src/bigquery/core.rs
52
84.07
1.46% crates/etl-destinations/src/ducklake/batches.rs
50
87.63
-0.9% crates/etl/src/replication/apply/mod.rs
26
95.13
-0.09% crates/etl-destinations/src/bigquery/encoding.rs
7
97.88
0.14% crates/etl-destinations/src/snowflake/encoding.rs
3
97.41
0.53% crates/etl/src/schema.rs
2
95.05
4.66% crates/etl-destinations/src/snowflake/streaming/offset_token.rs
1
96.47
0.63% crates/etl-destinations/src/snowflake/streaming/batch/mod.rs
1
94.82
4.75% crates/etl/src/replication/state/lifecycle.rs

Coverage Regressions

Lines Coverage ∆ File
113
64.99
7.89% crates/xtask/src/commands/nextest.rs
34
78.43
-2.96% crates/etl-destinations/src/bigquery/client.rs
17
83.74
-0.03% crates/etl-destinations/src/ducklake/core.rs
11
79.63
18.09% crates/etl-postgres/src/test_utils.rs
5
53.15
0.12% crates/etl-maintenance/src/ducklake/runner.rs
Jobs
ID Job ID Ran Files Coverage
1 39296640087.1 19 Oct 2026 05:52PM UTC 236
80.15
GitHub Action Run
Source Files on build 39296640087
  • Tree
  • List 236
  • Changed 24
  • Source Changed 18
  • Coverage Changed 24
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39296640087
  • cb1985ee on github
  • Prev Build on main (#39294970188)
  • Next Build on main (#39356688382)
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