2015-09-03 52 views
1

有沒有一種方法可以在卡桑德拉集合中插入單引號的值?這是我有:在卡桑德拉插入一個集合值單引號

表:

CREATE TABLE test.test (
    name text PRIMARY KEY, 
    values map<text, text> 
) 

插入:

INSERT INTO test (name, values) VALUES ('jos''emy',{'foo':'josemy''s house'}); 

查詢:

SELECT * FROM test; 
name | values 
---------+---------------------------- 
jos'emy | {'foo': 'josemy''s house'} 

正如你所看到的,卡桑德拉更換日e在簡單的「名稱」字段中添加雙引號,但不會替換地圖內字段中的引號。我想要的結果是:

name | values 
---------+---------------------------- 
jos'emy | {'foo': 'josemy's house'} 
+0

我是afk,但是您是否嘗試過使用'josemy'的房子'? – user244255

+0

是的,但它失敗。該文件說單引號是用另一個單引號轉義的。 –

+0

如果有人關心,由OP創建的jira: https://issues.apache.org/jira/browse/CASSANDRA-10263 –

回答

0

我不知道有什麼辦法。你試圖做的事情看起來應該起作用。可能有人忘記檢查收集字符串中的轉義字符。如果沒有人提供答案,您可能想爲此輸入一張票,以便查看。

Report bug

+0

完成..謝謝。 –

0

一個變通會做你的JSON選擇。

cqlsh:gii> insert into test (name,values) values ('Tu''pac',{'fo''o':'josemy''s house'}); 
cqlsh:gii> select * from test; 
name | values 
---------+------------------------------ 
    Tu'pac | {'fo''o': 'josemy''s house'} 

cqlsh:gii> select json * from test; 

[json] 
---------------------------------------------------------- 
{"name": "Tu'pac", "values": {"fo'o": "josemy's house"}}