private void setupQueries() { // queries for the basic schema Map<String, Druids.SelectQueryBuilder> basicQueries = new LinkedHashMap<>(); BenchmarkSchemaInfo basicSchema = BenchmarkSchemas.SCHEMA_MAP.get("basic"); { // basic.A QuerySegmentSpec intervalSpec = new MultipleIntervalSegmentSpec(Collections.singletonList(basicSchema.getDataInterval())); Druids.SelectQueryBuilder queryBuilderA = Druids.newSelectQueryBuilder() .dataSource(new TableDataSource("blah")) .dimensionSpecs(DefaultDimensionSpec.toSpec(Collections.emptyList())) .metrics(Collections.emptyList()) .intervals(intervalSpec) .granularity(Granularities.ALL) .descending(false); basicQueries.put("A", queryBuilderA); } SCHEMA_QUERY_MAP.put("basic", basicQueries); }
.metrics(Arrays.asList(ColumnHolder.TIME_COLUMN_NAME, "index")) .intervals(I_0112_0114_SPEC) .build();
.metrics(Arrays.asList(ColumnHolder.TIME_COLUMN_NAME, "index")) .intervals(I_0112_0114_SPEC) .build();
public static SelectQueryBuilder copy(SelectQuery query) { return new SelectQueryBuilder() .dataSource(query.getDataSource()) .intervals(query.getQuerySegmentSpec()) .descending(query.isDescending()) .filters(query.getFilter()) .granularity(query.getGranularity()) .dimensionSpecs(query.getDimensions()) .metrics(query.getMetrics()) .virtualColumns(query.getVirtualColumns()) .pagingSpec(query.getPagingSpec()) .context(query.getContext()); }
.granularity(GRANULARITY) .dimensions(Collections.singletonList("a")) .metrics(Collections.singletonList("rows")) .pagingSpec(new PagingSpec(null, 3)) .context(CONTEXT);
.granularity(QueryRunnerTestHelper.dayGran) .dimensionSpecs(DefaultDimensionSpec.toSpec(QueryRunnerTestHelper.qualityDimension)) .metrics(Collections.singletonList(QueryRunnerTestHelper.indexMetric)) .pagingSpec(new PagingSpec(toPagingIdentifier(param[0], descending), param[1])) .build();
.granularity(GRANULARITY) .dimensions(Collections.singletonList("a")) .metrics(Collections.singletonList("rows")) .pagingSpec(new PagingSpec(null, 3)) .context(CONTEXT);
.granularity(QueryRunnerTestHelper.dayGran) .dimensionSpecs(DefaultDimensionSpec.toSpec(QueryRunnerTestHelper.qualityDimension)) .metrics(Collections.singletonList(QueryRunnerTestHelper.indexMetric)) .build();
.metrics(Collections.singletonList(QueryRunnerTestHelper.indexMetric)) .pagingSpec(new PagingSpec(null, 10, true)) .virtualColumns(
.granularity(Granularities.ALL) .dimensions(ImmutableList.of("dummy")) .metrics(ImmutableList.of("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1")) .descending(false) .pagingSpec(FIRST_PAGING_SPEC) .granularity(Granularities.ALL) .dimensions(ImmutableList.of("dummy")) .metrics(ImmutableList.of("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1")) .descending(false) .pagingSpec(
.intervals(I_0112_0114_SPEC) .dimensionSpecs(DefaultDimensionSpec.toSpec(QueryRunnerTestHelper.marketDimension)) .metrics(Collections.singletonList(QueryRunnerTestHelper.indexMetric)) .build();
@Test public void testFullSelectNoDimensionAndMetric() { SelectQuery query = newTestQuery() .intervals(I_0112_0114_SPEC) .dimensionSpecs(DefaultDimensionSpec.toSpec("foo")) .metrics(Collections.singletonList("foo2")) .build(); Iterable<Result<SelectResultValue>> results = runner.run(QueryPlus.wrap(query), new HashMap<>()).toList(); final List<List<Map<String, Object>>> events = toEvents( new String[]{ EventHolder.timestampKey + ":TIME", "foo:NULL", "foo2:NULL" }, V_0112_0114 ); PagingOffset offset = query.getPagingOffset(segmentIdString); List<Result<SelectResultValue>> expectedResults = toExpected( segmentIdString, events, Collections.singletonList("foo"), Collections.singletonList("foo2"), offset.startOffset(), offset.threshold() ); verify(expectedResults, results); }
@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); }
@Test public void testSelectStarWithLimitTimeDescending() throws Exception { testQuery( "SELECT * FROM druid.foo ORDER BY __time DESC LIMIT 2", ImmutableList.of( Druids.newSelectQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(QSS(Filtration.eternity())) .granularity(Granularities.ALL) .dimensions(ImmutableList.of("dummy")) .metrics(ImmutableList.of("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1")) .descending(true) .pagingSpec(FIRST_PAGING_SPEC) .context(QUERY_CONTEXT_DEFAULT) .build() ), ImmutableList.of( new Object[]{T("2001-01-03"), 1L, "abc", NULL_VALUE, NULL_VALUE, 6f, 6d, HLLC_STRING}, new Object[]{T("2001-01-02"), 1L, "def", "abc", NULL_VALUE, 5f, 5d, HLLC_STRING} ) ); }
@Test public void testSelectSingleColumnWithLimitDescending() throws Exception { testQuery( "SELECT dim1 FROM druid.foo ORDER BY __time DESC LIMIT 2", ImmutableList.of( Druids.newSelectQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(QSS(Filtration.eternity())) .dimensionSpecs(DIMS(new DefaultDimensionSpec("dim1", "d1"))) .granularity(Granularities.ALL) .descending(true) .dimensions(ImmutableList.of("dummy")) .metrics(ImmutableList.of("__time", "dim1")) .pagingSpec(FIRST_PAGING_SPEC) .context(QUERY_CONTEXT_DEFAULT) .build() ), ImmutableList.of( new Object[]{"abc"}, new Object[]{"def"} ) ); }
public static SelectQueryBuilder copy(SelectQuery query) { return new SelectQueryBuilder() .dataSource(query.getDataSource()) .intervals(query.getQuerySegmentSpec()) .descending(query.isDescending()) .filters(query.getFilter()) .granularity(query.getGranularity()) .dimensionSpecs(query.getDimensions()) .metrics(query.getMetrics()) .virtualColumns(query.getVirtualColumns()) .pagingSpec(query.getPagingSpec()) .context(query.getContext()); }
private Druids.SelectQueryBuilder newTestQuery() { return Druids.newSelectQueryBuilder() .dataSource(new TableDataSource(QueryRunnerTestHelper.dataSource)) .dimensionSpecs(DefaultDimensionSpec.toSpec(Collections.emptyList())) .metrics(Collections.emptyList()) .intervals(QueryRunnerTestHelper.fullOnIntervalSpec) .granularity(QueryRunnerTestHelper.allGran) .pagingSpec(PagingSpec.newSpec(3)) .descending(descending); }