xiangfu0 opened a new pull request, #19142:
URL: https://github.com/apache/pinot/pull/19142

   Removes APIs whose deprecations shipped in the 1.2.0 cycle (2024). Part of a 
series of per-release deprecation sweeps.
   
   All removed members were verified to have zero non-deprecated production 
callers. Full-reactor `test-compile`, `checkstyle:check`, and `license:check` 
pass. No test changes were needed — nothing referenced any removed API.
   
   ## Removed
   
   - **`GET /tables/{tableName}/livebrokers`** (singular). The plural `GET 
/tables/livebrokers` remains. Note the two return different shapes, so external 
callers of the singular form need more than a path change — see below.
   - **`RequestUtils.getFunctionExpression(String)`** and 
**`getOptionsFromJson(JsonNode, String)`**. Both had zero callers; the 
non-deprecated `getFunctionExpression(Function)` overload is untouched and 
still used by `ClpRewriter`.
   - **`BrokerResponse.getProcessingExceptions()`** — a `@JsonIgnore` default 
method with no callers, so the broker JSON response shape is unchanged. (The 
same-named methods on `RequestContext` are an unrelated interface and are 
untouched.)
   
   ## Deliberately excluded
   
   Two items from the original sweep were dropped after investigation:
   
   **`POST /segments/{tableName}/delete`** — removing this requires migrating 
`SegmentAdminClient` to `DELETE /segments/{tableName}` first, and that 
migration turned out to be unsafe in two independent ways: the DELETE endpoint 
treats a *missing* `segments` parameter as "delete every segment in the table" 
(so an empty list silently escalates from a 400 into whole-table deletion), and 
its `@QueryParam("segments") List<String>` binding only populates from repeated 
`segments=a&segments=b` parameters, so a comma-joined value arrives as one 
bogus segment name and silently no-ops. Both bugs appear to exist in the 
current client's DELETE path independently of this PR and deserve their own fix.
   
   **`SegmentLocks`** static factories — 
`ConcurrentMapPartitionUpsertMetadataManagerForConsistentDeletes` still calls 
the deprecated static `getSegmentLock`. Migrating it to the instance method 
would change lock scoping from a global static cache to per-`TableDataManager` 
locks, which is a concurrency-semantics change that does not belong in a 
deprecation sweep.
   
   **`TableAndSchemaConfig`** was also left in place: it is still the 
request-body DTO of `PinotUpsertRestletResource`, and its JSON shape 
(`{tableConfig, schema}`) differs from `TableConfigs` (`{tableName, schema, 
offline, realtime}`), so swapping it would break the public REST contract.
   
   ## backward-incompat
   
   Please apply the **`backward-incompat`** label.
   
   The removed **`GET /tables/{tableName}/livebrokers`** endpoint 404s for 
external clients after upgrade, and the replacement is not a drop-in: `GET 
/tables/livebrokers` returns `Map<String, List<InstanceInfo>>` rather than the 
singular endpoint's `List<String>`. The removed `RequestUtils` public statics 
are source-breaking for out-of-tree code compiled against `pinot-common`.
   


-- 
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