Ok, Now I've changed to:
ColumnPath new_col; new_col.__isset.super_column = true; new_col.__isset.column = true; /* this is required! */ new_col.column_family.assign("Anonimos"); new_col.super_column.assign("Tag"); new_col.column.assign("300"); client.insert("SocialAds", "1", new_col, "200", 12345678, ONE); I'm not getting any error but no entry on the log either, and the value is not being inserted... Thanks 2010/3/15 Jonathan Ellis <jbel...@gmail.com> > Ah, thrift is letting you set something to be null, that shouldn't be > legal. This is fixed in 0.6 svn, btw. > > it looks like you are setting new_col.__isset.column to true, but not > actually assigning it a value. > > On Mon, Mar 15, 2010 at 3:14 PM, Juan Manuel Garcia del Moral > <j...@southcode.com.ar> wrote: > > This is what the log says: > > > > ERROR [pool-1-thread-8] 2010-03-15 15:54:06,753 Cassandra.java (line > 1482) > > Internal error processing insert > > java.lang.AssertionError: QueryPath(columnFamilyName='Anonimos', > > superColumnName='[...@d0357a', columnName='null') > > at > > org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:165) > > at > > org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:159) > > at org.apache.cassandra.db.RowMutation.add(RowMutation.java:159) > > at > > > org.apache.cassandra.thrift.CassandraServer.insert(CassandraServer.java:351) > > at > > > org.apache.cassandra.thrift.Cassandra$Processor$insert.process(Cassandra.java:1474) > > at > > > org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:1115) > > at > > > org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:253) > > at > > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > > at > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > > at java.lang.Thread.run(Thread.java:619) > > > > > > I need to do replicate this: > > set SocialAds.Anonimos['122']['Tag']['150'] = '100'; > > > > from my code... > > > > any ideas? > > > > thanks in advance > > > > Juan > > > > > > 2010/3/15 Jonathan Ellis <jbel...@gmail.com> > >> > >> check the server log for exception. and if you are not on 0.5.1 or > >> 0.6 svn branch, upgrade. > >> > >> On Mon, Mar 15, 2010 at 12:47 PM, Juan Manuel Garcia del Moral > >> <j...@southcode.com.ar> wrote: > >> > Many thanks! > >> > > >> > That seems to be useful, > >> > > >> > But now I'm getting > >> > The error message: "Internal error processing insert" > >> > > >> > I'm not sure if I'm setting the timestamp properly > >> > > >> > > >> > > >> > 2010/3/15 Padraig O'Sullivan <osullivan.padr...@gmail.com> > >> >> > >> >> You need to manually set the __isset fields when using the thift API > >> >> in C++. Since you are trying to insert a super column, you need to > set > >> >> the super_column __isset field. > >> >> > >> >> So this: > >> >> > >> >> new_col.__isset.column = true; > >> >> > >> >> should become: > >> >> > >> >> new_col.__isset.super_column = true; > >> >> > >> >> -Padraig > >> >> > >> >> On Mon, Mar 15, 2010 at 12:36 PM, Juan Manuel Garcia del Moral > >> >> <j...@southcode.com.ar> wrote: > >> >> > Hello > >> >> > > >> >> > I'm trying to add values using supercolumns but I get this error > >> >> > > >> >> > ERROR: supercolumn parameter is not optional for super CF Anonimos > >> >> > > >> >> > This is my code > >> >> > > >> >> > // ********** > >> >> > ColumnPath new_col; > >> >> > new_col.__isset.column = true; /* this is required! */ > >> >> > new_col.column_family.assign("Anonimos"); > >> >> > new_col.super_column.assign("Tag"); > >> >> > > >> >> > client.insert("SocialAds", > >> >> > "1", > >> >> > new_col, > >> >> > "200", > >> >> > 123456789, > >> >> > ONE); > >> >> > > >> >> > // ********** > >> >> > > >> >> > What I'm doing wrong? > >> >> > > >> >> > Thanks > >> >> > > >> >> > Juan > >> >> > > >> >> > > >> > > >> > > >> > > >> > > > > > > > -- Juan Manuel GarcĂa del Moral Southcode Global IT Resources j...@southcode.com.ar http://www.southcode.com.ar