On Tue, Mar 31, 2015 at 7:42 AM, Peer, Oded <oded.p...@rsa.com> wrote:
> Thanks Sylvain. > > Is there any way to create a composite key with only one column in > Cassandra when creating a table, or should creating a CompositeType > instance with a single column be prohibited? > It's hard to answer without knowing what you are trying to achieve. Provided I don't misunderstand what you are asking, then yes, it's technically possible, but it's hard to say how wise that is unless I know more about your constraints/the reasons you're considering that. Let's say that in general, if you have only a single column, then there isn't too much reasons to use a CompositeType. -- Sylvain > > > > *From:* Sylvain Lebresne [mailto:sylv...@datastax.com] > *Sent:* Monday, March 30, 2015 1:57 PM > *To:* user@cassandra.apache.org > *Subject:* Re: sstable writer and creating bytebuffers > > > > No, it's not a bug. In a composite every elements start by a 2 short > indicating the size of the element, plus an extra byte that is used for > sorting purposes. A little bit more details can be found in the > CompositeType class javadoc if you're interested. It's not the most compact > format there is but changing it would break backward compatibility anyway. > > > > On Mon, Mar 30, 2015 at 12:38 PM, Peer, Oded <oded.p...@rsa.com> wrote: > > I am writing code to bulk load data into Cassandra using > SSTableSimpleUnsortedWriter > > I changed my partition key from a composite key (long, int) to a single > column key (long). > > For creating the composite key I used a CompositeType, and I kept using it > after changing the key to a single column. > > My code didn’t work until I changed the way I create the ByteBuffer not to > use CompositeType. > > > > The following code prints ‘false’. > > Do you consider this a bug? > > > > *long* val = 123L; > > ByteBuffer direct = *bytes*( val ); > > ByteBuffer composite = CompositeType.*getInstance*( > LongType.*instance* ).builder().add( *bytes*( val ) ).build(); > > System.*out*.println( direct.equals( composite ) ); > > > > >