Обсуждение: Create index on array element?
I guess one cannot create an index on an element of an array?
test=> create table test ( ordinal int[] );
CREATE TABLE
test=> create unique index x1 on test ( ordinal[1] );
ERROR: syntax error at or near ")" at character 45
LINE 1: create unique index x1 on test ( ordinal[1] );
^
Correct, or is my syntax wrong?
On Wed, 2006-11-29 at 14:39 -0600, Dave Bodenstab wrote:
> I guess one cannot create an index on an element of an array?
>
> test=> create table test ( ordinal int[] );
> CREATE TABLE
> test=> create unique index x1 on test ( ordinal[1] );
> ERROR: syntax error at or near ")" at character 45
> LINE 1: create unique index x1 on test ( ordinal[1] );
> ^
You need more parenthesis.
test=> create unique index x1 on test ( ( ordinal[1] ) );
The reason is because "ordinal[1]" is an expression, similar to "ordinal
[1] + 5" which would also need parenthesis.
Hope this helps,
Jeff Davis
Jeff Davis wrote: > On Wed, 2006-11-29 at 14:39 -0600, Dave Bodenstab wrote: > >>I guess one cannot create an index on an element of an array? >> >>test=> create table test ( ordinal int[] ); >>CREATE TABLE >>test=> create unique index x1 on test ( ordinal[1] ); >>ERROR: syntax error at or near ")" at character 45 >>LINE 1: create unique index x1 on test ( ordinal[1] ); >> ^ > > > You need more parenthesis. > > test=> create unique index x1 on test ( ( ordinal[1] ) ); > > The reason is because "ordinal[1]" is an expression, similar to "ordinal > [1] + 5" which would also need parenthesis. > > Hope this helps, > Jeff Davis Excellent! I never considered that "ordinal[1]" was an expression. Thanks.