wombatu-kun opened a new pull request, #11074: URL: https://github.com/apache/hudi/pull/11074
### Change Logs Task: https://issues.apache.org/jira/browse/HUDI-7639 Created new abstract class SparkBaseIndexSupport with abstract methods `getIndexName`, `isIndexAvailable`, `computeCandidateFileNames` and `invalidateCaches` (to override it in descendants) and concrete methods `getPrunedFileNames`, `getCandidateFiles` and `shouldReadInMemory` (moved from HoodieFileIndex or XXXIndexSupport to reuse it in descendants). Made `ColumnStatsIndexSupport`, `FunctionalIndexSupport` and `RecordLevelIndexSupport` classes extend `SparkBaseIndexSupport`. Implementation of `computeCandidateFileNames` was made from corresponding if-else branches of `HoodieFileIndex.lookupCandidateFilesInMetadataTable()`. Implementations of `getIndexName`, `isIndexAvailable` are trivial. Real implementation of `invalidateCaches` exists only for `ColumnStatsIndexSupport`. Replaced 3 individual XXXIndexSupport fields with one list of 3 SparkBaseIndexSupport items. The order of items is important: to preserve original behavior the order of indices must be: RecordLevel, Functional, ColStats. `HoodieFileIndex.lookupCandidateFilesInMetadataTable()` is simplified to just looping through the list, checking each Index availability and (if so) computing pruned file names by XXXIndexSupport class. ### Impact none ### Risk level (write none, low medium or high below) none ### Documentation Update none - _The config description must be updated if new configs are added or the default value of the configs are changed_ - _Any new feature or user-facing change requires updating the Hudi website. Please create a Jira ticket, attach the ticket number here and follow the [instruction](https://hudi.apache.org/contribute/developer-setup#website) to make changes to the website._ ### Contributor's checklist - [ ] Read through [contributor's guide](https://hudi.apache.org/contribute/how-to-contribute) - [ ] Change Logs and Impact were stated clearly - [ ] Adequate tests were added if applicable - [ ] CI passed -- 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: commits-unsubscr...@hudi.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org