Oops, I made one typo there. It should be: "my_long = my_long >> 8;"
That is, shift by a byte, not a bit. - Tyler On Tue, Jan 4, 2011 at 10:50 PM, Tyler Hobbs <ty...@riptano.com> wrote: > Here's an example: > > int64_t my_long = 12345678; > char chars[8]; > for(int i = 0; i < 8; ++i) { > chars[i] = my_long & 0xff; > my_long = my_long >> 1; > } > > std::string str_long(chars, 8); > > Column c1; > c1.name = str_long; > // etc ... > > Basically, Thrift expects a string which is a big-endian binary > representation of a long. When you create the std::string, you have to > specify the length of the char[] so that it doesn't terminate the string on > a 0x00 byte. > > The approach is similar for integers and UUIDs. > - Tyler > > > On Tue, Jan 4, 2011 at 4:32 PM, Jaydeep Chovatia < > jaydeep.chova...@openwave.com> wrote: > >> Hi, >> >> >> >> I have configured Cassandra Column Family (standard CF) of LongType. If I >> try to insert data (using batch_mutate) in this Column Family then it >> shows me following error: “*A long is exactly 8 bytes”. *I have tried >> assigning column name of 8 bytes, 7 bytes, etc. but it shows same error. >> >> >> >> Please find my sample program details: >> >> *Platform*: Linux >> >> *Language*: C++, Cassandra Thrift interface >> >> >> >> Column c1; >> >> c1.name = "12345678"; >> >> c1.value = SString(len).AsPtr(); >> >> c1.timestamp = curTime; >> >> columns.push_back(c1); >> >> >> >> Any help on this would be appreciated. >> >> >> >> Thank you, >> >> Jaydeep >> > >