[
https://issues.apache.org/jira/browse/CASSANDRA-2623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13030777#comment-13030777
]
rday commented on CASSANDRA-2623:
---------------------------------
Possibly the unescapeSQLString in CliUtils.java
can do something to get rid of the single quotes.
The unit test doesn't cover escaping via 2 single quotes.
public static String unescapeSQLString(String b)
{
if (b.charAt(0) == '\'' && b.charAt(b.length()-1) == '\'')
b = b.substring(1, b.length()-1);
return StringEscapeUtils.unescapeJava(b);
}
also method escapeSQLString which
(only used in the unit test but public )
is assuming a backslash to escape single quotes.
public static String escapeSQLString(String b)
{
// single quotes are not escaped in java, need to be for cli
return StringEscapeUtils.escapeJava(b).replace("\'", "\\'");
}
The StringLiteral Definition makes sense for using 2 single quotes escaping
since it should always have an even number of quotes so just the backing code
needs to be enlightened.
> CLI escaped single quote parsing gives errors
> ---------------------------------------------
>
> Key: CASSANDRA-2623
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2623
> Project: Cassandra
> Issue Type: Bug
> Components: Tools
> Environment: windows vista, linux
> Reporter: rday
> Assignee: Pavel Yaskevich
> Priority: Minor
> Labels: cli
> Fix For: 0.7.6, 0.8.1
>
>
> Escaping quotes in cli commands causes parsing errors.
> some examples::::
> No need to create columns etc, it doesn't get through parsing the expression::
> cassandra-cli
> 1.
> set column['KEY+vals'][VALUE] = 'VAL\'' ;
> Syntax error at position 41: mismatched character '<EOF>' expecting '''
> 2.
> set column['KEY+val\'s'][VALUE] = 'VAL' ;
> Syntax error at position 41: mismatched character '<EOF>' expecting '''
> 3.
> set column['KEY+vals\''][VALUE] = 'VAL\'' ;
> Syntax error at position 38: unexpected "\" for `set
> column['KEY+vals\''][VALUE] = 'VAL\'' ;`.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira