↑↓ select ↵ open ⌫ change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

SQL Commands / Version comparison

What changed?

SQL Commands · PostgreSQL 8.4 → 9.0

Browse PG 9.0

Historical documentation for a PostgreSQL version that is no longer supported.

3 added · 0 removed · 63 changed · 0 coverage changes. These are changes between the pinned reference snapshots.

changedCREATE TABLE
--- 8.4
+++ 9.0
@@ -1,10 +1,20 @@
 CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name ( [
 { column_name data_type [ DEFAULT default_expr ] [ column_constraint [ ... ] ]
 | table_constraint
-| LIKE parent_table [ { INCLUDING | EXCLUDING } { DEFAULTS | CONSTRAINTS | INDEXES } ] ... }
+| LIKE parent_table [ like_option ... ] }
 [, ... ]
 ] )
 [ INHERITS ( parent_table [, ... ] ) ]
+[ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
+[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
+[ TABLESPACE tablespace ]
+
+CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name
+OF type_name [ (
+{ column_name WITH OPTIONS [ DEFAULT default_expr ] [ column_constraint [ ... ] ]
+| table_constraint }
+[, ... ]
+) ]
 [ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
 [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
 [ TABLESPACE tablespace ]
@@ -14,9 +24,9 @@
 [ CONSTRAINT constraint_name ]
 { NOT NULL |
 NULL |
+CHECK ( expression ) |
 UNIQUE index_parameters |
 PRIMARY KEY index_parameters |
-CHECK ( expression ) |
 REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
 [ ON DELETE action ] [ ON UPDATE action ] }
 [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
@@ -24,14 +34,23 @@
 and table_constraint is:
 
 [ CONSTRAINT constraint_name ]
-{ UNIQUE ( column_name [, ... ] ) index_parameters |
+{ CHECK ( expression ) |
+UNIQUE ( column_name [, ... ] ) index_parameters |
 PRIMARY KEY ( column_name [, ... ] ) index_parameters |
-CHECK ( expression ) |
+EXCLUDE [ USING index_method ] ( exclude_element WITH operator [, ... ] ) index_parameters [ WHERE ( predicate ) ] |
 FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ]
 [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] }
 [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
 
-index_parameters in UNIQUE and PRIMARY KEY constraints are:
+and like_option is:
+
+{ INCLUDING | EXCLUDING } { DEFAULTS | CONSTRAINTS | INDEXES | STORAGE | COMMENTS | ALL }
+
+index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:
 
 [ WITH ( storage_parameter [= value] [, ... ] ) ]
 [ USING INDEX TABLESPACE tablespace ]
+
+exclude_element in an EXCLUDE constraint is:
+
+{ column | ( expression ) } [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]
changedALTER TABLE
--- 8.4
+++ 9.0
@@ -6,19 +6,20 @@
 RENAME TO new_name
 ALTER TABLE name
 SET SCHEMA new_schema
-
 where action is one of:
 
 ADD [ COLUMN ] column type [ column_constraint [ ... ] ]
-DROP [ COLUMN ] column [ RESTRICT | CASCADE ]
+DROP [ COLUMN ] [ IF EXISTS ] column [ RESTRICT | CASCADE ]
 ALTER [ COLUMN ] column [ SET DATA ] TYPE type [ USING expression ]
 ALTER [ COLUMN ] column SET DEFAULT expression
 ALTER [ COLUMN ] column DROP DEFAULT
 ALTER [ COLUMN ] column { SET | DROP } NOT NULL
 ALTER [ COLUMN ] column SET STATISTICS integer
+ALTER [ COLUMN ] column SET ( attribute_option = value [, ... ] )
+ALTER [ COLUMN ] column RESET ( attribute_option [, ... ] )
 ALTER [ COLUMN ] column SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
 ADD table_constraint
-DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ]
+DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ]
 DISABLE TRIGGER [ trigger_name | ALL | USER ]
 ENABLE TRIGGER [ trigger_name | ALL | USER ]
 ENABLE REPLICA TRIGGER trigger_name
changedCREATE INDEX
--- 8.4
+++ 9.0
@@ -1,4 +1,4 @@
-CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] name ON table [ USING method ]
+CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ name ] ON table [ USING method ]
 ( { column | ( expression ) } [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] )
 [ WITH ( storage_parameter = value [, ... ] ) ]
 [ TABLESPACE tablespace ]
addedDO
--- 8.4
+++ 9.0
@@ -0,0 +1 @@
+DO [ LANGUAGE lang_name ] code
changedCREATE FUNCTION
--- 8.4
+++ 9.0
@@ -1,8 +1,8 @@
 CREATE [ OR REPLACE ] FUNCTION
-name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } defexpr ] [, ...] ] )
+name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] )
 [ RETURNS rettype
-| RETURNS TABLE ( colname coltype [, ...] ) ]
-{ LANGUAGE langname
+| RETURNS TABLE ( column_name column_type [, ...] ) ]
+{ LANGUAGE lang_name
 | WINDOW
 | IMMUTABLE | STABLE | VOLATILE
 | CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
changedALTER FUNCTION
--- 8.4
+++ 9.0
@@ -6,7 +6,6 @@
 OWNER TO new_owner
 ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
 SET SCHEMA new_schema
-
 where action is one of:
 
 CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
changedCREATE LANGUAGE
--- 8.4
+++ 9.0
@@ -1,3 +1,3 @@
-CREATE [ PROCEDURAL ] LANGUAGE name
-CREATE [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name
-HANDLER call_handler [ VALIDATOR valfunction ]
+CREATE [ OR REPLACE ] [ PROCEDURAL ] LANGUAGE name
+CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name
+HANDLER call_handler [ INLINE inline_handler ] [ VALIDATOR valfunction ]
changedALTER LANGUAGE
--- 8.4
+++ 9.0
@@ -1,2 +1,2 @@
-ALTER [ PROCEDURAL ] LANGUAGE name RENAME TO newname
+ALTER [ PROCEDURAL ] LANGUAGE name RENAME TO new_name
 ALTER [ PROCEDURAL ] LANGUAGE name OWNER TO new_owner
changedCREATE CAST
--- 8.4
+++ 9.0
@@ -1,11 +1,11 @@
-CREATE CAST (sourcetype AS targettype)
-WITH FUNCTION funcname (argtypes)
+CREATE CAST (source_type AS target_type)
+WITH FUNCTION function_name (argument_type [, ...])
 [ AS ASSIGNMENT | AS IMPLICIT ]
 
-CREATE CAST (sourcetype AS targettype)
+CREATE CAST (source_type AS target_type)
 WITHOUT FUNCTION
 [ AS ASSIGNMENT | AS IMPLICIT ]
 
-CREATE CAST (sourcetype AS targettype)
+CREATE CAST (source_type AS target_type)
 WITH INOUT
 [ AS ASSIGNMENT | AS IMPLICIT ]
changedDROP CAST
--- 8.4
+++ 9.0
@@ -1 +1 @@
-DROP CAST [ IF EXISTS ] (sourcetype AS targettype) [ CASCADE | RESTRICT ]
+DROP CAST [ IF EXISTS ] (source_type AS target_type) [ CASCADE | RESTRICT ]
changedCREATE CONVERSION
--- 8.4
+++ 9.0
@@ -1,2 +1,2 @@
 CREATE [ DEFAULT ] CONVERSION name
-FOR source_encoding TO dest_encoding FROM funcname
+FOR source_encoding TO dest_encoding FROM function_name
changedALTER CONVERSION
--- 8.4
+++ 9.0
@@ -1,2 +1,2 @@
-ALTER CONVERSION name RENAME TO newname
-ALTER CONVERSION name OWNER TO newowner
+ALTER CONVERSION name RENAME TO new_name
+ALTER CONVERSION name OWNER TO new_owner
changedCREATE OPERATOR
--- 8.4
+++ 9.0
@@ -1,6 +1,6 @@
 CREATE OPERATOR name (
-PROCEDURE = funcname
-[, LEFTARG = lefttype ] [, RIGHTARG = righttype ]
+PROCEDURE = function_name
+[, LEFTARG = left_type ] [, RIGHTARG = right_type ]
 [, COMMUTATOR = com_op ] [, NEGATOR = neg_op ]
 [, RESTRICT = res_proc ] [, JOIN = join_proc ]
 [, HASHES ] [, MERGES ]
changedALTER OPERATOR
--- 8.4
+++ 9.0
@@ -1 +1 @@
-ALTER OPERATOR name ( { lefttype | NONE } , { righttype | NONE } ) OWNER TO newowner
+ALTER OPERATOR name ( { left_type | NONE } , { right_type | NONE } ) OWNER TO new_owner
changedDROP OPERATOR
--- 8.4
+++ 9.0
@@ -1 +1 @@
-DROP OPERATOR [ IF EXISTS ] name ( { lefttype | NONE } , { righttype | NONE } ) [ CASCADE | RESTRICT ]
+DROP OPERATOR [ IF EXISTS ] name ( { left_type | NONE } , { right_type | NONE } ) [ CASCADE | RESTRICT ]
changedCREATE OPERATOR CLASS
--- 8.4
+++ 9.0
@@ -1,6 +1,6 @@
 CREATE OPERATOR CLASS name [ DEFAULT ] FOR TYPE data_type
 USING index_method [ FAMILY family_name ] AS
 { OPERATOR strategy_number operator_name [ ( op_type, op_type ) ]
-| FUNCTION support_number [ ( op_type [ , op_type ] ) ] funcname ( argument_type [, ...] )
+| FUNCTION support_number [ ( op_type [ , op_type ] ) ] function_name ( argument_type [, ...] )
 | STORAGE storage_type
 } [, ... ]
changedALTER OPERATOR CLASS
--- 8.4
+++ 9.0
@@ -1,2 +1,2 @@
-ALTER OPERATOR CLASS name USING index_method RENAME TO newname
-ALTER OPERATOR CLASS name USING index_method OWNER TO newowner
+ALTER OPERATOR CLASS name USING index_method RENAME TO new_name
+ALTER OPERATOR CLASS name USING index_method OWNER TO new_owner
changedALTER OPERATOR FAMILY
--- 8.4
+++ 9.0
@@ -1,10 +1,10 @@
 ALTER OPERATOR FAMILY name USING index_method ADD
 { OPERATOR strategy_number operator_name ( op_type, op_type )
-| FUNCTION support_number [ ( op_type [ , op_type ] ) ] funcname ( argument_type [, ...] )
+| FUNCTION support_number [ ( op_type [ , op_type ] ) ] function_name ( argument_type [, ...] )
 } [, ... ]
 ALTER OPERATOR FAMILY name USING index_method DROP
 { OPERATOR strategy_number ( op_type [ , op_type ] )
 | FUNCTION support_number ( op_type [ , op_type ] )
 } [, ... ]
-ALTER OPERATOR FAMILY name USING index_method RENAME TO newname
-ALTER OPERATOR FAMILY name USING index_method OWNER TO newowner
+ALTER OPERATOR FAMILY name USING index_method RENAME TO new_name
+ALTER OPERATOR FAMILY name USING index_method OWNER TO new_owner
changedCREATE TYPE
--- 8.4
+++ 9.0
@@ -2,7 +2,7 @@
 ( attribute_name data_type [, ... ] )
 
 CREATE TYPE name AS ENUM
-( 'label' [, ... ] )
+( [ 'label' [, ... ] ] )
 
 CREATE TYPE name (
 INPUT = input_function,
changedCREATE DATABASE
--- 8.4
+++ 9.0
@@ -1,5 +1,5 @@
 CREATE DATABASE name
-[ [ WITH ] [ OWNER [=] dbowner ]
+[ [ WITH ] [ OWNER [=] user_name ]
 [ TEMPLATE [=] template ]
 [ ENCODING [=] encoding ]
 [ LC_COLLATE [=] lc_collate ]
changedALTER DATABASE
--- 8.4
+++ 9.0
@@ -4,7 +4,7 @@
 
 CONNECTION LIMIT connlimit
 
-ALTER DATABASE name RENAME TO newname
+ALTER DATABASE name RENAME TO new_name
 
 ALTER DATABASE name OWNER TO new_owner
 
changedCREATE SCHEMA
--- 8.4
+++ 9.0
@@ -1,2 +1,2 @@
-CREATE SCHEMA schemaname [ AUTHORIZATION username ] [ schema_element [ ... ] ]
-CREATE SCHEMA AUTHORIZATION username [ schema_element [ ... ] ]
+CREATE SCHEMA schema_name [ AUTHORIZATION user_name ] [ schema_element [ ... ] ]
+CREATE SCHEMA AUTHORIZATION user_name [ schema_element [ ... ] ]
changedALTER SCHEMA
--- 8.4
+++ 9.0
@@ -1,2 +1,2 @@
-ALTER SCHEMA name RENAME TO newname
-ALTER SCHEMA name OWNER TO newowner
+ALTER SCHEMA name RENAME TO new_name
+ALTER SCHEMA name OWNER TO new_owner
changedCREATE TABLESPACE
--- 8.4
+++ 9.0
@@ -1 +1 @@
-CREATE TABLESPACE tablespacename [ OWNER username ] LOCATION 'directory'
+CREATE TABLESPACE tablespace_name [ OWNER user_name ] LOCATION 'directory'
changedALTER TABLESPACE
--- 8.4
+++ 9.0
@@ -1,2 +1,4 @@
-ALTER TABLESPACE name RENAME TO newname
-ALTER TABLESPACE name OWNER TO newowner
+ALTER TABLESPACE name RENAME TO new_name
+ALTER TABLESPACE name OWNER TO new_owner
+ALTER TABLESPACE name SET ( tablespace_option = value [, ... ] )
+ALTER TABLESPACE name RESET ( tablespace_option [, ... ] )
changedDROP TABLESPACE
--- 8.4
+++ 9.0
@@ -1 +1 @@
-DROP TABLESPACE [ IF EXISTS ] tablespacename
+DROP TABLESPACE [ IF EXISTS ] tablespace_name
changedGRANT
--- 8.4
+++ 9.0
@@ -1,44 +1,51 @@
 GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
 [,...] | ALL [ PRIVILEGES ] }
-ON [ TABLE ] tablename [, ...]
-TO { [ GROUP ] rolename | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+ON { [ TABLE ] table_name [, ...]
+| ALL TABLES IN SCHEMA schema_name [, ...] }
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
 GRANT { { SELECT | INSERT | UPDATE | REFERENCES } ( column [, ...] )
 [,...] | ALL [ PRIVILEGES ] ( column [, ...] ) }
-ON [ TABLE ] tablename [, ...]
-TO { [ GROUP ] rolename | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+ON [ TABLE ] table_name [, ...]
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
 GRANT { { USAGE | SELECT | UPDATE }
 [,...] | ALL [ PRIVILEGES ] }
-ON SEQUENCE sequencename [, ...]
-TO { [ GROUP ] rolename | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+ON { SEQUENCE sequence_name [, ...]
+| ALL SEQUENCES IN SCHEMA schema_name [, ...] }
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
 GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
-ON DATABASE dbname [, ...]
-TO { [ GROUP ] rolename | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+ON DATABASE database_name [, ...]
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
 GRANT { USAGE | ALL [ PRIVILEGES ] }
-ON FOREIGN DATA WRAPPER fdwname [, ...]
-TO { [ GROUP ] rolename | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+ON FOREIGN DATA WRAPPER fdw_name [, ...]
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
 GRANT { USAGE | ALL [ PRIVILEGES ] }
-ON FOREIGN SERVER servername [, ...]
-TO { [ GROUP ] rolename | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+ON FOREIGN SERVER server_name [, ...]
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
 GRANT { EXECUTE | ALL [ PRIVILEGES ] }
-ON FUNCTION funcname ( [ [ argmode ] [ argname ] argtype [, ...] ] ) [, ...]
-TO { [ GROUP ] rolename | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+ON { FUNCTION function_name ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) [, ...]
+| ALL FUNCTIONS IN SCHEMA schema_name [, ...] }
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
 GRANT { USAGE | ALL [ PRIVILEGES ] }
-ON LANGUAGE langname [, ...]
-TO { [ GROUP ] rolename | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+ON LANGUAGE lang_name [, ...]
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+
+GRANT { { SELECT | UPDATE } [,...] | ALL [ PRIVILEGES ] }
+ON LARGE OBJECT loid [, ...]
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
 GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
-ON SCHEMA schemaname [, ...]
-TO { [ GROUP ] rolename | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+ON SCHEMA schema_name [, ...]
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
 GRANT { CREATE | ALL [ PRIVILEGES ] }
-ON TABLESPACE tablespacename [, ...]
-TO { [ GROUP ] rolename | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+ON TABLESPACE tablespace_name [, ...]
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
-GRANT role [, ...] TO rolename [, ...] [ WITH ADMIN OPTION ]
+GRANT role_name [, ...] TO role_name [, ...] [ WITH ADMIN OPTION ]
changedREVOKE
--- 8.4
+++ 9.0
@@ -1,66 +1,75 @@
 REVOKE [ GRANT OPTION FOR ]
 { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
 [,...] | ALL [ PRIVILEGES ] }
-ON [ TABLE ] tablename [, ...]
-FROM { [ GROUP ] rolename | PUBLIC } [, ...]
+ON { [ TABLE ] table_name [, ...]
+| ALL TABLES IN SCHEMA schema_name [, ...] }
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
 [ CASCADE | RESTRICT ]
 
 REVOKE [ GRANT OPTION FOR ]
 { { SELECT | INSERT | UPDATE | REFERENCES } ( column [, ...] )
 [,...] | ALL [ PRIVILEGES ] ( column [, ...] ) }
-ON [ TABLE ] tablename [, ...]
-FROM { [ GROUP ] rolename | PUBLIC } [, ...]
+ON [ TABLE ] table_name [, ...]
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
 [ CASCADE | RESTRICT ]
 
 REVOKE [ GRANT OPTION FOR ]
 { { USAGE | SELECT | UPDATE }
 [,...] | ALL [ PRIVILEGES ] }
-ON SEQUENCE sequencename [, ...]
-FROM { [ GROUP ] rolename | PUBLIC } [, ...]
+ON { SEQUENCE sequence_name [, ...]
+| ALL SEQUENCES IN SCHEMA schema_name [, ...] }
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
 [ CASCADE | RESTRICT ]
 
 REVOKE [ GRANT OPTION FOR ]
 { { CREATE | CONNECT | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
-ON DATABASE dbname [, ...]
-FROM { [ GROUP ] rolename | PUBLIC } [, ...]
+ON DATABASE database_name [, ...]
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
 [ CASCADE | RESTRICT ]
 
 REVOKE [ GRANT OPTION FOR ]
 { USAGE | ALL [ PRIVILEGES ] }
-ON FOREIGN DATA WRAPPER fdwname [, ...]
-FROM { [ GROUP ] rolename | PUBLIC } [, ...]
+ON FOREIGN DATA WRAPPER fdw_name [, ...]
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
 [ CASCADE | RESTRICT ]
 
 REVOKE [ GRANT OPTION FOR ]
 { USAGE | ALL [ PRIVILEGES ] }
-ON FOREIGN SERVER servername [, ...]
-FROM { [ GROUP ] rolename | PUBLIC } [, ...]
+ON FOREIGN SERVER server_name [, ...]
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
 [ CASCADE | RESTRICT ]
 
 REVOKE [ GRANT OPTION FOR ]
 { EXECUTE | ALL [ PRIVILEGES ] }
-ON FUNCTION funcname ( [ [ argmode ] [ argname ] argtype [, ...] ] ) [, ...]
-FROM { [ GROUP ] rolename | PUBLIC } [, ...]
+ON { FUNCTION function_name ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) [, ...]
+| ALL FUNCTIONS IN SCHEMA schema_name [, ...] }
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
 [ CASCADE | RESTRICT ]
 
 REVOKE [ GRANT OPTION FOR ]
 { USAGE | ALL [ PRIVILEGES ] }
-ON LANGUAGE langname [, ...]
-FROM { [ GROUP ] rolename | PUBLIC } [, ...]
+ON LANGUAGE lang_name [, ...]
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
+[ CASCADE | RESTRICT ]
+
+REVOKE [ GRANT OPTION FOR ]
+{ { SELECT | UPDATE } [,...] | ALL [ PRIVILEGES ] }
+ON LARGE OBJECT loid [, ...]
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
 [ CASCADE | RESTRICT ]
 
 REVOKE [ GRANT OPTION FOR ]
 { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
-ON SCHEMA schemaname [, ...]
-FROM { [ GROUP ] rolename | PUBLIC } [, ...]
+ON SCHEMA schema_name [, ...]
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
 [ CASCADE | RESTRICT ]
 
 REVOKE [ GRANT OPTION FOR ]
 { CREATE | ALL [ PRIVILEGES ] }
-ON TABLESPACE tablespacename [, ...]
-FROM { [ GROUP ] rolename | PUBLIC } [, ...]
+ON TABLESPACE tablespace_name [, ...]
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
 [ CASCADE | RESTRICT ]
 
 REVOKE [ ADMIN OPTION FOR ]
-role [, ...] FROM rolename [, ...]
+role_name [, ...] FROM role_name [, ...]
 [ CASCADE | RESTRICT ]
addedALTER DEFAULT PRIVILEGES
--- 8.4
+++ 9.0
@@ -0,0 +1,39 @@
+ALTER DEFAULT PRIVILEGES
+[ FOR { ROLE | USER } target_role [, ...] ]
+[ IN SCHEMA schema_name [, ...] ]
+abbreviated_grant_or_revoke
+where abbreviated_grant_or_revoke is one of:
+
+GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
+[,...] | ALL [ PRIVILEGES ] }
+ON TABLES
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+
+GRANT { { USAGE | SELECT | UPDATE }
+[,...] | ALL [ PRIVILEGES ] }
+ON SEQUENCES
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+
+GRANT { EXECUTE | ALL [ PRIVILEGES ] }
+ON FUNCTIONS
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+
+REVOKE [ GRANT OPTION FOR ]
+{ { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
+[,...] | ALL [ PRIVILEGES ] }
+ON TABLES
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
+[ CASCADE | RESTRICT ]
+
+REVOKE [ GRANT OPTION FOR ]
+{ { USAGE | SELECT | UPDATE }
+[,...] | ALL [ PRIVILEGES ] }
+ON SEQUENCES
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
+[ CASCADE | RESTRICT ]
+
+REVOKE [ GRANT OPTION FOR ]
+{ EXECUTE | ALL [ PRIVILEGES ] }
+ON FUNCTIONS
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
+[ CASCADE | RESTRICT ]
changedCREATE GROUP
--- 8.4
+++ 9.0
@@ -10,9 +10,9 @@
 | LOGIN | NOLOGIN
 | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
 | VALID UNTIL 'timestamp'
-| IN ROLE rolename [, ...]
-| IN GROUP rolename [, ...]
-| ROLE rolename [, ...]
-| ADMIN rolename [, ...]
-| USER rolename [, ...]
+| IN ROLE role_name [, ...]
+| IN GROUP role_name [, ...]
+| ROLE role_name [, ...]
+| ADMIN role_name [, ...]
+| USER role_name [, ...]
 | SYSID uid
changedALTER GROUP
--- 8.4
+++ 9.0
@@ -1,4 +1,4 @@
-ALTER GROUP groupname ADD USER username [, ... ]
-ALTER GROUP groupname DROP USER username [, ... ]
+ALTER GROUP group_name ADD USER user_name [, ... ]
+ALTER GROUP group_name DROP USER user_name [, ... ]
 
-ALTER GROUP groupname RENAME TO newname
+ALTER GROUP group_name RENAME TO new_name
changedCREATE ROLE
--- 8.4
+++ 9.0
@@ -11,9 +11,9 @@
 | CONNECTION LIMIT connlimit
 | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
 | VALID UNTIL 'timestamp'
-| IN ROLE rolename [, ...]
-| IN GROUP rolename [, ...]
-| ROLE rolename [, ...]
-| ADMIN rolename [, ...]
-| USER rolename [, ...]
+| IN ROLE role_name [, ...]
+| IN GROUP role_name [, ...]
+| ROLE role_name [, ...]
+| ADMIN role_name [, ...]
+| USER role_name [, ...]
 | SYSID uid
changedALTER ROLE
--- 8.4
+++ 9.0
@@ -12,9 +12,9 @@
 | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
 | VALID UNTIL 'timestamp'
 
-ALTER ROLE name RENAME TO newname
+ALTER ROLE name RENAME TO new_name
 
-ALTER ROLE name SET configuration_parameter { TO | = } { value | DEFAULT }
-ALTER ROLE name SET configuration_parameter FROM CURRENT
-ALTER ROLE name RESET configuration_parameter
-ALTER ROLE name RESET ALL
+ALTER ROLE name [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }
+ALTER ROLE name [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT
+ALTER ROLE name [ IN DATABASE database_name ] RESET configuration_parameter
+ALTER ROLE name [ IN DATABASE database_name ] RESET ALL
changedSET ROLE
--- 8.4
+++ 9.0
@@ -1,3 +1,3 @@
-SET [ SESSION | LOCAL ] ROLE rolename
+SET [ SESSION | LOCAL ] ROLE role_name
 SET [ SESSION | LOCAL ] ROLE NONE
 RESET ROLE
changedSET SESSION AUTHORIZATION
--- 8.4
+++ 9.0
@@ -1,3 +1,3 @@
-SET [ SESSION | LOCAL ] SESSION AUTHORIZATION username
+SET [ SESSION | LOCAL ] SESSION AUTHORIZATION user_name
 SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT
 RESET SESSION AUTHORIZATION
changedCREATE USER
--- 8.4
+++ 9.0
@@ -11,9 +11,9 @@
 | CONNECTION LIMIT connlimit
 | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
 | VALID UNTIL 'timestamp'
-| IN ROLE rolename [, ...]
-| IN GROUP rolename [, ...]
-| ROLE rolename [, ...]
-| ADMIN rolename [, ...]
-| USER rolename [, ...]
+| IN ROLE role_name [, ...]
+| IN GROUP role_name [, ...]
+| ROLE role_name [, ...]
+| ADMIN role_name [, ...]
+| USER role_name [, ...]
 | SYSID uid
changedALTER USER
--- 8.4
+++ 9.0
@@ -12,7 +12,7 @@
 | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
 | VALID UNTIL 'timestamp'
 
-ALTER USER name RENAME TO newname
+ALTER USER name RENAME TO new_name
 
 ALTER USER name SET configuration_parameter { TO | = } { value | DEFAULT }
 ALTER USER name SET configuration_parameter FROM CURRENT
changedCREATE CONSTRAINT TRIGGER
--- 8.4
+++ 9.0
@@ -4,4 +4,5 @@
 [ FROM referenced_table_name ]
 { NOT DEFERRABLE | [ DEFERRABLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } }
 FOR EACH ROW
-EXECUTE PROCEDURE funcname ( arguments )
+[ WHEN ( condition ) ]
+EXECUTE PROCEDURE function_name ( arguments )
changedDROP RULE
--- 8.4
+++ 9.0
@@ -1 +1 @@
-DROP RULE [ IF EXISTS ] name ON relation [ CASCADE | RESTRICT ]
+DROP RULE [ IF EXISTS ] name ON table [ CASCADE | RESTRICT ]
changedCREATE TRIGGER
--- 8.4
+++ 9.0
@@ -1,3 +1,4 @@
 CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] }
 ON table [ FOR [ EACH ] { ROW | STATEMENT } ]
-EXECUTE PROCEDURE funcname ( arguments )
+[ WHEN ( condition ) ]
+EXECUTE PROCEDURE function_name ( arguments )
changedALTER TRIGGER
--- 8.4
+++ 9.0
@@ -1 +1 @@
-ALTER TRIGGER name ON table RENAME TO newname
+ALTER TRIGGER name ON table RENAME TO new_name
changedALTER TEXT SEARCH CONFIGURATION
--- 8.4
+++ 9.0
@@ -8,5 +8,5 @@
 ALTER MAPPING FOR token_type [, ... ] REPLACE old_dictionary WITH new_dictionary
 ALTER TEXT SEARCH CONFIGURATION name
 DROP MAPPING [ IF EXISTS ] FOR token_type [, ... ]
-ALTER TEXT SEARCH CONFIGURATION name RENAME TO newname
-ALTER TEXT SEARCH CONFIGURATION name OWNER TO newowner
+ALTER TEXT SEARCH CONFIGURATION name RENAME TO new_name
+ALTER TEXT SEARCH CONFIGURATION name OWNER TO new_owner
changedALTER TEXT SEARCH DICTIONARY
--- 8.4
+++ 9.0
@@ -1,5 +1,5 @@
 ALTER TEXT SEARCH DICTIONARY name (
 option [ = value ] [, ... ]
 )
-ALTER TEXT SEARCH DICTIONARY name RENAME TO newname
-ALTER TEXT SEARCH DICTIONARY name OWNER TO newowner
+ALTER TEXT SEARCH DICTIONARY name RENAME TO new_name
+ALTER TEXT SEARCH DICTIONARY name OWNER TO new_owner
changedALTER TEXT SEARCH PARSER
--- 8.4
+++ 9.0
@@ -1 +1 @@
-ALTER TEXT SEARCH PARSER name RENAME TO newname
+ALTER TEXT SEARCH PARSER name RENAME TO new_name
changedALTER TEXT SEARCH TEMPLATE
--- 8.4
+++ 9.0
@@ -1 +1 @@
-ALTER TEXT SEARCH TEMPLATE name RENAME TO newname
+ALTER TEXT SEARCH TEMPLATE name RENAME TO new_name
changedCREATE SERVER
--- 8.4
+++ 9.0
@@ -1,3 +1,3 @@
-CREATE SERVER servername [ TYPE 'servertype' ] [ VERSION 'serverversion' ]
-FOREIGN DATA WRAPPER fdwname
+CREATE SERVER server_name [ TYPE 'server_type' ] [ VERSION 'server_version' ]
+FOREIGN DATA WRAPPER fdw_name
 [ OPTIONS ( option 'value' [, ... ] ) ]
changedALTER SERVER
--- 8.4
+++ 9.0
@@ -1,3 +1,3 @@
-ALTER SERVER servername [ VERSION 'newversion' ]
+ALTER SERVER server_name [ VERSION 'new_version' ]
 [ OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] ) ]
-ALTER SERVER servername OWNER TO new_owner
+ALTER SERVER server_name OWNER TO new_owner
changedDROP SERVER
--- 8.4
+++ 9.0
@@ -1 +1 @@
-DROP SERVER [ IF EXISTS ] servername [ CASCADE | RESTRICT ]
+DROP SERVER [ IF EXISTS ] server_name [ CASCADE | RESTRICT ]
changedCREATE USER MAPPING
--- 8.4
+++ 9.0
@@ -1,3 +1,3 @@
-CREATE USER MAPPING FOR { username | USER | CURRENT_USER | PUBLIC }
-SERVER servername
+CREATE USER MAPPING FOR { user_name | USER | CURRENT_USER | PUBLIC }
+SERVER server_name
 [ OPTIONS ( option 'value' [ , ... ] ) ]
changedALTER USER MAPPING
--- 8.4
+++ 9.0
@@ -1,3 +1,3 @@
-ALTER USER MAPPING FOR { username | USER | CURRENT_USER | PUBLIC }
-SERVER servername
+ALTER USER MAPPING FOR { user_name | USER | CURRENT_USER | PUBLIC }
+SERVER server_name
 OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] )
changedDROP USER MAPPING
--- 8.4
+++ 9.0
@@ -1 +1 @@
-DROP USER MAPPING [ IF EXISTS ] FOR { username | USER | CURRENT_USER | PUBLIC } SERVER servername
+DROP USER MAPPING [ IF EXISTS ] FOR { user_name | USER | CURRENT_USER | PUBLIC } SERVER server_name
changedCOPY
--- 8.4
+++ 9.0
@@ -1,23 +1,19 @@
-COPY tablename [ ( column [, ...] ) ]
+COPY table_name [ ( column [, ...] ) ]
 FROM { 'filename' | STDIN }
-[ [ WITH ]
-[ BINARY ]
-[ OIDS ]
-[ DELIMITER [ AS ] 'delimiter' ]
-[ NULL [ AS ] 'null string' ]
-[ CSV [ HEADER ]
-[ QUOTE [ AS ] 'quote' ]
-[ ESCAPE [ AS ] 'escape' ]
-[ FORCE NOT NULL column [, ...] ]
+[ [ WITH ] ( option [, ...] ) ]
 
-COPY { tablename [ ( column [, ...] ) ] | ( query ) }
+COPY { table_name [ ( column [, ...] ) ] | ( query ) }
 TO { 'filename' | STDOUT }
-[ [ WITH ]
-[ BINARY ]
-[ OIDS ]
-[ DELIMITER [ AS ] 'delimiter' ]
-[ NULL [ AS ] 'null string' ]
-[ CSV [ HEADER ]
-[ QUOTE [ AS ] 'quote' ]
-[ ESCAPE [ AS ] 'escape' ]
-[ FORCE QUOTE column [, ...] ]
+[ [ WITH ] ( option [, ...] ) ]
+
+where option can be one of:
+
+FORMAT format_name
+OIDS [ boolean ]
+DELIMITER 'delimiter_character'
+NULL 'null_string'
+HEADER [ boolean ]
+QUOTE 'quote_character'
+ESCAPE 'escape_character'
+FORCE_QUOTE { ( column [, ...] ) | * }
+FORCE_NOT_NULL ( column [, ...] )
changedDELETE
--- 8.4
+++ 9.0
@@ -1,4 +1,4 @@
 DELETE FROM [ ONLY ] table [ * ] [ [ AS ] alias ]
-[ USING usinglist ]
+[ USING using_list ]
 [ WHERE condition | WHERE CURRENT OF cursor_name ]
 [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
changedEXPLAIN
--- 8.4
+++ 9.0
@@ -1 +1,9 @@
+EXPLAIN [ ( option [, ...] ) ] statement
 EXPLAIN [ ANALYZE ] [ VERBOSE ] statement
+where option can be one of:
+
+ANALYZE [ boolean ]
+VERBOSE [ boolean ]
+COSTS [ boolean ]
+BUFFERS [ boolean ]
+FORMAT { TEXT | XML | JSON | YAML }
changedSELECT
--- 8.4
+++ 9.0
@@ -23,7 +23,6 @@
 from_item [ NATURAL ] join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]
 
 and with_query is:
-
 with_query_name [ ( column_name [, ...] ) ] AS ( select )
 
 TABLE { [ ONLY ] table_name [ * ] | with_query_name }
changedUPDATE
--- 8.4
+++ 9.0
@@ -1,6 +1,6 @@
 UPDATE [ ONLY ] table [ * ] [ [ AS ] alias ]
 SET { column = { expression | DEFAULT } |
 ( column [, ...] ) = ( { expression | DEFAULT } [, ...] ) } [, ...]
-[ FROM fromlist ]
+[ FROM from_list ]
 [ WHERE condition | WHERE CURRENT OF cursor_name ]
 [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
changedFETCH
--- 8.4
+++ 9.0
@@ -1,5 +1,4 @@
-FETCH [ direction { FROM | IN } ] cursorname
-
+FETCH [ direction [ FROM | IN ] ] cursor_name
 where direction can be empty or one of:
 
 NEXT
changedMOVE
--- 8.4
+++ 9.0
@@ -1 +1 @@
-MOVE [ direction { FROM | IN } ] cursorname
+MOVE [ direction [ FROM | IN ] ] cursor_name
changedPREPARE
--- 8.4
+++ 9.0
@@ -1 +1 @@
-PREPARE name [ ( datatype [, ...] ) ] AS statement
+PREPARE name [ ( data_type [, ...] ) ] AS statement
changedLISTEN
--- 8.4
+++ 9.0
@@ -1 +1 @@
-LISTEN name
+LISTEN channel
changedNOTIFY
--- 8.4
+++ 9.0
@@ -1 +1 @@
-NOTIFY name
+NOTIFY channel [ , payload ]
changedUNLISTEN
--- 8.4
+++ 9.0
@@ -1 +1 @@
-UNLISTEN { name | * }
+UNLISTEN { channel | * }
changedCLUSTER
--- 8.4
+++ 9.0
@@ -1,2 +1,2 @@
-CLUSTER [VERBOSE] tablename [ USING indexname ]
+CLUSTER [VERBOSE] table_name [ USING index_name ]
 CLUSTER [VERBOSE]
changedVACUUM
--- 8.4
+++ 9.0
@@ -1,2 +1,3 @@
+VACUUM [ ( { FULL | FREEZE | VERBOSE | ANALYZE } [, ...] ) ] [ table [ (column [, ...] ) ] ]
 VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table ]
 VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]
changedCOMMENT
--- 8.4
+++ 9.0
@@ -1,17 +1,17 @@
 COMMENT ON
 {
 TABLE object_name |
-COLUMN table_name.column_name |
 AGGREGATE agg_name (agg_type [, ...] ) |
-CAST (sourcetype AS targettype) |
+CAST (source_type AS target_type) |
+COLUMN relation_name.column_name |
 CONSTRAINT constraint_name ON table_name |
 CONVERSION object_name |
 DATABASE object_name |
 DOMAIN object_name |
-FUNCTION func_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) |
+FUNCTION function_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) |
 INDEX object_name |
 LARGE OBJECT large_object_oid |
-OPERATOR op (leftoperand_type, rightoperand_type) |
+OPERATOR operator_name (left_type, right_type) |
 OPERATOR CLASS object_name USING index_method |
 OPERATOR FAMILY object_name USING index_method |
 [ PROCEDURAL ] LANGUAGE object_name |
addedALTER LARGE OBJECT
--- 8.4
+++ 9.0
@@ -0,0 +1 @@
+ALTER LARGE OBJECT large_object_oid OWNER TO new_owner