The sysopclasses system catalog
The sysopclasses system catalog stores information about operator classes. Each time a new operator class is created with the CREATE OPCLASS statement, a row is added to this table.
Some
of the columns of the sysopclasses table include:
- opclassname
- The internal name of the operator class.
- amid
- The unique identifier of the access method that uses the operator class.
- ops
- The list of strategy functions defined for the operator class. Information about the strategy function is stored in the sysprocedures system table.
- support
- The list of support functions defined for the operator class. Information about the support function is stored in the sysprocedures system table.
The following query returns all columns of the sysopclasses system
catalog for the MyShape_ops operator class:
SELECT *
FROM sysopclasses
WHERE opclassname = 'myshape_ops';
opclassname myshape_ops
owner informix
amid 2
opclassid 100
ops overlap;equal;contains;within;
support union;size;inter;sfcbits;objectlength;sfcvalue;setunion;
Tip: Because HCL Informix® always
converts object names to lowercase when updating system catalogs,
the preceding query searches for the myshape_ops operator class
instead of the MyShape_ops operator class.
The query shows that the strategy functions for the MyShape_ops operator class are Overlap, Equal, Contains, and Within. The support functions are Union, Size, and Inter, as required. The MyShape_ops operator class also defines the bottom-up building support functions SFCbits, ObjectLength, SFCvalue, and SetUnion.
The following query of the sysprocedures table
returns information about the available Within strategy
functions, such as their signatures and connections to the shared
library:
SELECT paramtypes, externalname
FROM sysprocedures
WHERE procname = 'within';
paramtypes myshape,myshape
externalname
$INFORMIXDIR/extend/shapes.3.0/shapes.bld(MyShapeWithin)
The result shows that a Within function exists in the database for the MyShape data type.
To determine the operator
classes that are already available in your database for the R-tree
access method, execute the following query:
SELECT opclassname, opclassid
FROM sysopclasses, sysams
WHERE sysopclasses.amid = sysams.am_id AND
sysams.am_name = 'rtree';
opclassname rtree_ops
opclassid 2
opclassname myshape_ops
opclassid 100
The result shows that the database
contains two operator classes that can be used with the R-tree access
method: rtree_ops and myshape_ops.
Important: If
you have registered a DataBlade module
that supplies its own operator class, you must specify it when you
create an R-tree index. Do not specify the default rtree_ops operator
class.
For a complete description of the columns of the sysopclasses system table, refer to the HCL Informix Guide to SQL: Reference.