The Clock was dropped in beta2, timestamps are back to Int64. Ahh, my mistake! Thanks for the correction Aaron.
Chris. On Mon, Oct 4, 2010 at 12:29 AM, Aaron Morton <aa...@thelastpickle.com>wrote: > The Clock was dropped in beta2, timestamps are back to Int64. > > As Chris says something is not getting what it expected. I'd double check > you are using the latest generated interface, and check the exception stack > to see if it's when the client is sending or receiving the message . > > If you turn logging up to DEBUG on the server you can see if your request > makes it that far. > > Aaron > > > On 04 Oct, 2010,at 05:17 PM, chris h <chris...@gmail.com> wrote: > > > "Bad type in structure" means that some property/parameter is of an invalid > type. e.g. a string instead of an object, an object of the wrong class, etc. > > One thing that jumps out at me is this line... > > $col->timestamp=time(); > > I believe that all timestamps must now be defined by an instance of the > cassandra_Clock > class instead of just a raw timestamp. > > Try this.. > > $clock = new cassandra_Clock(); > $clock->timestamp = time(); > $col->timestamp=$clock; > > > I just got done making a little PHP high level client for Cassandra .7; a > big help to me was to open up the various files under the > $GLOBALS['THRIFT_ROOT'].'/packages/cassandra/ > directory. These files contain all the cassanda_* classes, so you can see > explicitly how they work, and what they need to work. Also the cassandra > wiki on the API07 is a great tool. > http://wiki.apache.org/cassandra/API07 > http://wiki.apache.org/cassandra/API > > > Any problems you run into I've probably just ran into myself! :-) > > > Chris. > > > On Mon, Oct 4, 2010 at 12:02 AM, Kevin Withnall <ke...@ilb.com.au> wrote: > >> I've just installed the latest version of cassandra (0.7.0 beta 2) and >> re-made the relevant thrift libraries. >> >> There doesn't seem to be many php examples around so i'm struggling to >> get something basic to work. I had it working under 0.6.0 but had >> other issues hence the upgrade. >> >> I've tried to execute 'get' as well as get_slice but theres something >> im missing i think. the cassandra cli will show the data thats >> inserted as the first part of this but I can't read it back. >> >> [defa...@keyspace1] get Standard1['1'] >> => (column=656d61696c, value=...@bar.com, timestamp=1286162622) >> Returned 1 results. >> >> The error I get from php is >> exception 'TProtocolException' with message 'Bad type in structure.' >> >> Any ideas would be really appreciated. >> >> --- cut here --- >> $GLOBALS['THRIFT_ROOT'] = '/var/www/cassandra'; >> require_once >> $GLOBALS['THRIFT_ROOT'].'/packages/cassandra/Cassandra.php'; >> require_once >> $GLOBALS['THRIFT_ROOT'].'/packages/cassandra/cassandra_types.php'; >> require_once $GLOBALS['THRIFT_ROOT'].'/transport/TSocket.php'; >> require_once $GLOBALS['THRIFT_ROOT'].'/protocol/TBinaryProtocol.php'; >> require_once >> $GLOBALS['THRIFT_ROOT'].'/transport/TFramedTransport.php'; >> require_once >> $GLOBALS['THRIFT_ROOT'].'/transport/TBufferedTransport.php'; >> >> // Make a connection to the Thrift interface to Cassandra >> $socket = new TSocket("127.0.0.1", 9160); >> $socket->setSendTimeout("10000"); >> $socket->setRecvTimeout("10000"); >> $transport = new TFramedTransport($socket, 10240, 10240); >> $protocol = new TBinaryProtocolAccelerated($transport); >> $client = new CassandraClient($protocol); >> $transport->open(); >> $client->set_keyspace("Keyspace1"); >> >> >> $col = new cassandra_Column(); >> $col->name="email"; >> $col->timestamp=time(); >> $col->value="f...@bar.com"; >> >> $columnParent = new cassandra_ColumnParent(); >> $columnParent->column_family = "Standard1"; >> $columnParent->super_column = NULL; >> >> $consistency_level = cassandra_ConsistencyLevel::ZERO; >> $key=1; >> $retval=$client->insert($key, $columnParent, $col, >> $consistency_level); >> >> >> $sliceRange = new cassandra_SliceRange(); >> $sliceRange->start = ''; >> $sliceRange->finish = ''; >> $predicate = new cassandra_SlicePredicate(); >> $predicate->slice_range = $sliceRange; >> $consistency_level = cassandra_ConsistencyLevel::ONE; >> $result = $client->get_slice("Keyspace1", $key, $columnParent, >> $predicate, $consistency_level); >> --- cut here --- >> > >