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 10 → 11

Browse PG 11 →

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

6 added · 0 removed · 29 changed · 0 coverage changes. These are changes in the pinned reference snapshots.

changedCREATE TABLE
--- 10
+++ 11
@@ -5,7 +5,7 @@
 [, ... ]
 ] )
 [ INHERITS ( parent_table [, ... ] ) ]
-[ PARTITION BY { RANGE | LIST } ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [, ... ] ) ]
+[ PARTITION BY { RANGE | LIST | HASH } ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [, ... ] ) ]
 [ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
 [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
 [ TABLESPACE tablespace_name ]
@@ -16,7 +16,7 @@
 | table_constraint }
 [, ... ]
 ) ]
-[ PARTITION BY { RANGE | LIST } ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [, ... ] ) ]
+[ PARTITION BY { RANGE | LIST | HASH } ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [, ... ] ) ]
 [ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
 [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
 [ TABLESPACE tablespace_name ]
@@ -26,8 +26,8 @@
 { column_name [ WITH OPTIONS ] [ column_constraint [ ... ] ]
 | table_constraint }
 [, ... ]
-) ] FOR VALUES partition_bound_spec
-[ PARTITION BY { RANGE | LIST } ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [, ... ] ) ]
+) ] { FOR VALUES partition_bound_spec | DEFAULT }
+[ PARTITION BY { RANGE | LIST | HASH } ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [, ... ] ) ]
 [ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
 [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
 [ TABLESPACE tablespace_name ]
@@ -65,10 +65,12 @@
 
 IN ( { numeric_literal | string_literal | TRUE | FALSE | NULL } [, ...] ) |
 FROM ( { numeric_literal | string_literal | TRUE | FALSE | MINVALUE | MAXVALUE } [, ...] )
-TO ( { numeric_literal | string_literal | TRUE | FALSE | MINVALUE | MAXVALUE } [, ...] )
+TO ( { numeric_literal | string_literal | TRUE | FALSE | MINVALUE | MAXVALUE } [, ...] ) |
+WITH ( MODULUS numeric_literal, REMAINDER numeric_literal )
 
 index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:
 
+[ INCLUDE ( column_name [, ... ] ) ]
 [ WITH ( storage_parameter [= value] [, ... ] ) ]
 [ USING INDEX TABLESPACE tablespace_name ]
 
changedALTER TABLE
--- 10
+++ 11
@@ -11,7 +11,7 @@
 ALTER TABLE ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]
 SET TABLESPACE new_tablespace [ NOWAIT ]
 ALTER TABLE [ IF EXISTS ] name
-ATTACH PARTITION partition_name FOR VALUES partition_bound_spec
+ATTACH PARTITION partition_name { FOR VALUES partition_bound_spec | DEFAULT }
 ALTER TABLE [ IF EXISTS ] name
 DETACH PARTITION partition_name
 where action is one of:
@@ -61,8 +61,50 @@
 OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
 REPLICA IDENTITY { DEFAULT | USING INDEX index_name | FULL | NOTHING }
 
+and partition_bound_spec is:
+
+IN ( { numeric_literal | string_literal | TRUE | FALSE | NULL } [, ...] ) |
+FROM ( { numeric_literal | string_literal | TRUE | FALSE | MINVALUE | MAXVALUE } [, ...] )
+TO ( { numeric_literal | string_literal | TRUE | FALSE | MINVALUE | MAXVALUE } [, ...] ) |
+WITH ( MODULUS numeric_literal, REMAINDER numeric_literal )
+
+and column_constraint is:
+
+[ CONSTRAINT constraint_name ]
+{ NOT NULL |
+NULL |
+CHECK ( expression ) [ NO INHERIT ] |
+DEFAULT default_expr |
+GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( sequence_options ) ] |
+UNIQUE index_parameters |
+PRIMARY KEY index_parameters |
+REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
+[ ON DELETE action ] [ ON UPDATE action ] }
+[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
+
+and table_constraint is:
+
+[ CONSTRAINT constraint_name ]
+{ CHECK ( expression ) [ NO INHERIT ] |
+UNIQUE ( column_name [, ... ] ) index_parameters |
+PRIMARY KEY ( column_name [, ... ] ) index_parameters |
+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 ]
+
 and table_constraint_using_index is:
 
 [ CONSTRAINT constraint_name ]
 { UNIQUE | PRIMARY KEY } USING INDEX index_name
 [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
+
+index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:
+
+[ INCLUDE ( column_name [, ... ] ) ]
+[ WITH ( storage_parameter [= value] [, ... ] ) ]
+[ USING INDEX TABLESPACE tablespace_name ]
+
+exclude_element in an EXCLUDE constraint is:
+
+{ column_name | ( expression ) } [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]
changedCREATE INDEX
--- 10
+++ 11
@@ -1,5 +1,6 @@
-CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON table_name [ USING method ]
+CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name [ USING method ]
 ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] )
