The mi_key_opclass() and mi_key_opclass_name() accessor functions
Identify the mi_key_opclass() and mi_key_opclass_name() functions by identifier number or name, the operator class that provides the support, and strategy functions for a specified column in a key.
Syntax
mi_integer
mi_key_opclass(MI_AM_KEY_DESC *keyDesc, mi_integer keyNum)
mi_string *
mi_key_opclass_name(
MI_AM_KEY_DESC *keyDesc, mi_integer keyNum)
- keyDesc
- Points to the key descriptor.
- keyNum
- Specifies the column number of a key in a composite-key index or 0 for a single-key index.
Usage
An operator class consists of the strategy and support functions with which the access method manages a particular data type. To determine which operator class to use for a particular key, identify the key as an argument to mi_key_opclass() or mi_key_opclass_name(). To obtain the operator class identifier number, call mi_key_opclass(). To obtain the operator class name, call mi_key_opclass_name().
Identifying the key
The integer argument keyNum identifies the column number in the index entry. A one-column index contains only keyNum 0. A two-column key contains keyNum 0 and 1. To determine the number of columns in a key, call mi_key_nkeys().
Identify the operator class
CREATE OPCLASS str_ops FOR video_am
STRATEGIES (lessthan(char, char), lessthanorequal(char, char),
equal(char, char),
greaterthanorequal(char, char), greaterthan(char, char))
SUPPORT(compare)
CREATE OPCLASS int_ops FOR video_am
STRATEGIES (lessthan(int, int), lessthanorequal(int, int),
equal(int, int),
greaterthanorequal(int, int), greaterthan(int,int))
SUPPORT(compare)
CREATE TABLE videos (title char(50), year int, copies int)
CREATE INDEX vidx ON videos (title str_ops, year int_ops) USING video_am
As the access-method creator, you must assign a default operator class for the access method. To assign a default operator class, set the am_defopclass purpose value with the ALTER ACCESS_METHOD statement. If the CREATE INDEX statement does not specify the operator class to use, the mi_key_opclass() or mi_key_opclass_name() function specifies the default operator class.
Return values
For mi_key_opclass(), a positive return value identifies the operator class in the sysopclass system catalog table. A return value of -1 indicates that the function passed an invalid keyNum value.
For mi_key_opclass_name(), a non-NULL pointer identifies the name of the operator class. A return value of null indicates that the function passed an invalid keyNum value.
For more information, see the am_defopclass purpose value in Setting purpose functions, flags, and values.