Re: [PATCHES] ALTER TABLE ... SET TABLESPACE

From: Mark Kirkwood <markir(at)coretech(dot)co(dot)nz>
To: Gavin Sherry <swm(at)linuxworld(dot)com(dot)au>
Cc: Tatsuo Ishii <t-ishii(at)sra(dot)co(dot)jp>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [PATCHES] ALTER TABLE ... SET TABLESPACE
Date: 2004-06-21 05:06:26
Message-ID: 40D66CD2.1040107@coretech.co.nz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches

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...
>>
>>
>
>
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Gavin Sherry 2004-06-21 05:13:39 Re: [PATCHES] ALTER TABLE ... SET TABLESPACE
Previous Message Gavin Sherry 2004-06-21 04:36:20 Re: [PATCHES] ALTER TABLE ... SET TABLESPACE

Browse pgsql-patches by date

  From Date Subject
Next Message Gavin Sherry 2004-06-21 05:13:39 Re: [PATCHES] ALTER TABLE ... SET TABLESPACE
Previous Message Gavin Sherry 2004-06-21 04:36:20 Re: [PATCHES] ALTER TABLE ... SET TABLESPACE