Re: [SQL] "quoting" column names - Mailing list pgsql-sql

From Tom Lane
Subject Re: [SQL] "quoting" column names
Date
Msg-id 22436.931874901@sss.pgh.pa.us
Whole thread Raw
In response to "quoting" column names  (Patrik Kudo <kudo@partitur.se>)
Responses Re: [SQL] "quoting" column names  (Herouth Maoz <herouth@oumail.openu.ac.il>)
List pgsql-sql
Patrik Kudo <kudo@partitur.se> writes:
> create table login (userid text, when datetime);
> select when from login where userid = 'xxxx';
> In 6.5 I have to do:
> select "when" from login where userid = 'xxxx';

Right ... WHEN is a keyword in CASE expressions, which didn't use to
be implemented but are now.

> My question now is, should I always quote column names, just in case,
> or should I only quote column names that are "almost reserved"?

In theory you should only have to worry about keywords that are
reserved in SQL92 but that Postgres hasn't gotten around to implementing
yet.  That's a fairly short list, I think, but I do not have the
details handy.  (Anyone?)

Quoting every column name in sight would make your SQL pretty unreadable
(pg_dump now does it by default ... try reading pg_dump commands :-().
Also, if you have a reserved word as a column name, you won't be able
to access the table at all using tools that don't quote column names.
Better to rename your columns if you get burnt by this.
        regards, tom lane


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: [SQL] Postgres ERROR
Next
From: Thomas Good
Date:
Subject: Re: [SQL] calculating percentages