Re: open item: tablespace handing in pg_dump/pg_restore
От | Bruce Momjian |
---|---|
Тема | Re: open item: tablespace handing in pg_dump/pg_restore |
Дата | |
Msg-id | 200410041901.i94J1CG18426@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: open item: tablespace handing in pg_dump/pg_restore (Reini Urban <rurban@x-ray.at>) |
Ответы |
Re: open item: tablespace handing in pg_dump/pg_restore
(Tom Lane <tgl@sss.pgh.pa.us>)
|
Список | pgsql-hackers |
I am confused. CVS has in port.h:#if defined(WIN32) || defined(__CYGWIN__)/* * Win32 doesn't have reliable rename/unlinkduring concurrent access, * and we need special code to do symlinks. */extern int pgrename(const char *from,const char *to);extern int pgunlink(const char *path);extern int pgsymlink(const char *oldpath, const char *newpath);...#definerename(from, to) pgrename(from, to)#define unlink(path) pgunlink(path)#define symlink(oldpath,newpath) pgsymlink(oldpath, newpath) so you should already be calling the junction code on Cygwin. --------------------------------------------------------------------------- Reini Urban wrote: > Tom Lane schrieb: > > Gavin Sherry <swm@linuxworld.com.au> writes: > >>I though this may have been the problem. configure.in defines HAVE_SYMLINK > >>to 1 if we are win32. It seems that for Reini's case we are setting our > >>template (and PORTNAME) to win32 when I suspect it should be cygwin. > >>Anyone got any ideas? > > > > What are the prospects of making the junction code work under cygwin? > > Somethink like the attached patch is easier. > Just replace symlink() for dirs with link() #ifdef __CYGWIN__ > > just wait a sec until the tests run through... > (completely fresh build) > -- > Reini Urban > http://xarch.tu-graz.ac.at/home/rurban/ > Index: tablespace.c > =================================================================== > RCS file: /projects/cvsroot/pgsql-server/src/backend/commands/tablespace.c,v > retrieving revision 1.11 > diff -u -b -r1.11 tablespace.c > --- tablespace.c 30 Aug 2004 02:54:38 -0000 1.11 > +++ tablespace.c 4 Oct 2004 18:37:13 -0000 > @@ -349,7 +349,11 @@ > linkloc = (char *) palloc(strlen(DataDir) + 11 + 10 + 1); > sprintf(linkloc, "%s/pg_tblspc/%u", DataDir, tablespaceoid); > > +#ifdef __CYGWIN__ > + if (link(location, linkloc) < 0) > +#else > if (symlink(location, linkloc) < 0) > +#endif > ereport(ERROR, > (errcode_for_file_access(), > errmsg("could not create symbolic link \"%s\": %m", > @@ -976,7 +980,11 @@ > linkloc = (char *) palloc(strlen(DataDir) + 11 + 10 + 1); > sprintf(linkloc, "%s/pg_tblspc/%u", DataDir, xlrec->ts_id); > > +#ifdef __CYGWIN__ > + if (link(location, linkloc) < 0) > +#else > if (symlink(location, linkloc) < 0) > +#endif > { > if (errno != EEXIST) > ereport(ERROR, > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly -- 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, Pennsylvania19073
В списке pgsql-hackers по дате отправления: