Search in sources :

Example 6 with H2RowCache

use of org.apache.ignite.internal.processors.query.h2.H2RowCache in project ignite by apache.

the class H2RowCacheSelfTest method checkUpdateEntry.

/**
 * @throws Exception If failed.
 */
@SuppressWarnings("unchecked")
private void checkUpdateEntry() throws Exception {
    final String cacheName = "cache";
    grid().getOrCreateCache(cacheConfiguration(cacheName, true));
    int grpId = grid().cachex(cacheName).context().groupId();
    assertEquals(grpId, grid().cachex(cacheName).context().groupId());
    fillCache(cacheName);
    H2RowCache rowCache = rowCache(grid(), grpId);
    fillRowCache(cacheName);
    assertNotNull(rowCache);
    int key = RND.nextInt(ENTRIES);
    long rowLink = getLinkForKey(cacheName, rowCache, key);
    int rowCacheSize = rowCache.size();
    assertNotNull(rowCache.get(rowLink));
    // Update row
    grid().cache(cacheName).put(key, new Value(key + 1));
    assertNull(rowCache.get(rowLink));
    int rowCacheSizeAfterUpdate = rowCache.size();
    assertEquals(rowCacheSize - 1, rowCacheSizeAfterUpdate);
    // Check updated value.
    List<Cache.Entry<Integer, Value>> res = grid().<Integer, Value>cache(cacheName).query(new SqlQuery(Value.class, "_key = " + key)).getAll();
    assertEquals(1, res.size());
    assertEquals(key + 1, (int) res.get(0).getValue().lVal);
}
Also used : SqlQuery(org.apache.ignite.cache.query.SqlQuery) H2RowCache(org.apache.ignite.internal.processors.query.h2.H2RowCache)

Aggregations

H2RowCache (org.apache.ignite.internal.processors.query.h2.H2RowCache)4 SqlQuery (org.apache.ignite.cache.query.SqlQuery)3 HashSet (java.util.HashSet)1 Map (java.util.Map)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 IgniteCheckedException (org.apache.ignite.IgniteCheckedException)1 IgniteException (org.apache.ignite.IgniteException)1 GridCacheContext (org.apache.ignite.internal.processors.cache.GridCacheContext)1 H2TreeIndex (org.apache.ignite.internal.processors.query.h2.database.H2TreeIndex)1 GridH2KeyValueRowOnheap (org.apache.ignite.internal.processors.query.h2.opt.GridH2KeyValueRowOnheap)1