I found that current pg_dump command produces wrong output if a table
name includes upper letters (See below).
in bin/pg_dump.c:
sprintf(q, "CREATE TABLE \"%s\" (", fmtId(tblinfo[i].relname));
Here fmtId() returns double quoted results if the table name (or
attribute name, index name...) has upper letters. then sprintf adds
extra double quotations. The result is too much double quotations!
I don't understand why sprintf adds extra quotes (I think 6.3.2
didn't).
Comments?
--
Tatsuo Ishii
t-ishii@sra.co.jp
---------------------------------------------------------------
Welcome to the POSTGRESQL interactive sql monitor:
Please read the file COPYRIGHT for copyright terms of POSTGRESQL
type \? for help on slash commands
type \q to quit
type \g or terminate with semicolon to execute query
You are currently connected to the database: test
test=> create table "TTT" ("III" int);
CREATE
test=> insert into "TTT" values(100);
INSERT 143849 1
test=> select * from "TTT";
III
---
100
(1 row)
test=>
[srapc451.sra.co.jp]t-ishii{274} pg_dump test
CREATE TABLE ""TTT"" (""III"" int4);
COPY "TTT" FROM stdin;
100
\.