Skip site navigation (1) Skip section navigation (2)

Re: TEXT column and indexing

From: Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com>
To: Ian Barwick <barwick(at)gmx(dot)net>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: TEXT column and indexing
Date: 2003-11-19 16:35:05
Message-ID: 20031119083025.R85482@megazone.bigpanda.com (view raw or flat)
Thread:
Lists: pgsql-performance
On Wed, 19 Nov 2003, Ian Barwick wrote:

>
> I have this table:
>
> db=> \d object_property_value
>                        Table "db.object_property_value"
>         Column         |          Type          |              Modifiers
> -----------------------+------------------------+--------------------
>  obj_property_value_id | integer                | not null default nextval(...
>  obj_property_id       | integer                | not null
>  value                 | text                   |
> Indexes:
>     "object_property_value_pkey" primary key, btree (obj_property_value_id)
>     "opv_obj_property_id_ix" btree (obj_property_id)
>     "opv_v_ix" btree (substr(value, 1, 128))
> Foreign-key constraints:
>     "object_property_fkey" FOREIGN KEY (obj_property_id)
>            REFERENCES object_property(obj_property_id)
>           ON UPDATE CASCADE ON DELETE CASCADE
> I want to query this table to match a specific value along
> the lines of:
>
> SELECT obj_property_id
>   FROM object_property_value opv
>  WHERE opv.value = 'foo'
>
> The question is therefore: can I get an index to work on the TEXT column? It
> is currently indexed with:
>  "opv_v_ix" btree (substr(value, 1, 128))
>
> which doesn't appear to have any effect. I am probably missing something
> obvious though. I can live with maintaining an extra VARCHAR column but

You probably need to be querying like:
WHERE substr(value,1,128)='foo';
in order to use that index.

While substr(txtcol, 1,128) happens to have the property that it would be
probably be useful in a search against a short constant string, that's an
internal property of that function.

In response to

Responses

pgsql-performance by date

Next:From: Josh BerkusDate: 2003-11-19 17:06:15
Subject: Re: More detail on settings for pgavd?
Previous:From: Manfred KoizarDate: 2003-11-19 16:26:01
Subject: Re: TEXT column and indexing

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group