Skip to content
← Catalog atlas / pg_operator

SYSTEM CATALOG · System catalog

pg_operator

The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 36.14 for more information.

First seen PG 9.0Last seen PG 19Columns 15

Checked column by column against a PostgreSQL 18.6 instance · Raw measurement record ↗

Columns PostgreSQL 18

pg_operator
COLUMNTYPEDESCRIPTION
oid oidNOT NULL Row identifier
oprname nameNOT NULL Name of the operator
oprnamespace oidNOT NULL The OID of the namespace that contains this operatorReferences:pg_namespace.oid
oprowner oidNOT NULL Owner of the operatorReferences:pg_authid.oid
oprkind "char"NOT NULLDocumented as:char b = infix operator (“both”), or l = prefix operator (“left”)
oprcanmerge booleanNOT NULLDocumented as:bool This operator supports merge joins
oprcanhash booleanNOT NULLDocumented as:bool This operator supports hash joins
oprleft oidNOT NULL Type of the left operand (zero for a prefix operator)References:pg_type.oid
oprright oidNOT NULL Type of the right operandReferences:pg_type.oid
oprresult oidNOT NULL Type of the result (zero for a not-yet-defined “shell” operator)References:pg_type.oid
oprcom oidNOT NULL Commutator of this operator (zero if none)References:pg_operator.oid
oprnegate oidNOT NULL Negator of this operator (zero if none)References:pg_operator.oid
oprcode regprocNOT NULL Function that implements this operator (zero for a not-yet-defined “shell” operator)References:pg_proc.oid
oprrest regprocNOT NULL Restriction selectivity estimation function for this operator (zero if none)References:pg_proc.oid
oprjoin regprocNOT NULL Join selectivity estimation function for this operator (zero if none)References:pg_proc.oid

Columns marked "implicit" are not included in SELECT *; some early statistics views are completed from same-version source, and the extra provenance is shown in the column description.

Common system columns 6

System attributes PostgreSQL provides, normally not expanded by SELECT *. Kept separately so they are not mixed in with ordinary columns.

ColumnsTypeattnum
tableoidoid-6
cmaxcid-5
xmaxxid-4
cmincid-3
xminxid-2
ctidtid-1

Column evolution matrix

Hover a cell for the column type
PresentAdded / type or attribute changeRemoved
COLUMN9.09.19.29.39.49.59.610111213141516171819
oid
oprname
oprnamespace
oprowner
oprkind
oprcanmerge
oprcanhash
oprleft
oprright
oprresult
oprcom
oprnegate
oprcode
oprrest
oprjoin

9.0 is the coverage baseline; a column already present in the baseline is not marked as added. The matrix aligns columns by name, so a rename appears as the old column removed and a new column added.

Evolution timeline

Changes between adjacent majors

PostgreSQL 17 ← 16

Catalog description updated

PostgreSQL 14 ← 13

8 column description updatesCatalog description updated

PostgreSQL 12 ← 11

~ oid: implicit → ordinary1 column description updatesCatalog description updated

PostgreSQL 11 ← 10

Catalog description updated

PostgreSQL 10 ← 9.6

1 column description updatesCatalog description updated

PostgreSQL 9.6 ← 9.5

Catalog description updated

PostgreSQL 9.3 ← 9.2

1 column description updates

Compare any two versions

Pick two versions to see added, removed, and retyped columns. The interactive comparison needs JavaScript; the evolution timeline reads fine without it.