[
https://issues.apache.org/jira/browse/CASSANDRA-15458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17506863#comment-17506863
]
Maciej Sokol commented on CASSANDRA-15458:
------------------------------------------
I've started looking at the lexer and didn't found any faults. Created a
unittest and it passes... Tried reproducing in ccm and indeed there seems to be
some kind of a bug.
Added debug logs to UpdateStatement class to make sure that the values are
coming in correctly and they're:
t1:
1,'I'm newb
t2
1,\{1: 'I'm newb'}
{code:java}
CREATE KEYSPACE test WITH replication = {'class': 'NetworkTopologyStrategy',
'datacenter1': 3};
CREATE TABLE test.t1 (id int, data text, PRIMARY KEY (id));
CREATE TABLE test.t2 (id int, data map<int, text>, PRIMARY KEY (id));
INSERT INTO test.t1 (id, data) values(1, 'I''m newb');
INSERT INTO test.t2 (id, data) values(1, {1:'I''m newb'});
SELECT data from test.t1; data
----------
I'm newb
SELECT data from test.t2; data
------------------
{1: 'I''m newb'}{code}
[~blerer] do you have any ideas where to look further? I'm kinda stuck right now
> CQL: Unable to escape single quote in a map<int,text> attribute
> ---------------------------------------------------------------
>
> Key: CASSANDRA-15458
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15458
> Project: Cassandra
> Issue Type: Bug
> Components: CQL/Interpreter, CQL/Semantics
> Reporter: Abhijeet Singh
> Assignee: Maciej Sokol
> Priority: Normal
> Labels: AdventCalendar2021, lhf
> Attachments: cass-screen.png
>
>
> h3. Overview
> For {{text}} attributes, CQL allows escaping single quote [using additional
> single
> quote|http://mail-archives.apache.org/mod_mbox/cassandra-user/201108.mbox/%[email protected]%3E].
> But applying the same syntax for a {{map<int,text>}} attribute does not
> work. Inconsistent behavior was observed between {{text}} datatype and
> {{map<int,text>}} datatype.
> h3. CQL semantic proposal
> Cassandra (CQL) should apply same escaping semantics on {{text}} and
> text-within-map {{map<int,text>}} datatypes.
> h3. Reproducing the bug:
> CREATE query:
> {code:java}
> CREATE TABLE university.test (id int, data map<int, text>, PRIMARY KEY
> (id));{code}
> INSERT query:
> {code:java}
> insert into university.test (id, data) values(1, {1:'I''m newb'});{code}
> On running the aforementioned INSERT query, Cassandra inserts and returns
> {{\{1: 'I''m newb'}}} while the expected result is {{\{1: 'I'm newb'}}}
> h3. Technical details
> OS: CentOS 7
> Kernel: Linux 3.10.0-1062.9.1.el7.x86_64
> Cassandra version: 3.11.5
> Screenshot: [Output after SELECT query|https://i.stack.imgur.com/PLAan.png]
>
> +Additional information for newcomers:+
> The issue seems to come from the ANTLR Lexer logic for {{STRING_LITERAL}}. A
> unit test should also be added in {{SelectTest}}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]