对象标识符类型

openGauss在内部使用对象标识符(OID)作为各种系统表的主键。系统不会给用户创建的表增加一个OID系统字段,OID类型代表一个对象标识符。

目前OID类型用一个四字节的无符号整数实现。因此不建议在创建的表中使用OID字段做主键。

表 1 对象标识符类型

名称 引用 描述 示例
OID - 数字化的对象标识符。 564182
CID - 命令标识符。它是系统字段cmin和cmax的数据类型。命令标识符是32位的量。 -
XID - 事务标识符。它是系统字段xmin和xmax的数据类型。事务标识符也是64位的量。 -
TID - 行标识符。它是系统表字段ctid的数据类型。行ID是一对数值(块号,块内的行索引),它标识该行在其所在表内的物理位置。 -
REGCONFIG pg_ts_config 文本搜索配置。 english
REGDICTIONARY pg_ts_dict 文本搜索字典。 simple
REGOPER pg_operator 操作符名。 -
REGOPERATOR pg_operator 带参数类型的操作符。 *(integer,integer)或-(NONE,integer)
REGPROC pg_proc 函数名称。 sum
REGPROCEDURE pg_proc 带参数类型的函数。 sum(int4)
REGCLASS pg_class 关系名。 pg_type
REGTYPE pg_type 数据类型名。 integer

OID类型:主要作为数据库系统表中字段使用。

示例:

1. openGauss=# SELECT oid FROM pg_class WHERE relname = 'pg_type';
2. oid
3. ------
4. 1247
5. (1 row)

OID别名类型REGCLASS:主要用于对象OID值的简化查找。

示例:

1. openGauss=# SELECT attrelid,attname,atttypid,attstattarget FROM pg_attribute WHERE attrelid = 'pg_type'::REGCLASS;
2. attrelid |  attname   | atttypid | attstattarget
3. ----------+------------+----------+---------------
4. 1247 | xc_node_id     |       23 |             0
5. 1247 | tableoid       |       26 |             0
6. 1247 | cmax           |       29 |             0
7. 1247 | xmax           |       28 |             0
8. 1247 | cmin           |       29 |             0
9. 1247 | xmin           |       28 |             0
10. 1247 | oid            |       26 |             0
11. 1247 | ctid           |       27 |             0
12. 1247 | typname        |       19 |            -1
13. 1247 | typnamespace   |       26 |            -1
14. 1247 | typowner       |       26 |            -1
15. 1247 | typlen         |       21 |            -1
16. 1247 | typbyval       |       16 |            -1
17. 1247 | typtype        |       18 |            -1
18. 1247 | typcategory    |       18 |            -1
19. 1247 | typispreferred |       16 |            -1
20. 1247 | typisdefined   |       16 |            -1
21. 1247 | typdelim       |       18 |            -1
22. 1247 | typrelid       |       26 |            -1
23. 1247 | typelem        |       26 |            -1
24. 1247 | typarray       |       26 |            -1
25. 1247 | typinput       |       24 |            -1
26. 1247 | typoutput      |       24 |            -1
27. 1247 | typreceive     |       24 |            -1
28. 1247 | typsend        |       24 |            -1
29. 1247 | typmodin       |       24 |            -1
30. 1247 | typmodout      |       24 |            -1
31. 1247 | typanalyze     |       24 |            -1
32. 1247 | typalign       |       18 |            -1
33. 1247 | typstorage     |       18 |            -1
34. 1247 | typnotnull     |       16 |            -1
35. 1247 | typbasetype    |       26 |            -1
36. 1247 | typtypmod      |       23 |            -1
37. 1247 | typndims       |       23 |            -1
38. 1247 | typcollation   |       26 |            -1
39. 1247 | typdefaultbin  |      194 |            -1
40. 1247 | typdefault     |       25 |            -1
41. 1247 | typacl         |     1034 |            -1
42. (38 rows)