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

supabase / etl / 30000487710
74%

Build:
DEFAULT BRANCH: main
Ran 23 Jul 2026 10:59AM UTC
Jobs 1
Files 265
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

23 Jul 2026 10:45AM UTC coverage: 74.009% (-0.03%) from 74.037%
30000487710

push

github

web-flow
Fix array dimension prefix parsing and add codec fuzz targets (#929)

* fix(etl): Handle array dimension prefixes and reject multidim arrays

The text array parser treated unquoted braces in the array body as
element content and required the literal to start with '{'. Both break
on legal Postgres output:

- Arrays with a lower bound other than 1 render with an explicit
  dimensions prefix, e.g. '[0:1]={7,8}', and were spuriously rejected
  with 'Array input missing braces', erroring the table.
- Multidimensional values for string-typed arrays were silently
  corrupted: '{{NULL},{NULL}}' parsed as two non-null '{NULL}' strings.
  Integer-typed arrays failed loudly on the same input by accident of
  element parsing.

The parser now validates and skips a one-group dimensions prefix
(bounds carry no value information for a one-dimensional array) and
rejects nested unquoted braces and multi-group prefixes with a clear
error, since ArrayCell cannot represent multiple dimensions.

Found by two new value roundtrip properties: shifted-lower-bound int8[]
literals must roundtrip, and rendered 2-D text[] values must be
rejected loudly (pinning reject-not-corrupt until real support exists).
Minimal counterexamples were '[0:0]={NULL}' and '{{NULL},{NULL}}'.

* test(etl): Add fuzz targets for the text codec, COPY rows, and numeric

Extends the fuzz crate from one target (bytea hex) to four:

- parse_text_cell: drives parse_cell_from_postgres_text across every
  dedicated codec branch (scalar and array) plus the generic fallbacks,
  with the type picked by a selector byte.
- parse_copy_row: drives parse_table_row_from_postgres_copy_bytes with
  a schema derived from leading input bytes, covering COPY escape
  handling and row termination.
- numeric_text_roundtrip: checks parse/print/parse stability of
  PgNumeric text values, so the target catches logic bugs (unstable
  renderings) as well as panics.

The fuzzing facade in etl::fuzzing owns type-table selection and t... (continued)

82 of 116 new or added lines in 2 files covered. (70.69%)

26 existing lines in 2 files now uncovered.

43970 of 59412 relevant lines covered (74.01%)

8137.57 hits per line

Uncovered Changes

Lines Coverage ∆ File
34
0.0
0.0% crates/etl/src/fuzzing.rs

Coverage Regressions

Lines Coverage ∆ File
19
83.66
-0.87% crates/etl/src/replication/apply.rs
7
47.2
-0.08% crates/etl-maintenance/src/ducklake/runner.rs
Jobs
ID Job ID Ran Files Coverage
1 30000487710.1 23 Jul 2026 10:59AM UTC 265
74.01
GitHub Action Run
Source Files on build 30000487710
  • Tree
  • List 265
  • Changed 6
  • Source Changed 2
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30000487710
  • ecd38c87 on github
  • Prev Build on main (#29996232251)
  • Next Build on main (#30004881283)
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