[ 
https://issues.apache.org/jira/browse/CASSANDRA-17919?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Lerer updated CASSANDRA-17919:
---------------------------------------
    Reviewers: Benjamin Lerer, Stefan Miklosovic  (was: Stefan Miklosovic)

> Capital P gets confused in the parser for a Duration in places where IDENT 
> are needed
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-17919
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17919
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CQL/Syntax
>            Reporter: David Capwell
>            Assignee: Maxim Chanturiay
>            Priority: Normal
>             Fix For: 3.11.x, 4.0.x, 4.1.x, 5.x
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> This was found while adding Accord Transaction syntax into CQL and fuzz 
> testing to validate all possible cases… in doing this the following was found
> {code}
> String query = "BEGIN TRANSACTION\n" +
>                            "  LET P = (SELECT v FROM " + keyspace + ".tbl 
> WHERE k=? AND c=?);\n" +
>                            "  LET row2 = (SELECT v FROM " + keyspace + ".tbl 
> WHERE k=? AND c=?);\n" +
>                            "  SELECT v FROM " + keyspace + ".tbl WHERE k=? 
> AND c=?;\n" +
>                            "  IF P IS NULL AND row2.v = ? THEN\n" +
>                            "    INSERT INTO " + keyspace + ".tbl (k, c, v) 
> VALUES (?, ?, ?);\n" +
>                            "  END IF\n" +
>                            "COMMIT TRANSACTION";
> {code}
> Fails with
> {code}
> SyntaxException: line 2:6 mismatched input 'P' expecting IDENT (BEGIN 
> TRANSACTION  LET [P]...)
> {code}
> The new LET syntax found this, but was able to reproduce in other cases
> {code}
> cqlsh:ks> CREATE TABLE P (k INT PRIMARY KEY);
> SyntaxException: line 1:13 no viable alternative at input 'P' (CREATE TABLE 
> [P]...)
> cqlsh:ks>
> cqlsh:ks> CREATE TABLE p (k INT PRIMARY KEY);
> cqlsh:ks>
> {code}



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