Re: New option for pg_basebackup, to specify a different directory for pg_xlog
От | Andres Freund |
---|---|
Тема | Re: New option for pg_basebackup, to specify a different directory for pg_xlog |
Дата | |
Msg-id | 20131118175525.GA26763@awork2.anarazel.de обсуждение исходный текст |
Ответ на | Re: New option for pg_basebackup, to specify a different directory for pg_xlog (Haribabu kommi <haribabu.kommi@huawei.com>) |
Ответы |
Re: New option for pg_basebackup, to specify a different
directory for pg_xlog
|
Список | pgsql-hackers |
On 2013-11-18 15:01:42 +0000, Haribabu kommi wrote: > > /* > + * Returns the malloced string of containing current working directory. > + * The caller has to take care of freeing the memory. > + * On failure exits with error code. > + */ > +static char * > +get_current_working_dir() > +{ > + char *buf; > + size_t buflen; > + > + buflen = MAXPGPATH; > + for (;;) > + { > + buf = pg_malloc(buflen); > + if (getcwd(buf, buflen)) > + break; > + else if (errno == ERANGE) > + { > + pg_free(buf); > + buflen *= 2; > + continue; > + } > + else > + { > + pg_free(buf); > + fprintf(stderr, > + _("%s: could not get current working directory: %s\n"), > + progname, strerror(errno)); > + exit(1); > + } > + } > + > + return buf; > +} > + > +/* > + * calculates the absolute path for the given path. The output absolute path > + * is a malloced string. The caller needs to take care of freeing the memory. > + */ > +static char * > +get_absolute_path(const char *input_path) > +{ > + char *pwd = NULL; > + char *abspath = NULL; > + > + /* Getting the present working directory */ > + pwd = get_current_working_dir(); > + > + if (chdir(input_path) < 0) > + { > + /* Directory doesn't exist */ > + if (errno == ENOENT) > + return NULL; > + > + fprintf(stderr, _("%s: could not change directory to \"%s\": %s\n"), > + progname, input_path, strerror(errno)); > + exit(1); > + } > + > + abspath = get_current_working_dir(); > + > + /* Returning back to old working directory */ > + if (chdir(pwd) < 0) > + { > + fprintf(stderr, _("%s: could not change directory to \"%s\": %s\n"), > + progname, pwd, strerror(errno)); > + exit(1); > + } > + > + pg_free(pwd); > + return abspath; > +} This looks like it should be replaced by moving make_absolute_path from pg_regress.c to path.[ch] and then use that. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: