Hi,
pg_dump on 8.0 can't dump index's tablespace information if both table
and its index 's tablespaces are different. For example:
create table a(i int) tablespace ts1;
create index a_idx on a (i) tablespace ts2;
create index a_idx2 on a (i) tablespace pg_default;
Assuming tablespace ts1 ans ts2 were defined.
If dump and restore them , tablespace of a_idx and a_idx2 was ts1 ,
which is a's tablespace ,not index's one .
Here's a patch .
*** pg_dump.c.orig 2005-01-20 15:14:28.000000000 +0900
--- pg_dump.c 2005-01-20 15:14:53.000000000 +0900
***************
*** 6899,6905 ****
ArchiveEntry(fout, indxinfo->dobj.catId, indxinfo->dobj.dumpId,
indxinfo->dobj.name,
tbinfo->dobj.namespace->dobj.name,
! tbinfo->reltablespace,
tbinfo->usename, false,
"INDEX", q->data, delq->data, NULL,
indxinfo->dobj.dependencies, indxinfo->dobj.nDeps,
--- 6899,6905 ----
ArchiveEntry(fout, indxinfo->dobj.catId, indxinfo->dobj.dumpId,
indxinfo->dobj.name,
tbinfo->dobj.namespace->dobj.name,
! indxinfo->tablespace,
tbinfo->usename, false,
"INDEX", q->data, delq->data, NULL,
indxinfo->dobj.dependencies, indxinfo->dobj.nDeps,
--
TANIDA Yutaka <tanida@sra.co.jp>