在 sysxtdtypes 系统目录表中,在数据库中定义的每个 UDT(用户定义的数据类型)对
应一个条目,这些类型包括不透明和单值数据类型以及复杂数据类型(命名 ROW 类型、未
命名 ROW 类型和 COLLECTION 类型)。
sysxtdtypes 表具有以下列。
表 40. SYSXTDTYPES 表列描述
列
类型
解释
extended_id
SERIAL
扩展数据类型的唯一标识代码
domain
CHAR(1)
UDT 的域的代码
mode
CHAR(1)
对 UDT 进行分类的代码:
B = 基本(不透明)类型
C = 集合类型或未命名 ROW
类型
D = 单值类型
R = 命名 ROW 类型
' '(空白)= 内置类型
owner
VARCHAR(32)
UDT 所有者的名称
name
VARCHAR(128)
UDT 的名称
type
SMALLINT
对 UDT 分类的代码
source
INTEGER
sysxtdtypes 引用(仅适用于
单值类型)
零 (0) 指示从内置数据类型
创建了单值 UDT。
maxlen
INTEGER
可变长度数据类型的最大长度
零指示固定长度 UDT。
length
INTEGER
固定长度数据类型的长度(以
字节计)
零指示可变长度 UDT。
GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 73 -
列
类型
解释
byvalue
CHAR(1)
“T”= UDT 通过值传递
“F”= UDT 不通过值传递
cannothash
CHAR(1)
“T”
=
UDT 可通过缺省散列函
数散列
“F”
=
UDT 不可通过缺省函数
散列
align
SMALLINT
此 UDT 的对齐方式(= 1、2、
4 或 8)
locator
INTEGER
未命名 ROW 类型的定位器键
每个扩展数据类型都用唯一标识符(称为扩展标识符 (extended_id))、数据标识符
(type) 以及长度和数据库类型的描述来作为特征。
对于使用内置数据类型创建的单值类型,type 列代码对应于 SYSCOLUMNS 中列出
的 syscolumns.coltype 列
(指示源类型)
的值,
但要加上一个十六进制值 0x0000800。
文
件 $GBASEDBTDIR/incl/esql/sqltypes.h 包含有关 sysxtdtypes.type 和
syscolumns.coltype 代码的信息。
extended_id 列的索引只允许唯一值。locator 列的索引允许重复值,name 和 owner
列的组合索引也一样。type 和 source 列的组合索引也允许重复值。