Re: [HACKERS] pg_dump bug (was Re: [SQL] Slow Inserts Again)

From: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
To: Thomas Lockhart <lockhart(at)alumni(dot)caltech(dot)edu>
Cc: "Ross J(dot) Reedstrom" <reedstrm(at)rice(dot)edu>, pgsql-sql(at)hub(dot)org, "pgsql-hackers(at)postgreSQL(dot)org" <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: [HACKERS] pg_dump bug (was Re: [SQL] Slow Inserts Again)
Date: 1999-05-04 16:55:40
Message-ID: 199905041655.MAA28855@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-sql

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(at)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(at)alumni(dot)caltech(dot)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(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 1999-05-04 17:21:52 Re: [HACKERS] an older problem? hash table out of memory
Previous Message Bruce Momjian 1999-05-04 16:55:03 Re: [HACKERS] varchar-array.patch applied

Browse pgsql-sql by date

  From Date Subject
Next Message G. Anthony Reina 1999-05-04 17:44:51 How to find SQL Functions
Previous Message Thomas Lockhart 1999-05-04 13:54:33 Re: [HACKERS] pg_dump bug (was Re: [SQL] Slow Inserts Again)