Skip to content

Commit

Permalink
Merge remote-tracking branch 'redis/master' into filter-by
Browse files Browse the repository at this point in the history
  • Loading branch information
sazzad16 committed Aug 3, 2021
2 parents c92e65c + ed06cc5 commit ad543ab
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 18 deletions.
16 changes: 13 additions & 3 deletions src/main/java/com/redislabs/redistimeseries/MultiRangeParams.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,20 @@ public MultiRangeParams withLabels(boolean withLabels) {
return this;
}

public byte[][] getByteParams(long from, long to, String... filters) {
public byte[][] getByteParams(Long from, Long to, String... filters) {
List<byte[]> params = new ArrayList<>();
params.add(Protocol.toByteArray(from));
params.add(Protocol.toByteArray(to));

if (from == null) {
params.add("-".getBytes());
} else {
params.add(Protocol.toByteArray(from));
}

if (to == null) {
params.add("+".getBytes());
} else {
params.add(Protocol.toByteArray(to));
}

if (filterByTimestamps != null) {
params.add(Keyword.FILTER_BY_TS.getRaw());
Expand Down
16 changes: 13 additions & 3 deletions src/main/java/com/redislabs/redistimeseries/RangeParams.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,21 @@ public RangeParams aggregation(Aggregation aggregation, long timeBucket) {
return this;
}

public byte[][] getByteParams(String key, long from, long to) {
public byte[][] getByteParams(String key, Long from, Long to) {
List<byte[]> params = new ArrayList<>();
params.add(SafeEncoder.encode(key));
params.add(Protocol.toByteArray(from));
params.add(Protocol.toByteArray(to));

if (from == null) {
params.add("-".getBytes());
} else {
params.add(Protocol.toByteArray(from));
}

if (to == null) {
params.add("+".getBytes());
} else {
params.add(Protocol.toByteArray(to));
}

if (filterByTimestamps != null) {
params.add(Keyword.FILTER_BY_TS.getRaw());
Expand Down
24 changes: 12 additions & 12 deletions src/main/java/com/redislabs/redistimeseries/RedisTimeSeries.java
Original file line number Diff line number Diff line change
Expand Up @@ -692,12 +692,12 @@ public Value[] range(
* TS.RANGE key fromTimestamp toTimestamp [COUNT count] [AGGREGATION aggregationType timeBucket]
*
* @param key
* @param from
* @param to
* @param from timestamp. {@code null} represents {@code "-"}
* @param to timestamp. {@code null} represents {@code "+"}
* @param rangeParams
* @return
*/
public Value[] range(String key, long from, long to, RangeParams rangeParams) {
public Value[] range(String key, Long from, Long to, RangeParams rangeParams) {
try (Jedis conn = getConnection()) {
Object obj =
sendCommand(conn, Command.RANGE, rangeParams.getByteParams(key, from, to)).getOne();
Expand Down Expand Up @@ -793,12 +793,12 @@ public Value[] revrange(
* timeBucket]
*
* @param key
* @param from
* @param to
* @param from timestamp. {@code null} represents {@code "-"}
* @param to timestamp. {@code null} represents {@code "+"}
* @param rangeParams
* @return
*/
public Value[] revrange(String key, long from, long to, RangeParams rangeParams) {
public Value[] revrange(String key, Long from, Long to, RangeParams rangeParams) {
try (Jedis conn = getConnection()) {
Object obj =
sendCommand(conn, Command.REVRANGE, rangeParams.getByteParams(key, from, to)).getOne();
Expand Down Expand Up @@ -948,13 +948,13 @@ private Range[] multiRange(
* TS.MRANGE fromTimestamp toTimestamp [COUNT count] [AGGREGATION aggregationType timeBucket]
* [WITHLABELS] FILTER filter...
*
* @param from
* @param to
* @param from timestamp. {@code null} represents {@code "-"}
* @param to timestamp. {@code null} represents {@code "+"}
* @param multiRangeParams
* @param filters
* @return
*/
public Range[] mrange(long from, long to, MultiRangeParams multiRangeParams, String... filters) {
public Range[] mrange(Long from, Long to, MultiRangeParams multiRangeParams, String... filters) {
try (Jedis conn = getConnection()) {
Object obj =
sendCommand(conn, Command.MRANGE, multiRangeParams.getByteParams(from, to, filters))
Expand Down Expand Up @@ -1060,14 +1060,14 @@ public Range[] mrevrange(
* TS.MREVRANGE fromTimestamp toTimestamp [COUNT count] [AGGREGATION aggregationType timeBucket]
* [WITHLABELS] FILTER filter...
*
* @param from
* @param to
* @param from timestamp. {@code null} represents {@code "-"}
* @param to timestamp. {@code null} represents {@code "+"}
* @param multiRangeParams
* @param filters
* @return
*/
public Range[] mrevrange(
long from, long to, MultiRangeParams multiRangeParams, String... filters) {
Long from, Long to, MultiRangeParams multiRangeParams, String... filters) {
try (Jedis conn = getConnection()) {
Object obj =
sendCommand(conn, Command.MREVRANGE, multiRangeParams.getByteParams(from, to, filters))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,8 @@ public void testAdd() {
labels.put("l1", "v1");
labels.put("l2", "v2");
Assert.assertTrue(client.create("seriesAdd", 10000L /*retentionTime*/, labels));
assertArrayEquals(
new Value[0], client.range("seriesAdd", null, null, RangeParams.rangeParams()));

Assert.assertEquals(1000L, client.add("seriesAdd", 1000L, 1.1, 10000, null));
Assert.assertEquals(2000L, client.add("seriesAdd", 2000L, 0.9, (Map<String, String>) null));
Expand All @@ -161,6 +163,7 @@ public void testAdd() {
values = client.range("seriesAdd", 800L, 5000L);
Assert.assertEquals(4, values.length);
Assert.assertArrayEquals(rawValues, values);
assertArrayEquals(rawValues, client.range("seriesAdd", null, null, RangeParams.rangeParams()));

Value[] expectedCountValues =
new Value[] {new Value(2000L, 1), new Value(3200L, 1), new Value(4500L, 1)};
Expand Down Expand Up @@ -194,6 +197,9 @@ public void testAdd() {
Assert.assertEquals(1, values.length);
Assert.assertArrayEquals(expectedOverallMaxValues, values);

// MRANGE
assertArrayEquals(
new Range[0], client.mrange(null, null, MultiRangeParams.multiRangeParams(), "l=v"));
try {
client.mrange(500L, 4600L, Aggregation.COUNT, 1);
Assert.fail();
Expand Down Expand Up @@ -690,6 +696,8 @@ public void testRevRange() {
labels.put("l1", "v1");
labels.put("l2", "v2");
Assert.assertTrue(client.create("seriesAdd", 10000L /*retentionTime*/, labels));
assertArrayEquals(
new Value[0], client.revrange("seriesAdd", null, null, RangeParams.rangeParams()));

Assert.assertEquals(1000L, client.add("seriesRevRange", 1000L, 1.1, 10000, null));
Assert.assertEquals(
Expand All @@ -710,6 +718,8 @@ public void testRevRange() {
values = client.revrange("seriesRevRange", 800L, 5000L);
Assert.assertEquals(4, values.length);
Assert.assertArrayEquals(rawValues, values);
assertArrayEquals(
rawValues, client.revrange("seriesRevRange", null, null, RangeParams.rangeParams()));

Value[] expectedCountValues =
new Value[] {new Value(4500L, 1), new Value(3200L, 1), new Value(2000L, 1)};
Expand All @@ -727,6 +737,8 @@ public void testRevRange() {
@Test
public void testMRevRange() {
if (moduleVersion < 10300) return;
assertArrayEquals(
new Range[0], client.mrevrange(null, null, MultiRangeParams.multiRangeParams(), "l=v"));

Map<String, String> labels1 = new HashMap<>();
labels1.put("l3", "v3");
Expand Down

0 comments on commit ad543ab

Please sign in to comment.