@Test public void testTimeseriesWithLimitNoTopN() throws Exception { testQuery( PLANNER_CONFIG_NO_TOPN, "SELECT gran, SUM(cnt)\n" + "FROM (\n" + " SELECT floor(__time TO month) AS gran, cnt\n" + " FROM druid.foo\n" + ") AS x\n" + "GROUP BY gran\n" + "ORDER BY gran\n" + "LIMIT 1", CalciteTests.REGULAR_USER_AUTH_RESULT, ImmutableList.of( Druids.newTimeseriesQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(QSS(Filtration.eternity())) .granularity(Granularities.MONTH) .aggregators(AGGS(new LongSumAggregatorFactory("a0", "cnt"))) .limit(1) .context(TIMESERIES_CONTEXT_DEFAULT) .build() ), ImmutableList.of( new Object[]{T("2000-01-01"), 3L} ) ); }
@Test public void testTimeseriesWithLimit() throws Exception { testQuery( "SELECT gran, SUM(cnt)\n" + "FROM (\n" + " SELECT floor(__time TO month) AS gran, cnt\n" + " FROM druid.foo\n" + ") AS x\n" + "GROUP BY gran\n" + "LIMIT 1", ImmutableList.of( Druids.newTimeseriesQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(QSS(Filtration.eternity())) .granularity(Granularities.MONTH) .aggregators(AGGS(new LongSumAggregatorFactory("a0", "cnt"))) .limit(1) .context(TIMESERIES_CONTEXT_DEFAULT) .build() ), ImmutableList.of( new Object[]{T("2000-01-01"), 3L} ) ); }
@Test public void testTimeseriesWithOrderByAndLimit() throws Exception { testQuery( "SELECT gran, SUM(cnt)\n" + "FROM (\n" + " SELECT floor(__time TO month) AS gran, cnt\n" + " FROM druid.foo\n" + ") AS x\n" + "GROUP BY gran\n" + "ORDER BY gran\n" + "LIMIT 1", ImmutableList.of( Druids.newTimeseriesQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(QSS(Filtration.eternity())) .granularity(Granularities.MONTH) .aggregators(AGGS(new LongSumAggregatorFactory("a0", "cnt"))) .limit(1) .context(TIMESERIES_CONTEXT_DEFAULT) .build() ), ImmutableList.of( new Object[]{T("2000-01-01"), 3L} ) ); }
public static TimeseriesQueryBuilder copy(TimeseriesQuery query) { return new TimeseriesQueryBuilder() .dataSource(query.getDataSource()) .intervals(query.getQuerySegmentSpec()) .descending(query.isDescending()) .virtualColumns(query.getVirtualColumns()) .filters(query.getDimensionsFilter()) .granularity(query.getGranularity()) .aggregators(query.getAggregatorSpecs()) .postAggregators(query.getPostAggregatorSpecs()) .limit(query.getLimit()) .context(query.getContext()); }
.limit(10) .build();
public static TimeseriesQueryBuilder copy(TimeseriesQuery query) { return new TimeseriesQueryBuilder() .dataSource(query.getDataSource()) .intervals(query.getQuerySegmentSpec()) .descending(query.isDescending()) .virtualColumns(query.getVirtualColumns()) .filters(query.getDimensionsFilter()) .granularity(query.getGranularity()) .aggregators(query.getAggregatorSpecs()) .postAggregators(query.getPostAggregatorSpecs()) .limit(query.getLimit()) .context(query.getContext()); }