Kristofer Munn <kmunn@munn.com> writes:
> I have a table with an array like so:
> create table foo (
> id int4,
> names varchar(80)[]
> );
> and would like to place an index on name[1].
Right now the only way is to make a function that extracts names[1]
and create a functional index on yourfunction(names).
Although functional indexes are a perfectly good general solution from
an academic point of view, this is still a pain in the neck :-(.
Also kinda slow, unless you code the function in C.
I recall talking to someone who was going to look at supporting more
general expressions for index values, but nothing's come of the idea
so far.
regards, tom lane