mchades opened a new pull request, #12928: URL: https://github.com/apache/gravitino/pull/12928
### What changes were proposed in this pull request? - Validate parameter, scalar return, and table return-column types when registering or adding a function definition. - Accept native Gravitino types and explicit, non-blank `ExternalType` values. - Reject `UnparsedType` recursively with indexed field paths and HTTP 400 responses. - Add a `WritableDataType` OpenAPI schema for function write requests. - Preserve the shared read deserializer and legacy selector behavior. ### Why are the changes needed? Unknown strings and malformed type objects currently deserialize as `UnparsedType` and can be persisted as new function metadata because request validation only checks for null. Part of #12927. ### Does this PR introduce _any_ user-facing change? Yes. Function register and `AddDefinition` now reject unknown, malformed, or explicit `UnparsedType` inputs with HTTP 400. Existing function responses and selector-based management operations remain backward compatible. Table APIs are unchanged. ### How was this patch tested? - Focused common request and DTO tests - `TestFunctionPO` - `TestManagedFunctionOperations` - Focused `TestFunctionOperations` REST tests - `./gradlew spotlessApply` - `./gradlew :docs:build` - `git diff --check` -- 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]
