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

   Removes APIs whose deprecations shipped in the 1.0.0 cycle (2023 H1). 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.
   
   ## Removed
   
   - **`OnHeapGuavaBloomFilterCreator`** 4-arg constructor. Its own TODO named 
#10184 as the exit criteria, which merged long ago. Both remaining call sites 
already use the 5-arg form.
   - **`PinotHelixResourceManager.deleteSchema(Schema)`** — also returned 
`false` on its success path — and **`getSchemaForTableConfig(TableConfig)`**. 
Every remaining `deleteSchema` call site passes a `String`.
   - **Stale class javadoc** in `PinotSegmentRestletResource`: a "Deprecated 
APIs" section listing five `/tables/{tableName}/segments*` endpoints that no 
longer exist anywhere in the codebase.
   
   ## Staged: `/segments/{tableName}/select`
   
   `SegmentAdminClient.selectSegments` is repointed from the deprecated `GET 
/segments/{tableName}/select` to `GET /segments/{tableName}`, which is an exact 
functional superset (same response shape `List<Map<TableType, List<String>>>`, 
same timestamp parsing and validation, equivalent authorization — both resolve 
to action `GetSegment` with `TargetType.TABLE`).
   
   The **deprecated endpoint is intentionally retained in this PR**. 
`pinot-java-client` has been shipping a `selectSegments` that calls `/select` 
throughout the 1.5.x and 1.6.x train; since controllers upgrade before client 
fleets, deleting it now would 404 every already-deployed client. It can be 
deleted once this client migration has had a release to propagate.
   
   ### Two behavior changes worth calling out
   
   Both make the client match its own documented contract, but they are 
observable:
   
   1. **`selectSegments(..., excludeReplacedSegments=false)` now returns 
replaced segments.** The old `/select` endpoint never read that query parameter 
— it hardcoded `getSegmentsFor(tableNameWithType, true, ...)` — so the flag the 
client had always been sending was silently ignored and replaced segments were 
*always* excluded. The new endpoint honors it. Callers passing `false` will see 
a larger result set. The only in-repo caller 
(`LaunchBackfillIngestionJobCommand`) passes `true` and is unaffected.
   2. **The `database` header is now honored** for segment selection, 
consistent with every other `/segments/*` endpoint. `/select` ignored it.
   
   ## Not removed
   
   `POST /instances/{instanceName}/state` was in the original sweep list but 
stays: `InstanceAdminClient.setInstanceState` is a live non-deprecated caller, 
and the POST handler supports a `drop` operation the replacement PUT handler 
does not.
   
   ## backward-incompat
   
   Please apply the **`backward-incompat`** label. The removed 
`PinotHelixResourceManager` methods are source-breaking for controller plugins, 
and the removed bloom-filter constructor is source-breaking for out-of-tree 
index code. Release note should carry the two `selectSegments` behavior changes 
above.
   


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