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
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 |