public void test() { SelectQuery query = new SelectQuery(Artist.class); query.setStatementFetchSize(10); assertEquals(10, query.getMetaData(context.getEntityResolver()).getStatementFetchSize()); context.performQuery(query); SQLTemplate template = new SQLTemplate(Artist.class, "SELECT ARTIST_ID FROM ARTIST"); template.setStatementFetchSize(10); assertEquals(10, template.getMetaData(context.getEntityResolver()).getStatementFetchSize()); context.performQuery(template); EJBQLQuery ejbql = new EJBQLQuery("select a from Artist a"); ejbql.setStatementFetchSize(10); assertEquals(10, ejbql.getMetaData(context.getEntityResolver()).getStatementFetchSize()); context.performQuery(ejbql); ObjectId id = new ObjectId("Artist", Artist.ARTIST_ID_PK_COLUMN, 1); RelationshipQuery relationshipQuery = new RelationshipQuery(id, Artist.PAINTING_ARRAY_PROPERTY, true); relationshipQuery.setStatementFetchSize(10); assertEquals( 10, relationshipQuery.getMetaData(context.getEntityResolver()).getStatementFetchSize()); context.performQuery(relationshipQuery); }
@Test public void testSelectWithDimsAndMets() { SelectQuery query = newTestQuery() .intervals(I_0112_0114) .dimensionSpecs(DefaultDimensionSpec.toSpec(QueryRunnerTestHelper.marketDimension)) .metrics(Arrays.asList(QueryRunnerTestHelper.indexMetric)) .build(); HashMap<String, Object> context = new HashMap<String, Object>(); Iterable<Result<SelectResultValue>> results = Sequences.toList( runner.run(query, context), Lists.<Result<SelectResultValue>>newArrayList()); PagingOffset offset = query.getPagingOffset(QueryRunnerTestHelper.segmentId); List<Result<SelectResultValue>> expectedResults = toExpected( toEvents( new String[] { EventHolder.timestampKey + ":TIME", QueryRunnerTestHelper.marketDimension + ":STRING", null, null, null, QueryRunnerTestHelper.indexMetric + ":FLOAT" }, V_0112_0114), offset.startOffset(), offset.threshold()); verify(expectedResults, results); }
@Test public void testFullOnSelectWithFilter() { // startDelta + threshold pairs for (int[] param : new int[][] {{3, 3}, {0, 1}, {5, 5}, {2, 7}, {3, 0}}) { SelectQuery query = newTestQuery() .intervals(I_0112_0114) .filters(new SelectorDimFilter(QueryRunnerTestHelper.marketDimension, "spot", null)) .granularity(QueryRunnerTestHelper.dayGran) .dimensionSpecs(DefaultDimensionSpec.toSpec(QueryRunnerTestHelper.qualityDimension)) .metrics(Lists.<String>newArrayList(QueryRunnerTestHelper.indexMetric)) .pagingSpec(new PagingSpec(toPagingIdentifier(param[0], descending), param[1])) .build(); HashMap<String, Object> context = new HashMap<String, Object>(); Iterable<Result<SelectResultValue>> results = Sequences.toList( runner.run(query, context), Lists.<Result<SelectResultValue>>newArrayList()); final List<List<Map<String, Object>>> events = toEvents( new String[] { EventHolder.timestampKey + ":TIME", null, QueryRunnerTestHelper.qualityDimension + ":STRING", null, null, QueryRunnerTestHelper.indexMetric + ":FLOAT" }, // filtered values with day granularity new String[] { "2011-01-12T00:00:00.000Z spot automotive preferred apreferred 100.000000", "2011-01-12T00:00:00.000Z spot business preferred bpreferred 100.000000", "2011-01-12T00:00:00.000Z spot entertainment preferred epreferred 100.000000", "2011-01-12T00:00:00.000Z spot health preferred hpreferred 100.000000", "2011-01-12T00:00:00.000Z spot mezzanine preferred mpreferred 100.000000", "2011-01-12T00:00:00.000Z spot news preferred npreferred 100.000000", "2011-01-12T00:00:00.000Z spot premium preferred ppreferred 100.000000", "2011-01-12T00:00:00.000Z spot technology preferred tpreferred 100.000000", "2011-01-12T00:00:00.000Z spot travel preferred tpreferred 100.000000" }, new String[] { "2011-01-13T00:00:00.000Z spot automotive preferred apreferred 94.874713", "2011-01-13T00:00:00.000Z spot business preferred bpreferred 103.629399", "2011-01-13T00:00:00.000Z spot entertainment preferred epreferred 110.087299", "2011-01-13T00:00:00.000Z spot health preferred hpreferred 114.947403", "2011-01-13T00:00:00.000Z spot mezzanine preferred mpreferred 104.465767", "2011-01-13T00:00:00.000Z spot news preferred npreferred 102.851683", "2011-01-13T00:00:00.000Z spot premium preferred ppreferred 108.863011", "2011-01-13T00:00:00.000Z spot technology preferred tpreferred 111.356672", "2011-01-13T00:00:00.000Z spot travel preferred tpreferred 106.236928" }); PagingOffset offset = query.getPagingOffset(QueryRunnerTestHelper.segmentId); List<Result<SelectResultValue>> expectedResults = toExpected(events, offset.startOffset(), offset.threshold()); verify(expectedResults, results); } }
@Test public void testFullOnSelect() { SelectQuery query = newTestQuery().intervals(I_0112_0114).build(); HashMap<String, Object> context = new HashMap<String, Object>(); Iterable<Result<SelectResultValue>> results = Sequences.toList( runner.run(query, context), Lists.<Result<SelectResultValue>>newArrayList()); PagingOffset offset = query.getPagingOffset(QueryRunnerTestHelper.segmentId); List<Result<SelectResultValue>> expectedResults = toExpected( toEvents(new String[] {EventHolder.timestampKey + ":TIME"}, V_0112_0114), offset.startOffset(), offset.threshold()); verify(expectedResults, results); }
@Test public void testOrdering() throws Exception { creatArtistsDataSet(); SelectQuery query = new SelectQuery("Artist"); query.addOrdering(Artist.ARTIST_NAME_PROPERTY, SortOrder.ASCENDING); query.setFetchLimit(4); List<?> results = context.performQuery(query); assertEquals(4, results.size()); assertEquals("a", ((Artist) results.get(0)).getArtistName()); assertEquals("b", ((Artist) results.get(1)).getArtistName()); assertEquals("c", ((Artist) results.get(2)).getArtistName()); assertEquals("d", ((Artist) results.get(3)).getArtistName()); }
@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).build(); for (int offset : expected) { List<Result<SelectResultValue>> results = Sequences.toList( runner.run(query, ImmutableMap.of()), Lists.<Result<SelectResultValue>>newArrayList()); Assert.assertEquals(1, results.size()); SelectResultValue result = results.get(0).getValue(); Map<String, Integer> pagingIdentifiers = result.getPagingIdentifiers(); Assert.assertEquals( offset, pagingIdentifiers.get(QueryRunnerTestHelper.segmentId).intValue()); Map<String, Integer> next = PagingSpec.next(pagingIdentifiers, descending); query = query.withPagingSpec(new PagingSpec(next, 3)); } query = newTestQuery().intervals(I_0112_0114).build(); for (int offset : expected) { List<Result<SelectResultValue>> results = Sequences.toList( runner.run(query, ImmutableMap.of()), Lists.<Result<SelectResultValue>>newArrayList()); Assert.assertEquals(1, results.size()); SelectResultValue result = results.get(0).getValue(); Map<String, Integer> pagingIdentifiers = result.getPagingIdentifiers(); Assert.assertEquals( offset, pagingIdentifiers.get(QueryRunnerTestHelper.segmentId).intValue()); // use identifier as-is but with fromNext=true query = query.withPagingSpec(new PagingSpec(pagingIdentifiers, 3, true)); } }
public String toCycMicroTheory() throws SparqlQueryTransformException { String microTheory = null; if (queryType == Type.SELECT) { microTheory = select.toCycMicroTheory(); } if (microTheory != null) { return microTheory; } else { return "#$InferencePSC"; } }
@Test public void testFullSelectNoDimensionAndMetric() { SelectQuery query = newTestQuery() .intervals(I_0112_0114) .dimensionSpecs(DefaultDimensionSpec.toSpec("foo")) .metrics(Lists.<String>newArrayList("foo2")) .build(); Iterable<Result<SelectResultValue>> results = Sequences.toList( runner.run(query, Maps.newHashMap()), Lists.<Result<SelectResultValue>>newArrayList()); final List<List<Map<String, Object>>> events = toEvents( new String[] {EventHolder.timestampKey + ":TIME", "foo:NULL", "foo2:NULL"}, V_0112_0114); PagingOffset offset = query.getPagingOffset(QueryRunnerTestHelper.segmentId); List<Result<SelectResultValue>> expectedResults = toExpected(events, offset.startOffset(), offset.threshold()); verify(expectedResults, results); }
@Test public void testSelectPagination() { SelectQuery query = newTestQuery() .intervals(I_0112_0114) .dimensionSpecs(DefaultDimensionSpec.toSpec(QueryRunnerTestHelper.qualityDimension)) .metrics(Arrays.asList(QueryRunnerTestHelper.indexMetric)) .pagingSpec(new PagingSpec(toPagingIdentifier(3, descending), 3)) .build(); Iterable<Result<SelectResultValue>> results = Sequences.toList( runner.run(query, Maps.newHashMap()), Lists.<Result<SelectResultValue>>newArrayList()); PagingOffset offset = query.getPagingOffset(QueryRunnerTestHelper.segmentId); List<Result<SelectResultValue>> expectedResults = toExpected( toEvents( new String[] {EventHolder.timestampKey + ":TIME", "foo:NULL", "foo2:NULL"}, V_0112_0114), offset.startOffset(), offset.threshold()); verify(expectedResults, results); }
public String toCycQuery() throws SparqlQueryTransformException { if (queryType == Type.SELECT) { return select.toCycQuery(); } return null; }