Jackie-Jiang opened a new pull request, #20019:
URL: https://github.com/apache/pinot/pull/20019
## Summary
`validationTypesToSkip` was parsed in several places with different rules:
`TableConfigUtils` split it into types, `TaskConfigUtils` compared the whole
string to `ALL` and `TASK`, and `ALL` did not reach the controller's instance
assignment dry run. This parses it once and applies one rule everywhere.
- The REST endpoints parse the parameter once into a nullable
`EnumSet<ValidationType>`, rejecting an unknown type with a 400 that lists the
supported types, and every validator takes the set. `ValidationType#isSkipped`
treats a type as skipped when the set contains it or `ALL`.
- New `INSTANCE_ASSIGNMENT` skips the instance assignment dry run, and the
checks on its result, on table creation and update.
- New `DEDUP`. The upsert and dedup validators are split, with their shared
requirements (primary keys, strict replica-group routing, tenant tag override)
in a common helper, so `UPSERT` and `DEDUP` each skip their own checks. The
check that a table does not enable both runs on its own and is skipped only by
`ALL`.
- `ACTIVE_TASKS` is removed: it was accepted but skipped nothing, as the
active task check on table creation is controlled by `ignoreActiveTasks`.
- `TaskConfigUtils.validateTaskConfigs` skips the validation when there is
no task manager, as `TableConfigValidationUtils` already documented, instead of
throwing an NPE for a table with task configs.
- The `validationTypesToSkip` parameters of all the table and table configs
endpoints share one description listing every supported type.
## Behavior changes
- `ALL` also skips the instance assignment dry run on `POST /tables` and
`PUT /tables/{tableName}`.
- Task config validation honors a list of several types, e.g. `TASK,UPSERT`
now skips it.
- `UPSERT` no longer skips the dedup validation; dedup tables use `DEDUP`.
- `ACTIVE_TASKS` is rejected as an unknown type with a 400.
- An unknown type is rejected before the config is processed, with a message
listing the supported types.
## API changes
`TableConfigUtils.validate`,
`TableConfigValidationUtils.validateTableConfig` and
`TaskConfigUtils.validateTaskConfigs` take a `@Nullable
EnumSet<ValidationType>` instead of the raw string, where `null` skips nothing.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]