Re: Supporting = operator in gin/gist_trgm_ops
От | Julien Rouhaud |
---|---|
Тема | Re: Supporting = operator in gin/gist_trgm_ops |
Дата | |
Msg-id | CAOBaU_Y9DUZe1-Aw+=Oz9XqSiCLR2r964nQO82Lq10yc6URc_Q@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Supporting = operator in gin/gist_trgm_ops (Julien Rouhaud <rjuju123@gmail.com>) |
Список | pgsql-hackers |
On Mon, Oct 26, 2020 at 12:02 PM Julien Rouhaud <rjuju123@gmail.com> wrote: > > On Mon, Oct 26, 2020 at 5:03 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > > > Julien Rouhaud <rjuju123@gmail.com> writes: > > > A french user recently complained that with an index created using > > > gin_trgm_ops (or gist_trgm_ops), you can use the index with a clause > > > like > > > col LIKE 'something' > > > but not > > > col = 'something' > > > > Huh, I'd supposed we did that already. > > > > > even though both clauses are technically identical. That's clearly > > > not a high priority thing to support, but looking at the code it seems > > > to me that this could be achieved quite simply: just adding a new > > > operator = in the opclass, with an operator strategy number that falls > > > back doing exactly what LikeStrategyNumber is doing and that's it. > > > There shouldn't be any wrong results, even using wildcards as the > > > recheck will remove any incorrect one. > > > > I think you may be overoptimistic about being able to use the identical > > code path without regard for LIKE wildcards; but certainly it should be > > possible to do this with not a lot of new code. +1. > > Well, that's what I was thinking too, but I tried all the possible > wildcard combinations I could think of and I couldn't find any case > yielding wrong results. As far as I can see the index scans return at > least all the required rows, and all extraneous rows are correctly > removed either by heap recheck or index recheck. > > I'm attaching a patch POC pach with regression tests covering those > combinations. I also found a typo in the 1.4--1.5 pg_trgm upgrade > script, so I'm also attaching a patch for that. Oops, I forgot to git-add the 1.5--1.6.sql upgrade script in the previous patch.
Вложения
В списке pgsql-hackers по дате отправления: