在 sysxtdtypes 系统目录表中,在数据库中定义的每个 UDT(用户定义的数据类型)对应一个条目,这些类型包括不透明和单值数据类型以及复杂数据类型(命名 ROW 类型、未命名 ROW 类型和 COLLECTION 类型)。
列 | 类型 | 解释 |
---|---|---|
extended_id | SERIAL | 扩展数据类型的唯一标识代码 |
domain | CHAR(1) | UDT 的域的代码 |
mode | CHAR(1) | 对 UDT 进行分类的代码:
|
owner | VARCHAR(32) | UDT 所有者的名称 |
name | VARCHAR(128) | UDT 的名称 |
type | SMALLINT | 对 UDT 分类的代码 |
source | INTEGER | sysxtdtypes 引用(仅适用于单值类型)
零 (0) 指示从内置数据类型创建了单值 UDT。 |
maxlen | INTEGER | 可变长度数据类型的最大长度
零指示固定长度 UDT。 |
length | INTEGER | 固定长度数据类型的长度(以字节计)
零指示可变长度 UDT。 |
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 列的组合索引也允许重复值。