Re: Using ALTER TABLESPACE in pg_dump

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Using ALTER TABLESPACE in pg_dump
Дата
Msg-id 16977.1098205566@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Using ALTER TABLESPACE in pg_dump  (Philip Warner <pjw@rhyme.com.au>)
Ответы Re: Using ALTER TABLESPACE in pg_dump  (Philip Warner <pjw@rhyme.com.au>)
Список pgsql-hackers
Philip Warner <pjw@rhyme.com.au> writes:
> To solve this, we should dump the table definition as a format string and 
> dump the tablespace clause (ie. ' TABLESPACE ts') as a separate part of the 
> table definition TOC entry. If the user wants the tablespace to be dumped, 
> then we substitute the tablespace clause, otherwise a blank string. This 
> could be a useful general approach in the future.

I think the tricky part of that would be inserting the tablespace clause
in the right place; for CREATE INDEX this seems to require nontrivial
parsing.  (Both the index column definitions and the WHERE clause could
be arbitrarily complicated expressions.)  If we can get around that part
then this wouldn't be too hard.

> Also, I like the option of a soft-tablespace option, but also liked the 
> idea of the fake/logical/virtual tablespaces someone suggested earlier; if 
> restoring into a database without a required tablespace, then create a 
> virtual tablespace that points to pg_default.

Given that tablespaces are fundamentally only directories, there isn't
any particularly strong reason to not just make a real tablespace.  You
aren't going to constrain space allocation or anything by having another
directory in/alongside $PGDATA.  So I think the "virtual tablespace"
idea is basically pointless.

The real crux of all this, I think, is "what if I want to restore as
a non-superuser, and so I don't have privilege to create tablespaces
to match what the dump wants?"  The soft-failure option provides an
answer here, but creating either real or virtual tablespaces wouldn't
fly.  A "--notablespace" option in pg_restore would solve it too, but
only if you'd done an -Fc or -Ft dump; with a plain text dump you
still got trouble.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re:
Следующее
От: Philip Warner
Дата:
Сообщение: Re: Using ALTER TABLESPACE in pg_dump