为什么在创建gin索引时Postgresql必须在列名两边加上引号?

时间:2018-11-20 15:07:16

标签: postgresql indexing

在postgres上,我正在跑步

CREATE INDEX gin_index_position_on_players ON public.players USING gin (position gin_trgm_ops);

然后,我正在检查此表的indexdef

select *
from pg_indexes
where tablename = 'players';

先前创建的索引的结果是:

CREATE INDEX gin_index_position_on_players ON public.players USING gin ("position" gin_trgm_ops)

有人知道为什么Postgres会包裹position吗?

猜猜我已经调查过:

  1. 保留的关键字:postgres有一些“保留的关键字”并通过包装它们来保护它们->看来name没有被包装。

  2. 内置函数:postgres包装其内置函数(如位置)-> char_length未包装

1 个答案:

答案 0 :(得分:1)

如有疑问,请阅读坦率的详尽手册。

https://www.postgresql.org/docs/current/sql-keywords-appendix.html