@Override public ITuple makeCopy() { Tuple ret = new Tuple(this.info); for (int i = 0; i < this.values.length; ++i) { ret.values[i] = this.values[i]; } return ret; }
public SegmentCubeTupleIterator(CubeSegmentScanner scanner, Cuboid cuboid, Set<TblColRef> selectedDimensions, // Set<FunctionDesc> selectedMetrics, TupleInfo returnTupleInfo, StorageContext context) { this.scanner = scanner; this.cuboid = cuboid; this.selectedDimensions = selectedDimensions; this.selectedMetrics = selectedMetrics; this.tupleInfo = returnTupleInfo; this.tuple = new Tuple(returnTupleInfo); this.context = context; CuboidToGridTableMapping mapping = context.getMapping(); int[] gtDimsIdx = mapping.getDimIndexes(selectedDimensions); int[] gtMetricsIdx = mapping.getMetricsIndexes(selectedMetrics); // gtColIdx = gtDimsIdx + gtMetricsIdx int[] gtColIdx = new int[gtDimsIdx.length + gtMetricsIdx.length]; System.arraycopy(gtDimsIdx, 0, gtColIdx, 0, gtDimsIdx.length); System.arraycopy(gtMetricsIdx, 0, gtColIdx, gtDimsIdx.length, gtMetricsIdx.length); this.gtValues = getGTValuesIterator(scanner.iterator(), scanner.getScanRequest(), gtDimsIdx, gtMetricsIdx); this.cubeTupleConverter = ((GTCubeStorageQueryBase) context.getStorageQuery()).newCubeTupleConverter( scanner.cubeSeg, cuboid, selectedDimensions, selectedMetrics, gtColIdx, tupleInfo); }
protected Collection<Tuple> generateTuple(int number, List<TblColRef> columns, int[] matches) { Collection<Tuple> tuples = new ArrayList<Tuple>(number); TupleInfo info = new TupleInfo(); for (int i = 0; i < columns.size(); i++) { TblColRef column = columns.get(i); info.setField(column.getName(), column, i); } int allMatches = 0; Random rand = new Random(); for (int i = 0; i < number; i++) { Tuple t = new Tuple(info); boolean isFullMatch = true; for (int k = 0; k < columns.size(); k++) { TblColRef column = columns.get(k); int index = Math.abs(rand.nextInt()) % SAMPLE_DATA[k].length; t.setDimensionValue(column.getName(), SAMPLE_DATA[k][index]); if (index == 0) { matches[k]++; } else { isFullMatch = false; } } if (isFullMatch) { allMatches++; } tuples.add(t); } matches[2] = allMatches; return tuples; }
@Override public ITuple makeCopy() { Tuple ret = new Tuple(this.info); for (int i = 0; i < this.values.length; ++i) { ret.values[i] = this.values[i]; } return ret; }
public SegmentCubeTupleIterator(CubeSegmentScanner scanner, Cuboid cuboid, Set<TblColRef> selectedDimensions, // Set<FunctionDesc> selectedMetrics, TupleInfo returnTupleInfo, StorageContext context) { this.scanner = scanner; this.cuboid = cuboid; this.selectedDimensions = selectedDimensions; this.selectedMetrics = selectedMetrics; this.tupleInfo = returnTupleInfo; this.tuple = new Tuple(returnTupleInfo); this.context = context; CuboidToGridTableMapping mapping = context.getMapping(); int[] gtDimsIdx = mapping.getDimIndexes(selectedDimensions); int[] gtMetricsIdx = mapping.getMetricsIndexes(selectedMetrics); // gtColIdx = gtDimsIdx + gtMetricsIdx int[] gtColIdx = new int[gtDimsIdx.length + gtMetricsIdx.length]; System.arraycopy(gtDimsIdx, 0, gtColIdx, 0, gtDimsIdx.length); System.arraycopy(gtMetricsIdx, 0, gtColIdx, gtDimsIdx.length, gtMetricsIdx.length); this.gtValues = getGTValuesIterator(scanner.iterator(), scanner.getScanRequest(), gtDimsIdx, gtMetricsIdx); this.cubeTupleConverter = ((GTCubeStorageQueryBase) context.getStorageQuery()).newCubeTupleConverter( scanner.cubeSeg, cuboid, selectedDimensions, selectedMetrics, gtColIdx, tupleInfo); }