Re: standby recovery fails (tablespace related) (tentative patch and discussion)
От | Alvaro Herrera |
---|---|
Тема | Re: standby recovery fails (tablespace related) (tentative patch and discussion) |
Дата | |
Msg-id | 20220715120311.3z6g2nqqdtiurlbp@alvherre.pgsql обсуждение исходный текст |
Ответ на | Re: standby recovery fails (tablespace related) (tentative patch and discussion) (Alvaro Herrera <alvherre@alvh.no-ip.org>) |
Список | pgsql-hackers |
On 2022-Jul-15, Alvaro Herrera wrote: > However, looking closer I noticed that on Windows we use our own > readdir() implementation, which AFAICT includes everything to handle > reparse points as symlinks correctly in get_dirent_type. Which means > that do_pg_start_backup is wasting its time with the "#ifdef WIN32" bits > to handle junction points separately. We could just do this > > diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c > index b809a2152c..4966213fde 100644 > --- a/src/backend/access/transam/xlog.c > +++ b/src/backend/access/transam/xlog.c > @@ -8302,13 +8302,8 @@ do_pg_backup_start(const char *backupidstr, bool fast, TimeLineID *starttli_p, > * we sometimes use allow_in_place_tablespaces to create > * directories directly under pg_tblspc, which would fail below. > */ > -#ifdef WIN32 > - if (!pgwin32_is_junction(fullpath)) > - continue; > -#else > if (get_dirent_type(fullpath, de, false, ERROR) != PGFILETYPE_LNK) > continue; > -#endif > > #if defined(HAVE_READLINK) || defined(WIN32) > rllen = readlink(fullpath, linkpath, sizeof(linkpath)); > > And everything should continue to work. Hmm, but it does not: https://cirrus-ci.com/build/4824963784900608 -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
В списке pgsql-hackers по дате отправления: