On Mon, Oct 14, 2013 at 10:55 AM, Tom Lane <t...@sss.pgh.pa.us> wrote:

> Soroosh Sardari <soroosh.sard...@gmail.com> writes:
> > I developed a new character string type, named myvarchar.
> > Also an operator class for btree is added.
> > PROBLEM:
> > When I executed a query with where clause on 'mine' column, PG does not
> use
> > index.
>
> Most likely you got the opclass definition wrong.  Since you've shown us
> no details of what you did, it's hard to speculate about just how.  But
> note that varchar itself is a pretty bad model for a user-added datatype,
> because it has a special symbiotic relationship with type "text" (to wit,
> it has no operators of its own but uses text's operators via implicit
> casts).  To get to a working independent datatype like this, you'd need
> to pick the right aspects of each of text and varchar to clone.  So my
> unfounded speculation is you didn't do that just right.
>
>                         regards, tom lane
>


As Tom said, I did something wrong when I was creating new operators.
The RESTRICT parameter is forgotten. Since all varchar operations
redirected to text operators, hence my operators must be like
operators of type text.

I used following command to find text operator:

select * from pg_operator  where oprleft = 25
 and oprright = 25

P.S : 25 is oid of text type.

Cheers,
Soroosh Sardari

Reply via email to