private Query getRangeQuery()

in tablestore/src/main/java/com/alicloud/openservices/tablestore/ecosystem/TablestoreSplit.java [1089:1130]


    private Query getRangeQuery(Filter filter, boolean pushRangeLong, boolean pushRangeString, ColumnValue filterColumnValue) {
        if (filterColumnValue.getType() == ColumnType.INTEGER) {
            containsRangeLong = true;
        }
        if (filterColumnValue.getType() == ColumnType.STRING) {
            containsRangeString = true;
        }

        if (containOr) {
            if (!pushRangeLong && containsRangeLong || !pushRangeString && containsRangeString) {
                LOGGER.warn("push.down.range.long push.down.range.string will be regarded as true when sql contains or");
            }
            RangeQuery.Builder builder = QueryBuilders.range(filter.getColumnName());
            if (filter.getCompareOperator() == Filter.CompareOperator.GREATER_THAN) {
                return builder.greaterThan(filterColumnValue.getValue()).build();
            } else if (filter.getCompareOperator() == Filter.CompareOperator.GREATER_EQUAL) {
                return builder.greaterThanOrEqual(filterColumnValue.getValue()).build();
            } else if (filter.getCompareOperator() == Filter.CompareOperator.LESS_THAN) {
                return builder.lessThan(filterColumnValue.getValue()).build();
            } else if (filter.getCompareOperator() == Filter.CompareOperator.LESS_EQUAL) {
                return builder.lessThanOrEqual(filterColumnValue.getValue()).build();
            }
        } else {
            if (!pushRangeLong && filterColumnValue.getType() == ColumnType.INTEGER) {
                return new MatchAllQuery();
            }
            if (!pushRangeString && filterColumnValue.getType() == ColumnType.STRING) {
                return new MatchAllQuery();
            }
            RangeQuery.Builder builder = QueryBuilders.range(filter.getColumnName());
            if (filter.getCompareOperator() == Filter.CompareOperator.GREATER_THAN) {
                return builder.greaterThan(filterColumnValue.getValue()).build();
            } else if (filter.getCompareOperator() == Filter.CompareOperator.GREATER_EQUAL) {
                return builder.greaterThanOrEqual(filterColumnValue.getValue()).build();
            } else if (filter.getCompareOperator() == Filter.CompareOperator.LESS_THAN) {
                return builder.lessThan(filterColumnValue.getValue()).build();
            } else if (filter.getCompareOperator() == Filter.CompareOperator.LESS_EQUAL) {
                return builder.lessThanOrEqual(filterColumnValue.getValue()).build();
            }
        }
        return null;
    }