in tablestore/src/main/java/com/alicloud/openservices/tablestore/timestream/model/query/DataQuery.java [53:99]
private PointIterator getTimestreamWithRange(TimestreamIdentifier identifier) {
RangeRowQueryCriteria rangeRowQueryCriteria = new RangeRowQueryCriteria(tableName);
long start = 0;
long end = Long.MAX_VALUE;
if (timeRange != null) {
start = timeRange.getBeginTime();
end = timeRange.getEndTime();
}
PrimaryKeyBuilder beginPk = Utils.convertIdentifierToPK(identifier);
PrimaryKeyBuilder endPk = Utils.convertIdentifierToPK(identifier);
if (isDesc) {
beginPk.addPrimaryKeyColumn(
TableMetaGenerator.CN_TAMESTAMP_NAME,
PrimaryKeyValue.fromLong(end)
);
endPk.addPrimaryKeyColumn(
TableMetaGenerator.CN_TAMESTAMP_NAME,
PrimaryKeyValue.fromLong(start)
);
rangeRowQueryCriteria.setDirection(Direction.BACKWARD);
} else {
beginPk.addPrimaryKeyColumn(
TableMetaGenerator.CN_TAMESTAMP_NAME,
PrimaryKeyValue.fromLong(start)
);
endPk.addPrimaryKeyColumn(
TableMetaGenerator.CN_TAMESTAMP_NAME,
PrimaryKeyValue.fromLong(end)
);
}
rangeRowQueryCriteria.setInclusiveStartPrimaryKey(beginPk.build());
rangeRowQueryCriteria.setExclusiveEndPrimaryKey(endPk.build());
rangeRowQueryCriteria.setMaxVersions(1);
rangeRowQueryCriteria.addColumnsToGet(columnToGet);
if (filter != null) {
rangeRowQueryCriteria.setFilter(filter);
}
if (limit > 0) {
rangeRowQueryCriteria.setLimit(limit);
}
GetRangeRequest request = new GetRangeRequest();
request.setRangeRowQueryCriteria(rangeRowQueryCriteria);
return new PointIterator(new GetRangeIterator(asyncClient, request), identifier);
}