public static PagingSpec newSpec(int threshold) { return new PagingSpec(null, threshold); }
/** * Don't run this benchmark with a query that doesn't use {@link Granularities#ALL}, * this pagination function probably doesn't work correctly in that case. */ private SelectQuery incrementQueryPagination(SelectQuery query, SelectResultValue prevResult) { Map<String, Integer> pagingIdentifiers = prevResult.getPagingIdentifiers(); Map<String, Integer> newPagingIdentifers = new HashMap<>(); for (String segmentId : pagingIdentifiers.keySet()) { int newOffset = pagingIdentifiers.get(segmentId) + 1; newPagingIdentifers.put(segmentId, newOffset); } return query.withPagingSpec(new PagingSpec(newPagingIdentifers, pagingThreshold)); }
private PagingSpec toNextCursor(Map<String, Integer> merged, SelectQuery query, int threshold) { if (!fromNext) { merged = PagingSpec.next(merged, query.isDescending()); } return new PagingSpec(merged, threshold, fromNext); } }
final PagingSpec pagingSpec = new PagingSpec(null, threshold);
Collections.singletonList("index"), null, new PagingSpec(null, 3, null), null ); new PagingSpec(null, 3, false) ); new PagingSpec(null, 3, true) );
Collections.singletonList("index"), null, new PagingSpec(null, 3, null), null );
@Test public void testSequentialPaging() { int[] asc = {2, 5, 8, 11, 14, 17, 20, 23, 25}; int[] dsc = {-3, -6, -9, -12, -15, -18, -21, -24, -26}; int[] expected = descending ? dsc : asc; SelectQuery query = newTestQuery().intervals(I_0112_0114_SPEC).build(); for (int offset : expected) { List<Result<SelectResultValue>> results = runner.run(QueryPlus.wrap(query), ImmutableMap.of()).toList(); Assert.assertEquals(1, results.size()); SelectResultValue result = results.get(0).getValue(); Map<String, Integer> pagingIdentifiers = result.getPagingIdentifiers(); Assert.assertEquals(offset, pagingIdentifiers.get(SEGMENT_ID_I_0112_0114.toString()).intValue()); Map<String, Integer> next = PagingSpec.next(pagingIdentifiers, descending); query = query.withPagingSpec(new PagingSpec(next, 3, false)); } query = newTestQuery().intervals(I_0112_0114_SPEC).build(); for (int offset : expected) { List<Result<SelectResultValue>> results = runner.run(QueryPlus.wrap(query), ImmutableMap.of()).toList(); Assert.assertEquals(1, results.size()); SelectResultValue result = results.get(0).getValue(); Map<String, Integer> pagingIdentifiers = result.getPagingIdentifiers(); Assert.assertEquals(offset, pagingIdentifiers.get(SEGMENT_ID_I_0112_0114.toString()).intValue()); // use identifier as-is but with fromNext=true query = query.withPagingSpec(new PagingSpec(pagingIdentifiers, 3, true)); } }
@Test public void testColumnMerge() SelectBinaryFn binaryFn = new SelectBinaryFn(Granularities.ALL, new PagingSpec(null, 5), false);
.dimensions(Collections.singletonList("a")) .metrics(Collections.singletonList("rows")) .pagingSpec(new PagingSpec(null, 3)) .context(CONTEXT);
.dimensions(Collections.singletonList("a")) .metrics(Collections.singletonList("rows")) .pagingSpec(new PagingSpec(null, 3)) .context(CONTEXT);
@Test public void testApply() SelectBinaryFn binaryFn = new SelectBinaryFn(Granularities.ALL, new PagingSpec(null, 5), false);
@Test public void testSelectPagination() { SelectQuery query = newTestQuery() .intervals(I_0112_0114_SPEC) .dimensionSpecs(DefaultDimensionSpec.toSpec(QueryRunnerTestHelper.qualityDimension)) .metrics(Collections.singletonList(QueryRunnerTestHelper.indexMetric)) .pagingSpec(new PagingSpec(toPagingIdentifier(3, descending), 3)) .build(); Iterable<Result<SelectResultValue>> results = runner.run(QueryPlus.wrap(query), new HashMap<>()).toList(); PagingOffset offset = query.getPagingOffset(segmentIdString); List<Result<SelectResultValue>> expectedResults = toExpected( segmentIdString, toEvents( new String[]{ EventHolder.timestampKey + ":TIME", "foo:NULL", "foo2:NULL" }, V_0112_0114 ), Collections.singletonList("quality"), Collections.singletonList("index"), offset.startOffset(), offset.threshold() ); verify(expectedResults, results); }
.descending(false) .pagingSpec( new PagingSpec( ImmutableMap.of("foo_1970-01-01T00:00:00.000Z_2001-01-03T00:00:00.001Z_1", 5), 1000,
public static final PagingSpec FIRST_PAGING_SPEC = new PagingSpec(null, 1000, true);
.dimensionSpecs(DefaultDimensionSpec.toSpec(QueryRunnerTestHelper.qualityDimension)) .metrics(Collections.singletonList(QueryRunnerTestHelper.indexMetric)) .pagingSpec(new PagingSpec(toPagingIdentifier(param[0], descending), param[1])) .build();
.dimensionSpecs(DefaultDimensionSpec.toSpec(QueryRunnerTestHelper.qualityDimension)) .metrics(Collections.singletonList(QueryRunnerTestHelper.indexMetric)) .pagingSpec(new PagingSpec(null, 10, true)) .virtualColumns( new ExpressionVirtualColumn("expr", "index / 10.0", ValueType.FLOAT, TestExprMacroTable.INSTANCE)
public static PagingSpec newSpec(int threshold) { return new PagingSpec(null, threshold); }
final PagingSpec pagingSpec = new PagingSpec(null, threshold);