Supported Versions: Current (16) / 15 / 14 / 13 / 12
Development Versions: devel
Unsupported versions: 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.

51.3. Implementation

There are seven methods that an index operator class for GiST must provide:


Given a predicate p on a tree page, and a user query, q, this method will return false if it is certain that both p and q cannot be true for a given data item.


This method consolidates information in the tree. Given a set of entries, this function generates a new predicate that is true for all the entries.


Converts the data item into a format suitable for physical storage in an index page.


The reverse of the compress method. Converts the index representation of the data item into a format that can be manipulated by the database.


Returns a value indicating the "cost" of inserting the new entry into a particular branch of the tree. items will be inserted down the path of least penalty in the tree. Values returned by penalty should be non-negative. If a negative value is returned, it will be treated as zero.


When a page split is necessary, this function decides which entries on the page are to stay on the old page, and which are to move to the new page.


Returns true if two entries are identical, false otherwise.