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]