更新时间:2025-05-29 GMT+08:00

GS_LOGICAL_TYPE

GS_LOGICAL_TYPE系统表存储数据类型的相关信息。

表1 GS_LOGICAL_TYPE字段

字段名称

字段类型

说明

typname

name

类型名称。

typnamespace

oid

包含此类型的命名空间的OID。

typlen

smallint

该类型值所使用的字节数。

typbyval

boolean

该类型的值是按值还是按引用传递。

typtype

"char"

表示表的行类型。

typisdefined

boolean

表示类型是否被完全定义。

typreceive

regproc

二进制格式的接收函数。

typsend

regproc

发送函数。

typmodin

regproc

用于可选类型修饰符的输入函数。

typmodout

regproc

输出函数。

typid

oid

类型的OID。

dbnode

oid

数据库OID。

originid

integer

元组的来源标识符。

createtime

timestamp with time zone

插入元组的时间戳。

csnmin

bigint

插入元组时的 CSN(提交序列号)。

csnmax

bigint

更新或删除元组时的 CSN。

typstorage

"char"

指定字段的数据存储方式,具体包含以下几个类型:

  • p:普通存储(plain)。数值总是以简单方式存储。
  • e:外部存储(external)。数据实际存储在主表以外的地方(如TOAST表),主表存储的是指向该外部存储数据的引用。
  • m:主体存储(main)。该方式与“普通存储”类似,可以以内联的压缩方式存储。通常用于存储需要自定义存储方式的类型,如自定义的复合类型。
  • x:扩展存储(extended)。值可以被压缩和/或移动到一个二级关系表中。

    x一般是TOAST类型存储的方式。

typelem

oid

如果typelem不为零,那么它表示gs_logical_type表中的另一行,该行定义了通过下标获取的类型(如数组)。如果typsubscript为零,则typelem应该为零。如果处理程序不需要typelem来确定下标类型,那么当typsubscript不为零时typelem也可以为零。请注意,typelem依赖关系表示了该类型中元素类型物理上的约束;因此,DDL修改类型时可能会因这种类型的存在而受到限制。

typinput

regproc

输入转换函数(文本格式)。

typoutput

regproc

输出转换函数(文本格式)。

typrelid

oid

如果是复合类型(请参见typtype),则这个字段指向GS_LOGICAL_CLASS中定义该表的行。对于复合类型,GS_LOGICAL_CLASS的类型不是一个表。对于非复合类型,该字段为零。