Re: pg_ctl start broken on windows
От | Andrew Dunstan |
---|---|
Тема | Re: pg_ctl start broken on windows |
Дата | |
Msg-id | 40C741B3.70904@dunslane.net обсуждение исходный текст |
Ответ на | Re: pg_ctl start broken on windows (Bruce Momjian <pgman@candle.pha.pa.us>) |
Ответы |
Re: pg_ctl start broken on windows
|
Список | pgsql-hackers-win32 |
Bruce Momjian wrote: >Andrew Dunstan wrote: > > >>As I feared might happen, the use of a system() call to start the >>postmaster in Windows is broken because of the brain dead way its shell >>handles quotes. I was able to get around this in initdb by making sure >>that only one thing on the command line was quoted (by putting PGDATA in >>the environment instead of the command line). We can't do that here ;-( >>. Here's what happens: >> >>C:\msys\1.0\local\pgsql>bin\pg_ctl -D data -l logfile start >>'C:/msys/1.0/local/pgsql/bin/postmaster.exe" < nul >>"logfile' is not recognized as an internal or external command, operableprogram or batch file. >> >> >>I think we'll have to bite the bullet and replace that system() call >>with a direct call to CreateProcess() with the appropriate parameters. I >>haven't ever done this, so some help from one of the more experienced >>Windows programmers would be appreciated. >> >> > >Yes, I assumed pg_ctl would have such issues. pg_dumpall has them as >well calling pg_dump. > >Here is a strange idea that I am looking for someone to check. According >to someone, Win32 system just strips off the first and last quotes, and >that is why it is failing. Try adding a quote to the beginning and end >of the system string, and leave the existing quote intact. That might >fix is and if it does I can add this to CVS. > > > I'll test to make sure, but I can tell you now it won't work. It will see the inner quotes and interpret them as part of the command. (I tried all these variants when I was testing initdb). cheers andrew
В списке pgsql-hackers-win32 по дате отправления: