对象标识符类型

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

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

表 1 对象标识符类型

名称

引用

描述

示例

OID

-

数字化的对象标识符。

564182

CID

-

命令标识符。它是系统字段cmin和cmax的数据类型。命令标识符是32位的量。

-

XID

-

事务标识符。它是系统字段xmin和xmax的数据类型。事务标识符也是32位的量。

-

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. postgres=# SELECT oid FROM pg_class WHERE relname = 'pg_type';
  2. oid
  3. ------
  4. 1247
  5. (1 row)

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

示例:

  1. postgres=# 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)