rohityadav1993 commented on PR #11584:
URL: https://github.com/apache/pinot/pull/11584#issuecomment-1755999768

   > IIUC, `LazyRow` is introduced to avoid reading the same value from the 
segment multiple times. I think it is a good abstraction (suggestion making it 
a wrapper over `IndexSegment` and allow setting a `docId` so that the internal 
`fieldToValueMap` can be reused, no need to allow initializing it with 
`GenericRow`), and we can make `PartialUpsertMerger` merge API: `void 
merge(LazyRow previousRow, GenericRow currentRow, Map<String, Object> 
mergedValues)`. This way we can even support generating multiple values in one 
merger
   
   It is also used for defining new interface:
   ```
   public interface PartialUpsertRowMergeEvaluator {
       void evaluate(LazyRow previousRow, LazyRow newRow, Map<String, Object> 
result);
   }
   ```
   which represents the row merge logic, which requires LazyRow to wrap 
GenericRecord.
   So this contract should change as well similar to `void merge(LazyRow 
previousRow, GenericRow currentRow, Map<String, Object> mergedValues)` 
   


-- 
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]

Reply via email to