Re: SELECT with LIKE clause makes full table scan

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Julien Rouhaud <rjuju123@gmail.com>
Cc: Dominique Devienne <ddevienne@gmail.com>, Matthias Apitz <guru@unixarea.de>, Josef Šimánek <josef.simanek@gmail.com>, pgsql-general <pgsql-general@lists.postgresql.org>
Date: 2022-01-26T15:03:48Z
Lists: pgsql-general
Julien Rouhaud <rjuju123@gmail.com> writes:
> On Wed, Jan 26, 2022 at 02:34:21PM +0100, Dominique Devienne wrote:
>> On Wed, Jan 26, 2022 at 1:13 PM Julien Rouhaud <rjuju123@gmail.com> wrote:
>>> That index can't be used with a LIKE that has a trailing wildcard.

>> So what makes you say that? --DD

> This part of the documentation you mentioned:

>> However, if your database does not use the C locale you will need to create
>> the index with a special operator class to support indexing of
>> pattern-matching queries; see Section 11.10 below.

Note that declaring the index with C collation should also work,
and might be preferable to using the pattern_ops opclass.
C collation has at least some chance of being used explicitly
in queries, whereas a pattern_ops index is basically never going
to match anything but LIKE/regex searches.

			regards, tom lane