xiangfu0 opened a new pull request, #19143: URL: https://github.com/apache/pinot/pull/19143
Removes APIs whose deprecations shipped in the 1.3.0 cycle (2024 H2 – early 2025). Part of a series of per-release deprecation sweeps. Every removed member was verified deprecated as of the `release-1.3.0` tag and to have zero non-deprecated production callers. Full-reactor `test-compile`, `checkstyle:check`, and `license:check` pass. ## Removed - **`FunctionRegistry.containsFunction(String)`** and **`getFunctionInfo(String, int)`** → `contains(canonicalize(name))` / `lookupFunctionInfo(canonicalize(name), n)`. - **`TransformFunctionType.getAlternativeNames()`**. - **`ScalarFunction.isPlaceholder()`** annotation attribute — no `@ScalarFunction` application anywhere set it, and nothing read it. - **`SegmentGeneratorConfig.is/setNullHandlingEnabled`** and **`RealtimeSegmentConfig.Builder.setNullHandlingEnabled`** — pure aliases of the `defaultNullHandlingEnabled` accessors. - **`Schema.clone()`** (undocumented shallow copy; `cloneSchemaWithName` is untouched). - **`QueryContext.Builder.setExplain(boolean)`** → the `ExplainMode` overload. - **`ControllerRequestURLBuilder.forSegmentsMetadataFromServer(String, String)`** → the `List<String>` overload. - **`SegmentAssignmentUtils.getNumSegmentsToBeMovedPerInstance`** → `getNumSegmentsToMovePerInstance`. (The removed version also carried a latent unchecked-`get` NPE.) - **`BrokerSelectorUtils.getTablesCommonBrokers`** → `getTablesCommonBrokersSet`, which returns an empty set rather than `null`. Its six List-variant tests were dropped; each had a parallel Set-variant test that remains. - **Dedup SPI**: the deprecated `checkRecordPresentOrUpdate(PrimaryKey, IndexSegment)` is gone from `PartitionDedupMetadataManager`, and the surviving `DedupRecordInfo` overload is now a plain abstract method rather than a default that delegated into it. See the compat note below. - **Dead non-split-commit residue**: `ServerSegmentCompletionProtocolHandler.segmentCommit(...)` and `SegmentCompletionProtocol.SegmentCommitRequest`, orphaned when #14559 removed the controller endpoints. These two were never annotated `@Deprecated` — they are dead code removed alongside their release-line neighbours. `MSG_TYPE_COMMIT` is **retained**, with a comment, because it is still the FSM lookup key in `SegmentCompletionManager`. Also refreshes the `SegmentCompletionProtocol` class javadoc, which still described the removed single-shot commit flow, to document the actual split-commit sequence. ## backward-incompat Please apply the **`backward-incompat`** label. Two items deserve explicit release-note treatment: 1. **Custom dedup metadata managers** (`dedupConfig.metadataManagerClass`, loaded reflectively) must now implement `checkRecordPresentOrUpdate(DedupRecordInfo, IndexSegment)` directly. An implementation that only overrode the deprecated `PrimaryKey` variant previously worked via the default delegation; it will now fail with `AbstractMethodError` at ingestion time. Such implementations were already broken in practice — the base class's `PrimaryKey` override threw `UnsupportedOperationException` — but the failure mode changes. 2. **Binary-breaking `pinot-spi` / `pinot-segment-spi` / `pinot-java-client` removals**: old binaries calling e.g. `Schema.clone()` will get `NoSuchMethodError`. Replacements are listed above. No config keys, wire formats, or ZK-serialized fields are touched. -- 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]
