public <SN,N,V> Mutator<K> addSubDelete(K key, String cf, HSuperColumn<SN,N,V> sc, long clock) { Deletion d = new Deletion().setTimestamp(clock); if ( sc.getColumns() != null ) { SlicePredicate pred = new SlicePredicate(); for (HColumn<N, V> col : sc.getColumns()) { pred.addToColumn_names(col.getNameSerializer().toByteBuffer(col.getName())); } d.setPredicate(pred); } d.setSuper_column(sc.getNameByteBuffer()); getPendingMutations().addDeletion(key, Arrays.asList(cf), d); return this; }
@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()); }
@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 testQuerySingleSubColumnExtractSuper() { 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"); sTemplate.update(sUpdater); SuperCfResult<String, String, String> result = sTemplate.querySuperColumns("skey3"); HSuperColumn<String, String, ByteBuffer> superColumn = result.getSuperColumn("super1"); assertNotNull(superColumn); assertEquals("super1",superColumn.getName()); assertEquals(2,superColumn.getColumns().size()); }
Iterator<HColumn<String, String>> it = sc.getColumns().iterator(); while(it.hasNext()){ it.next(); it.remove(); assertEquals("The list of columns should be mutable", 0, sc.getColumns().size());
.getColumns().get(0).getValue());
.getColumns().get(0).getValue()); assertNull(slice.getColumnByName("testSuperMultigetSliceQuery3"));
public <SN,N,V> Mutator<K> addSubDelete(K key, String cf, HSuperColumn<SN,N,V> sc, long clock) { Deletion d = new Deletion().setTimestamp(clock); if ( sc.getColumns() != null ) { SlicePredicate pred = new SlicePredicate(); for (HColumn<N, V> col : sc.getColumns()) { pred.addToColumn_names(col.getNameSerializer().toByteBuffer(col.getName())); } d.setPredicate(pred); } d.setSuper_column(sc.getNameByteBuffer()); getPendingMutations().addDeletion(key, Arrays.asList(cf), d); return this; }
public <SN,N,V> Mutator<K> addSubDelete(K key, String cf, HSuperColumn<SN,N,V> sc, long clock) { Deletion d = new Deletion().setTimestamp(clock); if ( sc.getColumns() != null ) { SlicePredicate pred = new SlicePredicate(); for (HColumn<N, V> col : sc.getColumns()) { pred.addToColumn_names(col.getNameSerializer().toByteBuffer(col.getName())); } d.setPredicate(pred); } d.setSuper_column(sc.getNameByteBuffer()); getPendingMutations().addDeletion(key, Arrays.asList(cf), d); return this; }
public <SN, N, V> Mutator<K> addSubDelete(K key, String cf, HSuperColumn<SN, N, V> sc, long clock) { Deletion d = new Deletion().setTimestamp(clock); if (sc.getColumns() != null) { SlicePredicate pred = new SlicePredicate(); for (HColumn<N, V> col : sc.getColumns()) { pred.addToColumn_names(col.getNameSerializer().toByteBuffer( col.getName())); } d.setPredicate(pred); } d.setSuper_column(sc.getNameByteBuffer()); getPendingMutations().addDeletion(key, Arrays.asList(cf), d); return this; }
List<Object> array = new ArrayList<Object>(); for (HColumn<ByteBuffer, ByteBuffer> hColumn : this.hSuperColumn.getColumns()) { Object memberValue = fromByteBuffer(fieldSchema.getElementType(), hColumn.getValue()); Map<CharSequence, Object> map = new HashMap<CharSequence, Object>(); for (HColumn<ByteBuffer, ByteBuffer> hColumn : this.hSuperColumn.getColumns()) { CharSequence mapKey = CharSequenceSerializer.get().fromByteBuffer(hColumn.getName()); if (mapKey.toString().indexOf(CassandraStore.UNION_COL_SUFIX) < 0) { + CassandraStore.UNION_COL_SUFIX, this.hSuperColumn.getColumns()); Integer unionIndex = getUnionIndex(mapKey.toString(), cc); Schema realSchema = fieldSchema.getValueType().getTypes().get(unionIndex); PersistentBase record = (PersistentBase) value; for (HColumn<ByteBuffer, ByteBuffer> hColumn : this.hSuperColumn.getColumns()) { String memberName = StringSerializer.get().fromByteBuffer(hColumn.getName()); if (memberName.indexOf(CassandraStore.UNION_COL_SUFIX) < 0) { + CassandraStore.UNION_COL_SUFIX, this.hSuperColumn.getColumns().toArray()); Integer unionIndex = getUnionIndex(memberField.name(),hc); cassandraColumn.setUnionType(unionIndex); for (HColumn<ByteBuffer, ByteBuffer> hColumn : this.hSuperColumn.getColumns()) { memberValue = fromByteBuffer(fieldSchema, hColumn.getValue());
&& !slice.getColumnByName(messageId).getColumns().isEmpty()) slice.getColumnByName(messageId).getColumns(), includeBody)); } else { logger.debug(
/** * Get messages within given range (excludes body) * * @param mailbox * @param start * @param count * @return */ public static Map<UUID, Message> getRange(final String mailbox, final UUID start, final int count) { // read message ids from the result Map<UUID, Message> result = new LinkedHashMap<UUID, Message>(); // Create a query SuperSliceQuery<String, UUID, String, byte[]> q = createSuperSliceQuery(CassandraDAOFactory.getKeyspace(), strSe, uuidSe, strSe, byteSe); // set keys, cf, range q.setColumnFamily(CF_METADATA); q.setKey(mailbox); q.setRange(start, null, true, count); // execute QueryResult<SuperSlice<UUID, String, byte[]>> r = q.execute(); List<HSuperColumn<UUID, String, byte[]>> superColumns = r.get().getSuperColumns(); for (HSuperColumn<UUID, String, byte[]> superColumn : superColumns) { result.put(superColumn.getName(), Marshaller.unmarshall(superColumn.getColumns(), false)); } return result; }
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); } }