You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Stefan Miklosovic (Jira)" <ji...@apache.org> on 2023/04/17 12:27:00 UTC
[jira] [Comment Edited] (CASSANDRA-17919) Capital P gets confused in the parser for a Duration in places where IDENT are needed
[ https://issues.apache.org/jira/browse/CASSANDRA-17919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17713062#comment-17713062 ]
Stefan Miklosovic edited comment on CASSANDRA-17919 at 4/17/23 12:26 PM:
-------------------------------------------------------------------------
[~maximc] could you please prepare patch for trunk as well?
It would be great if all of them are rebased on top of the current branches as it was quite a while this was implemented.
was (Author: smiklosovic):
[~maximc] could you please prepare patch for trunk as well?
> 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
>
> Time Spent: 50m
> 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-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org