Fixes #32606: Backport column-name classification fix to 2.0 - #33169
Fixes #32606: Backport column-name classification fix to 2.0#33169stout-yeoman wants to merge 1 commit into
Conversation
✅ PR checks passedThe linked issue has a description and all required Shipping project fields set. Thanks! |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
✅ Playwright Results — workflow succeededValidated commit ✅ 110 passed · ❌ 0 failed · 🟡 0 flaky · ⏭️ 0 skipped · 🧰 0 lifecycle flaky PerformanceBlocking targets: ✅ met · Optimization targets: 🟡 in progress Shard-job maxima below are not the full workflow wall time; the linked run includes build, fixture, planning, and reporting. 🕒 Full workflow signal wall (to summary) 49m 31s ⏱️ Max setup 3m 15s · max shard execution 13m 8s · max shard-job elapsed before upload 18m 38s · reporting 7s 🌐 210.32 requests/attempt · 1.79 app boots/UI scenario · 0.00% common-shard skew Optimization targets still in progress:
How to debug locally# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip # view trace |
Code Review ✅ ApprovedBackports the column-name classification fix from #32607 to the 2.0 release branch, enabling auto-classification to run on column names even when sample data is disabled. The traversal guards against cycles and excessive nesting while preserving the authority of sampled fields when present. Unit tests achieve 95% combined line/branch coverage with 128 tests passing, and integration tests validate the regression scenario. No issues found. OptionsDisplay: compact → Counting what did not apply, without listing it. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source |
|



Describe your changes:
Replaces #33125 with the same verified patch on an upstream-hosted branch so the branch-local 2.0 CI workflow runs.
Fixes #32606
Backports #32607 (commit
807dfa38fd1d97927dbdd1cf5076164db5952fdb) to2.0. When sampling supplies no fields, auto-classification now traverses metadata leaf columns with empty sample values so column-name recognizers still run. When sampled fields exist, those fields and their values remain authoritative. The traversal guards against cycles and excessive nesting.Resolved the import conflict while retaining the release branch’s typing conventions. Table, container, and topic classification remain supported.
Type of change:
High-level design:
Not applicable — backport of a focused processor fix. No schema or API changes.
Tests:
Use cases covered
Missing/empty sample data, nested metadata leaves, supported entity types, cycle/depth guards, sampled field selection and values, dotted paths, unmatched fields, disabled classification, and entities without columns.
Unit tests
Backported
ingestion/tests/unit/metadata/pii/test_base_processor.py.From
ingestion/, using Python 3.11 and models generated from this release branch:128 passed; 95% combined line/branch coverage for
metadata.pii.base_processor. Repository formatting hooks andgit diff --checkpassed.Backend integration tests
Not applicable — no backend API changes.
Ingestion integration tests
Backported the regression in
ingestion/tests/integration/auto_classification/databases/test_global_sample_data_config.py, including fresh-table isolation. All three tests collect successfully. The 2.0 backport has not been executed against a local 2.0 database/server stack; CI integration validation remains required.Playwright (UI) tests
Not applicable — no UI changes.
Manual testing performed
No live-stack manual test performed. Reproduction for CI/manual verification: configure a column-name recognizer matching
address, disable both global sample-data reading and storage, run auto-classification, and verify its generated/suggested tag appears onaddresswhile sample data remains absent. This scenario is encoded in the integration regression above.UI screen recording / screenshots:
Not applicable — no UI changes.
Checklist: