52.35. pg\_opfamily

|      52.35. `pg_opfamily`      |                   |                           |                  |                                          |
|:------------------------------:|-------------------|---------------------------|------------------|------------------------------------------|
|[Prev](catalog-pg-operator.html)|[Up](catalogs.html)|Chapter 52. System Catalogs|[Home](index.html)| [Next](catalog-pg-partitioned-table.html)|

---

## 52.35. `pg_opfamily`

[]()

 The catalog `pg_opfamily` defines operator families. Each operator family is a collection of operators and associated support routines that implement the semantics specified for a particular index access method. Furthermore, the operators in a family are all “compatible”, in a way that is specified by the access method. The operator family concept allows cross-data-type operators to be used with indexes and to be reasoned about using knowledge of access method semantics.

 Operator families are described at length in [Section 38.16](xindex.html).

**Table 52.35. `pg_opfamily` Columns**

|                                               Column Type<br/><br/> Description                                               |
|-------------------------------------------------------------------------------------------------------------------------------|
|                                             `oid` `oid`<br/><br/> Row identifier                                              |
|    `opfmethod` `oid` (references [`pg_am`](catalog-pg-am.html).`oid`)<br/><br/> Index access method operator family is for    |
|                                    `opfname` `name`<br/><br/> Name of this operator family                                    |
|`opfnamespace` `oid` (references [`pg_namespace`](catalog-pg-namespace.html).`oid`)<br/><br/> Namespace of this operator family|
|       `opfowner` `oid` (references [`pg_authid`](catalog-pg-authid.html).`oid`)<br/><br/> Owner of the operator family        |

 The majority of the information defining an operator family is not in its `pg_opfamily` row, but in the associated rows in [`pg_amop`](catalog-pg-amop.html), [`pg_amproc`](catalog-pg-amproc.html), and [`pg_opclass`](catalog-pg-opclass.html).

---

|[Prev](catalog-pg-operator.html)|[Up](catalogs.html)| [Next](catalog-pg-partitioned-table.html)|
|:-------------------------------|:-----------------:|-----------------------------------------:|
|      52.34. `pg_operator`      |[Home](index.html) |       52.36. `pg_partitioned_table`      |

 // \<![CDATA[ \<-- For SVG support if ('WebSocket' in window) { (function() { function refreshCSS() { var sheets = [].slice.call(document.getElementsByTagName("link")); var head = document.getElementsByTagName("head")[0]; for (var i = 0; i \< sheets.length; ++i) { var elem = sheets[i]; head.removeChild(elem); var rel = elem.rel; if (elem.href && typeof rel != "string" || rel.length == 0 || rel.toLowerCase() == "stylesheet") { var url = elem.href.replace(/(&|\\?)\_cacheOverride=\\d+/, ''); elem.href = url + (url.indexOf('?') \>= 0 ? '&' : '?') + '\_cacheOverride=' + (new Date().valueOf()); } head.appendChild(elem); } } var protocol = window.location.protocol === 'http:' ? 'ws://' : 'wss://'; var address = protocol + window.location.host + window.location.pathname + '/ws'; var socket = new WebSocket(address); socket.onmessage = function(msg) { if (msg.data == 'reload') window.location.reload(); else if (msg.data == 'refreshcss') refreshCSS(); }; console.log('Live reload enabled.'); })(); } // ]]\>