@Test public void testInsertAndDeleteSuper() { Mutator<String> m = createMutator(keyspace, se); List<HColumn<String, String>> columnList = new ArrayList<HColumn<String,String>>(); columnList.add(createColumn("name","value",se,se)); HSuperColumn<String, String, String> superColumn = createSuperColumn("super_name", columnList, se, se, se); // Insert Super Column MutationResult r = m.insert("sk", "Super1", superColumn); assertTrue("Execute time should be > 0", r.getExecutionTimeMicro() > 0); assertTrue("Should have operated on a host", r.getHostUsed() != null); // Fetch and verify it exists. SuperColumnQuery<String, String, String, String> scq = HFactory.createSuperColumnQuery(keyspace, se, se, se, se); scq.setColumnFamily("Super1"); scq.setKey("sk"); scq.setSuperName("super_name"); assertEquals("super_name", scq.execute().get().getName()); // Remove the Super Column m.superDelete("sk", "Super1", "super_name", se); // Fetch and verify it exists. scq = HFactory.createSuperColumnQuery(keyspace, se, se, se, se); scq.setColumnFamily("Super1"); scq.setKey("sk"); scq.setSuperName("super_name"); assertNull("super_name", scq.execute().get()); }
@Test public void testSubDelete() { Mutator<String> m = createMutator(keyspace, se); List<HColumn<String, String>> columnList = new ArrayList<HColumn<String,String>>(); columnList.add(createColumn("col_1","val_1",se,se)); columnList.add(createColumn("col_2","val_2",se,se)); columnList.add(createColumn("col_3","val_3",se,se)); HSuperColumn<String, String, String> superColumn = createSuperColumn("super_name", columnList, se, se, se); m.insert("sk1", "Super1", superColumn); SuperColumnQuery<String, String, String, String> scq = HFactory.createSuperColumnQuery(keyspace, se, se, se, se); scq.setColumnFamily("Super1"); scq.setKey("sk1"); scq.setSuperName("super_name"); assertEquals(3,scq.execute().get().getColumns().size()); m.discardPendingMutations(); m.addSubDelete("sk1", "Super1", "super_name", "col_1", se, se); m.execute(); assertEquals(2,scq.execute().get().getColumns().size()); }
@Test public void testSubDeleteHSuperColumn() { Mutator<String> m = createMutator(keyspace, se); List<HColumn<String, String>> columnList = new ArrayList<HColumn<String,String>>(); columnList.add(createColumn("col_1","val_1",se,se)); columnList.add(createColumn("col_2","val_2",se,se)); columnList.add(createColumn("col_3","val_3",se,se)); HSuperColumn<String, String, String> superColumn = createSuperColumn("super_name", columnList, se, se, se); m.insert("sk1", "Super1", superColumn); SuperColumnQuery<String, String, String, String> scq = HFactory.createSuperColumnQuery(keyspace, se, se, se, se); scq.setColumnFamily("Super1"); scq.setKey("sk1"); scq.setSuperName("super_name"); assertEquals(3,scq.execute().get().getColumns().size()); m.discardPendingMutations(); columnList.remove(1); columnList.remove(0); superColumn.setSubcolumns(columnList); m.addSubDelete("sk1", "Super1", superColumn); m.execute(); assertEquals(2,scq.execute().get().getColumns().size()); }
q.setSuperName("testSuperInsertGetRemove").setColumnFamily(cf); QueryResult<HSuperColumn<String, String, String>> r = q.setKey( "testSuperInsertGetRemove").execute(); assertNotNull(r); HSuperColumn<String, String, String> sc = r.get(); r = q.execute(); sc = r.get(); assertNull(sc);
public static void main(String[] args) throws Exception { Cluster cluster = HFactory.getOrCreateCluster("TestCluster", "localhost:9160"); Keyspace keyspaceOperator = HFactory.createKeyspace("Keyspace1", cluster); try { Mutator<String> mutator = HFactory.createMutator(keyspaceOperator, stringSerializer); mutator.insert("billing", "Super1", HFactory.createSuperColumn("jsmith", Arrays.asList(HFactory.createStringColumn("first", "John")), stringSerializer, stringSerializer, stringSerializer)); SuperColumnQuery<String, String, String, String> superColumnQuery = HFactory.createSuperColumnQuery(keyspaceOperator, stringSerializer, stringSerializer, stringSerializer, stringSerializer); superColumnQuery.setColumnFamily("Super1").setKey("billing").setSuperName("jsmith"); QueryResult<HSuperColumn<String, String, String>> result = superColumnQuery.execute(); System.out.println("Read HSuperColumn from cassandra: " + result.get()); System.out.println("Verify on CLI with: get Keyspace1.Super1['billing']['jsmith'] "); } catch (HectorException e) { e.printStackTrace(); } cluster.getConnectionManager().shutdown(); } }
private static void checkSuperColumns(Keyspace keyspace, ColumnFamilyModel expectedColumnFamilyModel, RowModel expectedRowModel) throws Error { String expectedColumnFamilyName = expectedColumnFamilyModel.getName(); List<SuperColumnModel> expectedSuperColumns = expectedRowModel.getSuperColumns(); checkNumberOfSuperColumns(keyspace, expectedColumnFamilyName, expectedRowModel, expectedSuperColumns.size()); for (SuperColumnModel expectedSuperColumnModel : expectedSuperColumns) { GenericType expectedSuperColumnName = expectedSuperColumnModel.getName(); SuperColumnQuery<byte[], byte[], byte[], byte[]> createSuperColumnQuery = HFactory.createSuperColumnQuery( keyspace, BytesArraySerializer.get(), BytesArraySerializer.get(), BytesArraySerializer.get(), BytesArraySerializer.get()); createSuperColumnQuery.setColumnFamily(expectedColumnFamilyName); createSuperColumnQuery.setKey(getBytes(expectedRowModel.getKey())); createSuperColumnQuery.setSuperName(getBytes(expectedSuperColumnName)); QueryResult<HSuperColumn<byte[], byte[], byte[]>> supercolumn = createSuperColumnQuery.execute(); List<ColumnModel> expectedColumns = expectedSuperColumnModel.getColumns(); HSuperColumn<byte[], byte[], byte[]> hSuperColumn = supercolumn.get(); checkSuperColumnNameAndKey(expectedSuperColumnName, hSuperColumn); List<HColumn<byte[], byte[]>> columns = hSuperColumn.getColumns(); checkNumberOfColumnsInsideSuperColumn(expectedSuperColumnModel.getName().getValue(), expectedRowModel .getKey().getValue(), expectedColumns.size(), columns.size()); checkColumnsOfSuperColumn(expectedRowModel, expectedSuperColumnModel, expectedColumns, columns); } }
private static void checkSuperColumns(Keyspace keyspace, ColumnFamilyModel expectedColumnFamilyModel, RowModel expectedRowModel) throws Error { String expectedColumnFamilyName = expectedColumnFamilyModel.getName(); List<SuperColumnModel> expectedSuperColumns = expectedRowModel.getSuperColumns(); checkNumberOfSuperColumns(keyspace, expectedColumnFamilyName, expectedRowModel, expectedSuperColumns.size()); for (SuperColumnModel expectedSuperColumnModel : expectedSuperColumns) { GenericType expectedSuperColumnName = expectedSuperColumnModel.getName(); SuperColumnQuery<byte[], byte[], byte[], byte[]> createSuperColumnQuery = HFactory.createSuperColumnQuery( keyspace, BytesArraySerializer.get(), BytesArraySerializer.get(), BytesArraySerializer.get(), BytesArraySerializer.get()); createSuperColumnQuery.setColumnFamily(expectedColumnFamilyName); createSuperColumnQuery.setKey(getBytes(expectedRowModel.getKey())); createSuperColumnQuery.setSuperName(getBytes(expectedSuperColumnName)); QueryResult<HSuperColumn<byte[], byte[], byte[]>> supercolumn = createSuperColumnQuery.execute(); List<ColumnModel> expectedColumns = expectedSuperColumnModel.getColumns(); HSuperColumn<byte[], byte[], byte[]> hSuperColumn = supercolumn.get(); checkSuperColumnNameAndKey(expectedSuperColumnName, hSuperColumn); List<HColumn<byte[], byte[]>> columns = hSuperColumn.getColumns(); checkNumberOfColumnsInsideSuperColumn(expectedSuperColumnModel.getName().getValue(), expectedRowModel .getKey().getValue(), expectedColumns.size(), columns.size()); checkColumnsOfSuperColumn(expectedRowModel, expectedSuperColumnModel, expectedColumns, columns); } }