Skip to content

issue #7393 : Merge Rows layout alignment option for CDC#7487

Open
mattcasters wants to merge 1 commit into
apache:mainfrom
mattcasters:issue-7393
Open

issue #7393 : Merge Rows layout alignment option for CDC#7487
mattcasters wants to merge 1 commit into
apache:mainfrom
mattcasters:issue-7393

Conversation

@mattcasters

Copy link
Copy Markdown
Contributor

Summary

  • Adds an Align input layouts option to Merge Rows (diff), enabled by default (align_input_layouts with defaultBoolean = true), so reference and compare streams can use different field layouts for CDC-style diffs.
  • Builds a reference-authoritative field union before comparing: missing fields are null-filled; shared fields keep the reference type (with conversion for compare values); compare-only fields are appended.
  • Strict legacy mode remains available with align_input_layouts=N.
  • Integration tests cover existing behavior (base, diff JSON, passthrough), new alignment, and strict align-off compatibility.
  • Integration test runner improvement: run-tests-docker.sh / run-tests.sh accept optional TEST_FILTER to run only matching main*.hwf workflows (basename substring or shell glob, comma-separated). Speeds up Docker IT debugging, e.g.:
bash integration-tests/scripts/run-tests-docker.sh \
  PROJECT_NAME=transforms \
  TEST_FILTER=0077-merge-rows

Context

Addresses #7393. Ports the proven Merge Rows Plus layout-alignment approach from the neighbor hop-data-vault project into core Merge Rows.

Test plan

  • ./mvnw -pl plugins/transforms/mergerows -am test (17 unit tests)
  • Integration suite via Hop client: sh hop run -j "IT transforms" -f main-0077-merge-rows.hwf -r local — all five unit tests pass (base, diff, passthrough, align, align-off)
  • Docker IT with rebuilt client zip + TEST_FILTER=0077-merge-rows

Port automatic input layout alignment from hop-data-vault Merge Rows
Plus into the core Merge Rows transform. When enabled (default),
reference and compare streams are unioned before compare with null fill
and reference-authoritative types. Strict identical-layout mode remains
available via align_input_layouts=N.

Also add TEST_FILTER support to integration-tests/scripts/run-tests.sh
and run-tests-docker.sh so developers can run a subset of main*.hwf
workflows (substring or glob, comma-separated) when debugging Docker
integration tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant