cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "basanth gowda (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CASSANDRA-4532) NPE when trying to select a slice from a composite table
Date Wed, 29 Aug 2012 14:23:09 GMT

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

basanth gowda edited comment on CASSANDRA-4532 at 8/30/12 1:21 AM:
-------------------------------------------------------------------

No luck. See the last query closed the socket. I took the latest from git and compiled

Here are the steps to reproduce :

cqlsh:testkeyspace1> create table compositetest(status ascii,ctime bigint,key ascii,nil
ascii,PRIMARY KEY(status,ctime,key));

cqlsh:testkeyspace1> insert into compositetest(status,ctime,key,nil) VALUES ('C',12345678,'key1','');
cqlsh:testkeyspace1> insert into compositetest(status,ctime,key,nil) VALUES ('C',12345678,'key2','');
cqlsh:testkeyspace1> insert into compositetest(status,ctime,key,nil) VALUES ('C',12345679,'key3','');
cqlsh:testkeyspace1> insert into compositetest(status,ctime,key,nil) VALUES ('C',12345679,'key4','');
cqlsh:testkeyspace1> insert into compositetest(status,ctime,key,nil) VALUES ('C',12345679,'key5','');
cqlsh:testkeyspace1> insert into compositetest(status,ctime,key,nil) VALUES ('C',12345680,'key6','');
cqlsh:testkeyspace1> select * from compositetest;
 status | ctime    | key  | nil
--------+----------+------+-----
      C | 12345678 | key1 |    
      C | 12345678 | key2 |    
      C | 12345679 | key3 |    
      C | 12345679 | key4 |    
      C | 12345679 | key5 |    
      C | 12345680 | key6 |    

1st query of slice :

cqlsh:testkeyspace1> select * from compositetest where ctime<=12345680 limit 3;
 status | ctime    | key  | nil
--------+----------+------+------
      C | 12345678 | key1 |     
      C | 12345678 | key2 |     
      C | 12345679 | key3 | null

Second Query : I want to get values where first one left off (Yes you could do this with hector)
[Try 1]

cqlsh:testkeyspace1> select * from compositetest where ctime>=12345679 and key='key3'
and ctime<=12345680 limit 3;
Bad Request: PRIMARY KEY part key cannot be restricted (preceding part ctime is either not
restricted or by a non-EQ relation) [Try 2]
cqlsh:testkeyspace1> select * from compositetest where ctime=12345679 and key='key3' and
ctime<=12345680 limit 3;
TSocket read 0 bytes
cqlsh:testkeyspace1>
                
      was (Author: basu76):
    No luck. See the last query closed the socket.

Here are the steps to reproduce :

cqlsh:testkeyspace1> create table compositetest(status ascii,ctime bigint,key ascii,nil
ascii,PRIMARY KEY(status,ctime,key));

cqlsh:testkeyspace1> insert into compositetest(status,ctime,key,nil) VALUES ('C',12345678,'key1','');
cqlsh:testkeyspace1> insert into compositetest(status,ctime,key,nil) VALUES ('C',12345678,'key2','');
cqlsh:testkeyspace1> insert into compositetest(status,ctime,key,nil) VALUES ('C',12345679,'key3','');
cqlsh:testkeyspace1> insert into compositetest(status,ctime,key,nil) VALUES ('C',12345679,'key4','');
cqlsh:testkeyspace1> insert into compositetest(status,ctime,key,nil) VALUES ('C',12345679,'key5','');
cqlsh:testkeyspace1> insert into compositetest(status,ctime,key,nil) VALUES ('C',12345680,'key6','');
cqlsh:testkeyspace1> select * from compositetest;
 status | ctime    | key  | nil
--------+----------+------+-----
      C | 12345678 | key1 |    
      C | 12345678 | key2 |    
      C | 12345679 | key3 |    
      C | 12345679 | key4 |    
      C | 12345679 | key5 |    
      C | 12345680 | key6 |    

1st query of slice :

cqlsh:testkeyspace1> select * from compositetest where ctime<=12345680 limit 3;
 status | ctime    | key  | nil
--------+----------+------+------
      C | 12345678 | key1 |     
      C | 12345678 | key2 |     
      C | 12345679 | key3 | null

Second Query : I want to get values where first one left off (Yes you could do this with hector)
[Try 1]

cqlsh:testkeyspace1> select * from compositetest where ctime>=12345679 and key='key3'
and ctime<=12345680 limit 3;
Bad Request: PRIMARY KEY part key cannot be restricted (preceding part ctime is either not
restricted or by a non-EQ relation) [Try 2]
cqlsh:testkeyspace1> select * from compositetest where ctime=12345679 and key='key3' and
ctime<=12345680 limit 3;
TSocket read 0 bytes
cqlsh:testkeyspace1>
                  
> NPE when trying to select a slice from a composite table
> --------------------------------------------------------
>
>                 Key: CASSANDRA-4532
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4532
>             Project: Cassandra
>          Issue Type: Bug
>          Components: API, Core
>    Affects Versions: 1.1.3
>         Environment: Cassandra 1.1.3 (2 nodes) on a single host - mac osx
>            Reporter: basanth gowda
>            Priority: Minor
>              Labels: Slice, cql, cql3
>
> I posted this question on StackOverflow, because i need a solution. 
> Created a table with :
> {noformat}
> create table compositetest(m_id ascii,i_id int,l_id ascii,body ascii, PRIMARY KEY(m_id,i_id,l_id));
> {noformat}
> wanted to slice the results returned, so did something like below, not sure if its the
right way. The first one returns data perfectly as expected, second one to get the next 3
columns closes the transport of my cqlsh
> {noformat}
> cqlsh:testkeyspace1> select * from compositetest where i_id<=3 limit 3;
>  m_id | i_id | l_id | body
> ------+------+------+------
>    m1 |    1 |   l1 |   b1
>    m1 |    2 |   l2 |   b2
>    m2 |    1 |   l1 |   b1
> cqlsh:testkeyspace1> Was trying to write something for slice range.
> TSocket read 0 bytes
> {noformat}
> Is there a way to achieve what I am doing here, it would be good if some meaning ful
error is sent back, instead of cqlsh closing the transport.
> On the server side I see the following error.
> {noformat}
> ERROR [Thrift:3] 2012-08-12 15:15:24,414 CustomTThreadPoolServer.java (line 204) Error
occurred during processing of message.
> java.lang.NullPointerException
> 	at org.apache.cassandra.cql3.statements.SelectStatement$Restriction.setBound(SelectStatement.java:1277)
> 	at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.updateRestriction(SelectStatement.java:1151)
> 	at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:1001)
> 	at org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:215)
> 	at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:121)
> 	at org.apache.cassandra.thrift.CassandraServer.execute_cql_query(CassandraServer.java:1237)
> 	at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql_query.getResult(Cassandra.java:3542)
> 	at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql_query.getResult(Cassandra.java:3530)
> 	at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32)
> 	at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34)
> 	at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:186)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:680)
> {noformat}
> With ThriftClient I get :
> {noformat}
> org.apache.thrift.transport.TTransportException
> 	at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
> 	at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
> 	at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:129)
> 	at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101)
> 	at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
> 	at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378)
> 	at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)
> 	at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204)
> 	at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)
> 	at org.apache.cassandra.thrift.Cassandra$Client.recv_execute_cql_query(Cassandra.java:1402)
> 	at org.apache.cassandra.thrift.Cassandra$Client.execute_cql_query(Cassandra.java:1388)
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message