[ 
https://issues.apache.org/jira/browse/CASSANDRA-6513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14066727#comment-14066727
 ] 

Ala' Alkhaldi commented on CASSANDRA-6513:
------------------------------------------

That was my intention in beginning. Unfortunately, just removing the quote() 
function will cause problems. 

Please note the current implementation of 
CqlPagingRecordReader.RowIterator.composeQuery(), it always inserts the 
partitioning key at the beginning of any select statement without quoting, and 
always adds extra conditions to the where clause without quoting. This means if 
the partitioning key needs to be quoted the query will fail.

To rely on the user for quoting I suggest v3 which quote all our additions and 
leave the rest to user decision.

> CqlPaging for hadoop fails when writetime(column_name) is set as one of the 
> input columns
> -----------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-6513
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6513
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Hadoop
>         Environment: ubuntu 12.04, hadoop 1.0.3, cassandra-1.2.13
>            Reporter: Sheetal Gosrani
>            Assignee: Ala' Alkhaldi
>              Labels: CqlPaging, Hadoop
>             Fix For: 2.0.10
>
>         Attachments: 6513-v2.txt, 6513-v3.txt, 6513_v1.txt
>
>
> InvalidRequestException thrown when running a hadoop job with CqlPaging with 
> writetime(column_name) set as one of the input columns.
> java.lang.RuntimeException
>         at 
> org.apache.cassandra.hadoop.cql3.CqlPagingRecordReader$RowIterator.executeQuery(CqlPagingRecordReader.java:665)
>         at 
> org.apache.cassandra.hadoop.cql3.CqlPagingRecordReader$RowIterator.<init>(CqlPagingRecordReader.java:301)
>         at 
> org.apache.cassandra.hadoop.cql3.CqlPagingRecordReader.initialize(CqlPagingRecordReader.java:167)
>         at 
> org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.initialize(MapTask.java:522)
>         at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:763)
>         at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
>         at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at javax.security.auth.Subject.doAs(Subject.java:415)
>         at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
>         at org.apache.hadoop.mapred.Child.main(Child.java:249)
> Caused by: InvalidRequestException(why:Undefined name WRITETIME(foo) in 
> selection clause)
>         at 
> org.apache.cassandra.thrift.Cassandra$prepare_cql3_query_result.read(Cassandra.java:40395)
>         at 
> org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
>         at 
> org.apache.cassandra.thrift.Cassandra$Client.recv_prepare_cql3_query(Cassandra.java:1660)
>         at 
> org.apache.cassandra.thrift.Cassandra$Client.prepare_cql3_query(Cassandra.java:1646)
>         at 
> org.apache.cassandra.hadoop.cql3.CqlPagingRecordReader$RowIterator.prepareQuery(CqlPagingRecordReader.java:605)
>         at 
> org.apache.cassandra.hadoop.cql3.CqlPagingRecordReader$RowIterator.executeQuery(CqlPagingRecordReader.java:635)
>         ... 10 more
> The hadoop config lines look as such:
> //read input from cassandra column family using CQL Input Format
>         job.setInputFormatClass(CqlPagingInputFormat.class);
>         ConfigHelper.setInputColumnFamily(job.getConfiguration(), KEYSPACE, 
> INPUT_COLUMN_FAMILY);
>         ConfigHelper.setInputRpcPort(job.getConfiguration(), "9160");
>         ConfigHelper.setInputInitialAddress(job.getConfiguration(), HOST);
>         ConfigHelper.setInputPartitioner(job.getConfiguration(), 
> "RandomPartitioner");
>         CqlConfigHelper.setInputColumns(job.getConfiguration(), 
> "foo,WRITETIME(foo)");
>         job.getConfiguration().set("cassandra.consistencylevel.read", 
> READ_CONSISTENCY);
>         CqlConfigHelper.setInputCQLPageRowSize(job.getConfiguration(), 
> "3000");



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to