更新时间:2024-05-07 GMT+08:00

PG_OBJECT

PG_OBJECT系统表存储限定类型对象(普通表,索引,序列,视图,存储过程和函数)的创建用户、创建时间和最后修改时间。

表1 PG_OBJECT字段

名称

类型

描述

object_oid

oid

对象标识符。

object_type

"char"

对象类型:

  • r :表示普通表。
  • i :表示索引。
  • s :表示序列。
  • v :表示视图。
  • P :表示存储过程和函数。
  • S :表示包头。
  • B :表示包体。

creator

oid

创建用户的标识符。

ctime

timestamp with time zone

对象的创建时间。

mtime

timestamp with time zone

对象的最后修改时间,修改行为包括ALTER操作和GRANT、REVOKE操作。

createcsn

bigint

对象创建时的CSN。

changecsn

bigint

对表或索引执行DDL操作时的CSN。

valid

boolean

对象的有效性,t为有效,f为无效。

  • 无法记录初始化数据库(initdb)过程中所创建或修改的对象,即PG_OBJECT无法查询到该对象记录。
  • 对于升级至该版本的数据库,无法记录升级以前所创建的对象,即PG_OBJECT无法查询到该对象记录。
  • 对于上述两类对象再次修改时,会记录其修改时间(mtime),由于无法得知该对象创建时间,因此ctime为空。
  • 对于升级前创建的对象,再次修改时会记录其修改时间(mtime),对表或索引执行DDL操作时会记录其所属事务的事务提交序列号(changecsn)。由于无法得知该对象创建时间,因此ctime和createcsn为空。
  • ctime和mtime所记录的时间为用户当次操作所属事务的起始时间。
  • 由扩容引起的对象修改时间也会被记录。
  • createcsn和changecsn记录的是用户当次操作所属事务的事务提交序列号。
  • 对象创建语句时存在未定义的对象,或所依赖的对象有修改或删除动作时,对象会为无效状态。