LuciferYang opened a new issue, #10273:
URL: https://github.com/apache/paimon/issues/10273

   ### Search before asking
   
   - [X] I searched in the [issues](https://github.com/apache/paimon/issues) 
and found no similar issues.
   
   ### Paimon version
   
   master (1.5-SNAPSHOT)
   
   ### Compute Engine
   
   Flink and Spark (the `create_global_index` procedure).
   
   ### Minimal reproduce step
   
   1. Build a global index over a primary-key column, e.g. a single-column 
index on `vec`, via `sys.create_global_index`.
   2. Build a second global index over `vec` plus another column (`vec`, `txt`) 
— same primary column, different column set.
   3. Run any index-backed read.
   
   ### What doesn't meet your expectations?
   
   The second create succeeds and commits index files, but any later 
index-backed read builds `DataEvolutionGlobalIndexScanner`, whose 
`groupIndexFiles` throws `Primary field %s owns multiple indexes with different 
columns ...`. So an accepted DDL leaves the table in a state where the 
index-backed queries the index exists to serve are broken until the extra index 
is dropped by hand. The conflicting create should be rejected at DDL time 
instead.
   
   ### Anything else?
   
   A second create with the same column set is the refresh flow and must stay 
allowed. The rejection has to be type-agnostic, matching the read-side grouping 
by `indexFieldId`, so a conflicting index of a different type over the same 
primary column is caught too.
   
   ### 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]

Reply via email to