DROP_OPERATOR_CLASS(7pg16)

πŸ“¦ version 16.15, in opensuse-leap 16.0

πŸ’… NAME πŸ’…

okay so this is the DROP_OPERATOR_CLASS page β€” manual name DROP OPERATOR CLASS(7) β€” straight from the PostgreSQL 16.15 Documentation. It's literally all about how to remove an operator class. Bestie, let's get into it. πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

DROP OPERATOR CLASS [ IF EXISTS ] name USING index_method [ CASCADE | RESTRICT ]

πŸ’– DESCRIPTION πŸ’–

DROP OPERATOR CLASS drops an existing operator class. To execute this command you must be the owner of the operator class β€” no cap, ownership check is real. πŸ‘‘

DROP OPERATOR CLASS does not drop any of the operators or functions referenced by the class. And if there are any indexes depending on the operator class, you will need to specify CASCADE for the drop to complete. It's giving "you can't just leave those indexes hanging," honestly. 😭


πŸŽ€ PARAMETERS πŸŽ€

  • IF EXISTS β€” do not throw an error if the operator class does not exist. A notice is issued in this case. So no dramatic meltdown, just a little notice. πŸ™ˆ
  • name β€” the name (optionally schema-qualified) of an existing operator class. Keep it exact, bestie.
  • index_method β€” the name of the index access method the operator class is for.
  • CASCADE β€” automatically drop objects that depend on the operator class (such as indexes), and in turn all objects that depend on those objects (see Section 5.14). Yes, it's a whole chain reaction. πŸ”₯
  • RESTRICT β€” refuse to drop the operator class if any objects depend on it. This is the default. So if you don't say anything, it's restrictive by default. Periodt.

🧚 NOTES 🧚

DROP OPERATOR CLASS will not drop the operator family containing the class, even if there is nothing else left in the family β€” in particular, in the case where the family was implicitly created by CREATE OPERATOR CLASS. An empty operator family is harmless, but for the sake of tidiness you might wish to remove the family with DROP OPERATOR FAMILY; or perhaps better, use DROP OPERATOR FAMILY in the first place. Lowkey iconic advice. 🫢


πŸ”₯ EXAMPLES πŸ”₯

Remove the B-tree operator class widget_ops:

DROP OPERATOR CLASS widget_ops USING btree;

This command will not succeed if there are any existing indexes that use the operator class. Add CASCADE to drop such indexes along with the operator class. Slay responsibly. πŸ’…


🌈 COMPATIBILITY 🌈

There is no DROP OPERATOR CLASS statement in the SQL standard. Fr fr. That's just how it is. πŸ’€


πŸ‘‘ SEE ALSO πŸ‘‘


🫢 source/version: PostgreSQL 16.15 Β· date: 2026 Β· manual page: DROP OPERATOR CLASS(7) β€” mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from