Skip to content

A column an exclude list matches is reported as matched, not as "not matched" - #10

Merged
avison9 merged 1 commit into
mainfrom
fix/exclude-list-wording
Sep 21, 2026
Merged

avison9 merged 1 commit into
mainfrom
fix/exclude-list-wording

Conversation

@avison9

@avison9 avison9 commented Sep 21, 2026

Copy link
Copy Markdown
Owner

What was wrong

Three messages named the list setting after a fixed "is not matched by". Right for an include list; backwards for an exclude list: public.shipments.driver_phone ... is not matched by column.exclude.list described a column the exclude list matched, which is exactly why the sink was not getting it. iceberg-exclude-list has promised that sentence since v0.1.

Since v0.2.1 (#8) the diff rule never raises a pattern-excluded column, so the source-column-not-captured info line is the only message such a column gets. It has to read right; this is the item the #8 review put ahead of the per-rule filter.

The fix

leftOut(setting) in engine.go: "is not matched by column.include.list" or "is matched by column.exclude.list", using the same excludes() helper as edit(). Applied to source-column-not-captured, sink-column-not-captured and sink-table-not-captured (the last for table.exclude.list, which no corpus entry exercises yet).

Corpus

Four expectations change, each by that one clause: iceberg-exclude-list and the three diff-exclude-list-* entries. They were edited by hand first; the test failed on all four before the code changed.

Verified

gofmt, vet, build, test green in golang:1.25-bookworm. RefuseRadar (include-list connector): unchanged, 0 error(s), 0 warning(s), 159 info.

After merging

Tag v0.2.2. Nothing to bump in RefuseRadar: its connector is an include list.

…matched"

Three messages named the list setting with a fixed "is not matched by":
right for an include list, the opposite of what happened for an exclude
list. "public.shipments.driver_phone ... is not matched by
column.exclude.list" described a column the exclude list matched, which
is why it was missing. Since v0.2.1 the diff rule never raises a
pattern-excluded column, so the source-column-not-captured info line is
the only message such a column gets, and it read backwards.

leftOut(setting) words it per list mode, for the source inventory, the
sink column read and the sink table read. Four expectations change,
each by that clause; the corpus was edited first and the test failed
before the code changed. RefuseRadar's tree, an include-list
connector, prints the same 0 / 0 / 159.
@avison9 avison9 self-assigned this Sep 21, 2026
@avison9
avison9 merged commit 72be240 into main Sep 21, 2026
2 checks passed
@avison9
avison9 deleted the fix/exclude-list-wording branch September 21, 2026 19:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant