Subject: Reserved word "date" in tutorial example

From: Greg Smith <[email-masked]>
Date: Tue, 21 May 2013 10:19:45 -0400

doc/src/sgml/query.sgml includes a tutorial example with this definition:

CREATE TABLE weather (
...
     date            date
);

The fact that "date" is used for both the column name and the type is 
highlighted by two later comments:

   (Yes, the column of type date is also named date.  This might be 
convenient or confusing--you choose.)

   type names are not key words in the syntax, except where required to 
support special cases in the SQL standard.

But as a documentation comment submitted recently points out, "date" 
*is* a reserved word in the SQL spec: 
http://www.postgresql.org/docs/current/interactive/sql-keywords-appendix.html 
, just not in PostgreSQL.  That makes using it as a column name in an 
example an odd choice for a tutorial.  The example is using the 
ambiguity to point out where the line between what is and isn't legal is 
at, and maybe that's a feature instead of a bug.

There are a few approaches that could improve on this:

-Keep all of that, but expand the description to link to "SQL Key 
Words"--right now "SQL standard" doesn't go to that section--and say 
this might be a reserved word in other SQL implementations.  This is the 
smallest useful improvement.

-Change the name of the column and remove the two related descriptions.  
This will lose the lesson about where the parser's line is at.

-Do both:  move this example of parser trivia somewhere else, but remove 
it from the tutorial material by using a non-reserved column name there.

-- 
Greg Smith   2ndQuadrant US    [email-masked]   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com

-- 
Sent via pgsql-docs mailing list ([email-masked])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs

---

From: Bruce Momjian <[email-masked]>
Date: Sat, 11 Jan 2014 13:27:12 -0500

On Tue, May 21, 2013 at 10:19:45AM -0400, Greg Smith wrote:
> The fact that "date" is used for both the column name and the type
> is highlighted by two later comments:
> 
>   type names are not key words in the syntax, except where required
> to support special cases in the SQL standard.
> 
> *is* a reserved word in the SQL spec: http://www.postgresql.org/docs/current/interactive/sql-keywords-appendix.html
> , just not in PostgreSQL.  That makes using it as a column name in
> an example an odd choice for a tutorial.  The example is using the
> ambiguity to point out where the line between what is and isn't
> legal is at, and maybe that's a feature instead of a bug.
> 
> this might be a reserved word in other SQL implementations.  This is
> the smallest useful improvement.
> 
> -Change the name of the column and remove the two related
> descriptions.  This will lose the lesson about where the parser's
> line is at.
> 
> -Do both:  move this example of parser trivia somewhere else, but
> remove it from the tutorial material by using a non-reserved column
> name there.

I reviewed this report and I can't see adding details to a tutorial
about the fact that other databases might use "date" as a reserved word.
I also can't see that renaming the field really add much.

-- 
  Bruce Momjian  <[email-masked]>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +