OK, next question. Why does this work when compiled in MinGW and run
from CMD.EXE:
# cat x.c
#include <stdio.h>
main()
{
system("copy \"c:/msys/1.0/home/bruce momjian/a b\" \"c:/msys/1.0/home/bruce momjian/c d\"");
}
# gcc -o x x.c
# ./x
1 file(s) copied.
C:\msys\1.0\home\Bruce Momjian>x
1 file(s) copied.
The path has forward slashes and spaces.
---------------------------------------------------------------------------
markir@coretech.co.nz wrote:
> Funny thing is, now that the "%p" is silently using '\', the "target" path can
> use '/':
>
> e.g :
>
> archive_command = 'copy "%p" "c:/databases/pgarchive/%f"'
>
> *now* works fine. The next interesting question will be "can I use '/' in the
> restore_command too?". I will have a muddle around with it.
>
> regards
>
> Mark
>
> Quoting markir@coretech.co.nz:
>
> > I agree, the approach seems quite nice.
> >
> > I gave the lastest cvs a go - which is probably cvs as of about 2 hours ago,
> > as
> > a mingw build takes 55 minutes on this machine (compare to 6 minutes when
> > booted into Freebsd... ah well..)
> >
> >
> > Initially tried :
> >
> > archive_command = 'copy "%p" "c:\databases\pgarchive\%f"'
> >
> > But saw errors in the log about "c:databasespgarchive00000..."
> >
> > Looks like '\' needs to be escaped, confirmed this with :
> >
> >
> > archive_command = 'copy "%p" "c:\\databases\\pgarchive\\%f"'
> >
> > Which worked fine. However, it would be nice if the '\' inside the '"' were
> > 'auto-escaped' somehow, as I suspect Mr 'used-windows-all-my-life' will find
> > the current behaviour counter-intuitive.
> >
> > Otherwise looks good
> >
> > Mark
> >
> >
> >
> > Quoting Andrew Dunstan <andrew@dunslane.net>:
> >
> > > Tom Lane said:
> > > > Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > > >> I have gotten confused by this. Does COPY work with quoted paths only
> > > >> if we use forward slashes, or was this fix just for the slash issue
> > > >> and not spaces?
> > > >
> > > > This only fixes the slash issue. If your database path includes spaces
> > > > you'll still need to put quotes in the archive_command, but it
> > > > shouldn't be any worse than
> > > > archive_command = 'copy "%p" "c:\someplace\%f"'
> > > >
> > > > I'd appreciate confirmation though from some win32 users that the above
> > > > indeed works.
> > > >
> > >
> > > That's what my experimentation showed, although I worked with a tiny test.c
> > > file rather than the archive command. I think this is the right solution -
> > > the user should put the quotes in, not postgres.
> > >
> > > cheers
> > >
> > > andrew
> > >
> > >
> > >
> > >
> > > ---------------------------(end of broadcast)---------------------------
> > > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
> > >
> >
> >
> >
> >
>
>
>
>
--
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