Sometimes, strategies aren't enough information for the system to figure out how to use an index. Some access methods require additional support routines in order to work. For example, the B-tree access method must be able to compare two keys and determine whether one is greater than, equal to, or less than the other. Similarly, the R-tree access method must be able to compute intersections, unions, and sizes of rectangles. These operations do not correspond to operators used in qualifications in SQL queries; they are administrative routines used by the access methods, internally.

In order to manage diverse support routines consistently across all
PostgreSQL access methods,
`pg_am` includes a column called
`amsupport`. This column records the
number of support routines used by an access method. For B-trees,
this number is one: the routine to take two keys and return -1, 0,
or +1, depending on whether the first key is less than, equal to,
or greater than the second. (Strictly speaking, this routine can
return a negative number (< 0), zero, or a non-zero positive
number (> 0).)

The `amstrategies` entry in
`pg_am` is just the number of strategies
defined for the access method in question. The operators for less
than, less equal, and so on don't appear in
`pg_am`. Similarly,
`amsupport` is just the number of support
routines required by the access method. The actual routines are
listed elsewhere.

By the way, the `amorderstrategy` column tells whether
the access method supports ordered scan. Zero means it doesn't; if it
does, `amorderstrategy` is the number of the strategy
routine that corresponds to the ordering operator. For example, B-tree
has `amorderstrategy` = 1, which is its
"less than" strategy number.