Tom Lane wrote:
> "Kevin Grittner" <kgri...@mail.com> writes:
> > Pavel Stehule wrote:
> >> 2012/10/22 Tom Lane <t...@sss.pgh.pa.us>:
> >>> Perhaps it would be close enough to what you want to use DISTINCT ON:
> >>> contrib_regression=# explain select distinct on( t <-> 'foo') *,t <-> 
> >>> 'foo' from test_trgm order by t <-> 'foo' limit 10;
> 
> >> good tip - it's working
> 
> > If two or more values happen to be at exactly the same distance,
> > wouldn't you just get one of them?
> 
> Yeah, that is a hazard. I'm not sure whether <->'s results are
> sufficiently quantized to make that a big problem in practice.

It doesn't seem too far-fetched for trigram queries:

test=# select nm, nm <-> 'anders' from (values 
('anderson'),('andersen'),('andersly')) x(nm);
    nm    | ?column? 
----------+----------
 anderson |      0.4
 andersen |      0.4
 andersly |      0.4
(3 rows)

test=# select distinct on (nm <-> 'anders') nm, nm <-> 'anders' from (values 
('anderson'),('andersen'),('andersly')) x(nm) order by nm <-> 'anders' limit 3;
    nm    | ?column? 
----------+----------
 anderson |      0.4
(1 row)

-Kevin


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to