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 data type.  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
    necessary 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.