[ https://issues.apache.org/jira/browse/CASSANDRA-6102?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13793265#comment-13793265 ]
Mikhail Stepura commented on CASSANDRA-6102: -------------------------------------------- It looks like https://github.com/apache/cassandra/commit/bc8e2475fa71f4bbbf95d4294d78b96a1aa1211c broke the trunk {noformat} [javac] C:\Users\mishail\workspace\cassandra\src\java\org\apache\cassandra\hadoop\pig\AbstractCassandraStorage.java:135: error: variable validators is already defined in method columnToTuple(IColumn,AbstractCassandraStorage.CfInfo,AbstractType) [javac] Map<ByteBuffer,AbstractType> validators = getValidatorMap(cfDef); [javac] ^ [javac] C:\Users\mishail\workspace\cassandra\src\java\org\apache\cassandra\hadoop\pig\AbstractCassandraStorage.java:157: error: cannot find symbol [javac] for (IColumn subcol : col.getSubColumns()) [javac] ^ [javac] symbol: class IColumn [javac] location: class AbstractCassandraStorage {noformat} > CassandraStorage broken for bigints and ints > -------------------------------------------- > > Key: CASSANDRA-6102 > URL: https://issues.apache.org/jira/browse/CASSANDRA-6102 > Project: Cassandra > Issue Type: Bug > Components: Hadoop > Environment: Cassandra 1.2.9 & 1.2.10, Pig 0.11.1, OSX 10.8.x > Reporter: Janne Jalkanen > Assignee: Alex Liu > Fix For: 1.2.11 > > Attachments: 6102-1.2-branch.txt, 6102-2.0-branch.txt, 6102-v2.txt, > 6102-v3.txt, 6102-v4.txt, 6102-v5.txt > > > I am seeing something rather strange in the way Cass 1.2 + Pig seem to handle > integer values. > Setup: Cassandra 1.2.10, OSX 10.8, JDK 1.7u40, Pig 0.11.1. Single node for > testing this. > First a table: > {noformat} > > CREATE TABLE testc ( > key text PRIMARY KEY, > ivalue int, > svalue text, > value bigint > ) WITH COMPACT STORAGE; > > insert into testc (key,ivalue,svalue,value) values ('foo',10,'bar',65); > > select * from testc; > key | ivalue | svalue | value > -----+--------+--------+------- > foo | 10 | bar | 65 > {noformat} > For my Pig setup, I then use libraries from different C* versions to actually > talk to my database (which stays on 1.2.10 all the time). > Cassandra 1.0.12 (using cassandra_storage.jar): > {noformat} > testc = LOAD 'cassandra://keyspace/testc' USING CassandraStorage(); > dump testc > (foo,(svalue,bar),(ivalue,10),(value,65),{}) > {noformat} > Cassandra 1.1.10: > {noformat} > testc = LOAD 'cassandra://keyspace/testc' USING CassandraStorage(); > dump testc > (foo,(svalue,bar),(ivalue,10),(value,65),{}) > {noformat} > Cassandra 1.2.10: > {noformat} > (testc = LOAD 'cassandra://keyspace/testc' USING CassandraStorage(); > dump testc > foo,{(ivalue, > ),(svalue,bar),(value,A)}) > {noformat} > To me it appears that ints and bigints are interpreted as ascii values in > cass 1.2.10. Did something change for CassandraStorage, is there a > regression, or am I doing something wrong? Quick perusal of the JIRA didn't > reveal anything that I could directly pin on this. > Note that using compact storage does not seem to affect the issue, though it > obviously changes the resulting pig format. > In addition, trying to use Pygmalion > {noformat} > tf = foreach testc generate key, > flatten(FromCassandraBag('ivalue,svalue,value',columns)) as > (ivalue:int,svalue:chararray,lvalue:long); > dump tf > (foo, > ,bar,A) > {noformat} > So no help there. Explicitly casting the values to (long) or (int) just > results in a ClassCastException. -- This message was sent by Atlassian JIRA (v6.1#6144)