The pg_am table contains one row for every index access method. Support for the heap access method is built into PostgreSQL, but all other access methods are described in pg_am. The schema is shown in Table 17-1.
Table 17-1. Index Access Method Schema
|amname||name of the access method|
|amowner||user ID of the owner (currently not used)|
|amstrategies||number of strategies for this access method (see below)|
|amsupport||number of support routines for this access method (see below)|
|amorderstrategy||zero if the index offers no sort order, otherwise the strategy number of the strategy operator that describes the sort order|
|amcanunique||does AM support unique indexes?|
|amcanmulticol||does AM support multicolumn indexes?|
|amindexnulls||does AM support NULL index entries?|
|amconcurrent||does AM support concurrent updates?|
|...||procedure identifiers for interface routines to the access method. For example, regproc IDs for opening, closing, and getting rows from the access method appear here.|
The object ID of the row in pg_am is used as a foreign key in a lot of other tables. You do not need to add a new row to this table; all that you are interested in is the object ID of the access method you want to extend:
SELECT oid FROM pg_am WHERE amname = 'btree'; oid ----- 403 (1 row)
We will use that query in a WHERE clause later.
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.