返回首页

gbase数据、南大通用产品文档:GBase8a更新

更新日期:2024年09月11日


如果需要更新一个UDF/UDAF 函数,,那么需要用户删除此UDF/UDAF 后,
同时删除引用的同一动态库(.so)的所有UDF/UDAF 函数,然后再重新创建
UDF/UDAF 函数。否则后面引用的时候可能产生宕机。

我们建议一个UDF/UDAF 函数编译时构建一个动态库(.so),以避免
UDF/UDAF 更新产生的异常。

不能使用CREATE AGGREGATE FUNCTION 创建一个已经被创建的函数。

如果需要重新创建函数,
应该用DROP FUNCTION 删除它,
然后用CREATE
AGGREGATE FUNCTION 重新创建它。例如,如果重新编译函数的一个新
版本,以便GBase 获得新版本,需要删除函数并重新创建,否则GBase 将继
续使用旧版本。

sysprocbody 系统目录表描述数据库中每个过程或函数的已编译版本。因为
sysprocbody 表存储例程的文本,所以每个例程可以有多行。sysprocbody 表具有以下
列。
表 24. SYSPROCBODY 表列描述

类型
解释
procid
INTEGER
例程的唯一标识代码
datakey
CHAR(1)
data 列中的信息的类型:A = 例程更改 SQL
(在更新统计信息后不会更改该值)D = 例程
用户文档文本E = 创建时间信息L = 文字值
(即,文字数字或带引号字符串)P = 解释器
指令代码 (p-code)R = 例程返回值类型列表S
= 例程符号表T = 例程文本创建 SQL
seqno
INTEGER
例程内的行号
data
CHAR(256)
例程的实际文本

A 标志表示过程修饰符已更改。ALTER ROUTINE 语句仅更新修饰符而不是例程主体。
UPDATE STATISTICS 更新查询计划而不是例程修饰符,并且数据键的值不会更改成 A 以
外的值。A 标志标记所有已更改修饰符的过程和函数,包括超负荷的过程和函数。T 标志
用于例程创建文本。
data 列包含实际数据,这些数据可以使用下列格式之一:
编码返回值列表
编码符号表
文字数据
例程的 P-code
例程的已编译代码
例程及其文档的文本

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 55 -
procid、datakey 和 seqno 列只允许唯一值。

PG_WORKLOAD_GROUP
PG_WORKLOAD_GROUP 系统表提供了数据库负载组的信息。
名称
类型
描述
oid
oid
行标识符(隐含属性,必须明确选择)。
workload_gpname
name
负载组名称。
respool_oid
oid
绑定到的资源池的id。
act_statements
integer
负载组内最大的活跃语句数。