Apply, please. It is a bug fix.
> > ... pg_dump seems to have problems with mixed case tablenames. There
> > doesn't seem to be a way to send a quoted tablename into pg_dump as the
> > value for a -t option, in 6.4.2 (example below). Can someone try this on
> > 6.5beta? I know some issues with quoting output of pg_dump (i.e. COPY)
> > was addressed, I'm wondering if input parsing got touched.
>
> pg_dump explicitly converts all table names to lowercase. I've got a
> patch which looks for a table name which starts with a double quote,
> and suppresses the case conversion if so:
>
> [postgres@golem pg_dump]$ pg_dump -t '"MixedCase"' postgres
> CREATE TABLE "MixedCase" (
> "i" int4);
> COPY "MixedCase" FROM stdin;
> 1
> 2
> \.
>
> Patch enclosed for you to try. Bruce, any reason not to apply this to
> the tree?
>
> - Tom
>
> --
> Thomas Lockhart lockhart@alumni.caltech.edu
> South Pasadena, California
> *** pg_dump.c.orig Thu Apr 15 05:08:53 1999
> --- pg_dump.c Tue May 4 13:47:01 1999
> ***************
> *** 606,615 ****
> int i;
>
> tablename = strdup(optarg);
> ! for (i = 0; tablename[i]; i++)
> ! if (isascii((unsigned char) tablename[i]) &&
> ! isupper(tablename[i]))
> ! tablename[i] = tolower(tablename[i]);
> }
> break;
> case 'v': /* verbose */
> --- 606,626 ----
> int i;
>
> tablename = strdup(optarg);
> ! /* quoted string? Then strip quotes and preserve case... */
> ! if (tablename[0] == '"')
> ! {
> ! strcpy(tablename, &tablename[1]);
> ! if (*(tablename+strlen(tablename)-1) == '"')
> ! *(tablename+strlen(tablename)-1) = '\0';
> ! }
> ! /* otherwise, convert table name to lowercase... */
> ! else
> ! {
> ! for (i = 0; tablename[i]; i++)
> ! if (isascii((unsigned char) tablename[i]) &&
> ! isupper(tablename[i]))
> ! tablename[i] = tolower(tablename[i]);
> ! }
> }
> break;
> case 'v': /* verbose */
-- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026