private PointIterator getTimestreamWithRange()

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);
    }