+[ INCLUDE ( column_name [, ...] ) ]
 [ WITH ( storage_parameter [= value] [, ... ] ) ]
 [ TABLESPACE tablespace_name ]
 [ WHERE predicate ]
changedALTER INDEX
--- 10
+++ 11
@@ -1,7 +1,10 @@
 ALTER INDEX [ IF EXISTS ] name RENAME TO new_name
 ALTER INDEX [ IF EXISTS ] name SET TABLESPACE tablespace_name
+ALTER INDEX name ATTACH PARTITION index_name
 ALTER INDEX name DEPENDS ON EXTENSION extension_name
 ALTER INDEX [ IF EXISTS ] name SET ( storage_parameter [= value] [, ... ] )
 ALTER INDEX [ IF EXISTS ] name RESET ( storage_parameter [, ... ] )
+ALTER INDEX [ IF EXISTS ] name ALTER [ COLUMN ] column_number
+SET STATISTICS integer
 ALTER INDEX ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]
 SET TABLESPACE new_tablespace [ NOWAIT ]
addedCALL
--- 10
+++ 11
@@ -0,0 +1 @@
+CALL name ( [ argument ] [, ...] )
changedCREATE AGGREGATE
--- 10
+++ 11
@@ -4,6 +4,7 @@
 [ , SSPACE = state_data_size ]
 [ , FINALFUNC = ffunc ]
 [ , FINALFUNC_EXTRA ]
+[ , FINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]
 [ , COMBINEFUNC = combinefunc ]
 [ , SERIALFUNC = serialfunc ]
 [ , DESERIALFUNC = deserialfunc ]
@@ -14,6 +15,7 @@
 [ , MSSPACE = mstate_data_size ]
 [ , MFINALFUNC = mffunc ]
 [ , MFINALFUNC_EXTRA ]
+[ , MFINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]
 [ , MINITCOND = minitial_condition ]
 [ , SORTOP = sort_operator ]
 [ , PARALLEL = { SAFE | RESTRICTED | UNSAFE } ]
@@ -26,6 +28,7 @@
 [ , SSPACE = state_data_size ]
 [ , FINALFUNC = ffunc ]
 [ , FINALFUNC_EXTRA ]
+[ , FINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]
 [ , INITCOND = initial_condition ]
 [ , PARALLEL = { SAFE | RESTRICTED | UNSAFE } ]
 [ , HYPOTHETICAL ]
@@ -40,6 +43,7 @@
 [ , SSPACE = state_data_size ]
 [ , FINALFUNC = ffunc ]
 [ , FINALFUNC_EXTRA ]
+[ , FINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]
 [ , COMBINEFUNC = combinefunc ]
 [ , SERIALFUNC = serialfunc ]
 [ , DESERIALFUNC = deserialfunc ]
@@ -50,6 +54,7 @@
 [ , MSSPACE = mstate_data_size ]
 [ , MFINALFUNC = mffunc ]
 [ , MFINALFUNC_EXTRA ]
+[ , MFINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]
 [ , MINITCOND = minitial_condition ]
 [ , SORTOP = sort_operator ]
 )
changedCREATE FUNCTION
--- 10
+++ 11
@@ -16,4 +16,3 @@
 | AS 'definition'
 | AS 'obj_file', 'link_symbol'
 } ...
