@Override public int compare(final RangeReadInfo o1, final RangeReadInfo o2) { int comp = UnsignedBytes.lexicographicalComparator().compare( o1.sortKeyRange.getStart(), o2.sortKeyRange.getStart()); if (comp != 0) { return comp; } comp = UnsignedBytes.lexicographicalComparator().compare( o1.sortKeyRange.getEnd(), o2.sortKeyRange.getEnd()); if (comp != 0) { return comp; } final byte[] otherComp = o2.partitionKey == null ? new byte[0] : o2.partitionKey; final byte[] thisComp = o1.partitionKey == null ? new byte[0] : o1.partitionKey; return UnsignedBytes.lexicographicalComparator().compare(thisComp, otherComp); } }
public CloseableIterator<T> results() { final List<RangeReadInfo> reads = new ArrayList<>(); for (final SinglePartitionQueryRanges r : ranges) { for (final ByteArrayRange range : r.getSortKeyRanges()) { final double start = range.getStart() != null ? RedisUtils.getScore(range.getStart()) : Double.NEGATIVE_INFINITY; final double end = range.getEnd() != null ? RedisUtils.getScore(range.getEndAsNextPrefix()) : Double.POSITIVE_INFINITY; reads.add(new RangeReadInfo(r.getPartitionKey(), start, end)); } } if (async) { return executeQueryAsync(reads); } else { return executeQuery(reads); } }
final byte[] start = range.getStart() != null ? range.getStart() : new byte[0]; final byte[] end = range.getEnd() != null ? range.getEndAsNextPrefix() : new byte[] { (byte) 0xFF,
public ByteArrayRange getSingleRange() { byte[] start = null; byte[] end = null; for (final ByteArrayRange range : sortKeyRanges) { if ((start == null) || (ByteArrayUtils.compare(range.getStart(), start) < 0)) { start = range.getStart(); } if ((end == null) || (ByteArrayUtils.compare(range.getEnd(), end) > 0)) { end = range.getEnd(); } } return new ByteArrayRange(start, end); } }
public synchronized CloseableIterator<GeoWaveRow> iterator(final ByteArrayRange range) { final RocksDB readDb = getReadDb(); if (readDb == null) { return new CloseableIterator.Empty<>(); } final ReadOptions options; final RocksIterator it; if (range.getEnd() == null) { options = null; it = readDb.newIterator(); } else { options = new ReadOptions().setIterateUpperBound(new Slice(range.getEndAsNextPrefix())); it = readDb.newIterator(options); } if (range.getStart() == null) { it.seekToFirst(); } else { it.seek(range.getStart()); } return new RocksDBRowIterator( options, it, adapterId, partition, requiresTimestamp, visibilityEnabled); } }
public static ByteArrayRange getSingleRange(final List<ByteArrayRange> ranges) { byte[] start = null; byte[] end = null; if (ranges == null) { return null; } for (final ByteArrayRange range : ranges) { if ((start == null) || (ByteArrayUtils.compare(range.getStart(), start) < 0)) { start = range.getStart(); } if ((end == null) || (ByteArrayUtils.compare(range.getEnd(), end) > 0)) { end = range.getEnd(); } } return new ByteArrayRange(start, end); } }
DynamoDBUtils.encodeSortableBase64(sortRange.getStart())); if (sortRange.getEnd() == null) { end = new ByteArray(ByteArrayUtils.shortToByteArray(internalAdapterId)).getNextPrefix(); } else {
byte[] currentRowId = Arrays.copyOf(range.getStart(), range.getStart().length); retVal.add(currentRowId); while (!Arrays.equals(currentRowId, range.getEnd())) { currentRowId = Arrays.copyOf(currentRowId, currentRowId.length);
final ByteArrayRange range = i.next(); final byte[] startKey = range == null ? HConstants.EMPTY_BYTE_ARRAY : range.getStart(); final byte[] endKey = range == null ? HConstants.EMPTY_BYTE_ARRAY : range.getEnd(); rangeList.add(new ByteArrayRange(overlappingRange.getStart(), overlappingRange.getEnd())); i.remove();
partition.getPartitionKey(), sortKeyRange.getStart()), ByteArrayUtils.combineArrays(partition.getPartitionKey(), sortKeyRange.getEnd()), sortKeyRange.singleValue));
protected static GeoWaveRowRange rangeIntersection( final GeoWaveRowRange thisRange, final GeoWaveRowRange otherRange) { final ByteArrayRange thisByteArrayRange = new ByteArrayRange(thisRange.getStartSortKey(), thisRange.getEndSortKey()); final ByteArrayRange otherByteArrayRange = new ByteArrayRange(otherRange.getStartSortKey(), otherRange.getEndSortKey()); final ByteArrayRange overlappingRange = thisByteArrayRange.intersection(otherByteArrayRange); return new GeoWaveRowRange( null, overlappingRange.getStart(), overlappingRange.getEnd(), true, false); } }
public static <T> long cardinality( final Index index, final Map<StatisticsId, InternalDataStatistics<T, ?, ?>> stats, final QueryRanges queryRanges) { long count = 0; for (final SinglePartitionQueryRanges partitionRange : queryRanges.getPartitionQueryRanges()) { final RowRangeHistogramStatistics rangeStats = (RowRangeHistogramStatistics) stats.get( StatisticsQueryBuilder.newBuilder().factory().rowHistogram().indexName( index.getName()).partition(partitionRange.getPartitionKey()).build().getId()); if (rangeStats == null) { return Long.MAX_VALUE - 1; } for (final ByteArrayRange range : partitionRange.getSortKeyRanges()) { count += rangeStats.cardinality(range.getStart(), range.getEnd()); } } return count; }
final ByteArrayRange aggRange = ByteArrayUtils.getSingleRange(ranges); startRow = aggRange.getStart(); endRow = aggRange.getEnd();
byte[] stopRow; if (!byteArrayRange.isSingleValue()) { stopRow = ByteArrayUtils.getNextPrefix(byteArrayRange.getEnd()); } else { stopRow = ByteArrayUtils.getNextPrefix(byteArrayRange.getStart());
final ByteArrayRange aggRange = ByteArrayUtils.getSingleRange(ranges); startRow = aggRange.getStart(); endRow = aggRange.getEnd();