npawar opened a new pull request #4798: Decouple Key from Record
URL: https://github.com/apache/incubator-pinot/pull/4798
 
 
   Separating out the `Key` from the `Record`.
   Record now has just `Object[] _columns`, which contains all the columns, 
with no distinction between keys/values. This is an attempt to make the Record 
more generic, and remove the aggregation/group by specific behavior.
   
   One by product of removing `Key` from `Record` is that the upsert function 
in the `IndexedTable` now has to extract the key on its own.
   Introduced a new `upsert(Key, Record)`, which will mainly be used by Group 
By. This is to avoid extracting the `Key` twice (we already extract Key in 
CombineGroupByOperator. If we simply call`upsert(Record)`, we have to extract 
Key again.
   We still need `upsert(Record)`, for 
   1) even group by cannot always have the Key e.g. merge calls upsert, broker 
side reduce
   2) other implementations of Table
   
   The Interface hierarchy now looks like:
   Table -> BaseTable -> IndexedTable
   where `IndexedTable` is used for a key/value style table. 
   We will soon add other tables for Distinct, Selection, Aggregations. On a 
high level, we need the following flavors of Table:
   1) Map Based - needed for Group By. This is the current` IndexedTable`
   2) Set Based - needed for Distinct
   3) List Based - needed for Selection
   4) Single Record - needed for Aggregations
   We could perhaps name them as such, once we get more implementations.

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to