-[ WITH ( attribute [, ...] ) ]
addedCREATE PROCEDURE
--- 10
+++ 11
@@ -0,0 +1,9 @@
+CREATE [ OR REPLACE ] PROCEDURE
+name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] )
+{ LANGUAGE lang_name
+| TRANSFORM { FOR TYPE type_name } [, ... ]
+| [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
+| SET configuration_parameter { TO value | = value | FROM CURRENT }
+| AS 'definition'
+| AS 'obj_file', 'link_symbol'
+} ...
addedALTER PROCEDURE
--- 10
+++ 11
@@ -0,0 +1,17 @@
+ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
+action [ ... ] [ RESTRICT ]
+ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
+RENAME TO new_name
+ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
+OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
+ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
+SET SCHEMA new_schema
+ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
+DEPENDS ON EXTENSION extension_name
+where action is one of:
+
+[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
+SET configuration_parameter { TO | = } { value | DEFAULT }
+SET configuration_parameter FROM CURRENT
+RESET configuration_parameter
+RESET ALL
addedDROP PROCEDURE
--- 10
+++ 11
@@ -0,0 +1,2 @@
+DROP PROCEDURE [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
+[ CASCADE | RESTRICT ]
addedALTER ROUTINE
--- 10
+++ 11
@@ -0,0 +1,22 @@
+ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
+action [ ... ] [ RESTRICT ]
+ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
+RENAME TO new_name
+ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
+OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
+ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
+SET SCHEMA new_schema
+ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
+DEPENDS ON EXTENSION extension_name
+where action is one of:
+
+IMMUTABLE | STABLE | VOLATILE
+[ NOT ] LEAKPROOF
+[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
+PARALLEL { UNSAFE | RESTRICTED | SAFE }
+COST execution_cost
+ROWS result_rows
+SET configuration_parameter { TO | = } { value | DEFAULT }
+SET configuration_parameter FROM CURRENT
+RESET configuration_parameter
+RESET ALL
addedDROP ROUTINE
--- 10
+++ 11
@@ -0,0 +1,2 @@
+DROP ROUTINE [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
+[ CASCADE | RESTRICT ]
changedCREATE OPERATOR
--- 10
+++ 11
@@ -1,5 +1,5 @@
 CREATE OPERATOR name (
-PROCEDURE = function_name
+{FUNCTION|PROCEDURE} = function_name
 [, LEFTARG = left_type ] [, RIGHTARG = right_type ]
 [, COMMUTATOR = com_op ] [, NEGATOR = neg_op ]
 [, RESTRICT = res_proc ] [, JOIN = join_proc ]
changedGRANT
--- 10
+++ 11
@@ -32,8 +32,8 @@
 TO role_specification [, ...] [ WITH GRANT OPTION ]
 
 GRANT { EXECUTE | ALL [ PRIVILEGES ] }
-ON { FUNCTION function_name [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ] [, ...]
-| ALL FUNCTIONS IN SCHEMA schema_name [, ...] }
+ON { { FUNCTION | PROCEDURE | ROUTINE } routine_name [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ] [, ...]
+| ALL { FUNCTIONS | PROCEDURES | ROUTINES } IN SCHEMA schema_name [, ...] }
 TO role_specification [, ...] [ WITH GRANT OPTION ]
 
 GRANT { USAGE | ALL [ PRIVILEGES ] }
changedREVOKE
--- 10
+++ 11
@@ -47,8 +47,8 @@
 
 REVOKE [ GRANT OPTION FOR ]
 { EXECUTE | ALL [ PRIVILEGES ] }
-ON { FUNCTION function_name [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ] [, ...]
-| ALL FUNCTIONS IN SCHEMA schema_name [, ...] }
+ON { { FUNCTION | PROCEDURE | ROUTINE } function_name [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ] [, ...]
+| ALL { FUNCTIONS | PROCEDURES | ROUTINES } IN SCHEMA schema_name [, ...] }
 FROM role_specification [, ...]
 [ CASCADE | RESTRICT ]
 
changedALTER DEFAULT PRIVILEGES
--- 10
+++ 11
@@ -15,7 +15,7 @@
 TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
 GRANT { EXECUTE | ALL [ PRIVILEGES ] }
-ON FUNCTIONS
+ON { FUNCTIONS | ROUTINES }
 TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
 GRANT { USAGE | ALL [ PRIVILEGES ] }
@@ -42,7 +42,7 @@
 
 REVOKE [ GRANT OPTION FOR ]
 { EXECUTE | ALL [ PRIVILEGES ] }
-ON FUNCTIONS
+ON { FUNCTIONS | ROUTINES }
 FROM { [ GROUP ] role_name | PUBLIC } [, ...]
 [ CASCADE | RESTRICT ]
 
changedCREATE GROUP
--- 10
+++ 11
@@ -10,7 +10,7 @@
 | REPLICATION | NOREPLICATION
 | BYPASSRLS | NOBYPASSRLS
 | CONNECTION LIMIT connlimit
-| [ ENCRYPTED ] PASSWORD 'password'
+| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
 | VALID UNTIL 'timestamp'
 | IN ROLE role_name [, ...]
 | IN GROUP role_name [, ...]
changedSECURITY LABEL
--- 10
+++ 11
@@ -11,15 +11,17 @@
 LARGE OBJECT large_object_oid |
 MATERIALIZED VIEW object_name |
 [ PROCEDURAL ] LANGUAGE object_name |
+PROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
 PUBLICATION object_name |
 ROLE object_name |
+ROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
 SCHEMA object_name |
 SEQUENCE object_name |
 SUBSCRIPTION object_name |
 TABLESPACE object_name |
 TYPE object_name |
 VIEW object_name
-} IS 'label'
+} IS { string_literal | NULL }
 
 where aggregate_signature is:
 
changedCREATE ROLE
--- 10
+++ 11
@@ -10,7 +10,7 @@
 | REPLICATION | NOREPLICATION
 | BYPASSRLS | NOBYPASSRLS
 | CONNECTION LIMIT connlimit
-| [ ENCRYPTED ] PASSWORD 'password'
+| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
 | VALID UNTIL 'timestamp'
 | IN ROLE role_name [, ...]
 | IN GROUP role_name [, ...]
changedALTER ROLE
--- 10
+++ 11
@@ -10,7 +10,7 @@
 | REPLICATION | NOREPLICATION
 | BYPASSRLS | NOBYPASSRLS
 | CONNECTION LIMIT connlimit
-| [ ENCRYPTED ] PASSWORD 'password'
+| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
 | VALID UNTIL 'timestamp'
 
 ALTER ROLE name RENAME TO new_name
changedCREATE USER
--- 10
+++ 11
@@ -10,7 +10,7 @@
 | REPLICATION | NOREPLICATION
 | BYPASSRLS | NOBYPASSRLS
 | CONNECTION LIMIT connlimit
-| [ ENCRYPTED ] PASSWORD 'password'
+| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
 | VALID UNTIL 'timestamp'
 | IN ROLE role_name [, ...]
 | IN GROUP role_name [, ...]
changedALTER USER
--- 10
+++ 11
@@ -10,7 +10,7 @@
 | REPLICATION | NOREPLICATION
 | BYPASSRLS | NOBYPASSRLS
 | CONNECTION LIMIT connlimit
-| [ ENCRYPTED ] PASSWORD 'password'
+| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
 | VALID UNTIL 'timestamp'
 
 ALTER USER name RENAME TO new_name
changedCREATE EVENT TRIGGER
--- 10
+++ 11
@@ -1,4 +1,4 @@
 CREATE EVENT TRIGGER name
 ON event
 [ WHEN filter_variable IN (filter_value [, ... ]) [ AND ... ] ]
-EXECUTE PROCEDURE function_name()
+EXECUTE { FUNCTION | PROCEDURE } function_name()
changedCREATE TRIGGER
--- 10
+++ 11
@@ -5,7 +5,7 @@
 [ REFERENCING { { OLD | NEW } TABLE [ AS ] transition_relation_name } [ ... ] ]
 [ FOR [ EACH ] { ROW | STATEMENT } ]
 [ WHEN ( condition ) ]
-EXECUTE PROCEDURE function_name ( arguments )
+EXECUTE { FUNCTION | PROCEDURE } function_name ( arguments )
 
 where event can be one of:
 
changedALTER EXTENSION
--- 10
+++ 11
@@ -19,6 +19,8 @@
 OPERATOR CLASS object_name USING index_method |
 OPERATOR FAMILY object_name USING index_method |
 [ PROCEDURAL ] LANGUAGE object_name |
+PROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
+ROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
 SCHEMA object_name |
 SEQUENCE object_name |
 SERVER object_name |
changedCREATE FOREIGN TABLE
--- 10
+++ 11
@@ -13,7 +13,7 @@
 | table_constraint }
 [, ... ]
 ) ]
-FOR VALUES partition_bound_spec
+{ FOR VALUES partition_bound_spec | DEFAULT }
 SERVER server_name
 [ OPTIONS ( option 'value' [, ... ] ) ]
 
@@ -34,4 +34,5 @@
 
 IN ( { numeric_literal | string_literal | TRUE | FALSE | NULL } [, ...] ) |
 FROM ( { numeric_literal | string_literal | TRUE | FALSE | MINVALUE | MAXVALUE } [, ...] )
-TO ( { numeric_literal | string_literal | TRUE | FALSE | MINVALUE | MAXVALUE } [, ...] )
+TO ( { numeric_literal | string_literal | TRUE | FALSE | MINVALUE | MAXVALUE } [, ...] ) |
+WITH ( MODULUS numeric_literal, REMAINDER numeric_literal )
changedCREATE SERVER
--- 10
+++ 11
@@ -1,3 +1,3 @@
-CREATE SERVER [IF NOT EXISTS] server_name [ TYPE 'server_type' ] [ VERSION 'server_version' ]
+CREATE SERVER [ IF NOT EXISTS ] server_name [ TYPE 'server_type' ] [ VERSION 'server_version' ]
 FOREIGN DATA WRAPPER fdw_name
 [ OPTIONS ( option 'value' [, ... ] ) ]
changedCREATE USER MAPPING
--- 10
+++ 11
@@ -1,3 +1,3 @@
-CREATE USER MAPPING [IF NOT EXISTS] FOR { user_name | USER | CURRENT_USER | PUBLIC }
+CREATE USER MAPPING [ IF NOT EXISTS ] FOR { user_name | USER | CURRENT_USER | PUBLIC }
 SERVER server_name
 [ OPTIONS ( option 'value' [ , ... ] ) ]
changedSELECT
--- 10
+++ 11
@@ -25,8 +25,9 @@
 [ LATERAL ] function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )
 [ LATERAL ] ROWS FROM( function_name ( [ argument [, ...] ] ) [ AS ( column_definition [, ...] ) ] [, ...] )
 [ WITH ORDINALITY ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
-from_item [ NATURAL ] join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]
-
+from_item join_type from_item { ON join_condition | USING ( join_column [, ...] ) }
+from_item NATURAL join_type from_item
+from_item CROSS JOIN from_item
 and grouping_element can be one of:
 
 ( )
