@Test public void testQuerySingleSubColumnEmpty() { SuperCfTemplate<String, String, String> sTemplate = new ThriftSuperCfTemplate<String, String, String>(keyspace, "Super1", se, se, se); SuperCfUpdater<String,String,String> sUpdater = sTemplate.createUpdater("skey3","super1"); sUpdater.setString("sub1_col_1", "sub1_val_1"); sTemplate.update(sUpdater); HColumn<String,String> myCol = sTemplate.querySingleSubColumn("skey3", "super2", "sub1_col_1", se); assertNull(myCol); }
/** * Checks if there are any columns at a row specified by key in a super column * family * * @param key * @return true if columns exist */ public boolean isColumnsExist(K key) { return countColumns(key) > 0; }
/** * Checks if there are any columns at a row specified by key in a specific * super column * * @param key * @param superColumnName * the column name serializer of the child columns * @return true if columns exist */ public boolean isSubColumnsExist(K key, SN superColumnName) { return countSubColumns(key, superColumnName) > 0; }
/** * Immediately delete the key and superColumn combination */ @Override public void deleteColumn(K key, SN sColumnName) { createMutator().superDelete(key, getColumnFamily(), sColumnName, topSerializer); }
public void deleteSubColumn(N columnName) { mutator.addSubDelete(getCurrentKey(), template.getColumnFamily(), getCurrentSuperColumn(), columnName, template.getTopSerializer(), template.getSubSerializer()); }
/** * Deletes the super column and all of its sub columns */ public void deleteSuperColumn() { //template.getMutator().addDeletion(getCurrentKey(), template.getColumnFamily(), // getCurrentSuperColumn(), template.getTopSerializer()); mutator.addSuperDelete(getCurrentKey(), template.getColumnFamily(), getCurrentSuperColumn(), template.getTopSerializer()); }
@Test public void testTemplateLevelDeleteMiss() { SuperCfTemplate<String, String, String> sTemplate = new ThriftSuperCfTemplate<String, String, String>(keyspace, "Super1", se, se, se); SuperCfUpdater<String,String,String> sUpdater = sTemplate.createUpdater("skey_row_del_miss","super1"); sUpdater.setString("sub1_col_1", "sub1_val_1"); sTemplate.update(sUpdater); SuperCfResult<String,String,String> result = sTemplate.querySuperColumn("skey_row_del_miss","super1"); assertEquals(1, result.getColumnNames().size()); sTemplate.deleteRow("skey_row_miss_foo"); sTemplate.deleteColumn("skey_row_del", "foo"); result = sTemplate.querySuperColumns("skey_row_del_miss"); assertTrue(result.hasResults()); assertEquals(1, result.getSuperColumns().size()); }
@Test public void testSuperCfMultiSc() { SuperCfTemplate<String, String, String> sTemplate = new ThriftSuperCfTemplate<String, String, String>(keyspace, "Super1", se, se, se); SuperCfUpdater<String,String,String> sUpdater = sTemplate.createUpdater("skey2","super1"); sUpdater.setString("sub1_col_1", "sub1_val_1"); sUpdater.addSuperColumn("super2"); sUpdater.setString("sub2_col_1", "sub2_val_1"); sTemplate.update(sUpdater); SuperCfResult<String,String,String> result = sTemplate.querySuperColumns("skey2", Arrays.asList("super1","super2")); assertEquals(2,result.getSuperColumns().size()); /*for (String sName : result.getSuperColumns() ) { result.getString(sName,"sub1_col_1"); }*/ //assertEquals("sub1_val_1",result.getString("sub1_col_1")); //assertEquals("sub2_val_1",result.next().getString("sub2_col_1")); }
@Test public void testDeleteSubColumns() { SuperCfTemplate<String, String, String> sTemplate = new ThriftSuperCfTemplate<String, String, String>(keyspace, "Super1", se, se, se); SuperCfUpdater<String,String,String> sUpdater = sTemplate.createUpdater("skey3","super1"); sUpdater.setString("sub1_col_1", "sub1_val_1"); sUpdater.setString("sub1_col_2", "sub1_val_2"); sUpdater.setString("sub1_col_3", "sub1_val_3"); sTemplate.update(sUpdater); SuperCfResult<String,String,String> result = sTemplate.querySuperColumn("skey3","super1"); assertEquals(3, result.getColumnNames().size()); sUpdater.deleteSubColumn("sub1_col_1"); sTemplate.update(sUpdater); result = sTemplate.querySuperColumn("skey3","super1"); assertEquals(2, result.getColumnNames().size()); }
/** * Query super columns using the provided predicate instead of the internal one * @param key * @param predicate * @return */ public SuperCfResult<K, SN, N> querySuperColumns(K key, HSlicePredicate<SN> predicate) { return doExecuteSlice(key,null,predicate); }
@Test public void testTemplateLevelDeleteSuper() { SuperCfTemplate<String, String, String> sTemplate = new ThriftSuperCfTemplate<String, String, String>(keyspace, "Super1", se, se, se); SuperCfUpdater<String,String,String> sUpdater = sTemplate.createUpdater("skey_del_super","super1"); sUpdater.setString("sub1_col_1", "sub1_val_1"); sTemplate.update(sUpdater); SuperCfResult<String,String,String> result = sTemplate.querySuperColumn("skey_del_super","super1"); assertEquals(1, result.getColumnNames().size()); sTemplate.deleteColumn("skey_del_super", "super1"); result = sTemplate.querySuperColumn("skey_del_super","super1"); assertFalse(result.hasResults()); assertEquals(0, result.getColumnNames().size()); }
private <V> void addToSubColumns(N subColumnName, V value, Serializer<V> valueSerializer, int ttl) { HColumn<N,V> col = columnFactory.createColumn(subColumnName, value, template.getSubSerializer(), valueSerializer); if(ttl > DEF_TTL) { col.setTtl(globalTtl); } subColumns.add(col); } }
public SuperCfUpdater<K, SN, N> createUpdater(K key, SN sColumnName) { return createUpdater(key).addSuperColumn(sColumnName); }
public SuperCfResult<K, SN, N> querySuperColumns(List<K> keys) { return doExecuteMultigetSlice(keys, activeSlicePredicate); }
/** * Calls {@link SuperCfUpdater#updateInternal()} and {@link SuperCfUpdater#update()} * in that order before invoking {@link #executeIfNotBatched(Mutator)} on the underlying * upater's {@link Mutator} * @param updater */ public void update(SuperCfUpdater<K, SN, N> updater) { updater.updateInternal(); updater.update(); executeIfNotBatched(updater.getCurrentMutator()); }
public SuperCfUpdater(SuperCfTemplate<K,SN,N> sTemplate, ColumnFactory columnFactory) { super((AbstractColumnFamilyTemplate<K, N>) sTemplate, columnFactory, sTemplate.createMutator()); this.template = sTemplate; }
/** * collapse the state of the active HSuperColumn */ void updateInternal() { // HSuperColumnImpl needs a refactor, this construction is lame. // the value serializer is not used in HSuperColumnImpl, so this is safe for name if ( !subColumns.isEmpty() ) { log.debug("Adding column {} for key {} and cols {}", new Object[]{getCurrentSuperColumn(), getCurrentKey(), subColumns}); HSuperColumnImpl<SN, N, ?> column = new HSuperColumnImpl(getCurrentSuperColumn(), subColumns, 0, template.getTopSerializer(), template.getSubSerializer(), TypeInferringSerializer.get()); mutator.addInsertion(getCurrentKey(), template.getColumnFamily(), column); } }
@Test public void testTemplateLevelDeleteRow() { SuperCfTemplate<String, String, String> sTemplate = new ThriftSuperCfTemplate<String, String, String>(keyspace, "Super1", se, se, se); SuperCfUpdater<String,String,String> sUpdater = sTemplate.createUpdater("skey_row_del","super1"); sUpdater.setString("sub1_col_1", "sub1_val_1"); sTemplate.update(sUpdater); SuperCfResult<String,String,String> result = sTemplate.querySuperColumn("skey_row_del","super1"); assertEquals(1, result.getColumnNames().size()); sTemplate.deleteRow("skey_row_del"); result = sTemplate.querySuperColumns("skey_row_del"); assertFalse(result.hasResults()); assertEquals(0, result.getSuperColumns().size()); }
@Test public void testSuperCfKeyOnly() { SuperCfTemplate<String, String, String> sTemplate = new ThriftSuperCfTemplate<String, String, String>(keyspace, "Super1", se, se, se); SuperCfUpdater<String,String,String> sUpdater = sTemplate.createUpdater("skey1","super1"); sUpdater.setString("sub_col_1", "sub_val_1"); sUpdater.addSuperColumn("super2"); sUpdater.setString("sub_col_1", "sub_val_2"); sTemplate.update(sUpdater); SuperCfResult<String,String,String> result = sTemplate.querySuperColumns("skey1"); assertEquals(2, result.getSuperColumns().size()); assertTrue(result.hasResults()); result = sTemplate.querySuperColumns("skey1-non-existing-key"); assertNull(result.getActiveSuperColumn()); }
/** * Immediately delete the row */ @Override public void deleteRow(K key) { createMutator().delete(key, getColumnFamily(), null, null); }