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]