changedFETCH
--- 10
+++ 11
@@ -1,6 +1,5 @@
 FETCH [ direction ] [ FROM | IN ] cursor_name
-where direction can
-be one of:
+where direction can be one of:
 
 NEXT
 PRIOR
changedMOVE
--- 10
+++ 11
@@ -1,6 +1,5 @@
 MOVE [ direction ] [ FROM | IN ] cursor_name
-where direction can
-be one of:
+where direction can be one of:
 
 NEXT
 PRIOR
changedALTER SYSTEM
--- 10
+++ 11
@@ -1,4 +1,4 @@
-ALTER SYSTEM SET configuration_parameter { TO | = } { value | 'value' | DEFAULT }
+ALTER SYSTEM SET configuration_parameter { TO | = } { value [, ...] | DEFAULT }
 
 ALTER SYSTEM RESET configuration_parameter
 ALTER SYSTEM RESET ALL
changedANALYZE
--- 10
+++ 11
@@ -1 +1,9 @@
-ANALYZE [ VERBOSE ] [ table_name [ ( column_name [, ...] ) ] ]
+ANALYZE [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
+ANALYZE [ VERBOSE ] [ table_and_columns [, ...] ]
+
+where option can be one of:
+
+VERBOSE
+
+and table_and_columns is:
+table_name [ ( column_name [, ...] ) ]
changedVACUUM
--- 10
+++ 11
@@ -1,3 +1,13 @@
-VACUUM [ ( { FULL | FREEZE | VERBOSE | ANALYZE | DISABLE_PAGE_SKIPPING } [, ...] ) ] [ table_name [ (column_name [, ...] ) ] ]
-VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table_name ]
-VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table_name [ (column_name [, ...] ) ] ]
+VACUUM [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
+VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ table_and_columns [, ...] ]
+
+where option can be one of:
+
+FULL
+FREEZE
+VERBOSE
+ANALYZE
+DISABLE_PAGE_SKIPPING
+
+and table_and_columns is:
+table_name [ ( column_name [, ...] ) ]
changedCOMMENT
--- 10
+++ 11
@@ -23,8 +23,10 @@
 OPERATOR FAMILY object_name USING index_method |
 POLICY policy_name ON table_name |
 [ PROCEDURAL ] LANGUAGE object_name |
+PROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
 PUBLICATION object_name |
 ROLE object_name |
+ROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
 RULE rule_name ON table_name |
 SCHEMA object_name |
 SEQUENCE object_name |
@@ -41,7 +43,7 @@
 TRIGGER trigger_name ON table_name |
 TYPE object_name |
 VIEW object_name
-} IS 'text'
+} IS { string_literal | NULL }
 
 where aggregate_signature is: