You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Elvis Pranskevichus (JIRA)" <ji...@apache.org> on 2013/09/19 18:57:01 UTC

[jira] [Comment Edited] (CASSANDRA-5138) Provide a better CQL error when table data does not conform to CQL metadata.

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

Elvis Pranskevichus edited comment on CASSANDRA-5138 at 9/19/13 4:56 PM:
-------------------------------------------------------------------------

Another related issue.  This check seems to make it impossible to insert proper records into CQL3 tables via Thrift, since it bails out on an attempt to write a column with an empty last component.

CREATE TABLE test (
id text,
attr text,
value text,

PRIMARY KEY (id, attr)
);

The storage column structure for the table would be:

|<key>|{<attr>,}|[empty]
|<key>|{<attr>,"value"}|<value>

There is no way to insert the first column (record demarcation) as it fails with "Invalid cell for CQL3 table test. The CQL3 column component () does not correspond to a defined CQL3 column"

                
      was (Author: elprans):
    Another related issue.  This check seems to make it impossible to insert proper records into CQL3 tables via Thrift, since it bails out on an attempt to write a column with an empty last component.

CREATE TABLE test (
id text,
attr text,
value text,

PRIMARY KEY (id, attr)
);

The storage column structure for the table would be:

<key>  {<attr>,}                [empty]
<key>  {<attr>,"value"}         <value>

There is no way to insert the first column (record demarcation) as it fails with "Invalid cell for CQL3 table test. The CQL3 column component () does not correspond to a defined CQL3 column"

                  
> 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: 2.0
>
>         Attachments: 5138-2.txt, 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