/** * {@inheritDoc} */ @Override public Results execute(Query q) { return execute(q, DEFAULT_BATCH_SIZE, true, true, true); }
q.addFrom(qc); q.addToSelect(qc); Results r1 = os.execute(q, 1000, true, true, true); Results r2 = os.execute(q, 1000, true, true, true); Results r3 = os.execute(q, 1000, true, false, false); Assert.assertTrue(r1 != r3); Assert.assertTrue(r1.getResultsBatches() == r3.getResultsBatches()); Assert.assertTrue(r1.isSingleBatch()); Assert.assertTrue(r3.isSingleBatch()); Results r4 = os.execute(q, 500, true, true, true); Assert.assertTrue(r1.getResultsBatches() != r4.getResultsBatches()); Assert.assertTrue(r4.isSingleBatch());
/** * {@inheritDoc} */ @Override public Results execute(Query q) { return execute(q, DEFAULT_BATCH_SIZE, true, true, true); }
/** * Run an IQL query in the objectstore and print the first results to the console. * @param os the objectstore * @param iql and IQL query string */ private static void runIqlQuery(ObjectStoreInterMineImpl os, String iql) { System.out .println("Running query in database " + os.getDatabase().getName() + " - " + iql); System.out .println("See intermine.log for query execution details."); Query q = parseIqlQuery(os.getModel(), iql); Results results = os.execute(q); Iterator<?> resIter = results.iterator(); int count = 0; while (resIter.hasNext() && count < MAX_ROWS) { ResultsRow<?> rr = (ResultsRow<?>) resIter.next(); System.out .println(count + " - " + rr); count += 1; } if (resIter.hasNext()) { System.out .println("Only fetching first " + MAX_ROWS + " rows."); } }
/** * Run an IQL query in the objectstore and print the first results to the console. * @param os the objectstore * @param iql and IQL query string */ private static void runIqlQuery(ObjectStoreInterMineImpl os, String iql) { System.out .println("Running query in database " + os.getDatabase().getName() + " - " + iql); System.out .println("See intermine.log for query execution details."); Query q = parseIqlQuery(os.getModel(), iql); Results results = os.execute(q); Iterator<?> resIter = results.iterator(); int count = 0; while (resIter.hasNext() && count < MAX_ROWS) { ResultsRow<?> rr = (ResultsRow<?>) resIter.next(); System.out .println(count + " - " + rr); count += 1; } if (resIter.hasNext()) { System.out .println("Only fetching first " + MAX_ROWS + " rows."); } }
/** * {@inheritDoc} */ @Override public Results execute(Query q, int batchSize, boolean optimise, boolean explain, boolean prefetch) { if (tablesAltered.isEmpty()) { return super.execute(q, batchSize, optimise, explain, prefetch); } else { Results retval = new Results(q, this, getSequence(getComponentsForQuery(q))); if (batchSize != 0) { retval.setBatchSize(batchSize); } if (!optimise) { retval.setNoOptimise(); } if (!explain) { retval.setNoExplain(); } if (!prefetch) { retval.setNoPrefetch(); } retval.setImmutable(); //LOG.error("Results cache not used for " + q); return retval; } }
/** * {@inheritDoc} */ @Override public Results execute(Query q, int batchSize, boolean optimise, boolean explain, boolean prefetch) { if (tablesAltered.isEmpty()) { return super.execute(q, batchSize, optimise, explain, prefetch); } else { Results retval = new Results(q, this, getSequence(getComponentsForQuery(q))); if (batchSize != 0) { retval.setBatchSize(batchSize); } if (!optimise) { retval.setNoOptimise(); } if (!explain) { retval.setNoExplain(); } if (!prefetch) { retval.setNoPrefetch(); } retval.setImmutable(); //LOG.error("Results cache not used for " + q); return retval; } }
@org.junit.Test public void testFailFast2() throws Exception { Query q = new Query(); QueryClass qc = new QueryClass(Employee.class); q.addFrom(qc); q.addToSelect(qc); Results r = os.execute(q); storeDataWriter.store(data.get("CompanyA")); r.iterator().hasNext(); } }
@org.junit.Test public void testFailFast2() throws Exception { Query q = new Query(); QueryClass qc = new QueryClass(Employee.class); q.addFrom(qc); q.addToSelect(qc); Results r = os.execute(q); storeDataWriter.store((Company) data.get("CompanyA")); r.iterator().hasNext(); } }
@Test public void testBatchesCacheSmallToLarge() throws Exception { Query q = new Query(); QueryClass qc = new QueryClass(Company.class); q.addFrom(qc); q.addToSelect(qc); Results r1 = os.execute(q, 1, false, false, false); r1.get(0); Results r2 = os.execute(q, 100, false, false, false); r2.get(0); Assert.assertNotNull(r2.get(1)); }
@Test public void testBatchesFavourFilled() throws Exception { Query q = new Query(); QueryClass qc = new QueryClass(CEO.class); q.addFrom(qc); q.addToSelect(qc); Results r1 = os.execute(q, 100, false, false, false); Results r2 = os.execute(q, 101, false, false, false); Assert.assertTrue(!r1.isSingleBatch()); Assert.assertTrue(!r2.isSingleBatch()); r1.get(0); Assert.assertTrue(r1.isSingleBatch()); Assert.assertTrue(!r2.isSingleBatch()); Results r3 = os.execute(q, 102, false, false, false); Assert.assertTrue(r3.isSingleBatch()); } }
@Test public void testGoFaster() throws Exception { Query q = new IqlQuery("SELECT Company, Department FROM Company, Department WHERE Department.company CONTAINS Company", "org.intermine.model.testmodel").toQuery(); try { ((ObjectStoreInterMineImpl) os).goFaster(q); Results r = os.execute(q); r.get(0); Assert.assertEquals(3, r.size()); } finally { ((ObjectStoreInterMineImpl) os).releaseGoFaster(q); } }
q1.setDistinct(false); long time1 = System.currentTimeMillis(); Results r1 = os.execute(q1, 1000, true, false, true); int counter = 0; Iterator rowIter = r1.iterator(); long time3 = System.currentTimeMillis(); System.out.println("Precomputing took " + (time3 - time2) + " ms"); Results r2 = os.execute(q2, 1000, true, false, true); counter = 0; rowIter = r2.iterator(); toRemove.add(newD); Query q3 = QueryCloner.cloneQuery(q1); Results r3 = os.execute(q3, 1000, true, false, true); counter = 0; rowIter = r3.iterator();
@Test public void testPrecomputeWithNegatives() throws Exception { Types t1 = new Types(); t1.setLongObjType(new Long(-765187651234L)); t1.setIntObjType(new Integer(278652)); t1.setName("Fred"); storeDataWriter.store(t1); Query q = new Query(); QueryClass qc = new QueryClass(Types.class); QueryField into = new QueryField(qc, "intObjType"); QueryField longo = new QueryField(qc, "longObjType"); q.addFrom(qc); q.addToSelect(into); q.addToSelect(longo); q.addToSelect(qc); q.setDistinct(false); ((ObjectStoreInterMineImpl) os).precompute(q, "test"); Results r = os.execute(q, 1, true, true, true); SqlGenerator.registerOffset(q, 1, ((ObjectStoreInterMineImpl) os).getSchema(), ((ObjectStoreInterMineImpl) os).db, new Integer(278651), new HashMap()); ResultsRow row = (ResultsRow) r.get(1); InterMineObject o = (InterMineObject) row.get(2); Assert.assertEquals("Expected " + t1.toString() + " but got " + o.toString(), t1.getId(), o.getId()); try { r.get(2); Assert.fail("Expected size to be 2"); } catch (Exception e) { } Assert.assertEquals(2, r.size()); storeDataWriter.delete(t1); }
cs.addConstraint(new ClassConstraint(qc1, ConstraintOp.EQUALS, qc8)); cs.addConstraint(new ClassConstraint(qc1, ConstraintOp.EQUALS, qc9)); Assert.assertEquals(Collections.EMPTY_LIST, os.execute(q, 0, 1000, true, true, ObjectStore.SEQUENCE_IGNORE));