Details
Description
CassandraStorage improperly assumes all DataBags are DefaultDataBags. As a result, natural Pig code can't be used with CassandraStorage. For example:
B = FOREACH A GENERATE $0, TOBAG(TOTUPLE($1, $2));
STORE B into 'cassandra://MyKeySpace/MyColumnFamily' using CassandraStorage();
fails with a complaint that a NonSpillableDataBag can't be converted into a DefaultDataBag.
Since the CassandraStorage code only calls methods from DataBag, there is no need for this artifical restriction. After applying the attached patch, the above code works fine, making CassandraStorage much easier to use.
This is my first submission to Cassandra, so I apologize for any incorrect process. Please let me know what I should do differently. In particular, I am a little unclear where I should put the test. I am thinking I should put it in ThriftColumnFamilyTest.java. Is this correct or should it be somewhere else? I'll create a test as soon as I understand.