Re: [PATCHES] ALTER TABLE ... SET TABLESPACE - Mailing list pgsql-hackers

From Gavin Sherry
Subject Re: [PATCHES] ALTER TABLE ... SET TABLESPACE
Date
Msg-id Pine.LNX.4.58.0406211513240.28494@linuxworld.com.au
Whole thread Raw
In response to Re: [PATCHES] ALTER TABLE ... SET TABLESPACE  (Tatsuo Ishii <t-ishii@sra.co.jp>)
List pgsql-hackers
I'm rewriting the patch so don't worry :-)

Thanks,

Gavin

On Mon, 21 Jun 2004, Mark Kirkwood wrote:

> I don't know if this provides any more info than you already have -
> but is my last few lines from a single process backend run with valgrind :
>
> ==19666== Syscall param write(buf) contains uninitialised or
> unaddressable byte(s)
> ==19666==    at 0x404D94F8: __GI___libc_write (in /lib/libc-2.3.2.so)
> ==19666==    by 0x80934F8: XLogFlush (xlog.c:1414)
> ==19666==    by 0x8090723: RecordTransactionCommit (xact.c:550)
> ==19666==    by 0x8090BC0: CommitTransaction (xact.c:931)
> ==19666==    Address 0x4219236A is not stack'd, malloc'd or free'd
> backend>         1: oid (typeid = 26, len = 4, typmod = -1, byval = t)
>          2: nspname     (typeid = 19, len = 64, typmod = -1, byval = f)
>          3: relname     (typeid = 19, len = 64, typmod = -1, byval = f)
>         ----
> ==19666==
> ==19666== Invalid write of size 4
> ==19666==    at 0x8109B00: DLMoveToFront (dllist.c:237)
> ==19666==    by 0x81B2EB5: SearchCatCache (catcache.c:1155)
> ==19666==    by 0x81B7D72: GetSysCacheOid (syscache.c:606)
> ==19666==    by 0x81B8C7A: get_relname_relid (lsyscache.c:879)
> ==19666==    Address 0xCC3D5C04 is not stack'd, malloc'd or free'd
> Segmentation fault
>
>
> Gavin Sherry wrote:
>
> >On Sun, 20 Jun 2004, Tatsuo Ishii wrote:
> >
> >
> >
> >>>>Attached is a patch implementing this functionality.
> >>>>
> >>>>I've modified make_new_heap() as well as swap_relfilenodes() to not assume
> >>>>that tablespaces remain the same from old to new heap. I thought it better
> >>>>to go down this road than introduce a lot of duplicate code.
> >>>>
> >>>>
> >>>I have tried your patches and it works great. Thanks.
> >>>
> >>>One thing I noticed was if I change tablespace for a table having
> >>>indexes, they are left in the old tablespace and the table itself was
> >>>moved to the new tablespace. I regard this is a good thing since I
> >>>could assign different table spaces for table and indexes.
> >>>It would be even better to assign different tablespaces for each
> >>>index.
> >>>
> >>>
> >>Hm. It seems there's a problem with tablespaces. What I did was:
> >>
> >>pgbench -i test
> >>alter table accounts set tablespace mydb2;
> >>\d accounts
> >>
> >>backend crashes by signal 11...
> >>
> >>
> >
> >
> >
>
>
> !DSPAM:40d66cf4282571539216297!
>
>


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Applying patches
Next
From: "Santo Quartarone"
Date:
Subject: email browser?