pg_collation_is_visible()

用于确定排序规则在当前搜索路径中是否可见的函数

pg_collation_is_visible() 是一个系统函数,用于确定排序规则在当前模式搜索路径中是否可见。

pg_collation_is_visible()PostgreSQL 9.1 中添加。

用法

pg_collation_is_visible ( collation oid ) → boolean

collation 参数可以作为文本值提供,使用 regcollation OID 别名 包含排序规则的名称。在这种情况下,名称应作为模式限定值提供(例如 "someschema.somecollation"),否则如果排序规则存在但不在当前搜索路径中可见,则会引发 ERROR

更改历史记录

示例

假设已创建以下排序规则,则 pg_collation_is_visible() 的示例用法

postgres=# CREATE COLLATION collations.british_english (locale = 'en_GB.utf8');
CREATE COLLATION

dads

postgres=# SHOW search_path;
   search_path   
-----------------
 "$user", public
(1 row) 

postgres=# SELECT pg_collation_is_visible('collations.british_english');
ERROR:  invalid input syntax for type oid: "collations.british_english"
LINE 1: SELECT pg_collation_is_visible('collations.british_english')...

postgres=# SET search_path TO public, collations;
SET

postgres=# SELECT pg_collation_is_visible('collations.british_english'::regcollation);
 pg_collation_is_visible 
-------------------------
 t
(1 row)

如果排序规则不存在,或者存在但未进行模式限定且不在当前搜索路径中,则会引发 ERROR

postgres=# SELECT pg_collation_is_visible('collations.foo'::regcollation);
ERROR:  collation "collations.foo" for encoding "UTF8" does not exist
LINE 1: SELECT pg_collation_is_visible('collations.foo'::regcollatio...

postgres=# SHOW search_path;
   search_path   
-----------------
 "$user", public
(1 row)

postgres=# SELECT pg_collation_is_visible('british_english'::regcollation);
ERROR:  collation "british_english" for encoding "UTF8" does not exist
LINE 1: SELECT pg_collation_is_visible('british_english'::regcollati...

分类

排序规则模式(命名空间)系统函数

另请参阅

pg_function_is_visible()pg_opclass_is_visible()pg_operator_is_visible()pg_opfamily_is_visible()pg_table_is_visible()pg_type_is_visible()

反馈

提交您对 "pg_collation_is_visible()" 的任何评论、建议或更正 此处