mirror of https://github.com/apache/druid.git
add more tests for time boundary and caching
This commit is contained in:
parent
d01be2f85b
commit
c2149f8a00
|
@ -150,17 +150,6 @@ public class TimeBoundaryQuery extends BaseQuery<Result<TimeBoundaryResultValue>
|
|||
.array();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return "TimeBoundaryQuery{" +
|
||||
"dataSource='" + getDataSource() + '\'' +
|
||||
", querySegmentSpec=" + getQuerySegmentSpec() +
|
||||
", duration=" + getDuration() +
|
||||
", bound" + bound +
|
||||
'}';
|
||||
}
|
||||
|
||||
public Iterable<Result<TimeBoundaryResultValue>> mergeResults(List<Result<TimeBoundaryResultValue>> results)
|
||||
{
|
||||
if (results == null || results.isEmpty()) {
|
||||
|
@ -202,4 +191,45 @@ public class TimeBoundaryQuery extends BaseQuery<Result<TimeBoundaryResultValue>
|
|||
|
||||
return buildResult(ts, minTime, maxTime);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return "TimeBoundaryQuery{" +
|
||||
"dataSource='" + getDataSource() + '\'' +
|
||||
", querySegmentSpec=" + getQuerySegmentSpec() +
|
||||
", duration=" + getDuration() +
|
||||
", bound" + bound +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o)
|
||||
{
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (!super.equals(o)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
TimeBoundaryQuery that = (TimeBoundaryQuery) o;
|
||||
|
||||
if (!bound.equals(that.bound)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
int result = super.hashCode();
|
||||
result = 31 * result + bound.hashCode();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -73,6 +73,7 @@ import io.druid.query.search.search.SearchQuery;
|
|||
import io.druid.query.search.search.SearchQueryConfig;
|
||||
import io.druid.query.spec.MultipleIntervalSegmentSpec;
|
||||
import io.druid.query.timeboundary.TimeBoundaryQuery;
|
||||
import io.druid.query.timeboundary.TimeBoundaryQueryQueryToolChest;
|
||||
import io.druid.query.timeboundary.TimeBoundaryResultValue;
|
||||
import io.druid.query.timeseries.TimeseriesQuery;
|
||||
import io.druid.query.timeseries.TimeseriesQueryQueryToolChest;
|
||||
|
@ -695,6 +696,51 @@ public class CachingClusteredClientTest
|
|||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTimeBoundaryCaching() throws Exception
|
||||
{
|
||||
testQueryCaching(
|
||||
client,
|
||||
Druids.newTimeBoundaryQueryBuilder()
|
||||
.dataSource(CachingClusteredClientTest.DATA_SOURCE)
|
||||
.intervals(CachingClusteredClientTest.SEG_SPEC)
|
||||
.context(CachingClusteredClientTest.CONTEXT)
|
||||
.build(),
|
||||
new Interval("2011-01-01/2011-01-02"),
|
||||
makeTimeBoundaryResult(new DateTime("2011-01-01"), new DateTime("2011-01-01"), new DateTime("2011-01-02")),
|
||||
|
||||
new Interval("2011-01-01/2011-01-03"),
|
||||
makeTimeBoundaryResult(new DateTime("2011-01-02"), new DateTime("2011-01-02"), new DateTime("2011-01-03")),
|
||||
|
||||
new Interval("2011-01-01/2011-01-10"),
|
||||
makeTimeBoundaryResult(new DateTime("2011-01-05"), new DateTime("2011-01-05"), new DateTime("2011-01-10")),
|
||||
|
||||
new Interval("2011-01-01/2011-01-10"),
|
||||
makeTimeBoundaryResult(new DateTime("2011-01-05T01"), new DateTime("2011-01-05T01"), new DateTime("2011-01-10"))
|
||||
);
|
||||
}
|
||||
|
||||
private Iterable<Result<TimeBoundaryResultValue>> makeTimeBoundaryResult(
|
||||
DateTime timestamp,
|
||||
DateTime minTime,
|
||||
DateTime maxTime
|
||||
)
|
||||
{
|
||||
return Arrays.asList(
|
||||
new Result<>(
|
||||
timestamp,
|
||||
new TimeBoundaryResultValue(
|
||||
ImmutableMap.of(
|
||||
TimeBoundaryQuery.MIN_TIME,
|
||||
minTime.toString(),
|
||||
TimeBoundaryQuery.MAX_TIME,
|
||||
maxTime.toString()
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
public void testQueryCaching(QueryRunner runner, final Query query, Object... args)
|
||||
{
|
||||
testQueryCaching(runner, 3, true, query, args);
|
||||
|
@ -1287,6 +1333,7 @@ public class CachingClusteredClientTest
|
|||
)
|
||||
.put(TopNQuery.class, new TopNQueryQueryToolChest(new TopNQueryConfig()))
|
||||
.put(SearchQuery.class, new SearchQueryQueryToolChest(new SearchQueryConfig()))
|
||||
.put(TimeBoundaryQuery.class, new TimeBoundaryQueryQueryToolChest())
|
||||
.build()
|
||||
),
|
||||
new TimelineServerView()
|
||||
|
|
Loading…
Reference in New Issue