/** * {@inheritDoc} */ @Override public SingletonResults executeSingleton(Query q) { return os.executeSingleton(QueryCloner.cloneQuery(q)); }
/** * {@inheritDoc} */ @Override public ResultsInfo estimate(Query q) throws ObjectStoreException { return os.estimate(QueryCloner.cloneQuery(q)); }
/** * {@inheritDoc} */ @Override public int count(Query q, Map<Object, Integer> sequence) throws ObjectStoreException { return os.count(QueryCloner.cloneQuery(q), sequence); }
/** * {@inheritDoc} */ @Override public int count(Query q, Map<Object, Integer> sequence) throws ObjectStoreException { return os.count(QueryCloner.cloneQuery(q), sequence); }
/** * {@inheritDoc} */ @Override public Results execute(Query q) { return os.execute(QueryCloner.cloneQuery(q)); }
/** * {@inheritDoc} */ @Override public SingletonResults executeSingleton(Query q) { return os.executeSingleton(QueryCloner.cloneQuery(q)); }
/** * {@inheritDoc} */ @Override public Results execute(Query q) { return os.execute(QueryCloner.cloneQuery(q)); }
/** * {@inheritDoc} */ @Override public List<ResultsRow<Object>> execute(Query q, int start, int limit, boolean optimise, boolean explain, Map<Object, Integer> sequence) throws ObjectStoreException { return os.execute(QueryCloner.cloneQuery(q), start, limit, optimise, explain, sequence); }
/** * {@inheritDoc} */ @Override public List<ResultsRow<Object>> execute(Query q, int start, int limit, boolean optimise, boolean explain, Map<Object, Integer> sequence) throws ObjectStoreException { return os.execute(QueryCloner.cloneQuery(q), start, limit, optimise, explain, sequence); }
/** * {@inheritDoc} */ @Override public ResultsInfo estimate(Query q) throws ObjectStoreException { return os.estimate(QueryCloner.cloneQuery(q)); }
/** * Return a List containing clones of the given Query, but with all permutations * of order by for the QueryClass objects on the from list. * * @param q the Query * @return clones of the Query with all permutations of orderBy */ private static List<Query> getOrderedQueries(Query q) { List<Query> queryList = new ArrayList<Query>(); Set<int[]> permutations = permutations(q.getEffectiveOrderBy().size()); for (int[] order : permutations) { Query newQuery = QueryCloner.cloneQuery(q); List<Object> orderBy = new ArrayList<Object>(newQuery.getEffectiveOrderBy()); newQuery.clearOrderBy(); for (int i = 0; i < order.length; i++) { newQuery.addToOrderBy((QueryClass) orderBy.get(order[i])); } queryList.add(newQuery); } return queryList; }
/** * Return a List containing clones of the given Query, but with all permutations * of order by for the QueryClass objects on the from list. * * @param q the Query * @return clones of the Query with all permutations of orderBy */ private static List<Query> getOrderedQueries(Query q) { List<Query> queryList = new ArrayList<Query>(); Set<int[]> permutations = permutations(q.getEffectiveOrderBy().size()); for (int[] order : permutations) { Query newQuery = QueryCloner.cloneQuery(q); List<Object> orderBy = new ArrayList<Object>(newQuery.getEffectiveOrderBy()); newQuery.clearOrderBy(); for (int i = 0; i < order.length; i++) { newQuery.addToOrderBy((QueryClass) orderBy.get(order[i])); } queryList.add(newQuery); } return queryList; }
public void executeTest(String type) throws Exception { try { Query orig = ((Query) queries.get(type)); Query cloned = QueryCloner.cloneQuery(orig); assertEquals(type + " has failed", orig, cloned); } catch (IllegalArgumentException e) { fail("IllegalArgumentException thrown for " + type + ": " + e.getMessage() + ": " + queries.get(type)); } }
throws ClassNotFoundException { Set<String> empty = Collections.emptySet(); Query q = QueryCloner.cloneQuery(getQuery(empty, extraFieldValue)); Map<QueryEvaluable, ConstraintSet> nodes = new LinkedHashMap<QueryEvaluable, ConstraintSet>();
@Test public void testCountNoGroupByNotDistinct() throws Exception { Query q = QueryCloner.cloneQuery((Query) queries.get("ContainsDuplicatesMN")); q.setDistinct(false); int count = osForOsTests.count(q, ObjectStore.SEQUENCE_IGNORE); Assert.assertEquals(4, count); Assert.assertEquals(4, osForOsTests.execute(q).size()); }
@Test public void testCountGroupByNotDistinct() throws Exception { Query q = QueryCloner.cloneQuery((Query) queries.get("SimpleGroupBy")); q.setDistinct(false); int count = osForOsTests.count(q, ObjectStore.SEQUENCE_IGNORE); Assert.assertEquals(2, count); Assert.assertEquals(2, osForOsTests.execute(q).size()); }
public void testAlias() throws Exception { Query orig = new Query(); QueryClass c = new QueryClass(Company.class); orig.addFrom(c); orig.addToSelect(c); Query cloned = QueryCloner.cloneQuery(orig); QueryClass c2 = new QueryClass(Department.class); cloned.addFrom(c2); cloned.addToSelect(c2); assertEquals("SELECT DISTINCT a1_, a2_ FROM org.intermine.model.testmodel.Company AS a1_, org.intermine.model.testmodel.Department AS a2_", cloned.toString()); } }
@Test public void testLargeOffset() throws Exception { Query q = new Query(); QueryClass qc = new QueryClass(Address.class); q.addFrom(qc); q.addToSelect(qc); Query q2 = QueryCloner.cloneQuery(q); SingletonResults r = os.executeSingleton(q, 2, true, true, true); InterMineObject o = (InterMineObject) r.get(5); SqlGenerator.registerOffset(q2, 6, ((ObjectStoreInterMineImpl) os).getSchema(), ((ObjectStoreInterMineImpl) os).db, o.getId(), new HashMap()); SingletonResults r2 = os.executeSingleton(q2, 2, true, true, true); Query q3 = QueryCloner.cloneQuery(q); SqlGenerator.registerOffset(q3, 5, ((ObjectStoreInterMineImpl) os).getSchema(), ((ObjectStoreInterMineImpl) os).db, o.getId(), new HashMap()); SingletonResults r3 = new SingletonResults(q3, os, ObjectStore.SEQUENCE_IGNORE); r3.setBatchSize(2); Assert.assertTrue(r == r2); Assert.assertTrue(r != r3); Assert.assertTrue(r2 != r3); Assert.assertEquals(r, r2); Assert.assertTrue(!r.equals(r3)); }
@Test public void testLargeOffset2() throws Exception { Employee nullEmployee = new Employee(); nullEmployee.setAge(26); nullEmployee.setName(null); try { storeDataWriter.store(nullEmployee); Query q = new Query(); QueryClass qc = new QueryClass(Employee.class); q.addFrom(qc); q.addToSelect(qc); q.addToOrderBy(new QueryField(qc, "name")); Query q2 = QueryCloner.cloneQuery(q); SingletonResults r = os.executeSingleton(q, 2, true, true, true); Employee o = (Employee) r.get(2); SqlGenerator.registerOffset(q2, 3, ((ObjectStoreInterMineImpl) os).getSchema(), ((ObjectStoreInterMineImpl) os).db, o.getName(), new HashMap()); SingletonResults r2 = os.executeSingleton(q2, 2, true, true, true); Query q3 = QueryCloner.cloneQuery(q); SqlGenerator.registerOffset(q3, 2, ((ObjectStoreInterMineImpl) os).getSchema(), ((ObjectStoreInterMineImpl) os).db, o.getName(), new HashMap()); SingletonResults r3 = new SingletonResults(q3, os, ObjectStore.SEQUENCE_IGNORE); r3.setBatchSize(2); Assert.assertTrue(r == r2); Assert.assertTrue(r != r3); Assert.assertTrue(r2 != r3); Assert.assertEquals(r, r2); Assert.assertTrue(!r.equals(r3)); } finally { storeDataWriter.delete(nullEmployee); } }
q = QueryCloner.cloneQuery(q); r = os.execute(q, 10, true, true, true);