Thread: partial index on non default tablespace syntax

partial index on non default tablespace syntax

From
Rajesh Kumar Mallah
Date:
Hi,

Looks like its not possible to specify tablespace of an index with a
where clause,
we require to create the index, and then use ALTER INDEX for setting
the tablespace. Is it something that is already known or its itentional so as
to keep the command unambigious. i also could not find it in the TODO

Regds
Rajesh Kumar Mallah.


Re: partial index on non default tablespace syntax

From
Michael Fuhr
Date:
On Sat, Jun 18, 2005 at 10:24:06PM +0530, Rajesh Kumar Mallah wrote:
> 
> Looks like its not possible to specify tablespace of an index with a
> where clause,

Could you show the command you're running and the error you get,
or otherwise explain what problem you're seeing?  Is the following
not what you're looking for?

CREATE INDEX foo_name_idx ON foo (name) TABLESPACE testspace WHERE name IS NOT NULL;

http://www.postgresql.org/docs/8.0/static/sql-createindex.html

-- 
Michael Fuhr
http://www.fuhr.org/~mfuhr/


Re: partial index on non default tablespace syntax

From
Tom Lane
Date:
Rajesh Kumar Mallah <mallah.rajesh@gmail.com> writes:
> Looks like its not possible to specify tablespace of an index with a
> where clause,

Hm?

regression=# create table foo(f1 int, f2 int);
CREATE TABLE
regression=# create index fooi on foo (f1) tablespace pg_default where f2 < 0;
CREATE INDEX

(I hadn't bothered to make a tablespace to test with, but the point
is the syntax is fine.)
        regards, tom lane


Re: partial index on non default tablespace syntax

From
Rajesh Kumar Mallah
Date:
Fuhr,Tom and Everyone
Extremely sorry for not consulting the docs.
I was doing this:

CREATE INDEX foo_name_idx ON foo (name)
WHERE name IS NOT NULL TABLESPACE testspace  ;

Regds
Rajesh Kumar Mallah.

On 6/18/05, Michael Fuhr <mike@fuhr.org> wrote:
> On Sat, Jun 18, 2005 at 10:24:06PM +0530, Rajesh Kumar Mallah wrote:
> >
> > Looks like its not possible to specify tablespace of an index with a
> > where clause,
>
> Could you show the command you're running and the error you get,
> or otherwise explain what problem you're seeing?  Is the following
> not what you're looking for?
>
> CREATE INDEX foo_name_idx ON foo (name)
>   TABLESPACE testspace
>   WHERE name IS NOT NULL;
>
> http://www.postgresql.org/docs/8.0/static/sql-createindex.html
>
> --
> Michael Fuhr
> http://www.fuhr.org/~mfuhr/
>