Re: pattern matching indexing - Mailing list pgsql-docs

From Peter Eisentraut
Subject Re: pattern matching indexing
Date
Msg-id 1356615259.13340.4.camel@vanquo.pezone.net
Whole thread Raw
In response to Re: pattern matching indexing  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: pattern matching indexing  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-docs
On Mon, 2012-12-24 at 10:12 -0500, Tom Lane wrote:
> Peter Eisentraut <peter_e@gmx.net> writes:
> > To index pattern matching, you can use the _pattern_ops operator
> > classes, or you can set the column collation in the index to "C".  The
> > latter option doesn't appear to be documented (unless you read very deep
> > between the lines).  Is that intentional?
>
> It is stated at
> http://www.postgresql.org/docs/devel/static/indexes-opclass.html
> that you don't need the special pattern opclasses in C locale.
> Feel free to rephrase or document elsewhere if you find that too
> obscure.

What it doesn't make very clear is that you can also override the locale
in the index definition itself.  So instead of the recommended

CREATE INDEX test_index ON test_table (col varchar_pattern_ops);

you can write nearly equivalently

CREATE INDEX test_index ON test_table (col COLLATE "C");

I'm also wondering whether the latter wouldn't be a preferable
recommendation going forward.  I suppose it's also a matter of taste,
but such an index can also be used for other things (e.g. ORDER BY col
COLLATE "C"), and it uses less obscure and magic functionality.



pgsql-docs by date:

Previous
From: Fujii Masao
Date:
Subject: Re: pg_resetxlog -l
Next
From: Tom Lane
Date:
Subject: Re: pattern matching indexing