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

Jonathan Ellis commented on CASSANDRA-5138:
-------------------------------------------

IMO we should do that extra check (also type information, unless that's already 
taken care of by the other validation).  If you really wanted unchecked 
composite inserts, you'd presumably create the table from Thrift.  So here we 
should assume that the user is doing his best to create a valid CQL row and we 
should reject invalid ones.
                
> Provide a better CQL error when table data does not conform to CQL metadata.
> ----------------------------------------------------------------------------
>
>                 Key: CASSANDRA-5138
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5138
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.2.0
>         Environment: Mac OS X running 1.2
>            Reporter: Brian ONeill
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.2.7
>
>         Attachments: 5138.txt, northpole.cql
>
>
> When you create a table via CQL, then insert into it via Thrift.  If you 
> inadvertently leave out a component of the column name, in CQL you receive a:
> TSocket read 0 bytes
> Server-side the following exception is logged:
> ERROR 15:19:18,016 Error occurred during processing of message.
> java.lang.ArrayIndexOutOfBoundsException: 3
>       at 
> org.apache.cassandra.cql3.statements.ColumnGroupMap.add(ColumnGroupMap.java:43)
>       at 
> org.apache.cassandra.cql3.statements.ColumnGroupMap.access$200(ColumnGroupMap.java:31)
>       at 
> org.apache.cassandra.cql3.statements.ColumnGroupMap$Builder.add(ColumnGroupMap.java:138)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:805)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:145)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:134)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:61)
>       at 
> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:132)
>       at 
> org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:140)
>       at 
> org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1686)
>       at 
> org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4074)
>       at 
> org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4062)
>       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:680)
> I'll submit a schema, and steps to reproduce.

--
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

Reply via email to