orientdb 集群名称在 v2.0 中是可以的,但现在无效了?
orientdb cluster names were ok in v2.0 but are now invalid?
我们最近从 v2.0 升级到 v2.1.9,突然无法查询我们的集群。此查询:
select * from cluster:tdv-st-2014-01-19
在 2.0(及更早版本)中工作正常,但现在我们得到(在控制台和 Java API 中):
Error: com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error on parsing command at position #0: Error parsing query:
select * from cluster:tdv-st-2014-01-19
Encountered " "-" "- "" at line 1, column 26.
Was expecting one of:
<EOF>
<WHERE> ...
<ORDER> ...
<GROUP> ...
<LIMIT> ...
<SKIP2> ...
<OFFSET> ...
<TIMEOUT> ...
<FETCHPLAN> ...
<LOCK> ...
<LET> ...
<NOCACHE> ...
<PARALLEL> ...
<UNWIND> ...
";" ...
<LET> ...
<WHERE> ...
<GROUP> ...
<ORDER> ...
<UNWIND> ...
<SKIP2> ...
<OFFSET> ...
<LIMIT> ...
<FETCHPLAN> ...
<TIMEOUT> ...
<LOCK> ...
<PARALLEL> ...
<NOCACHE> ...
看起来它不再喜欢集群名称中的“-”字符了?我们已经尝试引用集群名称等,但还没有找到使该查询起作用的方法。有人有想法吗?
你是怎么引用的?您已经尝试过 backtik 了吗?
select * from `cluster:tdv-st-2014-01-19`
在新版本 2.1.x 中实现了一个新的 'Strict SQL parser',它带来了以下新功能:
***) - 作为标识符的有效字符(属性 和 class 名称):在旧实现中,您可以定义一个 属性 名称,例如 "simple-name" 并执行 simple-SELECT name FROM Foo。这不再被允许,因为 - 字符用于算术运算(减法)。要使用带有 - 字符的名称,请使用反引号。示例:SELECT simple-name
来自 Foo
因此“-”不是标识符的有效字符(以避免与减法冲突)
见 link
如果需要,您可以禁用新的解析设置 strictSql=false(请参阅 Studio -> 数据库选项卡)
我们最近从 v2.0 升级到 v2.1.9,突然无法查询我们的集群。此查询:
select * from cluster:tdv-st-2014-01-19
在 2.0(及更早版本)中工作正常,但现在我们得到(在控制台和 Java API 中):
Error: com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error on parsing command at position #0: Error parsing query:
select * from cluster:tdv-st-2014-01-19
Encountered " "-" "- "" at line 1, column 26.
Was expecting one of:
<EOF>
<WHERE> ...
<ORDER> ...
<GROUP> ...
<LIMIT> ...
<SKIP2> ...
<OFFSET> ...
<TIMEOUT> ...
<FETCHPLAN> ...
<LOCK> ...
<LET> ...
<NOCACHE> ...
<PARALLEL> ...
<UNWIND> ...
";" ...
<LET> ...
<WHERE> ...
<GROUP> ...
<ORDER> ...
<UNWIND> ...
<SKIP2> ...
<OFFSET> ...
<LIMIT> ...
<FETCHPLAN> ...
<TIMEOUT> ...
<LOCK> ...
<PARALLEL> ...
<NOCACHE> ...
看起来它不再喜欢集群名称中的“-”字符了?我们已经尝试引用集群名称等,但还没有找到使该查询起作用的方法。有人有想法吗?
你是怎么引用的?您已经尝试过 backtik 了吗?
select * from `cluster:tdv-st-2014-01-19`
在新版本 2.1.x 中实现了一个新的 'Strict SQL parser',它带来了以下新功能:
***) - 作为标识符的有效字符(属性 和 class 名称):在旧实现中,您可以定义一个 属性 名称,例如 "simple-name" 并执行 simple-SELECT name FROM Foo。这不再被允许,因为 - 字符用于算术运算(减法)。要使用带有 - 字符的名称,请使用反引号。示例:SELECT simple-name
来自 Foo
因此“-”不是标识符的有效字符(以避免与减法冲突) 见 link
如果需要,您可以禁用新的解析设置 strictSql=false(请参阅 Studio -> 数据库选项卡)