目錄 pg_class 記錄表和幾乎所有具有列或者像表的東西。這包括索引(但還要參見 pg_index )、序列、視圖、物化視圖、組合類型和TOAST表,參見 relkind 。下面,當我們提及所有這些類型的對象時我們使用“關系”。並非所有列對於所有關系類型都有意義。
pg_class 中的一些邏輯標志被以一種懶惰的方式維護:在正確狀態時它們被保證為真,但是當條件不再為真時它們並不會被立刻重置為假。例如, relhasindex 由 CREATE INDEX 設置,但它從不會被DROP INDEX 清除。作為替代, VACUUM 會在找到無索引表后清除其 relhasindex 。這種安排避免了競爭條件並且提高了並發性。
具體內容見下:
名稱 |
類型 |
參考 |
描述 |
oid |
oid |
|
行標識符(隱藏屬性;必須明確選擇) |
relname |
name |
|
表格,索引,視圖等的名稱 |
relnamespace |
oid |
pg_namespace.oid |
包含此relation的名稱空間的oid |
reltype |
oid |
pg_type .oid |
與此表行類型對應的數據類型的oid(如果有的話)(對於沒有pg_type條目的索引,為零 ) |
reloftype |
oid |
pg_type .oid |
對於類型表,基礎復合類型的oid,對於所有其他relation為零 |
relowner |
oid |
pg_authid.oid |
relation的所有者 |
relam |
oid |
pg_am.oid |
如果這是一個索引,則使用的訪問方法(B-樹,散列等) |
relfilenode |
oid |
|
該relation的磁盤文件的名稱; 零表示這是一個“映射”relation,其磁盤文件名由低級狀態決定 |
reltablespace |
oid |
pg_tablespace.oid |
存儲該relation的表空間。如果為零,則隱含數據庫的默認表空間。(如果relation沒有磁盤上的文件,則無意義。) |
relpages |
int4 |
|
該表的磁盤表示的大小(頁面大小為BLCKSZ)。這只是計划者使用的估計值。它由 VACUUM,ANALYZE和一些DDL命令(如 CREATE INDEX)更新。 |
reltuples |
float4 |
|
表中的行數。這只是計划者使用的估計值。它由VACUUM,ANALYZE和一些DDL命令(如CREATE INDEX)更新。 |
relallvisible |
int4 |
|
在表格的可見性圖中標記為全部可見的頁面數。這只是計划者使用的估計值。它由VACUUM,ANALYZE和一些DDL命令(如CREATE INDEX)更新。 |
reltoastrelid |
oid |
pg_class .oid |
與此表關聯的TOAST表的oid,如果沒有,則為0。TOAST表在“輔助表”中存儲“超出行”的大型屬性 。 |
relhasindex |
bool |
|
如果這是一個表並且它有(或最近有)任何索引,則為真 |
relisshared |
bool |
|
如果此表在群集中的所有數據庫之間共享,則為true。只有某些系統目錄(如 pg_database)被共享。 |
relpersistence |
char |
|
p =永久表, u =未記錄表,t =臨時表 |
relkind |
char |
|
r =普通表, i =索引,S =序列,v =視圖,m =物化視圖, c =復合類型,t = TOAST表,f =外部表 |
relnatts |
int2 |
|
relation中的用戶列數(系統列未計數)。pg_attribute中必須有許多相應的條目。另見pg_attribute.attnum。 |
relchecks |
int2 |
|
表上CHECK約束的數量; 請參閱pg_constraint目錄 |
relhasoids |
bool |
|
如果我們為relation的每一行生成oid,則為真 |
relhaspkey |
bool |
|
如果表具有(或曾經有)主鍵,則為真 |
relhasrules |
bool |
|
如果表具有(或曾經有)規則,則為真; 請參閱pg_rewrite目錄 |
relhastriggers |
bool |
|
如果表具有(或曾經有)觸發器,則為真; 請參閱 pg_trigger目錄 |
relhassubclass |
bool |
|
如果表有(或曾經有過)任何繼承孩子,則為真 |
relrowsecurity |
bool |
|
如果表已啟用行級安全性,則為true; 請參閱 pg_policy目錄 |
relforcerowsecurity |
bool |
|
如果行級別安全性(啟用時)也為true,則也適用於表所有者; 請參閱pg_policy目錄 |
relispopulated |
bool |
|
如果relation被填充,則為真(對於除某些實例化視圖之外的所有relation都是如此) |
relreplident |
char |
|
用於為行構成“副本標識”的列:d = default(主鍵,如果有的話),n =無,f =所有列 i =具有indisreplident set的索引或default |
relfrozenxid |
xid |
|
在此表之前的所有交易ID已被替換為永久(“凍結”)交易ID。這用於跟蹤是否需要將表抽真空以防止事務ID環繞或允許縮小pg_clog。零(InvalidTransactionId)如果relation不是一個表。 |
relminmxid |
xid |
|
在此表之前的所有多重作業ID已由該事務ID替換。這用於跟蹤是否需要將表抽真空以防止多軸實現ID 繞回或允許縮小pg_multixact。零(InvalidMultiXactId)如果relation不是一個表。 |
relacl |
aclitem[] |
|
|
reloptions |
text[] |
|
特定於訪問方法的選項,如“keyword = value”字符串 |