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]

Reply via email to