[
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