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, truncated to what's currently supported (patches welcome, of course) :
Table: (http://www.postgresql.org/docs/current/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 ) |EXCLUDE [USING acc_method] (expression) [INCLUDE (column [, ...])] [WHERE (predicate)]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/current/sql-createindex.html)
CREATE [ UNIQUE ] INDEX index_name ON table[ USING acc_method ] ( column [ ops_name ] [, ...] )[ INCLUDE ( column [, ...] ) ][ 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 integerALTER TABLE [ ONLY ] table [ * ]RENAME [ COLUMN ] column TO newcolumnALTER TABLE tableRENAME TO new_tableALTER TABLE tableADD table_constraint_definitionALTER TABLE [ ONLY ] tableDROP CONSTRAINT constraint { RESTRICT | CASCADE }ALTER TABLE tableOWNER TO new_owner
View :
CREATE [ OR REPLACE ] VIEW view [ ( column name list ) ] AS SELECT query
AUTHORS
Ken Y. Clark <[email protected]>, Allen Day <[email protected]>.
SEE ALSO
perl(1), Parse::RecDescent.