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

supabase / etl / 29817762653
74%

Build:
DEFAULT BRANCH: main
Ran 21 Jul 2026 09:33AM 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

21 Jul 2026 09:18AM UTC coverage: 73.744% (+0.03%) from 73.71%
29817762653

push

github

web-flow
Add value roundtrip property tests for the ClickHouse destination (#922)

* test(clickhouse): Add value roundtrip properties for the destination

Add budget-based properties that generate typed cells, write them
through the production destination path (schema DDL, cell conversion,
RowBinary encoding, HTTP insert), read them back from a real
ClickHouse, and assert the stored values equal the written ones.
ClickHouse itself is the oracle, so the properties catch silent value
corruption in the write path, not just encoder panics.

Scalars covered: int2/int4/int8/oid/bool; float4/float8 over all bit
patterns with bit-exact comparison, since RowBinary carries raw IEEE
bytes in both directions; text; the String-mapped types numeric,
jsonb, time, and bytea; date, timestamp, and timestamptz inside
ClickHouse's Date32 and DateTime64 ranges; and uuid. Every scalar
column is exercised both as Nullable and NOT NULL because the two
RowBinary encodings differ.

ClickHouseDestination gains the same inline write_table_rows
convenience wrapper DuckLakeDestination already exposes, so direct
destination tests can await copy writes without the async-result
plumbing.

* test(clickhouse): Cover arrays in value roundtrip properties

Add an array property over int8[], text[], float8[], bytea[], and
date[] columns. The int8[] lengths cross the LEB128 single-byte
boundary at 128 to exercise multi-byte varint encoding, and every
element is Nullable on the ClickHouse side so None elements exercise
the per-element null indicator byte.

* test(clickhouse): Pin loud rejection for out-of-range temporal values

Dates outside ClickHouse Date32's 1900..=2299 range must fail the
write loudly, and the property confirms the existing conversion check
does so before any bytes reach the server.

Timestamps outside DateTime64(6)'s documented range have no local
range check. Empirically ClickHouse accepts the raw microsecond ticks
and reads them back bit-exact, so no silent value mutation occu... (continued)

44 of 46 new or added lines in 2 files covered. (95.65%)

17 existing lines in 2 files now uncovered.

43410 of 58866 relevant lines covered (73.74%)

5025.58 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
91.89
3.32% crates/etl/src/test_utils/property.rs

Coverage Regressions

Lines Coverage ∆ File
15
82.56
-0.87% crates/etl/src/replication/apply.rs
2
47.2
-0.08% crates/etl-maintenance/src/ducklake/runner.rs
Jobs
ID Job ID Ran Files Coverage
1 29817762653.1 21 Jul 2026 09:33AM UTC 263
73.74
GitHub Action Run
Source Files on build 29817762653
  • Tree
  • List 263
  • Changed 8
  • Source Changed 2
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29817762653
  • 05a468c9 on github
  • Prev Build on main (#29749745491)
  • Next Build on main (#29822257535)
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