Creating operator classes

Finally, all the components are in place, and it is possible to create the operator class that's needed by the index:

CREATE OPERATOR CLASS sva_special_ops 
FOR TYPE text USING btree
AS
OPERATOR 1 <# ,
OPERATOR 2 <=# ,
OPERATOR 3 = ,
OPERATOR 4 >=# ,
OPERATOR 5 ># ,

FUNCTION 1 si_same(text, text);

The CREATE OPERATOR CLASS command connects strategies and operators to OPERATOR 1<# means that strategy 1 will use the <# operator. Finally, the the _same function is connected with the operator class.

Note that the operator class has a name, and that it has been explicitly defined to work with B-trees. The operator class can already be used during index creation:

CREATE INDEX idx_special ON t_sva (sva sva_special_ops);

Creating an index works in a slightly different way than before: sva sva_special_ops means that the sva column is indexed using the sva_special_ops operator class. If sva_special_ops is not explicitly used, then PostgreSQL will not go for our special sort order, and will instead decide on the default operator class.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset