Akanksha-kedia opened a new pull request, #18959: URL: https://github.com/apache/pinot/pull/18959
## Summary `JsonIndexConfig.equals()` and `hashCode()` were introduced when the class had fewer fields. Two later additions were never included: - **`_indexPaths`** (`Set<String>`) — controls which JSON sub-paths are indexed; added to support fine-grained path-level indexing - **`_maxBytesSize`** (`Long`) — caps the mutable JSON index's on-heap footprint As a result, two configs that differ **only** in `indexPaths` or `maxBytesSize` incorrectly compare as equal. This breaks: - `Map`/`Set` lookups keyed by config - Config-change detection (e.g. index reload logic comparing desired vs. stored config) - Any unit test asserting config equality **Fix:** add both fields to `equals()` and `hashCode()`. **Tests:** adds 5 targeted tests to the existing `JsonIndexConfigTest` to document and verify the fix (including a "without fix" naming convention to make the intent obvious in CI history). ## Test plan - [ ] 5 new tests in `JsonIndexConfigTest` — all green - [ ] `./mvnw checkstyle:check -pl pinot-spi` — 0 violations 🤖 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]
