返回首页

gbase数据、南大通用产品文档:GBase8cPG_TS_PARSER

更新日期:2024年09月11日

PG_TS_PARSER 系统表包含定义文本解析器的记录。
解析器负责分裂输入文本为词位,
并且为每个词位分配标记类型。新解析器必须由数据库系统管理员创建。
名称
类型
引用
描述

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
818
名称
类型
引用
描述
oid
oid
-
行标识符(隐含属性,必须明确选
择)。
prsname
name
-
文本搜索解析器名。
prsnamespace
oid
PG_NAMESPACE.oid
包含这个解析器的名称空间的OID。
prsstart
regproc
PG_PROC.proname
解析器的启动函数名。
prstoken
regproc
PG_PROC.proname
解析器的下一个标记函数名。
prsend
regproc
PG_PROC.proname
解析器的关闭函数名。
prsheadline
regproc
PG_PROC.proname
解析器的标题函数名。
prslextype
regproc
PG_PROC.proname
解析器的lextype 函数名。

COVAR_POP()
函数说明
返回一对表达式的总体协方差。返回的结果为double 数据类型。
语法
COVAR_POP( expression1, expression2)
表5- 31 参数说明
参数名称


expression1
数值表达式
expression2
数值表达式
注意
COVAR_POP 函数计算将忽略expression1 或expression2 为NULL
值的记录。
示例

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
861
create table all_tables(owner int, avg_row_len int, avg_space int);
insert into all_tables values(1, 1241,
2446);
insert into all_tables values(1, 1158,
1028);
insert into all_tables values(1,
332,
621);
insert into all_tables values(1,
126,
408);
insert into all_tables values(1,
173,
1222);
insert into all_tables values(1,
180,
834);
insert into all_tables values(1,
96,
702);
insert into all_tables values(1,
285,
158);
insert into all_tables values(1,
null,
159);
insert into all_tables values(1,
190, null);
insert into all_tables values(1, null,null);
insert into all_tables values(2, 1,
2);
insert into all_tables values(2, 3,
4);
insert into all_tables values(2,
5,
6);
gbase> SELECT owner,covar_pop(avg_row_len, avg_space) from all_tables
group by owner;
+-------+-----------------------------------+
| owner | covar_pop(avg_row_len, avg_space) |
+-------+-----------------------------------+
|
2 |

Schema
Schema 又称作模式。通过管理Schema,允许多个用户使用同一数据库而不相互干扰,
可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的Schema

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
168
下而不引起冲突。
每个数据库包含一个或多个Schema。数据库中的每个Schema 包含表和其他类型的对
象。数据库创建初始,默认具有一个名为public 的Schema,且所有用户都拥有此Schema
的usage 权限,
只有系统管理员和初始化用户可以在public
Schema 下创建函数、
存储过程
和同义词对象,其他用户即使赋予create 权限后也不可以创建上述三种对
象。可以通过
Schema 分组数据库对象。Schema 类似于操作系统目录,但Schema 不能嵌套。默认只有初
始化用户可以在pg_catalog 模式下创建对象。
相同的数据库对象名称可以应用在同一数据库的不同Schema 中,而没有冲突。例如,
a_schema 和b_schema 都可以包含名为mytable 的表。具有所需权限的用户可以访问数据库
的多个Schema 中的对象。
通过CREATE USER 创建用户的同时,系统会在执行该命令的数据库中,为该用户创
建一个同名的SCHEMA。
数据库对象是创建在数据库搜索路径中的第一个Schema 内的。有关默认情况下的第一
个Schema 情况及如何变更Schema 顺序等更多信息,请参见搜索路径。
创建、修改和删除Schema
要创建Schema,请使用《GBase 8c V5_3.0.0_SQL 手册》CREATE SCHEMA。默认初
始用户和系统管理员可以创建Schema,其他用户需要具备数据库的CREATE 权限才可以在
该数据库中创建Schema,赋权方式请参考《GBase 8c V5_3.0.0_SQL 手册》GRANT 中将
数据库的访问权限赋予指定的用户或角色中的语法。

要更改Schema 名称或者所有者,请使用《GBase 8c V5_3.0.0_SQL 手册》ALTER
SCHEMA。Schema 所有者可以更改Schema。

要删除Schema 及其对象,请使用《GBase 8c V5_3.0.0_SQL 手册》DROP SCHEMA。
Schema 所有者可以删除Schema。

要在Schema 内创建表,
请以schema_name.table_name 格式创建表。
不指定schema_name
时,对象默认创建到搜索路径中的第一个Schema 内。

要查看Schema 所有者,
请对系统表PG_NAMESPACE 和PG_USER 执行如下关联查询。
语句中的schema_name 请替换为实际要查找的Schema 名称。
postgres=# SELECT s.nspname,u.usename AS nspowner FROM pg_namespace s, pg_user u
WHERE nspname='schema_name' AND s.nspowner = u.usesysid;

要查看所有Schema 的列表,请查询PG_NAMESPACE 系统表。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
169
postgres=# SELECT * FROM pg_namespace;

要查看属于某Schema 下的表列表,请查询系统视图PG_TABLES。例如,以下查询会
返回Schema PG_CATALOG 中的表列表。
postgres=# SELECT * FROM pg_namespace;
搜索路径
搜索路径定义在search_path 参数中,
参数取值形式为采用逗号分隔的Schema 名称列表。
如果创建对象时未指定目标Schema,
则该对象会被添加到搜索路径中列出的第一个Schema
中。当不同Schema 中存在同名的对象时,查询对象未指定Schema 的情况下,将从搜索路
径中包含该对象的第一个Schema 中返回对象。

要查看当前搜索路径,请使用《GBase 8c V5_3.0.0_SQL 手册》SHOW。
postgres=# SHOW SEARCH_PATH;
search_path
----------------
"$user",public (1 row)
search_path 参数的默认值为:
"$user",public。
$user 表示与当前会话用户名同名的Schema
名,如果这样的模式不存在,$user 将被忽略。所以默认情况下,用户连接数据库后,
如果数据库下存在同名Schema,则对象会添加到同名Schema
下,否则对象被添加到
Public Schema 下。

要更改当前会话的默认Schema,请使用SET 命令。
执行如下命令将搜索路径设置为myschema、public,首先搜索myschema。
postgres=# SET SEARCH_PATH TO myschema, public;
SET