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

Benjamin Lerer commented on CASSANDRA-17918:
--------------------------------------------

[~bernardo.botella] Thanks a lot for the patches :). Unfortunately, the 
approach you took for the patches is not the correct one (the C* code base 
isconfusing). Internally C* does not keep the quotes. It eliminates them on 
input and add them back when recreating the statements for the DESCRIBE.

I added some information in the *Description* section to help you find the 
parts of the code that need to be modified.

We changed the way DESCRIBE was working in C* 4.0 and moved it on the server 
side before that DESCRIBE was implemented at the CQLSH level using the python 
driver. This bug only affect 4.0, 4.1 and trunk. No need to worry about 3.11 :)

> DESCRIBE output does not quote column names using reserved keywords
> -------------------------------------------------------------------
>
>                 Key: CASSANDRA-17918
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17918
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Legacy/CQL
>            Reporter: Yifan Cai
>            Assignee: Bernardo Botella Corbi
>            Priority: Normal
>             Fix For: 4.0.x, 4.1.x
>
>
> The DESCRIBE output of the column names that using reserved keywords are not 
> quoted for UDTs. The following test reproduces. Reading the code, it looks 
> like that the such columns names are not quoted in materialized view, UDF and 
> user defined aggregation. 
> The impact of the bug is that schema described cannot be imported due to the 
> usage of reserved keywords as column names. 
>  
> {code:java}
>     @Test
>     public void testUsingReservedInCreateType() throws Throwable
>     {
>         String type = createType(KEYSPACE_PER_TEST, "CREATE TYPE %s 
> (\"token\" text, \"desc\" text);");               
> assertRowsNet(executeDescribeNet(KEYSPACE_PER_TEST, "DESCRIBE TYPE " + type),
>                 row(KEYSPACE_PER_TEST, "type", type, "CREATE TYPE " + 
> KEYSPACE_PER_TEST + "." + type + " (\n" +
>                         "    \"token\" text,\n" +
>                         "    \"desc\" text\n" +
>                         ");"));
>     } {code}
> +Additional information for newcomers:+
>  * Unit tests for DESCRIBE statements are in {{DescribeStatementTest}}
>  * The statement implementation is in {{DescribeStatement and fetch the 
> create statement from the different schema element using  
> SchemaElement.toCqlString}}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to