From: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Greg Navis <contact(at)gregnavis(dot)com>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: [pg_trgm] Making similarity(?, ?) < ? use an index |
Date: | 2016-06-03 20:16:15 |
Message-ID: | CAMkU=1w1nzchfDHpS9JNMjqq9TPzfSUuY+nnRHmqGVA93LzeJQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Fri, Jun 3, 2016 at 1:02 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Jeff Janes <jeff(dot)janes(at)gmail(dot)com> writes:
>> On Fri, Jun 3, 2016 at 12:13 PM, Greg Navis <contact(at)gregnavis(dot)com> wrote:
>>> I'm curious ... would it be difficult to modify PostgreSQL so that it'd use
>>> the index for `similarity(lhs, rhs) >= show_limit()` too?
>
>> Yes, that would be very difficult. The project has kind of painted
>> itself into a corner on that.
>
> Well, the thing that is not easy to change is that index scans require
> qualifiers expressed as "indexed_column indexable_operator something".
> But there's a lot of flexibility about what "something" is. You could
> imagine doing, say,
>
> foo ~~ similarity_rhs('bar', 0.01)
>
> where the function just collects its arguments into some composite type
> that we provide an indexable operator to compare strings to.
Oh, interesting. I was thinking we would need to have the operator
receive the parsed but unevaluated expression "tree" (which I didn't
think was possible to do) and then somehow rewrite that structure.
Collecting it into a composite and passing the composite to the
operator does open up a lot of possibilities I hadn't considered.
Cheers,
Jeff
From | Date | Subject | |
---|---|---|---|
Next Message | rverghese | 2016-06-03 21:03:13 | Partitioned postgres tables don't need update trigger?? |
Previous Message | Robert Haas | 2016-06-03 20:13:21 | Re: [GENERAL] Permission Denied Error on pg_xlog/RECOVERYXLOG file |