How to determine the operator class that an operator belongs to

From: Marc Munro <marc(at)bloodnok(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: How to determine the operator class that an operator belongs to
Date: 2009-10-24 19:46:02
Message-ID: 1256413562.19701.16.camel@bloodnok.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I'm trying to reconstruct create operator class statements from the
catalogs. My problem is that access method operators are related only
to their operator families.

My current assumtion is that all operators for an operator class will
have the same left and right operand types as the data type (opcintype)
of the operator class, or will be None.

Here is my query:
-- List all operator family operators.
select am.amopfamily as family_oid,
oc.oid as class_oid
from pg_catalog.pg_amop am
inner join pg_catalog.pg_operator op
on op.oid = am.amopopr
left outer join pg_catalog.pg_opclass oc
on oc.opcfamily = am.amopfamily
and (oc.opcintype = op.oprleft or op.oprleft = 0)
and (oc.opcintype = op.oprright or op.oprright = 0)

Is my assumption correct? Does the query seem correct?

Thanks in advance.

__
Marc

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tawita Tererei 2009-10-24 19:46:03 Re: is postgres a good solution for billion record data.. what about mySQL?
Previous Message Bruno Baguette 2009-10-24 19:27:21 Re: How can I get one OLD.* field in a dynamic query inside a trigger function ?