LuciferYang opened a new issue, #10245: URL: https://github.com/apache/paimon/issues/10245
### Search before asking - [X] I searched in the [issues](https://github.com/apache/paimon/issues) and found nothing similar. ### Paimon version master ### Compute Engine Flink / Spark (global index) ### Minimal reproduce step `validateRetainedIndexFiles` in `IndexManifestFileHandler` treats any retained/added pair of data-evolution global index files that share the same index field but have different extra fields as a conflict, even when the row ranges are fully disjoint. Since the multi-column framework (#7933), the conflict test became `sameField && (differentExtra || overlap)`. 1. `CALL sys.create_global_index(table => 'my_db.t', index_type => 'bitmap', index_column => 'a')` 2. `CALL sys.create_global_index(table => 'my_db.t', index_type => 'bitmap', index_column => 'a,b')` Both indexes have `indexFieldId = id(a)` and cover the same rows, so their row ranges overlap. Step 2 (or a later refresh of either) fails with `IllegalStateException` "Trying to add global index file ... with overlapping row range ...", even though the two definitions are distinct indexes. ### What doesn't meet your expectations? Different index definitions over the same leading field should coexist, exactly as the read and refresh paths already treat them (`currentIndexEntries` and `matchesFields` both key on `indexFieldId` plus `extraFieldIds`). Only the same definition should conflict, and only when the row ranges actually overlap. ### Anything else? _No response_ ### Are you willing to submit a PR? - [X] I'm willing to submit a PR! -- 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]
