if (!c.restore(this.bufferManager)) { result = null; if (result instanceof Cachable) { Cachable c = (Cachable)result; AccessInfo info = c.getAccessInfo(); if (info != null && !info.validate(type == Type.RESULTSET, modTime)) { LogManager.logTrace(LogConstants.CTX_DQP, "Invalidating cache entry", id); //$NON-NLS-1$
@Test public void testSessionSpecfic() { SessionAwareCache<Cachable> cache = new SessionAwareCache<Cachable>("resultset", DefaultCacheFactory.INSTANCE, SessionAwareCache.Type.RESULTSET, 0); CacheID id = new CacheID(buildWorkContext(), new ParseInfo(), "SELECT * FROM FOO"); Cachable result = Mockito.mock(Cachable.class); id = new CacheID(buildWorkContext(), new ParseInfo(), "SELECT * FROM FOO"); cache.put(id, Determinism.SESSION_DETERMINISTIC, result, null); // make sure that in the case of session specific; we do not call prepare // as session is local only call for distributed Mockito.verify(result, times(0)).prepare((BufferManager)anyObject()); Object c = cache.get(id); Mockito.verify(result, times(0)).restore((BufferManager)anyObject()); assertTrue(result==c); }
AccessInfo info = c.getAccessInfo(); if (info == null) { return ttl;
return; insert = c.prepare(this.bufferManager);
@Test public void testUserSpecfic() { SessionAwareCache<Cachable> cache = new SessionAwareCache<Cachable>("resultset", DefaultCacheFactory.INSTANCE, SessionAwareCache.Type.RESULTSET, 0); CacheID id = new CacheID(buildWorkContext(), new ParseInfo(), "SELECT * FROM FOO"); Cachable result = Mockito.mock(Cachable.class); Mockito.stub(result.prepare((BufferManager)anyObject())).toReturn(true); Mockito.stub(result.restore((BufferManager)anyObject())).toReturn(true); cache.put(id, Determinism.USER_DETERMINISTIC, result, null); // make sure that in the case of session specific; we do not call prepare // as session is local only call for distributed Mockito.verify(result, times(1)).prepare((BufferManager)anyObject()); id = new CacheID(buildWorkContext(), new ParseInfo(), "SELECT * FROM FOO"); Object c = cache.get(id); Mockito.verify(result, times(1)).restore((BufferManager)anyObject()); assertTrue(result==c); }
AccessInfo info = c.getAccessInfo(); if (info == null) { return ttl;
return; insert = c.prepare(this.bufferManager);
@Test public void testNoScope() { SessionAwareCache<Cachable> cache = new SessionAwareCache<Cachable>("resultset", DefaultCacheFactory.INSTANCE, SessionAwareCache.Type.RESULTSET, 0); CacheID id = new CacheID(buildWorkContext(), new ParseInfo(), "SELECT * FROM FOO"); Cachable result = Mockito.mock(Cachable.class); Mockito.stub(result.prepare((BufferManager)anyObject())).toReturn(true); Mockito.stub(result.restore((BufferManager)anyObject())).toReturn(true); cache.put(id, Determinism.VDB_DETERMINISTIC, result, null); // make sure that in the case of session specific; we do not call prepare // as session is local only call for distributed Mockito.verify(result, times(1)).prepare((BufferManager)anyObject()); id = new CacheID(buildWorkContext(), new ParseInfo(), "SELECT * FROM FOO"); Object c = cache.get(id); Mockito.verify(result, times(1)).restore((BufferManager)anyObject()); assertTrue(result==c); }
if (!c.restore(this.bufferManager)) { result = null; if (result instanceof Cachable) { Cachable c = (Cachable)result; AccessInfo info = c.getAccessInfo(); if (info != null && !info.validate(type == Type.RESULTSET, modTime)) { LogManager.logTrace(LogConstants.CTX_DQP, "Invalidating cache entry", id); //$NON-NLS-1$
AccessInfo info = c.getAccessInfo(); if (info == null) { return ttl;
return; insert = c.prepare(this.bufferManager);
@Test public void testVDBRemoval() { SessionAwareCache<Cachable> cache = new SessionAwareCache<Cachable>("resultset", DefaultCacheFactory.INSTANCE, SessionAwareCache.Type.RESULTSET, 0); CacheID id = new CacheID(buildWorkContext(), new ParseInfo(), "SELECT * FROM FOO"); Cachable result = Mockito.mock(Cachable.class); Mockito.stub(result.prepare((BufferManager)anyObject())).toReturn(true); Mockito.stub(result.restore((BufferManager)anyObject())).toReturn(true); id = new CacheID(buildWorkContext(), new ParseInfo(), "SELECT * FROM FOO"); cache.put(id, Determinism.VDB_DETERMINISTIC, result, null); Object c = cache.get(id); assertTrue(result==c); cache.clearForVDB("vdb-name", "1"); assertNull(cache.get(id)); }
if (!c.restore(this.bufferManager)) { result = null; if (result instanceof Cachable) { Cachable c = (Cachable)result; AccessInfo info = c.getAccessInfo(); if (info != null && !info.validate(type == Type.RESULTSET, modTime)) { LogManager.logTrace(LogConstants.CTX_DQP, "Invalidating cache entry", id); //$NON-NLS-1$
Mockito.stub(result.getAccessInfo()).toReturn(ai);
@Test public void testClear() { SessionAwareCache<Cachable> cache = new SessionAwareCache<Cachable>("resultset", DefaultCacheFactory.INSTANCE, SessionAwareCache.Type.RESULTSET, 0); DQPWorkContext context = buildWorkContext(); CacheID id = new CacheID(context, new ParseInfo(), "SELECT * FROM FOO"); Cachable result = Mockito.mock(Cachable.class); Mockito.stub(result.prepare((BufferManager)anyObject())).toReturn(true); Mockito.stub(result.restore((BufferManager)anyObject())).toReturn(true); id = new CacheID(context, new ParseInfo(), "SELECT * FROM FOO"); cache.put(id, Determinism.VDB_DETERMINISTIC, result, null); id = new CacheID(context, new ParseInfo(), "SELECT * FROM FOO1"); cache.put(id, Determinism.VDB_DETERMINISTIC, result, null); assertEquals(2, cache.getTotalCacheEntries()); cache.clearForVDB(context.getVdbName(), context.getVdbVersion()); assertEquals(0, cache.getTotalCacheEntries()); }
@Test public void testRemove() { SessionAwareCache<Cachable> cache = new SessionAwareCache<Cachable>("resultset", DefaultCacheFactory.INSTANCE, SessionAwareCache.Type.RESULTSET, 0); CacheID id = new CacheID(buildWorkContext(), new ParseInfo(), "SELECT * FROM FOO"); Cachable result = Mockito.mock(Cachable.class); Mockito.stub(result.prepare((BufferManager)anyObject())).toReturn(true); Mockito.stub(result.restore((BufferManager)anyObject())).toReturn(true); id = new CacheID(buildWorkContext(), new ParseInfo(), "SELECT * FROM FOO"); cache.put(id, Determinism.VDB_DETERMINISTIC, result, null); Object c = cache.get(id); assertTrue(result==c); assertTrue(cache.remove(id, Determinism.VDB_DETERMINISTIC) != null); assertNull(cache.get(id)); //session scope cache.put(id, Determinism.SESSION_DETERMINISTIC, result, null); assertTrue(cache.get(id) != null); assertTrue(cache.remove(id, Determinism.SESSION_DETERMINISTIC) != null); assertNull(cache.get(id)); }