select open change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Supported versions: Current (18) / 17 / 16 / 15 / 14
Development versions: 19 / devel
Unsupported versions: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
Historical version. PostgreSQL 7.3 reached end of support in November 2007. See the current version for supported releases.

Chapter 11. Extending SQL: Operators

Table of Contents
11.1. Introduction
11.2. Example
11.3. Operator Optimization Information
11.3.1. COMMUTATOR
11.3.2. NEGATOR
11.3.3. RESTRICT
11.3.4. JOIN
11.3.5. HASHES
11.3.6. MERGES (SORT1, SORT2, LTCMP, GTCMP)

11.1. Introduction

PostgreSQL supports left unary, right unary, and binary operators. Operators can be overloaded; that is, the same operator name can be used for different operators that have different numbers and types of operands. If there is an ambiguous situation and the system cannot determine the correct operator to use, it will return an error. You may have to type-cast the left and/or right operands to help it understand which operator you meant to use.

Every operator is "syntactic sugar" for a call to an underlying function that does the real work; so you must first create the underlying function before you can create the operator. However, an operator is not merely syntactic sugar, because it carries additional information that helps the query planner optimize queries that use the operator. Much of this chapter will be devoted to explaining that additional information.

Report a documentation issue

Read the upstream documentation. For corrections, first check the current version.