View Single Post

   
  #1 (permalink)  
Old 04-10-2008, 08:27 AM
TANIDA Yutaka
 
Posts: n/a
Default 8.0 doesn't dump index tablespace correctly.

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>


---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply With Quote