spillHashMapBatch(batch, hashTableResults, spills, spillHashMapResultIndices, spillCount); performValueExpressions(batch, allMatchs, allMatchCount); numSel = generateHashMultiSetResultSingleValue( batch, allMatchs, allMatchesIndex, duplicateCount, numSel); } else { generateHashMultiSetResultMultiValue(batch, allMatchs, allMatchesIndex, duplicateCount, count);
int numSel = generateHashMultiSetResultRepeatedAll(batch, hashMultiSetResult); batch.size = numSel; batch.selectedInUse = true; spillBatchRepeated(batch, (VectorMapJoinHashTableResult) hashMultiSetResult); batch.size = 0; break;
protected String getLoggingPrefix() { return super.getLoggingPrefix(CLASS_NAME); }
/** * Generate the inner big table only join output results for one vectorized row batch with * a repeated key. * * @param batch * The big table batch with any matching and any non matching rows both as * selected in use. * @param hashMultiSetResult * The hash multi-set results for the batch. */ protected int generateHashMultiSetResultRepeatedAll(VectorizedRowBatch batch, VectorMapJoinHashMultiSetResult hashMultiSetResult) throws HiveException { long count = hashMultiSetResult.count(); if (batch.selectedInUse) { // The selected array is already filled in as we want it. } else { int[] selected = batch.selected; for (int i = 0; i < batch.size; i++) { selected[i] = i; } batch.selectedInUse = true; } do { forwardBigTableBatch(batch); count--; } while (count > 0); // We forwarded the batch in this method. return 0; }
/** * Generate the inner big table only join output results for one vectorized row batch with * a repeated key. * * @param batch * The big table batch with any matching and any non matching rows both as * selected in use. * @param hashMultiSetResult * The hash multi-set results for the batch. */ protected int generateHashMultiSetResultRepeatedAll(VectorizedRowBatch batch, VectorMapJoinHashMultiSetResult hashMultiSetResult) throws HiveException { long count = hashMultiSetResult.count(); if (batch.selectedInUse) { // The selected array is already filled in as we want it. } else { int[] selected = batch.selected; for (int i = 0; i < batch.size; i++) { selected[i] = i; } batch.selectedInUse = true; } do { forwardBigTableBatch(batch); count--; } while (count > 0); // We forwarded the batch in this method. return 0; }
spillHashMapBatch(batch, hashTableResults, spills, spillHashMapResultIndices, spillCount); performValueExpressions(batch, allMatchs, allMatchCount); numSel = generateHashMultiSetResultSingleValue( batch, allMatchs, allMatchesIndex, duplicateCount, numSel); } else { generateHashMultiSetResultMultiValue(batch, allMatchs, allMatchesIndex, duplicateCount, count);
int numSel = generateHashMultiSetResultRepeatedAll(batch, hashMultiSetResult); batch.size = numSel; batch.selectedInUse = true; spillBatchRepeated(batch, (VectorMapJoinHashTableResult) hashMultiSetResult); batch.size = 0; break;
/** * Generate the inner big table only join output results for one vectorized row batch with * a repeated key. * * @param batch * The big table batch with any matching and any non matching rows both as * selected in use. * @param hashMultiSetResult * The hash multi-set results for the batch. */ protected int generateHashMultiSetResultRepeatedAll(VectorizedRowBatch batch, VectorMapJoinHashMultiSetResult hashMultiSetResult) throws HiveException { long count = hashMultiSetResult.count(); if (batch.selectedInUse) { // The selected array is already filled in as we want it. } else { int[] selected = batch.selected; for (int i = 0; i < batch.size; i++) { selected[i] = i; } batch.selectedInUse = true; } do { forwardBigTableBatch(batch); count--; } while (count > 0); // We forwarded the batch in this method. return 0; }
protected String getLoggingPrefix() { return super.getLoggingPrefix(CLASS_NAME); }
spillHashMapBatch(batch, hashTableResults, spills, spillHashMapResultIndices, spillCount); performValueExpressions(batch, allMatchs, allMatchCount); numSel = generateHashMultiSetResultSingleValue( batch, allMatchs, allMatchesIndex, duplicateCount, numSel); } else { generateHashMultiSetResultMultiValue(batch, allMatchs, allMatchesIndex, duplicateCount, count);
int numSel = generateHashMultiSetResultRepeatedAll(batch, hashMultiSetResult); batch.size = numSel; batch.selectedInUse = true; spillBatchRepeated(batch, (VectorMapJoinHashTableResult) hashMultiSetResult); batch.size = 0; break;
protected String getLoggingPrefix() { return super.getLoggingPrefix(CLASS_NAME); }
protected String getLoggingPrefix() { return super.getLoggingPrefix(CLASS_NAME); }
protected String getLoggingPrefix() { return super.getLoggingPrefix(CLASS_NAME); }
protected String getLoggingPrefix() { return super.getLoggingPrefix(CLASS_NAME); }