PostgreSQL pg_amop

2021-09-14 10:25 更新

目錄pg_amop存儲關(guān)于與訪問方法操作符族相關(guān)的操作符信息。對于一個(gè)操作符族中的每一個(gè)成員即操作符都在這個(gè)目錄中有一行。一個(gè)成員可以是一個(gè)搜索操作符或者一個(gè)排序操作符。一個(gè)操作符可以出現(xiàn)在多個(gè)族中,但在同一個(gè)組中既不能出現(xiàn)在多個(gè)搜索位置也不能出現(xiàn)在多個(gè)排序位置(雖然不太可能出現(xiàn),但是允許一個(gè)操作符同時(shí)用于搜索和排序目的)。

表 51.4. pg_amop Columns

列類型

描述

oid oid

行標(biāo)識符

amopfamily oid (references pg_opfamily.oid)

這個(gè)項(xiàng)所在的操作符系列

amoplefttype oid (references pg_type.oid)

操作符的左手輸入數(shù)據(jù)類型

amoprighttype oid (references pg_type.oid)

操作符的右手輸入數(shù)據(jù)類型

amopstrategy int2

操作符策略號

amoppurpose char

操作符目的,s表示搜索,o表示排序

amopopr oid (references pg_operator.oid)

操作符的OID

amopmethod oid (references pg_am.oid)

使用此操作符系列的索引訪問方法

amopsortfamily oid (references pg_opfamily.oid)

如果是一個(gè)排序操作符,該項(xiàng)會根據(jù)這個(gè) B樹操作符族排序,如果是一個(gè)搜索操作符則為0


一個(gè)搜索操作符項(xiàng)意味著該操作符族的一個(gè)索引可以被搜索來查找所有滿足如下條件的行: WHERE indexed_column operator constant。 顯然,這樣的一個(gè)操作符必須返回boolean,且它的左手輸入類型必須匹配索引列的數(shù)據(jù)類型。

一個(gè)排序操作符項(xiàng)意味著該操作符族的一個(gè)索引可以被掃描來返回以如下順序排列的行: ORDER BY indexed_column operator constant。 這樣一個(gè)操作符能夠返回任何可排序數(shù)據(jù)類型,盡管它的左手輸入類型必須匹配索引列的數(shù)據(jù)類型。 ORDER BY的準(zhǔn)確語義由amopsortfamily列指定,它必須引用一個(gè)適合于操作符結(jié)果類型的B樹操作符族。

注意

目前,一個(gè)排序操作符的排序順序被假設(shè)為其引用的操作符族的默認(rèn)值,即ASC NULLS LAST。未來可能會通過增加額外的列來顯式地指定排序選項(xiàng)。

一個(gè)項(xiàng)的amopmethod必須和它所包含的操作符族的opfmethod相匹配(這里包括amopmethod是一個(gè)為了性能原因而故意對目錄結(jié)構(gòu)做的反規(guī)范化)。此外,amoplefttypeamoprighttype也必須匹配被引用的 pg_operator項(xiàng)的oprleftoprright域。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號