
# PG_TYPE
PG_TYPE系统表存储数据类型的相关信息。
表1PG_TYPE字段 
| 名称             | 类型           | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| oid            | oid          | 行标识符（隐含字段，必须明确选择）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| typname        | name         | 数据类型名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| typnamespace   | oid          | 包含此类型的名称空间的OID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| typowner       | oid          | 该类型的所有者。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| typlen         | smallint     | 对于定长类型是该类型内部表现形式的字节数目。对于变长类型是负数。 - -1：表示一种"变长"（有长度字属性的数据）。  - -2：表示这是一个NULL结尾的C字符串。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| typbyval       | boolean      | - true：指定内部传递此类型的数值时是传值。  - false：指定内部传递此类型的数值时是传引用。   如果该类型的typlen不是1、2、4、8， typbyval建议传引用，也可以传值。变长类型通常是传引用，也可以传值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| typtype        | "char"       | - b：基础类型。  - c：复合类型（比如，一个表的行类型）。  - d：域类型。  - p：伪类型。  - r：范围类型。  - e：枚举类型。  - u：未定义类型。  - o：集合类型。   参见typrelid和typbasetype。 |
| typcategory    | "char"       | 是数据类型的模糊分类，可用于解析器作为数据转换的依据。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| typispreferred | boolean      | - true：数据符合typcategory所指定的转换规则时进行转换。  - false：不进行转换。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| typisdefined   | boolean      | - true：表示类型已定义。  - false：表示是一种尚未定义的类型的占位符，此时，除了该类型的名称、名称空间和OID之外没有可靠的信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| typdelim       | "char"       | 当分析数组输入时，分隔两个此类型数值的字符请注意该分隔符是与数组元素数据类型相关联的，而不是和数组数据类型关联。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| typrelid       | oid          | 如果是复合类型（请参见typtype），则这个字段指向[12.2.15.28 PG_CLASS](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0929.html#ZH-CN_TOPIC_0000002527986368)中定义该表的行。对于自由存在的复合类型，pg_class记录并不表示一个表，但是总需要它来查找该类型连接的[12.2.15.26 PG_ATTRIBUTE](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0927.html#ZH-CN_TOPIC_0000002559106123)记录。对于非复合类型为零。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| typelem        | oid          | 如果不为0，则它标识pg_type里面的另外一行。当前类型可以当做一个产生类型为typelem的数组来描述。一个"真正的"数组类型是变长的（typlen= -1），但是一些定长的（typlen \> 0）类型也拥有非零的typelem（比如name和point）。如果一个定长类型拥有一个typelem ，则他的内部形式必须是typelem数据类型的某个数目的个数值，不能有其它数据。变长数组类型有一个该数组子过程定义的头（文件）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| typarray       | oid          | 如果不为0，则表示在pg_type中有对应的类型记录。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| typinput       | regproc      | 输入转换函数（文本格式）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| typoutput      | regproc      | 输出转换函数（文本格式）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| typreceive     | regproc      | 输入转换函数（二进制格式），如果没有则为0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| typsend        | regproc      | 输出转换函数（二进制格式），如果没有则为0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| typmodin       | regproc      | 输入类型修改符函数，如果没有则为0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| typmodout      | regproc      | 输出类型修改符函数，如果没有则为0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| typanalyze     | regproc      | 自定义的ANALYZE函数，如果使用标准函数，则为0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| typalign       | "char"       | 当存储此类型的数值时要求的对齐性质。它应用于磁盘存储以及该值的大多数形式。如果数值是连续存放的，比如在磁盘上以完全的裸数据的形式存放时，则先在此类型的数据前填充空白，这样它就可以按照要求的界限存储。对齐引用是该序列中第一个数据的开头。可能的值包含： - c：表示char对齐，也就是不需要对齐。  - s：表示short对齐（在大多数机器上是2字节）。  - i：表示int对齐（在大多数机器上是4字节）。  - d：表示double对齐（在大多数机器上是8字节，但不一定是全部）。   须知： 对于在系统表里使用的类型，在pg_type里定义的尺寸和对齐必须和编译器在一个表示表的一行的结构里的布局一样。                                                                                                                                                                                                                                                                                                                       |
| typstorage     | "char"       | 指定字段的数据存储方式，具体包含以下几个类型： - p：普通存储（plain）。数值总是以简单方式存储。  - e：外部存储（external）。数据实际存储在主表以外的地方（如TOAST表），主表存储的是指向该外部存储数据的引用。  - m：主体存储（main）。该方式与"普通存储"类似，可以以内联的压缩方式存储。通常用于存储需要自定义存储方式的类型，如自定义的复合类型。  - x：扩展存储（extended）。值可以被压缩和/或移动到一个二级关系表中。 x一般是TOAST类型存储的方式。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| typnotnull     | boolean      | 该类型是否存在NOTNULL约束。目前只用于域。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| typbasetype    | oid          | 如果这是一个衍生类型（请参见typtype），则该标识作为这个类型的基础的类型。如果不是衍生类型则为零。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| typtypmod      | integer      | 域使用typtypmod记录要作用到它们的基础类型上的typmod（如果基础类型不使用typmod则为-1）。如果这种类型不是域，则为-1。 如果该类型是数组类型，则typtypmod是数组类型的最大容量。 如果该类型是带索引的集合类型，则typtypmod是该集合类型的索引最大长度。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| typndims       | integer      | 如果一个域是数组，则typndims是数组维数的数值。非域非数组域为零。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| typcollation   | oid          | 指定类型的排序规则，取值参考[PG_COLLATION](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0930.html#ZH-CN_TOPIC_0000002558946231)系统表。如果为0，则表示不支持排序。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| typdefaultbin  | pg_node_tree | 如果为非NULL，则它是该类型缺省表达式的nodeToString() 表现形式。目前这个字段只用于域。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| typdefault     | text         | 如果某类型没有相关缺省值，则取值是NULL。如果typdefaultbin不是NULL，则typdefault必须包含一个typdefaultbin代表的缺省表达式。如果typdefaultbin为NULL但typdefault不是，typdefault则是该类型缺省值的外部表现形式，可以把它交给该类型的输入转换器生成一个常量。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| typacl         | aclitem\[\]  | 访问权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| typelemmod     | integer      | - -1：集合和数组类型对应元素类型不需要typmod。  - \>=0的数值：集合和数组类型对应元素类型的typmod值。  - NULL：集合和数组类型对应元素类型的typmod未知。   typmod通常指类型的最大长度。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
