Re: Index file got removed

Поиск
Список
Период
Сортировка
От Julien Rouhaud
Тема Re: Index file got removed
Дата
Msg-id 20161122193212.GD22157@nol.local
обсуждение исходный текст
Ответ на Re: Index file got removed  (Michael Paquier <michael.paquier@gmail.com>)
Ответы Re: Index file got removed  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
On Tue, Nov 22, 2016 at 09:57:29PM +0900, Michael Paquier wrote:
>=20
> So I have explored in the code what would be the best way to fix the prob=
lem:
> 1) Append the correct tablespace to the SQL string of CREATE INDEX.
> Those command strings are stored in changedIndexDefs in tablecmds.c,
> and those get generated by pg_get_indexdef_string(), which can append
> a tablespace if it is *not* a default. Appending *pg_default* to it
> would be dangerous and it would have user-visible changes. OK _string
> is not directly SQL callable but any caller of this function would be
> impacted.
> 2) Take advantage of is_alter_table in DefineIndex(), and do some
> extra processing when assigning the tablespace of an index. In short,
> if IndexStmt->tablespace is NULL and DefineIndex() is used for an
> ALTER TABLE, ignore default_tablespace and assign pg_default. This
> way, the current tablespace of an index is protected all the time,
> even if the tablespace of an index is not the default.
>=20
> 2) is more solid, and is far less invasive than 1), and has no impact
> on existing routines of ruleutils.c, so I have implemented it with a
> set of regression tests. I am adding that to the next CF so as we
> don't forget about it. Thoughts are welcome.

I agree that 2nd solution looks better.  I reviewed your patch and everythi=
ng
works as intended, same for new regression tests which seem to cover all
possible cases.  I mark it as ready for committers.

--
Julien Rouhaud
http://dalibo.com - http://dalibo.org

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

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: Index file got removed
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Index file got removed