Re: [HACKERS] pg_dump bug (was Re: [SQL] Slow Inserts Again)
От | Thomas Lockhart |
---|---|
Тема | Re: [HACKERS] pg_dump bug (was Re: [SQL] Slow Inserts Again) |
Дата | |
Msg-id | 372EFC19.7A9E6514@alumni.caltech.edu обсуждение исходный текст |
Ответ на | pg_dump bug (was Re: [SQL] Slow Inserts Again) ("Ross J. Reedstrom" <reedstrm@rice.edu>) |
Ответы |
Re: [HACKERS] pg_dump bug (was Re: [SQL] Slow Inserts Again)
|
Список | pgsql-hackers |
> ... 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 */
В списке pgsql-hackers по дате отправления: