Creating operator classes

Finally, all components are in place and it is  possible to create the operator class 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  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 btrees. 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 previously: 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 but 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