Provided by: libsql-translator-perl_1.62-3_all bug

NAME

       SQL::Translator::Parser::PostgreSQL - parser for PostgreSQL

SYNOPSIS

         use SQL::Translator;
         use SQL::Translator::Parser::PostgreSQL;

         my $translator = SQL::Translator->new;
         $translator->parser("SQL::Translator::Parser::PostgreSQL");

DESCRIPTION

       The grammar was started from the MySQL parsers.  Here is the description from PostgreSQL:

       Table:
       (http://www.postgresql.org/docs/view.php?version=7.3&idoc=1&file=sql-createtable.html)

         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 ]

         where column_constraint is:

         [ CONSTRAINT constraint_name ]
         { NOT NULL | NULL | UNIQUE | PRIMARY KEY |
           CHECK (expression) |
           REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL ]
             [ ON DELETE action ] [ ON UPDATE action ] }
         [ DEFERRABLE | NOT DEFERRABLE ]
         [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

         and table_constraint is:

         [ CONSTRAINT constraint_name ]
         { UNIQUE ( column_name [, ... ] ) |
           PRIMARY KEY ( column_name [, ... ] ) |
           CHECK ( expression ) |
           FOREIGN KEY ( column_name [, ... ] )
            REFERENCES reftable [ ( refcolumn [, ... ] ) ]
             [ MATCH FULL | MATCH PARTIAL ]
             [ ON DELETE action ] [ ON UPDATE action ] }
         [ DEFERRABLE | NOT DEFERRABLE ]
         [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

       Index:
       (http://www.postgresql.org/docs/view.php?version=7.3&idoc=1&file=sql-createindex.html)

         CREATE [ UNIQUE ] INDEX index_name ON table
             [ USING acc_method ] ( column [ ops_name ] [, ...] )
             [ WHERE predicate ]
         CREATE [ UNIQUE ] INDEX index_name ON table
             [ USING acc_method ] ( func_name( column [, ... ]) [ ops_name ] )
             [ WHERE predicate ]

       Alter table:

         ALTER TABLE [ ONLY ] table [ * ]
             ADD [ COLUMN ] column type [ column_constraint [ ... ] ]
         ALTER TABLE [ ONLY ] table [ * ]
             ALTER [ COLUMN ] column { SET DEFAULT value | DROP DEFAULT }
         ALTER TABLE [ ONLY ] table [ * ]
             ALTER [ COLUMN ] column SET STATISTICS integer
         ALTER TABLE [ ONLY ] table [ * ]
             RENAME [ COLUMN ] column TO newcolumn
         ALTER TABLE table
             RENAME TO new_table
         ALTER TABLE table
             ADD table_constraint_definition
         ALTER TABLE [ ONLY ] table
                 DROP CONSTRAINT constraint { RESTRICT | CASCADE }
         ALTER TABLE table
                 OWNER TO new_owner

       View table:

           CREATE [ OR REPLACE ] VIEW view [ ( column name list ) ] AS SELECT query

AUTHORS

       Ken Y. Clark <kclark@cpan.org>, Allen Day <allenday@ucla.edu>.

SEE ALSO

       perl(1), Parse::RecDescent.