You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Vinuraj M (JIRA)" <ji...@apache.org> on 2013/01/21 13:54:12 UTC
[jira] [Created] (CASSANDRA-5177) Insert on column with composite
partition key fails with java.lang.IllegalStateException Cannot acces
column family with composite key from CQL < 3.0.0
Vinuraj M created CASSANDRA-5177:
------------------------------------
Summary: Insert on column with composite partition key fails with java.lang.IllegalStateException Cannot acces column family with composite key from CQL < 3.0.0
Key: CASSANDRA-5177
URL: https://issues.apache.org/jira/browse/CASSANDRA-5177
Project: Cassandra
Issue Type: Bug
Components: Drivers
Affects Versions: 1.2.0
Environment: Linux 2.6.18-194.el5 x86_64 GNU/Linux
Reporter: Vinuraj M
Priority: Blocker
Even though the version is set at JDBC driver level, thrift doesn't seem to get that.
What steps will reproduce the problem?
1. Create a table as below
CREATE TABLE perflog (
pp text,
mon text,
dts timestamp,
val double,
sts text,
PRIMARY KEY((pp,mon),dts)
);
2. Java code to connect to database as below.
Class.forName("org.apache.cassandra.cql.jdbc.CassandraDriver");
Connection c = DriverManager.getConnection("jdbc:cassandra://localhost:9160/db1?version=3.0.0");
This is successful with below message
Connected to localhost:9160 using Keyspace db1 and CQL version 3.0.0
3.Insert into table with prepared statement
What is the expected output? What do you see instead?
Successful insert.
Instead following errors is show in server side log.
ERROR [Thrift:14] 2013-01-18 18:33:54,394 CustomTThreadPoolServer.java (line 217) Error occurred during processing of message.
java.lang.IllegalStateException: Cannot acces column family with composite key from CQL < 3.0.0
at org.apache.cassandra.config.CFMetaData.getKeyName(CFMetaData.java:502)
at org.apache.cassandra.cql.QueryProcessor.validateKeyAlias(QueryProcessor.java:293)
at org.apache.cassandra.cql.UpdateStatement.prepareRowMutations(UpdateStatement.java:149)
at org.apache.cassandra.cql.UpdateStatement.prepareRowMutations(UpdateStatement.java:127)
at org.apache.cassandra.cql.QueryProcessor.processStatement(QueryProcessor.java:532)
at org.apache.cassandra.cql.QueryProcessor.processPrepared(QueryProcessor.java:827)
at org.apache.cassandra.thrift.CassandraServer.execute_prepared_cql_query(CassandraServer.java:1761)
at org.apache.cassandra.thrift.Cassandra$Processor$execute_prepared_cql_query.getResult(Cassandra.java:4140)
at org.apache.cassandra.thrift.Cassandra$Processor$execute_prepared_cql_query.getResult(Cassandra.java:4128)
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:199)
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:662)
What version of the product are you using? On what operating system?
[cqlsh 2.3.0 | Cassandra 1.2.0 | CQL spec 3.0.0 | Thrift protocol 19.35.0]
Please provide any additional information below.
Following jar files are used.
libthrift-0.7.0.jar
cassandra-jdbc-1.1.2.jar
apache-cassandra-clientutil-1.2.0.jar
guava-13.0.1.jar
apache-cassandra-thrift-1.2.0.jar
I have actually tried with cqlsh and the insert is working fine. This happens when I use the JDBC driver hence I thought it is a problem with the driver and created a defect there, but they suggested creating a defect at Cassandra JIRA. I get a different error at my java program i wrote for loading data using JDBC driver which is as below
java.sql.SQLNonTransientConnectionException
at org.apache.cassandra.cql.jdbc.CassandraPreparedStatement.doExecute(CassandraPreparedStatement.java:171)
at org.apache.cassandra.cql.jdbc.CassandraPreparedStatement.executeUpdate(CassandraPreparedStatement.java:208)
--
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