2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3

52.4. pg_amop #

目錄 pg_amop 儲存有關與訪問方法運算子族關聯的運算子的資訊。對於每個屬於某個運算子族成員的運算子,都有一行記錄。一個族成員可以是“搜尋”運算子,也可以是“排序”運算子。一個運算子可以出現在多個族中,但在一個族內的搜尋位置不能超過一個,排序位置也不能超過一個。(儘管不太可能,但一個運算子允許同時用於搜尋和排序目的。)

表 52.4. pg_amop

列 型別

描述

oid oid

行識別符號

amopfamily oid (引用 pg_opfamily.oid)

此條目所屬的運算子族

amoplefttype oid (引用 pg_type.oid)

運算子的左輸入資料型別

amoprighttype oid (引用 pg_type.oid)

運算子的右輸入資料型別

amopstrategy int2

運算子策略編號

amoppurpose char

運算子用途,可以是 s(搜尋)或 o(排序)

amopopr oid (引用 pg_operator.oid)

運算子的 OID

amopmethod oid (引用 pg_am.oid)

運算子族所屬的索引訪問方法

amopsortfamily oid (引用 pg_opfamily.oid)

如果這是一個排序運算子,則此條目所依據的 B-tree 運算子族;如果是搜尋運算子,則為零


一個“搜尋”運算子條目表示,此運算子族的索引可以用於搜尋,以查詢所有滿足 WHERE indexed_column operator constant 的行。顯然,這樣的運算子必須返回 boolean,並且其左輸入型別必須與索引的列資料型別匹配。

一個“排序”運算子條目表示,此運算子族的索引可以被掃描,以按照 ORDER BY indexed_column operator constant 所表示的順序返回行。這樣的運算子可以返回任何可排序的資料型別,但同樣,其左輸入型別必須與索引的列資料型別匹配。 ORDER BY 的確切語義由 amopsortfamily 列指定,它必須引用運算子結果型別的 B-tree 運算子族。

注意

目前,假定排序運算子的排序順序是所引用運算子族的預設順序,即 ASC NULLS LAST。將來可能會透過新增額外的列來明確指定排序選項來放寬此限制。

條目的 amopmethod 必須與其所屬運算子族的 opfmethod 匹配(在此包含 amopmethod 是出於效能考慮而故意反正規化化的目錄結構)。此外,amoplefttypeamoprighttype 必須與引用的 pg_operator 條目的 oprleftoprright 欄位匹配。

提交更正

如果您在文件中發現任何不正確、與您對特定功能的使用經驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。