[ https://issues.apache.org/jira/browse/CASSANDRA-17919?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stefan Miklosovic updated CASSANDRA-17919: ------------------------------------------ Status: Needs Committer (was: Review In Progress) > 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