panda
1
- 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` 就会保持大小写
panda
3
好的。User
这些作为TAG这都是很常见的。那假如我用了非保留关键字作为TAG,后面会不会有什么风险 ?
不会的,这个只是在语法阶段处理的,到后面都是字符串。没区别
panda
6
@dingding 使用``符号创建TAG之后,创建不了索引,它会报错:Not existed!
。
CREATE TAG `User`(
name string
);
create tag index index_name on User(name(50));
报错:Not existed!
其他没有用``符号创建的TAG,可以正常创建索引
panda
7
我知道了,创建索引的时候也要加``符号
create tag index index_name on `User`(name(50));
panda
9
还是有问题,不仅创建索引时需要加,其他任何操作,增删改查也要加
,不然报错。
这样子感觉有点别扭,有没有办法解决?
这个是这样的,因为你不加,语法解析就是按非保留关键字处理,和你原来的就不是同一个字符串,解决方案就是你拼接 query 的时候,所有tag name 或者 edge name 或者属性名都统一加上`` 就可以了。
panda
11
这样就很别扭很怪异了,这种设计有点不合理。我还是用小写好了。