↑↓ 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 9.6 → 10

Browse PG 10

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

9 added · 0 removed · 40 changed. These are changes between the pinned reference snapshots.

changedALTER MATERIALIZED VIEW
--- 9.6
+++ 10
@@ -19,6 +19,7 @@
 ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
 CLUSTER ON index_name
 SET WITHOUT CLUSTER
+SET TABLESPACE new_tablespace
 SET ( storage_parameter [= value] [, ... ] )
 RESET ( storage_parameter [, ... ] )
 OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
changedCREATE SEQUENCE
--- 9.6
+++ 10
@@ -1,4 +1,6 @@
-CREATE [ TEMPORARY | TEMP ] SEQUENCE [ IF NOT EXISTS ] name [ INCREMENT [ BY ] increment ]
+CREATE [ TEMPORARY | TEMP ] SEQUENCE [ IF NOT EXISTS ] name
+[ AS data_type ]
+[ INCREMENT [ BY ] increment ]
 [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
 [ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
 [ OWNED BY { table_name.column_name | NONE } ]
changedALTER SEQUENCE
--- 9.6
+++ 10
@@ -1,4 +1,6 @@
-ALTER SEQUENCE [ IF EXISTS ] name [ INCREMENT [ BY ] increment ]
+ALTER SEQUENCE [ IF EXISTS ] name
+[ AS data_type ]
+[ INCREMENT [ BY ] increment ]
 [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
 [ START [ WITH ] start ]
 [ RESTART [ [ WITH ] restart ] ]
changedCREATE TABLE
--- 9.6
+++ 10
@@ -5,16 +5,29 @@
 [, ... ]
 ] )
 [ INHERITS ( parent_table [, ... ] ) ]
+[ PARTITION BY { RANGE | LIST } ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [, ... ] ) ]
 [ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
 [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
 [ TABLESPACE tablespace_name ]
 
 CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name
 OF type_name [ (
-{ column_name WITH OPTIONS [ column_constraint [ ... ] ]
+{ column_name [ WITH OPTIONS ] [ column_constraint [ ... ] ]
 | table_constraint }
 [, ... ]
 ) ]
+[ PARTITION BY { RANGE | LIST } ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [, ... ] ) ]
+[ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
+[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
+[ TABLESPACE tablespace_name ]
+
+CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name
+PARTITION OF parent_table [ (
+{ column_name [ WITH OPTIONS ] [ column_constraint [ ... ] ]
+| table_constraint }
+[, ... ]
+) ] FOR VALUES partition_bound_spec
+[ PARTITION BY { RANGE | LIST } ( { 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,6 +39,7 @@
 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 ]
@@ -45,7 +59,13 @@
 
 and like_option is:
 
-{ INCLUDING | EXCLUDING } { DEFAULTS | CONSTRAINTS | INDEXES | STORAGE | COMMENTS | ALL }
+{ INCLUDING | EXCLUDING } { COMMENTS | CONSTRAINTS | DEFAULTS | IDENTITY | INDEXES | STATISTICS | STORAGE | ALL }
+
+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 } [, ...] )
 
 index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:
 
changedALTER TABLE
--- 9.6
+++ 10
@@ -10,7 +10,10 @@
 SET SCHEMA new_schema
 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
+ALTER TABLE [ IF EXISTS ] name
+DETACH PARTITION partition_name
 where action is one of:
 
 ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type [ COLLATE collation ] [ column_constraint [ ... ] ]
@@ -19,6 +22,9 @@
 ALTER [ COLUMN ] column_name SET DEFAULT expression
 ALTER [ COLUMN ] column_name DROP DEFAULT
 ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
+ALTER [ COLUMN ] column_name ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( sequence_options ) ]
+ALTER [ COLUMN ] column_name { SET GENERATED { ALWAYS | BY DEFAULT } | SET sequence_option | RESTART [ [ WITH ] restart ] } [...]
+ALTER [ COLUMN ] column_name DROP IDENTITY [ IF EXISTS ]
 ALTER [ COLUMN ] column_name SET STATISTICS integer
 ALTER [ COLUMN ] column_name SET ( attribute_option = value [, ... ] )
 ALTER [ COLUMN ] column_name RESET ( attribute_option [, ... ] )
addedCREATE STATISTICS
--- 9.6
+++ 10
@@ -0,0 +1,4 @@
+CREATE STATISTICS [ IF NOT EXISTS ] statistics_name
+[ ( statistics_kind [, ... ] ) ]
+ON column_name, column_name [, ...]
+FROM table_name
addedALTER STATISTICS
--- 9.6
+++ 10
@@ -0,0 +1,3 @@
+ALTER STATISTICS name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
+ALTER STATISTICS name RENAME TO new_name
+ALTER STATISTICS name SET SCHEMA new_schema
addedDROP STATISTICS
--- 9.6
+++ 10
@@ -0,0 +1 @@
+DROP STATISTICS [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
changedDROP AGGREGATE
--- 9.6
+++ 10
@@ -1,4 +1,4 @@
-DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [ CASCADE | RESTRICT ]
+DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]
 
 where aggregate_signature is:
 
changedALTER FUNCTION
--- 9.6
+++ 10
@@ -1,12 +1,12 @@
-ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
+ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
 action [ ... ] [ RESTRICT ]
-ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
+ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
 RENAME TO new_name
-ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
+ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
 OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
-ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
+ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
 SET SCHEMA new_schema
-ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
+ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
 DEPENDS ON EXTENSION extension_name
 where action is one of:
 
changedDROP FUNCTION
--- 9.6
+++ 10
@@ -1,2 +1,2 @@
-DROP FUNCTION [ IF EXISTS ] name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
+DROP FUNCTION [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
 [ CASCADE | RESTRICT ]
changedCREATE TRANSFORM
--- 9.6
+++ 10
@@ -1,4 +1,4 @@
 CREATE [ OR REPLACE ] TRANSFORM FOR type_name LANGUAGE lang_name (
-FROM SQL WITH FUNCTION from_sql_function_name (argument_type [, ...]),
-TO SQL WITH FUNCTION to_sql_function_name (argument_type [, ...])
+FROM SQL WITH FUNCTION from_sql_function_name [ (argument_type [, ...]) ],
+TO SQL WITH FUNCTION to_sql_function_name [ (argument_type [, ...]) ]
 );
changedCREATE CAST
--- 9.6
+++ 10
@@ -1,5 +1,5 @@
 CREATE CAST (source_type AS target_type)
-WITH FUNCTION function_name (argument_type [, ...])
+WITH FUNCTION function_name [ (argument_type [, ...]) ]
 [ AS ASSIGNMENT | AS IMPLICIT ]
 
 CREATE CAST (source_type AS target_type)
changedCREATE COLLATION
--- 9.6
+++ 10
@@ -1,6 +1,8 @@
-CREATE COLLATION name (
+CREATE COLLATION [ IF NOT EXISTS ] name (
 [ LOCALE = locale, ]
 [ LC_COLLATE = lc_collate, ]
-[ LC_CTYPE = lc_ctype ]
+[ LC_CTYPE = lc_ctype, ]
+[ PROVIDER = provider, ]
+[ VERSION = version ]
 )
-CREATE COLLATION name FROM existing_collation
+CREATE COLLATION [ IF NOT EXISTS ] name FROM existing_collation
changedALTER COLLATION
--- 9.6
+++ 10
@@ -1,3 +1,5 @@
+ALTER COLLATION name REFRESH VERSION
+
 ALTER COLLATION name RENAME TO new_name
 ALTER COLLATION name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
 ALTER COLLATION name SET SCHEMA new_schema
changedDROP OPERATOR
--- 9.6
+++ 10
@@ -1 +1 @@
-DROP OPERATOR [ IF EXISTS ] name ( { left_type | NONE } , { right_type | NONE } ) [ CASCADE | RESTRICT ]
+DROP OPERATOR [ IF EXISTS ] name ( { left_type | NONE } , { right_type | NONE } ) [, ...] [ CASCADE | RESTRICT ]
changedALTER OPERATOR FAMILY
--- 9.6
+++ 10
@@ -2,7 +2,7 @@
 { OPERATOR strategy_number operator_name ( op_type, op_type )
 [ FOR SEARCH | FOR ORDER BY sort_family_name ]
 | FUNCTION support_number [ ( op_type [ , op_type ] ) ]
-function_name ( argument_type [, ...] )
+function_name [ ( argument_type [, ...] ) ]
 } [, ... ]
 
 ALTER OPERATOR FAMILY name USING index_method DROP
changedALTER TYPE
--- 9.6
+++ 10
@@ -3,8 +3,8 @@
 ALTER TYPE name RENAME ATTRIBUTE attribute_name TO new_attribute_name [ CASCADE | RESTRICT ]
 ALTER TYPE name RENAME TO new_name
 ALTER TYPE name SET SCHEMA new_schema
-ALTER TYPE name ADD VALUE [ IF NOT EXISTS ] new_enum_value [ { BEFORE | AFTER } existing_enum_value ]
-
+ALTER TYPE name ADD VALUE [ IF NOT EXISTS ] new_enum_value [ { BEFORE | AFTER } neighbor_enum_value ]
+ALTER TYPE name RENAME VALUE existing_enum_value TO new_enum_value
 where action is one of:
 
 ADD ATTRIBUTE attribute_name data_type [ COLLATE collation ] [ CASCADE | RESTRICT ]
changedCREATE DATABASE
--- 9.6
+++ 10
@@ -1,5 +1,5 @@
 CREATE DATABASE name
-[ [ WITH ] [ OWNER [=] user_name ]
+[ WITH ] [ OWNER [=] user_name ]
 [ TEMPLATE [=] template ]
 [ ENCODING [=] encoding ]
 [ LC_COLLATE [=] lc_collate ]
@@ -7,4 +7,4 @@
 [ TABLESPACE [=] tablespace_name ]
 [ ALLOW_CONNECTIONS [=] allowconn ]
 [ CONNECTION LIMIT [=] connlimit ]
-[ IS_TEMPLATE [=] istemplate ] ]
+[ IS_TEMPLATE [=] istemplate ]
changedGRANT
--- 9.6
+++ 10
@@ -32,7 +32,7 @@
 TO role_specification [, ...] [ WITH GRANT OPTION ]
 
 GRANT { EXECUTE | ALL [ PRIVILEGES ] }
-ON { FUNCTION function_name ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) [, ...]
+ON { FUNCTION function_name [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ] [, ...]
 | ALL FUNCTIONS IN SCHEMA schema_name [, ...] }
 TO role_specification [, ...] [ WITH GRANT OPTION ]
 
changedREVOKE
--- 9.6
+++ 10
@@ -47,7 +47,7 @@
 
 REVOKE [ GRANT OPTION FOR ]
 { EXECUTE | ALL [ PRIVILEGES ] }
-ON { FUNCTION function_name ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) [, ...]
+ON { FUNCTION function_name [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ] [, ...]
 | ALL FUNCTIONS IN SCHEMA schema_name [, ...] }
 FROM role_specification [, ...]
 [ CASCADE | RESTRICT ]
changedALTER DEFAULT PRIVILEGES
--- 9.6
+++ 10
@@ -20,6 +20,10 @@
 
 GRANT { USAGE | ALL [ PRIVILEGES ] }
 ON TYPES
+TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
+
+GRANT { USAGE | CREATE | ALL [ PRIVILEGES ] }
+ON SCHEMAS
 TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
 REVOKE [ GRANT OPTION FOR ]
@@ -47,3 +51,9 @@
 ON TYPES
 FROM { [ GROUP ] role_name | PUBLIC } [, ...]
 [ CASCADE | RESTRICT ]
+
+REVOKE [ GRANT OPTION FOR ]
+{ USAGE | CREATE | ALL [ PRIVILEGES ] }
+ON SCHEMAS
+FROM { [ GROUP ] role_name | PUBLIC } [, ...]
+[ CASCADE | RESTRICT ]
changedCREATE GROUP
--- 9.6
+++ 10
@@ -10,7 +10,7 @@
 | REPLICATION | NOREPLICATION
 | BYPASSRLS | NOBYPASSRLS
 | CONNECTION LIMIT connlimit
-| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
+| [ ENCRYPTED ] PASSWORD 'password'
 | VALID UNTIL 'timestamp'
 | IN ROLE role_name [, ...]
 | IN GROUP role_name [, ...]
changedSECURITY LABEL
--- 9.6
+++ 10
@@ -7,13 +7,15 @@
 DOMAIN object_name |
 EVENT TRIGGER object_name |
 FOREIGN TABLE object_name
-FUNCTION function_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) |
+FUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
 LARGE OBJECT large_object_oid |
 MATERIALIZED VIEW object_name |
 [ PROCEDURAL ] LANGUAGE object_name |
+PUBLICATION object_name |
 ROLE object_name |
 SCHEMA object_name |
 SEQUENCE object_name |
+SUBSCRIPTION object_name |
 TABLESPACE object_name |
 TYPE object_name |
 VIEW object_name
changedCREATE POLICY
--- 9.6
+++ 10
@@ -1,4 +1,5 @@
 CREATE POLICY name ON table_name
+[ AS { PERMISSIVE | RESTRICTIVE } ]
 [ FOR { ALL | SELECT | INSERT | UPDATE | DELETE } ]
 [ TO { role_name | PUBLIC | CURRENT_USER | SESSION_USER } [, ...] ]
 [ USING ( using_expression ) ]
changedCREATE ROLE
--- 9.6
+++ 10
@@ -10,7 +10,7 @@
 | REPLICATION | NOREPLICATION
 | BYPASSRLS | NOBYPASSRLS
 | CONNECTION LIMIT connlimit
-| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
+| [ ENCRYPTED ] PASSWORD 'password'
 | VALID UNTIL 'timestamp'
 | IN ROLE role_name [, ...]
 | IN GROUP role_name [, ...]
changedALTER ROLE
--- 9.6
+++ 10
@@ -10,7 +10,7 @@
 | REPLICATION | NOREPLICATION
 | BYPASSRLS | NOBYPASSRLS
 | CONNECTION LIMIT connlimit
-| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
+| [ ENCRYPTED ] PASSWORD 'password'
 | VALID UNTIL 'timestamp'
 
 ALTER ROLE name RENAME TO new_name
changedCREATE USER
--- 9.6
+++ 10
@@ -10,7 +10,7 @@
 | REPLICATION | NOREPLICATION
 | BYPASSRLS | NOBYPASSRLS
 | CONNECTION LIMIT connlimit
-| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
+| [ ENCRYPTED ] PASSWORD 'password'
 | VALID UNTIL 'timestamp'
 | IN ROLE role_name [, ...]
 | IN GROUP role_name [, ...]
changedALTER USER
--- 9.6
+++ 10
@@ -10,7 +10,7 @@
 | REPLICATION | NOREPLICATION
 | BYPASSRLS | NOBYPASSRLS
 | CONNECTION LIMIT connlimit
-| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
+| [ ENCRYPTED ] PASSWORD 'password'
 | VALID UNTIL 'timestamp'
 
 ALTER USER name RENAME TO new_name
changedCREATE TRIGGER
--- 9.6
+++ 10
@@ -2,6 +2,7 @@
 ON table_name
 [ FROM referenced_table_name ]
 [ NOT DEFERRABLE | [ DEFERRABLE ] [ INITIALLY IMMEDIATE | INITIALLY DEFERRED ] ]
+[ REFERENCING { { OLD | NEW } TABLE [ AS ] transition_relation_name } [ ... ] ]
 [ FOR [ EACH ] { ROW | STATEMENT } ]
 [ WHEN ( condition ) ]
 EXECUTE PROCEDURE function_name ( arguments )
changedALTER EXTENSION
--- 9.6
+++ 10
@@ -13,7 +13,7 @@
 EVENT TRIGGER object_name |
 FOREIGN DATA WRAPPER object_name |
 FOREIGN TABLE object_name |
-FUNCTION function_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) |
+FUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
 MATERIALIZED VIEW object_name |
 OPERATOR operator_name (left_type, right_type) |
 OPERATOR CLASS object_name USING index_method |
changedDROP FOREIGN DATA WRAPPER
--- 9.6
+++ 10
@@ -1 +1 @@
-DROP FOREIGN DATA WRAPPER [ IF EXISTS ] name [ CASCADE | RESTRICT ]
+DROP FOREIGN DATA WRAPPER [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
changedCREATE FOREIGN TABLE
--- 9.6
+++ 10
@@ -4,6 +4,16 @@
 [, ... ]
 ] )
 [ INHERITS ( parent_table [, ... ] ) ]
+SERVER server_name
+[ OPTIONS ( option 'value' [, ... ] ) ]
+
+CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name
+PARTITION OF parent_table [ (
+{ column_name [ WITH OPTIONS ] [ column_constraint [ ... ] ]
+| table_constraint }
+[, ... ]
+) ]
+FOR VALUES partition_bound_spec
 SERVER server_name
 [ OPTIONS ( option 'value' [, ... ] ) ]
 
@@ -19,3 +29,9 @@
 
 [ CONSTRAINT constraint_name ]
 CHECK ( expression ) [ NO INHERIT ]
+
+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 } [, ...] )
changedCREATE SERVER
--- 9.6
+++ 10
@@ -1,3 +1,3 @@
-CREATE SERVER 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' [, ... ] ) ]
changedDROP SERVER
--- 9.6
+++ 10
@@ -1 +1 @@
-DROP SERVER [ IF EXISTS ] name [ CASCADE | RESTRICT ]
+DROP SERVER [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
changedCREATE USER MAPPING
--- 9.6
+++ 10
@@ -1,3 +1,3 @@
-CREATE USER MAPPING 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' [ , ... ] ) ]
addedCREATE PUBLICATION
--- 9.6
+++ 10
@@ -0,0 +1,4 @@
+CREATE PUBLICATION name
+[ FOR TABLE [ ONLY ] table_name [ * ] [, ...]
+| FOR ALL TABLES ]
+[ WITH ( publication_parameter [= value] [, ... ] ) ]
addedALTER PUBLICATION
--- 9.6
+++ 10
@@ -0,0 +1,6 @@
+ALTER PUBLICATION name ADD TABLE [ ONLY ] table_name [ * ] [, ...]
+ALTER PUBLICATION name SET TABLE [ ONLY ] table_name [ * ] [, ...]
+ALTER PUBLICATION name DROP TABLE [ ONLY ] table_name [ * ] [, ...]
+ALTER PUBLICATION name SET ( publication_parameter [= value] [, ... ] )
+ALTER PUBLICATION name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
+ALTER PUBLICATION name RENAME TO new_name
addedDROP PUBLICATION
--- 9.6
+++ 10
@@ -0,0 +1 @@
+DROP PUBLICATION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
addedCREATE SUBSCRIPTION
--- 9.6
+++ 10
@@ -0,0 +1,4 @@
+CREATE SUBSCRIPTION subscription_name
+CONNECTION 'conninfo'
+PUBLICATION publication_name [, ...]
+[ WITH ( subscription_parameter [= value] [, ... ] ) ]
addedALTER SUBSCRIPTION
--- 9.6
+++ 10
@@ -0,0 +1,8 @@
+ALTER SUBSCRIPTION name CONNECTION 'conninfo'
+ALTER SUBSCRIPTION name SET PUBLICATION publication_name [, ...] [ WITH ( set_publication_option [= value] [, ... ] ) ]
+ALTER SUBSCRIPTION name REFRESH PUBLICATION [ WITH ( refresh_option [= value] [, ... ] ) ]
+ALTER SUBSCRIPTION name ENABLE
+ALTER SUBSCRIPTION name DISABLE
+ALTER SUBSCRIPTION name SET ( subscription_parameter [= value] [, ... ] )
+ALTER SUBSCRIPTION name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
+ALTER SUBSCRIPTION name RENAME TO new_name
addedDROP SUBSCRIPTION
--- 9.6
+++ 10
@@ -0,0 +1 @@
+DROP SUBSCRIPTION [ IF EXISTS ] name [ CASCADE | RESTRICT ]
changedEXPLAIN
--- 9.6
+++ 10
@@ -7,4 +7,5 @@
 COSTS [ boolean ]
 BUFFERS [ boolean ]
 TIMING [ boolean ]
+SUMMARY [ boolean ]
 FORMAT { TEXT | XML | JSON | YAML }
changedINSERT
--- 9.6
+++ 10
@@ -1,5 +1,6 @@
 [ WITH [ RECURSIVE ] with_query [, ...] ]
 INSERT INTO table_name [ AS alias ] [ ( column_name [, ...] ) ]
+[ OVERRIDING { SYSTEM | USER } VALUE ]
 { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
 [ ON CONFLICT [ conflict_target ] conflict_action ]
 [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
@@ -12,7 +13,7 @@
 
 DO NOTHING
 DO UPDATE SET { column_name = { expression | DEFAULT } |
-( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) |
+( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) |
 ( column_name [, ...] ) = ( sub-SELECT )
 } [, ...]
 [ WHERE condition ]
changedUPDATE
--- 9.6
+++ 10
@@ -1,7 +1,7 @@
 [ WITH [ RECURSIVE ] with_query [, ...] ]
 UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
 SET { column_name = { expression | DEFAULT } |
-( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) |
+( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) |
 ( column_name [, ...] ) = ( sub-SELECT )
 } [, ...]
 [ FROM from_item [, ...] ]
changedFETCH
--- 9.6
+++ 10
@@ -1,5 +1,6 @@
-FETCH [ direction [ FROM | IN ] ] cursor_name
-where direction can be empty or one of:
+FETCH [ direction ] [ FROM | IN ] cursor_name
+where direction can
+be one of:
 
 NEXT
 PRIOR
changedMOVE
--- 9.6
+++ 10
@@ -1,5 +1,6 @@
-MOVE [ direction [ FROM | IN ] ] cursor_name
-where direction can be empty or one of:
+MOVE [ direction ] [ FROM | IN ] cursor_name
+where direction can
+be one of:
 
 NEXT
 PRIOR
changedSET
--- 9.6
+++ 10
@@ -1,2 +1,2 @@
 SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value' | DEFAULT }
-SET [ SESSION | LOCAL ] TIME ZONE { timezone | LOCAL | DEFAULT }
+SET [ SESSION | LOCAL ] TIME ZONE { value | 'value' | LOCAL | DEFAULT }
changedCOMMENT
--- 9.6
+++ 10
@@ -14,7 +14,7 @@
 EVENT TRIGGER object_name |
 FOREIGN DATA WRAPPER object_name |
 FOREIGN TABLE object_name |
-FUNCTION function_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) |
+FUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
 INDEX object_name |
 LARGE OBJECT large_object_oid |
 MATERIALIZED VIEW object_name |
@@ -23,11 +23,14 @@
 OPERATOR FAMILY object_name USING index_method |
 POLICY policy_name ON table_name |
 [ PROCEDURAL ] LANGUAGE object_name |
+PUBLICATION object_name |
 ROLE object_name |
 RULE rule_name ON table_name |
 SCHEMA object_name |
 SEQUENCE object_name |
 SERVER object_name |
+STATISTICS object_name |
+SUBSCRIPTION object_name |
 TABLE object_name |
 TABLESPACE object_name |
 TEXT SEARCH CONFIGURATION object_name |