CQLSH 转义多行注释(斜杠星号)

问题描述 投票:0回答:2

我正在使用 cqlsh 命令行实用程序来加载一些 DDL。

我使用的实用程序版本是这样的:

[cqlsh 6.0.0 | Cassandra 4.0.0.47 | CQL spec 3.4.5 | Native protocol v5]

加载DDL.cql的命令:

cqlsh -u username -p password cassandra.example.com 65503 --ssl -f DDL.cql

我在 cql 脚本中有一行破坏了语法。

INSERT into tablename (key,columnname1,columnname2) VALUES 
   ('keyName','value1','/value2/*/value3');

/*
被解释为多行注释的开始。它曾经适用于旧版本的 cqlsh。

有办法逃避这个序列吗?

我们看到的错误如下所示:

SyntaxException: line 4:2 mismatched input 'Update' expecting ')' (...,'value1','/value2INSERT into tablename(INSERT into tablename (key,columnname1,columnname2)) VALUES ('[Update]-...)
SyntaxException: line 1:0 no viable alternative at input '(' ([(]...)

交互模式下运行时也有相同的行为。

cassandra escaping comments cqlsh
2个回答
1
投票

我可以确认它曾经在 Cassandra 3.11 中工作(我特别测试了 C* 3.11.13)。由于某种原因,它不适用于从 4.0.0 开始的任何 C* 4.0 版本。

感谢您记录CASSANDRA-17667,我们现在正在对其进行分类。我还没有弄清楚哪个更改破坏了它,但希望我们很快就能修复它。干杯!


0
投票

面临同样的问题,一个简单的解决方法帮助了我们。基本上必须将多行注释终止符拆分为两个字符串并将其连接起来。

‘*/‘:失败

‘*’+‘/‘:有效

© www.soinside.com 2019 - 2024. All rights reserved.