Re: Data directory with trailing [back]slash
От | Andrew Dunstan |
---|---|
Тема | Re: Data directory with trailing [back]slash |
Дата | |
Msg-id | 40D60AAC.7000507@dunslane.net обсуждение исходный текст |
Ответ на | Data directory with trailing [back]slash ("Magnus Hagander" <mha@sollentuna.net>) |
Список | pgsql-hackers-win32 |
Why isn't the path being canonicalised, which should remove the trailing slash. cheers andrew Magnus Hagander wrote: >Hi! > >It's not possible to start the postmaster on win32 with: >postmaster -D d:\pgdata\ >or >postmaster -D d:/pgdata/ > >but it does work with >postmaster -D d:\pgdata >or >postmaster -D d:/pgdata/ > > > > >This is because of the stat() call in postmaster.c in checkDataDir() - >stat() clearly does not work with trainling slash/backslash. I changed >the code to: > > strcpy(path, checkdir); >#ifdef WIN32 > if (path[strlen(path)-1] == '\\' || path[strlen(path)-1] == '/') > path[strlen(path)-1] = 0; >#endif > if (stat(path, &stat_buf) == -1) > { > if (errno == ENOENT) > ereport(FATAL, > (errcode_for_file_access(), > errmsg("data directory \"%s\" >does not exist", > path))); > else > ereport(FATAL, > (errcode_for_file_access(), > errmsg("could not read permissions of directory >\"%s\": %m", > path))); > } > > >It seems to work on my system. I'm not sure if this is a good place to >do it, though, or if it should be changed at a different place. (with >this fix it will use duplicate path separators elsewhere, but from what >I can see this appears to work just fine). > >If this seems like a good idea, please apply from code above. If not, >please direct me to a better plavce to work :-) > > >This is all required for the win32 installer, because Windows Installer >automatically adds trailing backslashes to all paths. > >//Magnus > >---------------------------(end of broadcast)--------------------------- >TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faqs/FAQ.html > > >
В списке pgsql-hackers-win32 по дате отправления: