mchades opened a new pull request, #14654: URL: https://github.com/apache/gravitino/pull/14654
### What changes were proposed in this pull request? Validate fileset storage location names against the 256-character application limit using `EntityFieldLimits`. Check every key during entity validation and check resolved location names before the fileset catalog performs filesystem operations. Add boundary, Unicode, and catalog rejection tests, and preserve the storage rollback test's database-failure coverage. ### Why are the changes needed? Overlong location names currently reach the database and return a generic column-length error. Managed fileset directories can already have been created when that error occurs. Part of #13317, item 5: fileset storage location name validation. ### Does this PR introduce _any_ user-facing change? Yes. Location names longer than 256 characters return an argument error naming the field and limit before directories are created. H2's existing 128-character column limit remains tracked in #13317, item 4; this PR does not change database schemas. ### How was this patch tested? - All five new regression cases fail before the fix: ASCII and Unicode entity boundaries, managed/external create, and inherited location names. - `./gradlew :core:coreUnitTest --tests org.apache.gravitino.meta.TestEntityFieldLimits`: 20 tests pass. - `./gradlew :core:coreH2Test --tests org.apache.gravitino.storage.relational.service.TestFilesetMetaService`: 22 tests pass, including the database rollback regression. - `./gradlew :catalogs:catalog-fileset:check -PskipITs`: 304 tests pass. - Spotless and `git diff --check` pass. - MySQL/PostgreSQL and Docker integration tests were not run. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
