返回首页

gbase数据、南大通用产品文档:GBase8sSQLFreeEnv(仅限核心级别)

更新日期:2024年09月11日

SQLFreeEnv 释放环境句柄和与环境句柄相关联的内存。
下表描述了 SQLFreeEnv 的 SQLSTATE 和错误值。
SQLSTATE
错误值
错误消息
01000
-11001
General warning
S1000
-11060
General error
S1010
-11067
Function-sequence error

Thesaurus 词典,也叫做分类词典(缩写为TZ)
,是一组定义了词以及词组间关系的集
合,包括广义词(BT)
、狭义词(NT)
、首选词、非首选词、相关词等。根据词典文件中的
定义,TZ 词典用一个指定的短语替换对应匹配的所有短语,并且可选择保留原始短语进行
索引。TZ 词典实际上是Synonym 词典的一个扩展,增加了短语支持。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
657
注意事项

由于TZ 词典需要识别短语,
所以在处理过程中必须保存当前状态并与解析器进行
交互,以决定是否处理下一个token 或是结束当前识别。此外,TZ 词典配置时需
谨慎,如果设置TZ 词典仅处理asciiword 类型的token,则类似one 7 的分类词典
定义将不会生效,因为uint 类型的token 不会传给TZ 词典处理。

在索引期间要用到分类词典,
因此分类词典参数中的任何变化都要求重新索引。

于其他大多数类型的词典来说,
类似添加或删除停用词这种修改并不需要强制重新
索引。
操作步骤
步骤1 创建一个名为thesaurus_astro 的TZ 词典。
以一个简单的天文学词典thesaurus_astro 为例,
其中定义了两组天文短语及其同义词如
下:
supernovae stars : sn
crab nebulae : crab
执行如下语句创建TZ 词典:
gbase=#CREATE TEXT SEARCH DICTIONARY thesaurus_astro ( TEMPLATE = thesaurus,
DictFile = thesaurus_astro,
Dictionary = pg_catalog.english_stem, FILEPATH = 'file:///home/dicts/'
);
其中,词典定义文件全名为thesaurus_astro.ths,所在目录为当前连接数据库主节点的
/home/dicts/下。子词典pg_catalog.english_stem 是预定义的Snowball 类型的英语词干词典,
用于规范化输入词,子词典自身相关配置(例如停用词等)不在此处显示。关于创建词典的
语法和更多参数,请参见16.14.92 CREATE TEXT SEARCH DICTIONARY。
步骤2 创建词典后,将其绑定到对应文本搜索配置中需要处理的token 类型上:
gbase=#ALTER TEXT SEARCH CONFIGURATION russian
ALTER MAPPING FOR asciiword, asciihword, hword_asciipart
WITH thesaurus_astro, english_stem;
步骤3 使用TZ 词典。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
658

测试TZ 词典。
ts_lexize 函数对于测试TZ 词典作用不大,因为该函数是按照单个token 处理输入。可
以使用plainto_tsquery、to_tsvector、to_tsquery 函数测试TZ 词典,这些函数
能够将输入
分解成多个token(to_tsquery 函数需要将输入加上引号)

gbase=#SELECT plainto_tsquery('russian','supernova star'); plainto_tsquery
-----------------
'sn'
(1 row)
gbase=#SELECT to_tsvector('russian','supernova star'); to_tsvector
-------------
'sn':1 (1 row)
gbase=#SELECT to_tsquery('russian','''supernova star'''); to_tsquery
------------
'sn'
(1 row)
其中,supernova star 匹配了词典thesaurus_astro 定义中的supernovae stars,这是因为在
thesaurus_astro 词典定义中指定了Snowball 类型的子词典english_stem,
该词典移除了e 和s。

如果同时需要索引原始短语,
只要将其同时放置在词典定义文件中对应定义的右侧
即可,如下:
supernovae stars : sn supernovae stars
gbase=#ALTER TEXT SEARCH DICTIONARY thesaurus_astro ( DictFile = thesaurus_astro,
FILEPATH = 'file:///home/dicts/');
gbase=#SELECT plainto_tsquery('russian','supernova star'); plainto_tsquery
-----------------------------
'sn' & 'supernova' & 'star' (1 row)

功能描述
删除用户。同时删除与用户同名的schema。
注意事项

须使用CASCADE 级联删除依赖用户的对象
(除数据库外)

当删除用户的级联对象时,
如果级联对象处于锁定状态,
则此级联对象无法被删除,
直到对象被解锁或锁定级联对
象的进程被杀死。

GBase 8c 数据库中存在enable_kill_query 配置参数,此参数在配置文件postgresql.conf
中。此参数影响级联删除用户对象的行为:

当参数enable_kill_query 为on ,且使用CASCADE 模式删除用户时,会自动kill

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1138
锁定用户级联对象的进程,并删除用户。

当参数enable_kill_query 为off,且使用CASCADE 模式删除用户时,会等待锁定
级联对象的进程结束之后再删除用户。

在数据库中删除用户时,
如果依赖用户的对象在其他数据库中或者依赖用户的对象是其
他数据库,
请用户先手动删除其他数据库中的依赖对象或直接删除依赖数据库,
再删除
用户。即drop user 不支持跨数据库进行级联删除。

如果该用户被DATA SOURCE 对象依赖时,无法直接级联删除该用户,需要手动删除
对应的DATA SOURCE 对象之后再删除该用户。
语法格式
DROP USER [ IF EXISTS ] user_name [, ...] [ CASCADE | RESTRICT ];
参数说明

IF EXISTS
如果指定的用户不存在,发出一个notice 而不是抛出一个错误。

user_name
待删除的用户名。
取值范围:已存在的用户名。

CASCADE | RESTRICT

CASCADE:级联删除依赖用户的对象。

RESTRICT:如果用户还有任何依赖的对象,则拒绝删除该用户(缺省行为)

示例
请参考CREATE USER 的示例。
相关命令
ALTER USER,CREATE USER

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1139