Tom Lane wrote:
> "Kevin Grittner" <[email protected]> writes:
> > Pavel Stehule wrote:
> >> 2012/10/22 Tom Lane <[email protected]>:
> >>> 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 ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers