Andrew Dunstan wrote:
> >>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,operable program 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).
Claudio reported it worked for pg_dumpall for single quotes:
system(''cmd.exe' 'arg1' 'arg2'');
What exactly is the logic of the stripping?
In fact, pg_ctl is wrong because it is using double quotes instead of
the safer single quotes. Let me make that change.
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073