@Override public void aggregateInput(AggregationBuffer agg, VectorizedRowBatch batch) throws HiveException { inputExpression.evaluate(batch); ColumnVector inputColumn = batch.cols[this.inputExpression.getOutputColumn()]; int batchSize = batch.size; if (batchSize == 0) { return; } Aggregation myagg = (Aggregation) agg; if (inputColumn.isRepeating) { if (inputColumn.noNulls) { valueProcessor.processValue(myagg, inputColumn, 0); } return; } if (!batch.selectedInUse && inputColumn.noNulls) { iterateNoSelectionNoNulls(myagg, inputColumn, batchSize); } else if (!batch.selectedInUse) { iterateNoSelectionHasNulls(myagg, inputColumn, batchSize); } else if (inputColumn.noNulls){ iterateSelectionNoNulls(myagg, inputColumn, batchSize, batch.selected); } else { iterateSelectionHasNulls(myagg, inputColumn, batchSize, batch.selected); } }
@Override public void aggregateInput(AggregationBuffer agg, VectorizedRowBatch batch) throws HiveException { inputExpression.evaluate(batch); ColumnVector inputColumn = batch.cols[this.inputExpression.getOutputColumnNum()]; int batchSize = batch.size; if (batchSize == 0) { return; } Aggregation myagg = (Aggregation) agg; if (inputColumn.isRepeating) { if (inputColumn.noNulls || !inputColumn.isNull[0]) { valueProcessor.processValue(myagg, inputColumn, 0); } return; } if (!batch.selectedInUse && inputColumn.noNulls) { iterateNoSelectionNoNulls(myagg, inputColumn, batchSize); } else if (!batch.selectedInUse) { iterateNoSelectionHasNulls(myagg, inputColumn, batchSize); } else if (inputColumn.noNulls){ iterateSelectionNoNulls(myagg, inputColumn, batchSize, batch.selected); } else { iterateSelectionHasNulls(myagg, inputColumn, batchSize, batch.selected); } }
private void iterateHasNullsSelectionWithAggregationSelection( VectorAggregationBufferRow[] aggregationBufferSets, int aggregrateIndex, ColumnVector inputColumn, int batchSize, int[] selection) { for (int i=0; i < batchSize; ++i) { int row = selection[i]; if (!inputColumn.isNull[row]) { Aggregation myagg = getCurrentAggregationBuffer( aggregationBufferSets, aggregrateIndex, i); valueProcessor.processValue(myagg, inputColumn, i); } } }
private void iterateHasNullsWithAggregationSelection( VectorAggregationBufferRow[] aggregationBufferSets, int aggregrateIndex, ColumnVector inputColumn, int batchSize) { for (int i=0; i < batchSize; ++i) { if (!inputColumn.isNull[i]) { Aggregation myagg = getCurrentAggregationBuffer( aggregationBufferSets, aggregrateIndex, i); valueProcessor.processValue(myagg, inputColumn, i); } } }
private void iterateNoNullsSelectionWithAggregationSelection( VectorAggregationBufferRow[] aggregationBufferSets, int aggregrateIndex, ColumnVector inputColumn, int[] selection, int batchSize) { for (int i=0; i < batchSize; ++i) { int row = selection[i]; Aggregation myagg = getCurrentAggregationBuffer( aggregationBufferSets, aggregrateIndex, i); valueProcessor.processValue(myagg, inputColumn, row); } }
private void iterateNoNullsWithAggregationSelection( VectorAggregationBufferRow[] aggregationBufferSets, int aggregrateIndex, ColumnVector inputColumn, int batchSize) { for (int i=0; i < batchSize; ++i) { Aggregation myagg = getCurrentAggregationBuffer( aggregationBufferSets, aggregrateIndex, i); valueProcessor.processValue(myagg, inputColumn, i); } }
private void iterateNoNullsRepeatingWithAggregationSelection( VectorAggregationBufferRow[] aggregationBufferSets, int aggregrateIndex, ColumnVector inputColumn, int batchSize) { for (int i=0; i < batchSize; ++i) { Aggregation myagg = getCurrentAggregationBuffer( aggregationBufferSets, aggregrateIndex, i); valueProcessor.processValue(myagg, inputColumn, 0); } }
private void iterateHasNullsSelectionWithAggregationSelection( VectorAggregationBufferRow[] aggregationBufferSets, int aggregrateIndex, ColumnVector inputColumn, int batchSize, int[] selection) { for (int i=0; i < batchSize; ++i) { int row = selection[i]; if (!inputColumn.isNull[row]) { Aggregation myagg = getCurrentAggregationBuffer( aggregationBufferSets, aggregrateIndex, i); valueProcessor.processValue(myagg, inputColumn, i); } } }
private void iterateNoSelectionHasNulls( Aggregation myagg, ColumnVector inputColumn, int batchSize) { for (int i=0; i< batchSize; ++i) { if (!inputColumn.isNull[i]) { valueProcessor.processValue(myagg, inputColumn, i); } } }
private void iterateNoNullsSelectionWithAggregationSelection( VectorAggregationBufferRow[] aggregationBufferSets, int aggregrateIndex, ColumnVector inputColumn, int[] selection, int batchSize) { for (int i=0; i < batchSize; ++i) { int row = selection[i]; Aggregation myagg = getCurrentAggregationBuffer( aggregationBufferSets, aggregrateIndex, i); valueProcessor.processValue(myagg, inputColumn, row); } }
private void iterateNoNullsWithAggregationSelection( VectorAggregationBufferRow[] aggregationBufferSets, int aggregrateIndex, ColumnVector inputColumn, int batchSize) { for (int i=0; i < batchSize; ++i) { Aggregation myagg = getCurrentAggregationBuffer( aggregationBufferSets, aggregrateIndex, i); valueProcessor.processValue(myagg, inputColumn, i); } }
private void iterateHasNullsWithAggregationSelection( VectorAggregationBufferRow[] aggregationBufferSets, int aggregrateIndex, ColumnVector inputColumn, int batchSize) { for (int i=0; i < batchSize; ++i) { if (!inputColumn.isNull[i]) { Aggregation myagg = getCurrentAggregationBuffer( aggregationBufferSets, aggregrateIndex, i); valueProcessor.processValue(myagg, inputColumn, i); } } }
private void iterateSelectionHasNulls( Aggregation myagg, ColumnVector inputColumn, int batchSize, int[] selected) { for (int j=0; j< batchSize; ++j) { int i = selected[j]; if (!inputColumn.isNull[i]) { valueProcessor.processValue(myagg, inputColumn, i); } } }
private void iterateSelectionNoNulls( Aggregation myagg, ColumnVector inputColumn, int batchSize, int[] selected) { for (int j=0; j< batchSize; ++j) { int i = selected[j]; valueProcessor.processValue(myagg, inputColumn, i); } }
private void iterateNoSelectionNoNulls( Aggregation myagg, ColumnVector inputColumn, int batchSize) { for (int i=0; i< batchSize; ++i) { valueProcessor.processValue(myagg, inputColumn, i); } }
private void iterateNoSelectionHasNulls( Aggregation myagg, ColumnVector inputColumn, int batchSize) { for (int i=0; i< batchSize; ++i) { if (!inputColumn.isNull[i]) { valueProcessor.processValue(myagg, inputColumn, i); } } }
private void iterateNoSelectionNoNulls( Aggregation myagg, ColumnVector inputColumn, int batchSize) { for (int i=0; i< batchSize; ++i) { valueProcessor.processValue(myagg, inputColumn, i); } }
private void iterateNoNullsRepeatingWithAggregationSelection( VectorAggregationBufferRow[] aggregationBufferSets, int aggregrateIndex, ColumnVector inputColumn, int batchSize) { for (int i=0; i < batchSize; ++i) { Aggregation myagg = getCurrentAggregationBuffer( aggregationBufferSets, aggregrateIndex, i); valueProcessor.processValue(myagg, inputColumn, 0); } }
private void iterateSelectionHasNulls( Aggregation myagg, ColumnVector inputColumn, int batchSize, int[] selected) { for (int j=0; j< batchSize; ++j) { int i = selected[j]; if (!inputColumn.isNull[i]) { valueProcessor.processValue(myagg, inputColumn, i); } } }
private void iterateSelectionNoNulls( Aggregation myagg, ColumnVector inputColumn, int batchSize, int[] selected) { for (int j=0; j< batchSize; ++j) { int i = selected[j]; valueProcessor.processValue(myagg, inputColumn, i); } }