* Portions Copyright (c) 1994, Regents of the University of California
*
*
- * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.9 2002/10/18 22:05:36 petere Exp $
+ * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.10 2002/11/22 03:09:43 tgl Exp $
*
*-------------------------------------------------------------------------
*/
runPgDump(const char *dbname)
{
PQExpBuffer cmd = createPQExpBuffer();
+ const char *p;
int ret;
- appendPQExpBuffer(cmd, "%s %s -X use-set-session-authorization -Fp %s",
- pgdumploc, pgdumpopts->data, dbname);
+ appendPQExpBuffer(cmd, "%s %s -X use-set-session-authorization -Fp '",
+ pgdumploc, pgdumpopts->data);
+
+ /* Shell quoting is not quite like SQL quoting, so can't use fmtId */
+ for (p = dbname; *p; p++)
+ {
+ if (*p == '\'')
+ appendPQExpBuffer(cmd, "'\"'\"'");
+ else
+ appendPQExpBufferChar(cmd, *p);
+ }
+
+ appendPQExpBufferChar(cmd, '\'');
+
if (verbose)
fprintf(stderr, _("%s: running %s\n"), progname, cmd->data);
fflush(stderr);
ret = system(cmd->data);
+
destroyPQExpBuffer(cmd);
return ret;