PG_TYPE
PG_TYPE系统表存储数据类型的相关信息。
表 1 PG_TYPE字段
指定内部传递这个类型的数值时是传值(该值为true)还是传引用(该值为false)。如果该类型的typlen不是1、2、4、8, typbyval最好为false。变长类型通常是传引用。即使typlen允许传值,typbyval也可以为false。 |
||
|
||
如果定义了类型则为真,如果是一种尚未定义的类型的占位符则为假。如果为假,则除了该类型名称,名称空间和OID之外没有可靠的信息。 |
||
如果是复合类型(请参见typtype),则这个字段指向pg_class中定义该表的行。对于自由存在的复合类型,pg_class记录并不表示一个表,但是总需要它来查找该类型连接的pg_attribute记录。对于非复合类型为零。 |
||
如果不为0,则它标识pg_type里面的另外一行。当前类型可以当做一个产生类型为typelem的数组来描述。一个“真正的”数组类型是变长的(typlen= -1),但是一些定长的(typlen > 0)类型也拥有非零的typelem(比如name和point)。如果一个定长类型拥有一个typelem ,则他的内部形式必须是typelem数据类型的某个数目的个数值,不能有其他数据。变长数组类型有一个该数组子过程定义的头(文件)。 |
||
指明一个变长类型(那些有typlen = -1)是否准备好应付非常规值,以及对这种属性的类型的缺省策略是什么。可能的值包含:
|
||
如果这是一个衍生类型(请参见typtype),则该标识作为这个类型的基础的类型。如果不是衍生类型则为零。 |
||
域使用typtypmod记录要作用到它们的基础类型上的typmod(如果基础类型不使用typmod则为-1)。如果这种类型不是域,则为-1。 |
||
如果一个域是数组,则typndims是数组维数的数值(也就是说,typbasetype是一个数组类型;域的typelem将匹配基本类型的typelem)。非域非数组域为零。 |
||
指定类型的排序规则。取值参考pg_collation系统表。如果为0,则表示不支持排序。 |
||
如果某类型没有相关缺省值,则取值是NULL。
|
||