diff --git a/src/bin/pg_dump/common.c b/src/bin/pg_dump/common.c index c9a806f10a6bd9b3f2936eeb5336e61327bd683d..7974a9db6ddaa357325ddeec8437fb99e673d260 100644 --- a/src/bin/pg_dump/common.c +++ b/src/bin/pg_dump/common.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_dump/common.c,v 1.25 1998/09/20 03:18:42 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/pg_dump/common.c,v 1.26 1998/10/02 16:43:38 thomas Exp $ * * Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2 * @@ -486,6 +486,9 @@ findFuncByName(FuncInfo *finfo, int numFuncs, const char *name) * * checks input string for non-lowercase characters * returns pointer to input string or string surrounded by double quotes + * + * Note that the returned string should be used immediately since it + * uses a static buffer to hold the string. Non-reentrant but fast. */ const char * fmtId(const char *rawid) @@ -493,11 +496,12 @@ fmtId(const char *rawid) const char *cp; static char id[MAXQUERYLEN]; - for (cp = rawid; *cp != '\0'; cp++) - if (!(islower(*cp) || isdigit(*cp) || (*cp == '_'))) - break; + if (! g_force_quotes) + for (cp = rawid; *cp != '\0'; cp++) + if (!(islower(*cp) || isdigit(*cp) || (*cp == '_'))) + break; - if (*cp != '\0') + if (g_force_quotes || (*cp != '\0')) { strcpy(id, "\""); strcat(id, rawid); diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 799a244a67ff715123f228e9a94118d8dc6c90c2..ee944f6acc834c308fd1cc09db56371d51b559c6 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -21,7 +21,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.87 1998/10/01 01:49:12 tgl Exp $ + * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.88 1998/10/02 16:43:40 thomas Exp $ * * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb * @@ -100,6 +100,7 @@ extern int optind, opterr; /* global decls */ +bool g_force_quotes; /* User wants to suppress double-quotes */ bool g_verbose; /* User wants verbose narration of our * activities. */ int g_last_builtin_oid; /* value of the last builtin oid */ @@ -128,11 +129,14 @@ usage(const char *progname) fprintf(stderr, "\t -d \t\t dump data as proper insert strings\n"); fprintf(stderr, - "\t -D \t\t dump data as inserts with attribute names\n"); + "\t -D \t\t dump data as inserts" + " with attribute names\n"); fprintf(stderr, "\t -f filename \t\t script output filename\n"); fprintf(stderr, "\t -h hostname \t\t server host name\n"); + fprintf(stderr, + "\t -n \t\t suppress most quotes around identifiers\n"); fprintf(stderr, "\t -o \t\t dump object id's (oids)\n"); fprintf(stderr, @@ -552,7 +556,7 @@ main(int argc, char **argv) progname = *argv; - while ((c = getopt(argc, argv, "adDf:h:op:st:vzu")) != EOF) + while ((c = getopt(argc, argv, "adDf:h:nop:st:vzu")) != EOF) { switch (c) { @@ -573,6 +577,9 @@ main(int argc, char **argv) case 'h': /* server host */ pghost = optarg; break; + case 'n': /* Do not force double-quotes on identifiers */ + g_force_quotes = false; + break; case 'o': /* Dump oids */ oids = 1; break; diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h index 28389a75a1528e4cd753feb9ed7ad81a0ba4ba74..0a87093561c7093bbce1f3b1f17ac7aed61fb9c1 100644 --- a/src/bin/pg_dump/pg_dump.h +++ b/src/bin/pg_dump/pg_dump.h @@ -5,7 +5,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_dump.h,v 1.32 1998/09/01 04:33:47 momjian Exp $ + * $Id: pg_dump.h,v 1.33 1998/10/02 16:43:41 thomas Exp $ * * Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2 * @@ -164,6 +164,7 @@ typedef struct _AclType /* global decls */ +extern bool g_force_quotes; /* double-quotes for identifiers flag */ extern bool g_verbose; /* verbose flag */ extern int g_last_builtin_oid; /* value of the last builtin oid */ extern FILE *g_fout; /* the script file */