Well,

After looking at the code for pg_dump, it appears that all identifiers
go through fmtId which does as you thougt, it looks to see if a character
is non-lower case, a digit, or an '_' then it double quotes it.
I am going to change this behavior to always double quote it and see 
if it breaks anything.

I also noted a possible memory leak that I introduced when I added
the code to dump the ACLs for tables and such. I will take care of
this as well.

My concern is that I do not have a database with enough stuff to
really test this. I tried to dump the regression and template1 
databases, but template1 had nothing in it and regression failed
not being able to find a trigger.

Does anyone have a good test database that they could send me the
pg_dump of? If it is really big, I can either ftp it from you, or
you could ftp it to me.

Thanks,

Matt
> We need to think about whether to surround all identifiers with double
> quotes all the time in pg_dump output. 
> 
> The reason is that Postgres allows reserved keywords to be specified as
> table and column names if they are surrounded by the double quotes, but
> pg_dump doesn't know whether an identifier also happens to be a reserved
> keyword. afaik it's now only using DQs if there is upper case or funny
> characters in the identifier. Instead it should probably surround the
> fields with DQs all the time. It could perhaps have a command-line
> switch to turn off that feature if necessary.
> 
> The alternative to always using the DQs is to have pg_dump use the
> keywords.c routine available in the backend. But I don't think that is
> as reliable since it isn't guaranteed to be in sync with the backend
> version and since there are non-reserved keywords in that file which
> test the same as the reserved ones.
> 
> This should probably be a "must do" for v6.4...
> 
> Comments?
> 
>                       - Tom
> 

----------
Matthew C. Aycock
Operating Systems Analyst/Admin, Senior
Dept Math/CS
Emory University, Atlanta, GA 
Internet:  matt@mathcs.emory.edu 		



Thu, 1 Oct 1998 15:01:24 -0400 (EDT)
"Matthew C. Aycock" <matt@mathcs.emory.edu>
Re: [HACKERS] pg_dump
> After looking at the code for pg_dump, it appears that all identifiers
> go through fmtId which does as you thougt, it looks to see if a character
> is non-lower case, a digit, or an '_' then it double quotes it.
> I am going to change this behavior to always double quote it and see
> if it breaks anything.

I've already got patches to do the double-quote thing, with a command
line option (-n) to recover the old behavior. Will commit that, so you
will only need to do the memory leak stuff. Or would you prefer that I
send you my patches and you can integrate them?

                   - Tom

Fri, 02 Oct 1998 05:00:04 +0000
"Thomas G. Lockhart" <lockhart@alumni.caltech.edu>
Re: [HACKERS] pg_dump