Chapter 16. Interfacing Extensions To Indexes

Table of Contents
16.1. Introduction
16.2. Access Methods and Operator Classes
16.3. Access Method Strategies
16.4. Access Method Support Routines
16.5. Creating the Operators and Support Routines
16.6. Creating the Operator Class
16.7. Special Features of Operator Classes

16.1. Introduction

The procedures described thus far let you define new types, new functions, and new operators. However, we cannot yet define a secondary index (such as a B-tree, R-tree, or hash access method) over a new type, nor associate operators of a new type with secondary indexes. To do these things, we must define an operator class for the new datatype. We will describe operator classes in the context of a running example: a new operator class for the B-tree access method that stores and sorts complex numbers in ascending absolute value order.

Note: Prior to PostgreSQL release 7.3, it was necesssary to make manual additions to pg_amop, pg_amproc, and pg_opclass in order to create a user-defined operator class. That approach is now deprecated in favor of using CREATE OPERATOR CLASS, which is a much simpler and less error-prone way of creating the necessary catalog entries.