You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Markus Wiesenbacher (JIRA)" <ji...@apache.org> on 2011/05/31 23:15:08 UTC
[jira] [Created] (CASSANDRA-2726) Cannot add a super column with
Thrift
Cannot add a super column with Thrift
-------------------------------------
Key: CASSANDRA-2726
URL: https://issues.apache.org/jira/browse/CASSANDRA-2726
Project: Cassandra
Issue Type: Bug
Components: API
Affects Versions: 0.7.6
Reporter: Markus Wiesenbacher
Hi,
I have an existing SuperColumnFamily with a existing Super Column (named "SUB1"). Now I want to add another Super Column "SUB2" to my also existing key, but it doesn´t work without throwing an exception.
I am using this method
client.set_keyspace(keyspace);
ColumnParent cp = new ColumnParent(column_family);
cp.setSuper_column(ByteBuffer.wrap(superRowKey.getBytes(Helper.encoding)));
ByteBuffer column_value = ByteBuffer.allocate(0);
if (colValue != null)
column_value = ByteBuffer.wrap(colValue.getBytes(Helper.encoding));
client.insert(
ByteBuffer.wrap(rowKey.getBytes(Helper.encoding)),
cp,
new Column(ByteBuffer.wrap(colName.getBytes(Helper.encoding)), column_value, System.currentTimeMillis()),
ConsistencyLevel.ONE);
and also tried this
client.set_keyspace(keyspace);
List<Column> columns = new ArrayList<Column>();
columns.add(new Column(ByteBuffer.wrap(colName.getBytes(Helper.encoding)), ByteBuffer.wrap(colValue.getBytes(Helper.encoding)), System.currentTimeMillis()));
SuperColumn superColumn = new SuperColumn(ByteBuffer.wrap(rowKey.getBytes("UTF-8")), columns);
ColumnOrSuperColumn columnOrSuperColumn = new ColumnOrSuperColumn();
columnOrSuperColumn.setSuper_column(superColumn);
Mutation mutation = new Mutation();
mutation.setColumn_or_supercolumn(columnOrSuperColumn);
Map<ByteBuffer, Map<String, List<Mutation>>> muts = new HashMap<ByteBuffer, Map<String,List<Mutation>>>();
Map<String, List<Mutation>> mut = new HashMap<String, List<Mutation>>();
List<Mutation> mu = new ArrayList<Mutation>();
mu.add(mutation);
mut.put(column_family, mu);
muts.put(ByteBuffer.wrap(key_SuperColumn.getBytes(Helper.encoding)), mut);
client.batch_mutate(muts, ConsistencyLevel.ONE);
The methods are called this way:
insert("Keyspace", "SuperCF", "ROW1", "SUB1", "COL1", "VAL1");
insert("Keyspace", "SuperCF", "ROW1", "SUB2", "COL1", "VAL1");
Both don´t work and I assume it´s a bug. No exception is thrown, the new super column just don´t appear.
Best regards
Markus
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (CASSANDRA-2726) Cannot add a super column with
Thrift
Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CASSANDRA-2726?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Ellis resolved CASSANDRA-2726.
---------------------------------------
Resolution: Invalid
You should be using Hector, not raw Thrift. If you must use raw Thrift, look at the cli source (CliClient.java) for examples, including supercolumn insertion.
> Cannot add a super column with Thrift
> -------------------------------------
>
> Key: CASSANDRA-2726
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2726
> Project: Cassandra
> Issue Type: Bug
> Components: API
> Affects Versions: 0.7.6
> Reporter: Markus Wiesenbacher
>
> Hi,
> I have an existing SuperColumnFamily with a existing Super Column (named "SUB1"). Now I want to add another Super Column "SUB2" to my also existing key, but it doesn´t work without throwing an exception.
> I am using this method
>
> client.set_keyspace(keyspace);
> ColumnParent cp = new ColumnParent(column_family);
> cp.setSuper_column(ByteBuffer.wrap(superRowKey.getBytes(Helper.encoding)));
>
> ByteBuffer column_value = ByteBuffer.allocate(0);
> if (colValue != null)
> column_value = ByteBuffer.wrap(colValue.getBytes(Helper.encoding));
> client.insert(
> ByteBuffer.wrap(rowKey.getBytes(Helper.encoding)),
> cp,
> new Column(ByteBuffer.wrap(colName.getBytes(Helper.encoding)), column_value, System.currentTimeMillis()),
> ConsistencyLevel.ONE);
> and also tried this
> client.set_keyspace(keyspace);
> List<Column> columns = new ArrayList<Column>();
> columns.add(new Column(ByteBuffer.wrap(colName.getBytes(Helper.encoding)), ByteBuffer.wrap(colValue.getBytes(Helper.encoding)), System.currentTimeMillis()));
> SuperColumn superColumn = new SuperColumn(ByteBuffer.wrap(rowKey.getBytes("UTF-8")), columns);
> ColumnOrSuperColumn columnOrSuperColumn = new ColumnOrSuperColumn();
> columnOrSuperColumn.setSuper_column(superColumn);
> Mutation mutation = new Mutation();
> mutation.setColumn_or_supercolumn(columnOrSuperColumn);
>
> Map<ByteBuffer, Map<String, List<Mutation>>> muts = new HashMap<ByteBuffer, Map<String,List<Mutation>>>();
> Map<String, List<Mutation>> mut = new HashMap<String, List<Mutation>>();
> List<Mutation> mu = new ArrayList<Mutation>();
> mu.add(mutation);
> mut.put(column_family, mu);
> muts.put(ByteBuffer.wrap(key_SuperColumn.getBytes(Helper.encoding)), mut);
>
> client.batch_mutate(muts, ConsistencyLevel.ONE);
> The methods are called this way:
> insert("Keyspace", "SuperCF", "ROW1", "SUB1", "COL1", "VAL1");
> insert("Keyspace", "SuperCF", "ROW1", "SUB2", "COL1", "VAL1");
> Both don´t work and I assume it´s a bug. No exception is thrown, the new super column just don´t appear.
> Best regards
> Markus
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira