A NonDecomposableAggregatorFunction must implement aggregateRow method. The aggregateRow computes final results from input rows. The function is given a RowView, which is an abstract of table row. This row is provided by RowIterator and is run by the aggregate execution engine. This function does not return any value. You should define the instance variable to store the final results as ValueHolder. You should implement the method to update final results based on each new row input until the end of the current partition.
Below is an example of a simple function that counts the number of rows for each input partition. The aggregateRow method computes final counts from the input rows.
// Count the input row. public void aggregateRow(RowView row) { count_++; }