Conversation
… extension validation + row-count accounting (#27593) Cherry-pick of 4930b10 to 1.12.7. Key changes: - CsvUtil.addExtension: filter blank/empty extension tokens on export - EntityCsv: rowEntityType field for per-row entity type override in extension validation - EntityCsv: header row excluded from numberOfRowsProcessed/Passed counts - EntityCsv: countedFailureRecords dedup to count per-row failures once - EntityCsv: skip empty-value extension tokens instead of failing - DatabaseServiceRepository/DatabaseRepository/DatabaseSchemaRepository: set rowEntityType per row - BulkEntityImportPage: only short-circuit to upload on aborted or failure+processed=0 - GlossaryImportExport.spec.ts: fix version-history row counts (3->2) for header exclusion - BulkEditEntity/BulkImport/TestCaseImportExport E2E: update row counts for header exclusion - GlossaryResourceIT/TestCaseResourceIT: update expected counts for header exclusion - DatabaseServiceResourceIT: add recursive import custom property extension IT test - EntityCsvTest/CsvUtilTest: update assertSummary counts and blank extension filter assertion
Contributor
|
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! |
Code Review ✅ ApprovedBackports the fix for CSV recursive import validation and row-count accounting to the 1.12.7 release branch. No issues found. OptionsDisplay: compact → Showing less information. Comment with these commands to change:
Was this helpful? React with 👍 / 👎 | Gitar |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Cherry-pick of #27593 (commit

4930b105) to1.12.7.database), so custom properties registered ontabletriggered false "Unknown custom field" errors. AddedrowEntityTypefield onEntityCsvset per-row inDatabaseServiceRepository,DatabaseRepository, andDatabaseSchemaRepository.getRecordNumber()is 1-indexed including the header, so subtract 1 from all processed counts. Multiple field failures on one row incrementednumberOfRowsFailedonce per field — addedcountedFailureRecordsSet to deduplicate.CsvUtil.addExtensionnow filters entries whose formatted value is blank so null/empty-list custom properties are never written as barekey:tokens in exported CSVs.BulkEntityImportPageno longer routesFAILUREback to the upload step when rows were processed — only short-circuits forabortedorfailurewithprocessed=0(malformed CSV).Conflict resolution notes
EntityCsvTest.java: took 1.12.7 base (6 tests) + applied only the 3 count-change lines from4930b105; new tests from main require infrastructure not present in 1.12.7.DatabaseServiceResourceIT.java: took 1.12.7 base + added onlytest_recursiveImportCustomPropertyExtension; removedgetVersionHistoryPaginated/getVersionHistoryWithFieldChangedoverrides that reference SDK overloads not present in 1.12.7.GlossaryImportExport.spec.ts: kept 1.12.7 assertion style, applied corrected row counts.EntityCsv.java/ other Java: resolved by merging 1.12.7throws IOExceptiondeclarations with main's new logic.Test plan
mvn -pl openmetadata-service test -Dtest=CsvUtilTest,EntityCsvTest -DskipSwagger=true— CsvUtilTest all pass; EntityCsvTest 3 count-change assertions pass (4 pre-existing RuleEngine init failures on 1.12.7 unrelated to this PR)mvn test-compile -pl openmetadata-integration-tests -DskipSwagger=true— clean compileGlossaryImportExport.spec.ts— validated locally, "Import validation - missing required fields" passes with rebuilt backend