Data directory with trailing [back]slash
От | Magnus Hagander |
---|---|
Тема | Data directory with trailing [back]slash |
Дата | |
Msg-id | 6BCB9D8A16AC4241919521715F4D8BCE1716BA@algol.sollentuna.se обсуждение исходный текст |
Ответы |
Re: Data directory with trailing [back]slash
Re: Data directory with trailing [back]slash |
Список | pgsql-hackers-win32 |
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
В списке pgsql-hackers-win32 по дате отправления: