/** * Generate optimized results when entire batch key is repeated and it matched the hash map. * * @param batch * The big table batch. * @param hashMapResult * The hash map results for the repeated key. */ protected void generateHashMapResultRepeatedAll(VectorizedRowBatch batch, VectorMapJoinHashMapResult hashMapResult) throws IOException, HiveException { int[] selected = batch.selected; if (batch.selectedInUse) { // The selected array is already filled in as we want it. } else { for (int i = 0; i < batch.size; i++) { selected[i] = i; } batch.selectedInUse = true; } int numSel = 0; if (hashMapResult.isSingleRow()) { numSel = generateHashMapResultSingleValue(batch, hashMapResult, batch.selected, 0, batch.size, numSel); } else { generateHashMapResultMultiValue(batch, hashMapResult, batch.selected, 0, batch.size); } batch.size = numSel; }
/** * Generate optimized results when entire batch key is repeated and it matched the hash map. * * @param batch * The big table batch. * @param hashMapResult * The hash map results for the repeated key. */ protected void generateHashMapResultRepeatedAll(VectorizedRowBatch batch, VectorMapJoinHashMapResult hashMapResult) throws IOException, HiveException { int[] selected = batch.selected; if (batch.selectedInUse) { // The selected array is already filled in as we want it. } else { for (int i = 0; i < batch.size; i++) { selected[i] = i; } batch.selectedInUse = true; } int numSel = 0; if (hashMapResult.isSingleRow()) { numSel = generateHashMapResultSingleValue(batch, hashMapResult, batch.selected, 0, batch.size, numSel); } else { generateHashMapResultMultiValue(batch, hashMapResult, batch.selected, 0, batch.size); } batch.size = numSel; }
/** * Generate optimized results when entire batch key is repeated and it matched the hash map. * * @param batch * The big table batch. * @param hashMapResult * The hash map results for the repeated key. */ protected void generateHashMapResultRepeatedAll(VectorizedRowBatch batch, VectorMapJoinHashMapResult hashMapResult) throws IOException, HiveException { int[] selected = batch.selected; if (batch.selectedInUse) { // The selected array is already filled in as we want it. } else { for (int i = 0; i < batch.size; i++) { selected[i] = i; } batch.selectedInUse = true; } int numSel = 0; if (hashMapResult.isSingleRow()) { numSel = generateHashMapResultSingleValue(batch, hashMapResult, batch.selected, 0, batch.size, numSel); } else { generateHashMapResultMultiValue(batch, hashMapResult, batch.selected, 0, batch.size); } batch.size = numSel; }