创建tag时,tag大小写有误

  • nebula 版本:v2-ga
  • 部署方式(分布式 / 单机 / Docker / DBaaS):单机
  • 是否为线上版本:N
  • 硬件信息
    • 磁盘( 推荐使用 SSD)ssd
    • CPU、内存信息. mac os i7 16g
  • 问题的具体描述
  • 相关的 meta / storage / graph info 日志信息

创建tag时,tag大小写有误。

假设我创建以下tag (大写命名):

CREATE TAG User(
	name string
);
CREATE TAG Profile(
	age int
);
CREATE TAG Photo(
	url string
);

最终插入的tag为:

(user@nebula) [test2]> show tags
+-----------+
| Name      |
+-----------+
| "Photo"   |
+-----------+
| "profile" |
+-----------+
| "user"    |
+-----------+

user和profile自动转为了小写,Photo是正确的大写。

为什么会自动转为小写?这是bug吗?还是有什么需要注意的地方?

对于tag的命名官方推荐用大小还是小写?

我是打算tag用大写,然后字段里可能会用到小写,比如tag User,其他的tag里面可能会用到小写的user字段。

你可以看下非保留关键字列表,user 属于非保留关键字,最后都是按照小写存储,假如你不希望这样,你加上反引号,如 `User` 就会保持大小写

好的。User这些作为TAG这都是很常见的。那假如我用了非保留关键字作为TAG,后面会不会有什么风险 ?

不会的,这个只是在语法阶段处理的,到后面都是字符串。没区别

好的

@dingding 使用``符号创建TAG之后,创建不了索引,它会报错:Not existed!

CREATE TAG `User`(
    name string
);
create tag index index_name on User(name(50));

报错:Not existed!

其他没有用``符号创建的TAG,可以正常创建索引

我知道了,创建索引的时候也要加``符号

create tag index index_name on `User`(name(50));

是的,棒棒哒

还是有问题,不仅创建索引时需要加,其他任何操作,增删改查也要加,不然报错。

这样子感觉有点别扭,有没有办法解决?

这个是这样的,因为你不加,语法解析就是按非保留关键字处理,和你原来的就不是同一个字符串,解决方案就是你拼接 query 的时候,所有tag name 或者 edge name 或者属性名都统一加上`` 就可以了。

这样就很别扭很怪异了,这种设计有点不合理。我还是用小写好了。

怎么会别扭呢,你去用mysql的,也是这样的。