Re: a problem with index and user define type

From: Weiping He <laser(at)zhengmai(dot)com(dot)cn>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Wang Mike <itlist(at)msn(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: a problem with index and user define type
Date: 2003-06-23 02:41:42
Message-ID: 3EF668E6.9080107@zhengmai.com.cn
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Tom Lane wrote:

>"Wang Mike" <itlist(at)msn(dot)com> writes:
>
>
>>but this query: select * from test_uuid where id =
>>'df2b10aa-a31d-11d7-9867-0050babb6029'::uuid dosn't use index
>>
>>
>
>
>
>> QUERY PLAN
>>---------------------------------------------------------------
>> Seq Scan on test_uuid (cost=0.00..22.50 rows=500 width=140)
>> Filter: (id = 'df2b10aa-a31d-11d7-9867-0050babb6029'::uuid)
>>
>>
>
>
>
>>why ??
>>
>>
>
>The rows estimate looks pretty fishy --- I think you are getting the
>0.5 default selectivity estimate for an operator that has no restriction
>estimator. Most likely you should have created the operator using eqsel
>and eqjoinsel as the restriction/join estimators.
>
> regards, tom lane
>
>
>
Hi, Tom,

I'm trying to test it, but don't know if I understood you correctly,
you mean we should try to create the operator using
eqsel/eqjoinsel estimators, right?
But after we added those estimators like this:

CREATE OPERATOR = (
LEFTARG = uuid,
RIGHTARG = uuid,
COMMUTATOR = =,
NEGATOR = <>,
PROCEDURE = uuid_eq,
RESTRICT = eqsel,
JOIN = eqjoinsel
);

the situation trun worse: now the explain shows the query using the
index,
the we can't select out the match row! Any hint about what's wrong
with us?

Thanks and Reagards

Laser

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2003-06-23 02:43:36 Re: O_DIRECT in freebsd
Previous Message Tom Lane 2003-06-23 02:28:44 Re: O_DIRECT in freebsd