[ 
https://issues.apache.org/jira/browse/CASSANDRA-15458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17507423#comment-17507423
 ] 

Maciej Sokol commented on CASSANDRA-15458:
------------------------------------------

I've continued searching and found where the issue is, it's in 
pylib/cqlshlib/formatting.py.

When map is formatted quote=True is sent to the format function and when text 
is formatted quote=False is sent. I.e changing quote=False in the 
format_value_map will produce the same results as for text.
{code:java}
SELECT * FROM test.t1;
 id | data
----+----------
  1 | I'm newb

SELECT * FROM test.t2;
 id | data
----+---------------
  1 | {1: I'm newb} {code}
So the question arises here, do we want to quote or not quote? I guess we want 
to have the same behavior for text as well as text in map.

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

Reply via email to