@Override public <SN, N, V> HSuperColumn<SN, N, V> createSuperColumn(SN name, List<HColumn<N, V>> columns, long clock, Serializer<SN> superNameSerializer, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { return HFactory.createSuperColumn(name, columns, clock, superNameSerializer, nameSerializer, valueSerializer); }
@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()); }
@Override public <SN, N, V> HSuperColumn<SN, N, V> createSuperColumn(SN name, List<HColumn<N, V>> columns, Serializer<SN> superNameSerializer, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { return HFactory.createSuperColumn(name, columns, createClock(), superNameSerializer, nameSerializer, valueSerializer); }
@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()); }
@Override public <SN, N, V> HSuperColumn<SN, N, V> createSuperColumn(SN name, List<HColumn<N, V>> columns, long clock, Serializer<SN> superNameSerializer, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { return HFactory.createSuperColumn(name, columns, clock, superNameSerializer, nameSerializer, valueSerializer); }
createColumn("name2", "value2", se, se)); m.insert("testSuperInsertGetRemove", cf, createSuperColumn("testSuperInsertGetRemove", columns, se, se, se));
@Override public <SN, N, V> HSuperColumn<SN, N, V> createSuperColumn(SN name, List<HColumn<N, V>> columns, long clock, Serializer<SN> superNameSerializer, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { return HFactory.createSuperColumn(name, columns, clock, superNameSerializer, nameSerializer, valueSerializer); }
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 TestCleanupDescriptor insertSuperColumns(String cf, int rowCount, String rowPrefix, int scCount, String scPrefix) { Mutator<String> m = createMutator(ko, se); for (int i = 0; i < rowCount; ++i) { for (int j = 0; j < scCount; ++j) { @SuppressWarnings("unchecked") HSuperColumn<String, String, String> sc = createSuperColumn(scPrefix + j, Arrays.asList( createColumn("c0" + i + j, "v0" + i + j, se, se), createColumn("c1" + 1 + j, "v1" + i + j, se, se)), se, se, se); m.addInsertion(rowPrefix + i, cf, sc); } } m.execute(); return new TestCleanupDescriptor(cf, rowCount, rowPrefix, scCount, scPrefix); }
@Override public <SN, N, V> HSuperColumn<SN, N, V> createSuperColumn(SN name, List<HColumn<N, V>> columns, Serializer<SN> superNameSerializer, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { return HFactory.createSuperColumn(name, columns, createClock(), superNameSerializer, nameSerializer, valueSerializer); }
@Override public <SN, N, V> HSuperColumn<SN, N, V> createSuperColumn(SN name, List<HColumn<N, V>> columns, Serializer<SN> superNameSerializer, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { return HFactory.createSuperColumn(name, columns, createClock(), superNameSerializer, nameSerializer, valueSerializer); }
/** * Persist attributes for multiple messages * * @param mailbox * @param messageIds * @param attributes * @throws HectorException */ private static void persistAttributes(Mutator<String> mutator, final String mailbox, final List<UUID> messageIds, final Map<String, Object> attributes) throws HectorException { List<HColumn<String, byte[]>> columns = Marshaller.mapToHColumns(attributes); for (UUID messageId : messageIds) { logger.debug("Persisting metadata for message {} in mailbox {}", messageId.toString(), mailbox); mutator.addInsertion(mailbox, CF_METADATA, createSuperColumn(messageId, columns, uuidSe, strSe, byteSe)); } }
/** * Persist {@link Message} object with given ID * * @param mailbox * @param messageId * @param message * @throws IOException */ public static void persistMessage(Mutator<String> mutator, final String mailbox, final UUID messageId, final Message message) throws IOException { logger.debug("Persisting metadata for message {} in mailbox {}", messageId, mailbox); mutator.addInsertion(mailbox, CF_METADATA, createSuperColumn( messageId, Marshaller.marshall(message), uuidSe, strSe, byteSe)); }
/** * Delete attributes from multiple messages * * @param mutator * @param mailbox * @param messageIds * @param attributes */ public static void deleteAttributes(Mutator<String> mutator, final String mailbox, final List<UUID> messageIds, final Set<String> attributes) { List<HColumn<String, byte[]>> columns = new ArrayList<HColumn<String, byte[]>>(attributes.size()); for (String name : attributes) { // FIXME: value should be null not "". // see https://github.com/rantav/hector/issues/#issue/145 columns.add(createColumn(name, "".getBytes(), strSe, byteSe)); } for (UUID messageId : messageIds) { mutator.addSubDelete(mailbox, CF_METADATA, createSuperColumn(messageId, columns, uuidSe, strSe, byteSe)); } }
for (int j = 1; j <= 3; ++j) { @SuppressWarnings("unchecked") HSuperColumn<String, String, String> sc = createSuperColumn( "testSuperSliceQuery" + j, Arrays.asList(createColumn("name", "value", se, se)), se, se, se);
public static<K> HSuperColumn<String,ByteBuffer,ByteBuffer> createSuperColumn(String superColumnName, ByteBuffer columnName, ByteBuffer columnValue, String ttlAttr) { return HFactory.createSuperColumn(superColumnName, Arrays.asList(createColumn(columnName, columnValue, ttlAttr)), StringSerializer.get(), ByteBufferSerializer.get(), ByteBufferSerializer.get()); }
public static<K> HSuperColumn<String,Integer,ByteBuffer> createSuperColumn(String superColumnName, Integer columnName, ByteBuffer columnValue, String ttlAttr) { return HFactory.createSuperColumn(superColumnName, Arrays.asList(createColumn(columnName, columnValue, ttlAttr)), StringSerializer.get(), IntegerSerializer.get(), ByteBufferSerializer.get()); }
public static<K> HSuperColumn<String,String,ByteBuffer> createSuperColumn(String superColumnName, String columnName, ByteBuffer columnValue, String ttlAttr) { return HFactory.createSuperColumn(superColumnName, Arrays.asList(createColumn(columnName, columnValue, ttlAttr)), StringSerializer.get(), StringSerializer.get(), ByteBufferSerializer.get()); }