---
name: "ALTER_OPERATOR_CLASS"
section: "7"
platform: "linux"
package: "postgresql"
version: "18.6-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ALTER_OPERATOR_CLASS"
---

# ALTER\_OPERATOR\_CLASS(7)

change the definition of an operator class

## NAME

ALTER\_OPERATOR\_CLASS - change the definition of an operator class

## SYNOPSIS

```
ALTER OPERATOR CLASS name USING index_method
    RENAME TO new_name
ALTER OPERATOR CLASS name USING index_method
    OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER OPERATOR CLASS name USING index_method
    SET SCHEMA new_schema
```

## DESCRIPTION

**ALTER OPERATOR CLASS** changes the definition of an operator class.

You must own the operator class to use **ALTER OPERATOR CLASS**. To alter the owner, you must be able to SET ROLE to the new owning role, and that role must have CREATE privilege on the operator class's schema. (These restrictions enforce that altering the owner doesn't do anything you couldn't do by dropping and recreating the operator class. However, a superuser can alter ownership of any operator class anyway.)

## PARAMETERS

*name*

The name (optionally schema-qualified) of an existing operator class.

*index\_method*

The name of the index method this operator class is for.

*new\_name*

The new name of the operator class.

*new\_owner*

The new owner of the operator class.

*new\_schema*

The new schema for the operator class.

## COMPATIBILITY

There is no **ALTER OPERATOR CLASS** statement in the SQL standard.

## SEE ALSO

CREATE OPERATOR CLASS ([**CREATE\_OPERATOR\_CLASS**(7)](/CREATE_OPERATOR_CLASS/7.md)), DROP OPERATOR CLASS ([**DROP\_OPERATOR\_CLASS**(7)](/DROP_OPERATOR_CLASS/7.md)), ALTER OPERATOR FAMILY ([**ALTER\_OPERATOR\_FAMILY**(7)](/ALTER_OPERATOR_FAMILY/7.md))
