Tom Lane wrote:

"Wang Mike" <[EMAIL PROTECTED]> writes:

but this query: select * from test_uuid where id = 'df2b10aa-a31d-11d7-9867-0050babb6029'::uuid dosn't use index

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:

   LEFTARG = uuid,
   RIGHTARG = uuid,
   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


---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to