Re: patch : Allow toast tables to be moved to a different tablespace - Mailing list pgsql-hackers
| From | Andreas Karlsson | 
|---|---|
| Subject | Re: patch : Allow toast tables to be moved to a different tablespace | 
| Date | |
| Msg-id | 54FE2C23.1080604@proxel.se Whole thread Raw  | 
		
| In response to | Re: patch : Allow toast tables to be moved to a different tablespace (Julien Tachoires <julmon@gmail.com>) | 
| Responses | 
                	
            		Re: patch : Allow toast tables to be moved to a different tablespace
            		
            		 | 
		
| List | pgsql-hackers | 
On 03/03/2015 04:14 PM, Julien Tachoires wrote:
> On 30/12/2014 03:48, Andreas Karlsson wrote:
>> - A test fails in create_view.out. I looked some into it and did not see
>> how this could happen.
>>
>>[...]
>
> I can't reproduce this issue.
Neither can I anymore.
>> - pg_dump is broken
>>
>>       pg_dump: [archiver (db)] query failed: ERROR:  syntax error at or
>> near "("
>>       LINE 1: ...nest(tc.reloptions) x), ', ') AS toast_reloptions
>> (SELECT sp...
>
> Fixed.
I still get a failing pg_dump test though when running make check-world. 
And it does not work when run manually either.
+ pg_dumpall -f 
/home/andreas/dev/postgresql/contrib/pg_upgrade/tmp_check/dump1.sql
pg_dump: column number -1 is out of range 0..28
cannot duplicate null pointer (internal error)
pg_dumpall: pg_dump failed on database "postgres", exiting
+ pg_dumpall1_status=1
+ [ /home/andreas/dev/postgresql != /home/andreas/dev/postgresql ]
+ 
/home/andreas/dev/postgresql/contrib/pg_upgrade/tmp_check/install//home/andreas/dev/postgresql-inst/bin/pg_ctl 
-m fast stop
waiting for server to shut down.... done
server stopped
+ [ -n  ]
+ [ -n  ]
+ [ -n 1 ]
+ echo pg_dumpall of pre-upgrade database cluster failed
pg_dumpall of pre-upgrade database cluster failed
+ exit 1
+ rm -rf /tmp/pg_upgrade_check-5A3wsI
>> - I do not like how \d handles the toast tablespace. Having TOAST in
>> pg_default and the table in another space looks the same as if there was
>> no TOAST table at all. I think we should always print both tablespaces
>> if either of them are not pg_default.
>
> If we do it that way, we should always show the tablespace even if it's
> pg_default in any case to be consistent. I'm pretty sure that we don't
> want that.
I think we will have to agree to disagree here. I think it should be 
obvious when the toast table is in the default tablespace for tables 
outside it.
>> - Would it be interesting to add syntax for moving the toast index to a
>> separate tablespace?
>
> -1, we just want to be able to move TOAST heap, which is supposed to
> contain a lot of data and we want to move on a different storage device
> / filesystem.
I think we should allow moving the indexes for consistency. With this 
patch we can move everything except for TOAST indexes.
>> - There is no warning if you set the toast table space of a table
>> lacking toast. I think there should be one.
>
> A notice is raised now in that case.
Excellent, also add a test case for this.
>> - Missing periods on the ALTER TABLE manual page after "See also CREATE
>> TABLESPACE" (in two places).
>>
>> - Missing period last in the new paragraph added to the storage manual page.
>
> I don't understand those 2 last points ?
I mean that "TOAST table can be moved to a different tablespace with 
<command>ALTER TABLE SET TOAST TABLESPACE</>" should be changed to 
"TOAST table can be moved to a different tablespace with <command>ALTER 
TABLE SET TOAST TABLESPACE</>." since a sentece should always end in ".".
= New comments
- The patch does not apply cleanly anymore, I had to solve to minor 
conflicts.
- Rewrap the documentation for SET TABLESPACE.
- You have added a tab in alter_table.sgml.
- Merge "case AT_SetTableTableSpace:" and "case AT_SetToastTableSpace:" 
where they both do the same thing, i.e. nothing.
- Should it not be foo_mv in the query from the test suite below?
SELECT spcname FROM pg_class c JOIN pg_class d ON 
(c.reltoastrelid=d.oid) JOIN pg_tablespace ON (d.reltablespace = 
pg_tablespace.oid) WHERE c.relname = 'foo2';
-- 
Andreas Karlsson
		
	pgsql-hackers by date: