pg_tablespace_location() failure with allow_in_place_tablespaces

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема pg_tablespace_location() failure with allow_in_place_tablespaces
Дата
Msg-id YiG1RleON1WBcLnX@paquier.xyz
обсуждение исходный текст
Ответы Re: pg_tablespace_location() failure with allow_in_place_tablespaces  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
Re: pg_tablespace_location() failure with allow_in_place_tablespaces  (Michael Paquier <michael@paquier.xyz>)
Список pgsql-hackers
Hi all,

While playing with tablespaces and recovery in a TAP test, I have
noticed that retrieving the location of a tablespace created with
allow_in_place_tablespaces enabled fails in pg_tablespace_location(),
because readlink() sees a directory in this case.

The use may be limited to any automated testing and
allow_in_place_tablespaces is a developer GUC, still it seems to me
that there is an argument to allow the case rather than tweak any
tests to hardcode a path with the tablespace OID.  And any other code
paths are able to handle such tablespaces, be they in recovery or in
tablespace create/drop.

A junction point is a directory on WIN32 as far as I recall, but
pgreadlink() is here to ensure that we get the correct path on
a source found as pgwin32_is_junction(), so we can rely on that.  This
stuff has led me to the attached.

Thoughts?
--
Michael

Вложения

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

Предыдущее
От: Kyotaro Horiguchi
Дата:
Сообщение: Re: standby recovery fails (tablespace related) (tentative patch and discussion)
Следующее
От: Masahiko Sawada
Дата:
Сообщение: Re: Optionally automatically disable logical replication subscriptions on error