Thread: pgsql documentation error ?

pgsql documentation error ?

From
BRINER Cedric
Date:
    Synopsis

CREATE [ [ LOCAL ] { TEMPORARY | TEMP } ] TABLE /table_name/ (
    { /column_name/ /data_type/ [ DEFAULT /default_expr/ ] [ /column_constraint/ [, ... ] ]
    | /table_constraint/ }  [, ... ]
)
[ INHERITS ( /parent_table/ [, ... ] ) ]
[ WITH OIDS | WITHOUT OIDS ]

so this means that every column's constrain should be separated by a comma.

but when I create the table:
CREATE TABLE person ( person_id SERIAL      CONSTRAINT pk__person__person_id PRIMARY KEY
                    , guarantor integer     CONSTRAINT fk__person__person_id REFERENCES person(person_id)
                    , firstname varchar(32) CONSTRAINT nn__person__firstname NOT NULL , CONSTRAINT u__person__firstname
UNIQUE
                    , lastname varchar(32)  CONSTRAINT nn__person__lastname  NOT NULL
                    , email varchar(64)     CONSTRAINT u__person__email      UNIQUE
                    , phone varchar(32)     CONSTRAINT u__person__phone      UNIQUE);
I get: ERROR:  parser: parse error at or near ","

and when I replace in the firstname definition the `,' between the two constraint by a ` ' : it works !
CREATE TABLE person ( person_id SERIAL      CONSTRAINT pk__person__person_id PRIMARY KEY
                    , guarantor integer     CONSTRAINT fk__person__person_id REFERENCES person(person_id)
                    , firstname varchar(32) CONSTRAINT nn__person__firstname NOT NULL CONSTRAINT u__person__firstname
UNIQUE
                    , lastname varchar(32)  CONSTRAINT nn__person__lastname  NOT NULL
                    , email varchar(64)     CONSTRAINT u__person__email      UNIQUE
                    , phone varchar(32)     CONSTRAINT u__person__phone      UNIQUE);

Am'I interpreting wrongly the documentation or ... am'I right : )

Regards

Cedric BRINER


Re: pgsql documentation error ?

From
Tom Lane
Date:
BRINER Cedric <work@infomaniak.ch> writes:
>     { /column_name/ /data_type/ [ DEFAULT /default_expr/ ] [ /column_constraint/ [, ... ] ]

> so this means that every column's constrain should be separated by a comma.

This typo is corrected in the 7.4 docs.

            regards, tom lane

Re: pgsql documentation error ?

From
Stephan Szabo
Date:
On Tue, 4 May 2004, BRINER Cedric wrote:

> CREATE [ [ LOCAL ] { TEMPORARY | TEMP } ] TABLE /table_name/ (
>     { /column_name/ /data_type/ [ DEFAULT /default_expr/ ] [ /column_constraint/ [, ... ] ]
>     | /table_constraint/ }  [, ... ]
> )
> [ INHERITS ( /parent_table/ [, ... ] ) ]
> [ WITH OIDS | WITHOUT OIDS ]

What version are you doing this on?  7.4 seems to not have a comma there.