SQL Commands / Version comparison
What changed?
SQL Commands · PostgreSQL 18 → 19 beta 4
Pre-release documentation. These definitions may change before the final release.
2 added · 0 removed · 21 changed. These are changes between the pinned reference snapshots.
changedCREATE TABLE
--- 18
+++ 19 beta 4
@@ -1,5 +1,5 @@
-CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name ( [
-{ column_name data_type [ STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT } ] [ COMPRESSION compression_method ] [ COLLATE collation ] [ column_constraint [ ... ] ]
+CREATE [ persistence_mode ] TABLE [ IF NOT EXISTS ] table_name ( [
+{ column_name data_type [ column_storage ] [ column_compression ] [ COLLATE collation ] [ column_constraint [ ... ] ]
| table_constraint
| LIKE source_table [ like_option ... ] }
[, ... ]
@@ -11,7 +11,7 @@
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ TABLESPACE tablespace_name ]
-CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name
+CREATE [ persistence_mode ] TABLE [ IF NOT EXISTS ] table_name
OF type_name [ (
{ column_name [ WITH OPTIONS ] [ column_constraint [ ... ] ]
| table_constraint }
@@ -23,7 +23,7 @@
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ TABLESPACE tablespace_name ]
-CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name
+CREATE [ persistence_mode ] TABLE [ IF NOT EXISTS ] table_name
PARTITION OF parent_table [ (
{ column_name [ WITH OPTIONS ] [ column_constraint [ ... ] ]
| table_constraint }
@@ -35,7 +35,18 @@
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ TABLESPACE tablespace_name ]
-where column_constraint is:
+where persistence_mode is:
+
+{ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } } | UNLOGGED
+
+and column_storage is:
+
+STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT }
+
+and column_compression is:
+
+COMPRESSION compression_method
+and column_constraint is:
[ CONSTRAINT constraint_name ]
{ NOT NULL [ NO INHERIT ] |
@@ -73,16 +84,16 @@
TO ( { partition_bound_expr | MINVALUE | MAXVALUE } [, ...] ) |
WITH ( MODULUS numeric_literal, REMAINDER numeric_literal )
-index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:
+and 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:
+and exclude_element in an EXCLUDE constraint is:
{ column_name | ( expression ) } [ COLLATE collation ] [ opclass [ ( opclass_parameter = value [, ... ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]
-referential_action in a FOREIGN KEY/REFERENCES constraint is:
+and referential_action in a FOREIGN KEY/REFERENCES constraint is:
{ NO ACTION | RESTRICT | CASCADE | SET NULL [ ( column_name [, ... ] ) ] | SET DEFAULT [ ( column_name [, ... ] ) ] }
changedCREATE TABLE AS
--- 18
+++ 19 beta 4
@@ -1,8 +1,12 @@
-CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name
-[ (column_name [, ...] ) ]
+CREATE [ persistence_mode ] TABLE [ IF NOT EXISTS ] table_name
+[ ( column_name [, ...] ) ]
[ USING method ]
[ WITH ( storage_parameter [= value] [, ... ] ) | WITHOUT OIDS ]
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ TABLESPACE tablespace_name ]
AS query
[ WITH [ NO ] DATA ]
+
+where persistence_mode is:
+
+{ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } } | UNLOGGED
changedCREATE STATISTICS
--- 18
+++ 19 beta 4
@@ -1,5 +1,5 @@
CREATE STATISTICS [ [ IF NOT EXISTS ] statistics_name ]
-ON ( expression )
+ON { column_name | ( expression ) }
FROM table_name
CREATE STATISTICS [ [ IF NOT EXISTS ] statistics_name ]
changedCREATE AGGREGATE
--- 18
+++ 19 beta 4
@@ -18,6 +18,7 @@
[ , MFINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]
[ , MINITCOND = minitial_condition ]
[ , SORTOP = sort_operator ]
+[ , SUPPORT = support_function ]
[ , PARALLEL = { SAFE | RESTRICTED | UNSAFE } ]
)
@@ -30,6 +31,7 @@
[ , FINALFUNC_EXTRA ]
[ , FINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]
[ , INITCOND = initial_condition ]
+[ , SUPPORT = support_function ]
[ , PARALLEL = { SAFE | RESTRICTED | UNSAFE } ]
[ , HYPOTHETICAL ]
)
@@ -57,4 +59,5 @@
[ , MFINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]
[ , MINITCOND = minitial_condition ]
[ , SORTOP = sort_operator ]
+[ , SUPPORT = support_function ]
)
changedCREATE OPERATOR
--- 18
+++ 19 beta 4
@@ -1,6 +1,6 @@
CREATE OPERATOR name (
{FUNCTION|PROCEDURE} = function_name
-[, LEFTARG = left_type ] [, RIGHTARG = right_type ]
+[, LEFTARG = left_type ] , RIGHTARG = right_type
[, COMMUTATOR = com_op ] [, NEGATOR = neg_op ]
[, RESTRICT = res_proc ] [, JOIN = join_proc ]
[, HASHES ] [, MERGES ]
changedCREATE GROUP
--- 18 +++ 19 beta 4 @@ -13,8 +13,6 @@ | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] -| IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] -| USER role_name [, ...] | SYSID uid
changedCREATE USER
--- 18 +++ 19 beta 4 @@ -13,8 +13,6 @@ | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] -| IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] -| USER role_name [, ...] | SYSID uid
changedCREATE TRIGGER
--- 18
+++ 19 beta 4
@@ -1,7 +1,7 @@
CREATE [ OR REPLACE ] [ CONSTRAINT ] TRIGGER name { BEFORE | AFTER | INSTEAD OF } { event [ OR ... ] }
ON table_name
[ FROM referenced_table_name ]
-[ NOT DEFERRABLE | [ DEFERRABLE ] [ INITIALLY IMMEDIATE | INITIALLY DEFERRED ] ]
+[ NOT DEFERRABLE | [ DEFERRABLE ] [ INITIALLY IMMEDIATE | INITIALLY DEFERRED ] ] [ ENFORCED ]
[ REFERENCING { { OLD | NEW } TABLE [ AS ] transition_relation_name } [ ... ] ]
[ FOR [ EACH ] { ROW | STATEMENT } ]
[ WHEN ( condition ) ]
changedCREATE FOREIGN DATA WRAPPER
--- 18 +++ 19 beta 4 @@ -1,4 +1,5 @@ CREATE FOREIGN DATA WRAPPER name [ HANDLER handler_function | NO HANDLER ] [ VALIDATOR validator_function | NO VALIDATOR ] +[ CONNECTION connection_function | NO CONNECTION ] [ OPTIONS ( option 'value' [, ... ] ) ]
changedALTER FOREIGN DATA WRAPPER
--- 18
+++ 19 beta 4
@@ -1,6 +1,7 @@
ALTER FOREIGN DATA WRAPPER name
[ HANDLER handler_function | NO HANDLER ]
[ VALIDATOR validator_function | NO VALIDATOR ]
+[ CONNECTION connection_function | NO CONNECTION ]
[ OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ]) ]
ALTER FOREIGN DATA WRAPPER name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER FOREIGN DATA WRAPPER name RENAME TO new_name
changedCREATE PUBLICATION
--- 18
+++ 19 beta 4
@@ -1,6 +1,5 @@
CREATE PUBLICATION name
-[ FOR ALL TABLES
-| FOR publication_object [, ... ] ]
+[ FOR { publication_object [, ... ] | publication_all_object [, ... ] } ]
[ WITH ( publication_parameter [= value] [, ... ] ) ]
where publication_object is one of:
@@ -8,6 +7,18 @@
TABLE table_and_columns [, ... ]
TABLES IN SCHEMA { schema_name | CURRENT_SCHEMA } [, ... ]
+and publication_all_object is one of:
+
+ALL TABLES [ EXCEPT ( except_table_object [, ... ] ) ]
+ALL SEQUENCES
+
and table_and_columns is:
+table_object [ ( column_name [, ... ] ) ] [ WHERE ( expression ) ]
-[ ONLY ] table_name [ * ] [ ( column_name [, ... ] ) ] [ WHERE ( expression ) ]
+and except_table_object is:
+
+TABLE table_object [, ... ]
+
+and table_object is:
+
+[ ONLY ] table_name [ * ]
changedALTER PUBLICATION
--- 18
+++ 19 beta 4
@@ -1,6 +1,6 @@
ALTER PUBLICATION name ADD publication_object [, ...]
-ALTER PUBLICATION name SET publication_object [, ...]
ALTER PUBLICATION name DROP publication_drop_object [, ...]
+ALTER PUBLICATION name SET { publication_object [, ...] | publication_all_object [, ... ] }
ALTER PUBLICATION name SET ( publication_parameter [= value] [, ... ] )
ALTER PUBLICATION name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER PUBLICATION name RENAME TO new_name
@@ -9,11 +9,23 @@
TABLE table_and_columns [, ... ]
TABLES IN SCHEMA { schema_name | CURRENT_SCHEMA } [, ... ]
+and publication_all_object is one of:
+
+ALL TABLES [ EXCEPT ( except_table_object [, ... ] ) ]
+ALL SEQUENCES
+
and publication_drop_object is one of:
-TABLE [ ONLY ] table_name [ * ] [, ... ]
+TABLE table_object [, ... ]
TABLES IN SCHEMA { schema_name | CURRENT_SCHEMA } [, ... ]
and table_and_columns is:
+table_object [ ( column_name [, ... ] ) ] [ WHERE ( expression ) ]
-[ ONLY ] table_name [ * ] [ ( column_name [, ... ] ) ] [ WHERE ( expression ) ]
+and except_table_object is:
+
+TABLE table_object [, ... ]
+
+and table_object is:
+
+[ ONLY ] table_name [ * ]
changedCREATE SUBSCRIPTION
--- 18
+++ 19 beta 4
@@ -1,4 +1,4 @@
CREATE SUBSCRIPTION subscription_name
-CONNECTION 'conninfo'
+{ SERVER server_name | CONNECTION 'conninfo' }
PUBLICATION publication_name [, ...]
[ WITH ( subscription_parameter [= value] [, ... ] ) ]
changedALTER SUBSCRIPTION
--- 18 +++ 19 beta 4 @@ -1,8 +1,10 @@ +ALTER SUBSCRIPTION name SERVER server_name ALTER SUBSCRIPTION name CONNECTION 'conninfo' ALTER SUBSCRIPTION name SET PUBLICATION publication_name [, ...] [ WITH ( publication_option [= value] [, ... ] ) ] ALTER SUBSCRIPTION name ADD PUBLICATION publication_name [, ...] [ WITH ( publication_option [= value] [, ... ] ) ] ALTER SUBSCRIPTION name DROP PUBLICATION publication_name [, ...] [ WITH ( publication_option [= value] [, ... ] ) ] ALTER SUBSCRIPTION name REFRESH PUBLICATION [ WITH ( refresh_option [= value] [, ... ] ) ] +ALTER SUBSCRIPTION name REFRESH SEQUENCES ALTER SUBSCRIPTION name ENABLE ALTER SUBSCRIPTION name DISABLE ALTER SUBSCRIPTION name SET ( subscription_parameter [= value] [, ... ] )
changedCOPY
--- 18
+++ 19 beta 4
@@ -14,9 +14,10 @@
DELIMITER 'delimiter_character'
NULL 'null_string'
DEFAULT 'default_string'
-HEADER [ boolean | MATCH ]
+HEADER [ boolean | integer | MATCH ]
QUOTE 'quote_character'
ESCAPE 'escape_character'
+FORCE_ARRAY [ boolean ]
FORCE_QUOTE { ( column_name [, ...] ) | * }
FORCE_NOT_NULL { ( column_name [, ...] ) | * }
FORCE_NULL { ( column_name [, ...] ) | * }
changedEXPLAIN
--- 18
+++ 19 beta 4
@@ -12,4 +12,5 @@
TIMING [ boolean ]
SUMMARY [ boolean ]
MEMORY [ boolean ]
+IO [ boolean ]
FORMAT { TEXT | XML | JSON | YAML }
changedINSERT
--- 18
+++ 19 beta 4
@@ -13,6 +13,7 @@
and conflict_action is one of:
DO NOTHING
+DO SELECT [ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } ] [ WHERE condition ]
DO UPDATE SET { column_name = { expression | DEFAULT } |
( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) |
( column_name [, ...] ) = ( sub-SELECT )
changedSELECT INTO
--- 18
+++ 19 beta 4
@@ -4,12 +4,12 @@
INTO [ TEMPORARY | TEMP | UNLOGGED ] [ TABLE ] new_table
[ FROM from_item [, ...] ]
[ WHERE condition ]
-[ GROUP BY expression [, ...] ]
+[ GROUP BY [ ALL | DISTINCT ] grouping_element [, ...] ]
[ HAVING condition ]
[ WINDOW window_name AS ( window_definition ) [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ]
[ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ]
[ LIMIT { count | ALL } ]
[ OFFSET start [ ROW | ROWS ] ]
-[ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]
-[ FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT ] [...] ]
+[ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } { ONLY | WITH TIES } ]
+[ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF from_reference [, ...] ] [ NOWAIT | SKIP LOCKED ] [...] ]
addedWAIT
--- 18 +++ 19 beta 4 @@ -0,0 +1,12 @@ +WAIT FOR LSN 'lsn' +[ WITH ( option [, ...] ) ] + +where option can be: + +MODE 'mode' +TIMEOUT 'timeout' +NO_THROW + +and mode can be: + +standby_replay | standby_write | standby_flush | primary_flush
changedSET
--- 18
+++ 19 beta 4
@@ -1,2 +1,2 @@
-SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value' | DEFAULT }
-SET [ SESSION | LOCAL ] TIME ZONE { value | 'value' | LOCAL | DEFAULT }
+SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value [, ...] | DEFAULT }
+SET [ SESSION | LOCAL ] TIME ZONE { value | LOCAL | DEFAULT }
changedCHECKPOINT
--- 18
+++ 19 beta 4
@@ -1 +1,6 @@
-CHECKPOINT
+CHECKPOINT [ ( option [, ...] ) ]
+
+where option can be one of:
+
+FLUSH_UNLOGGED [ boolean ]
+MODE { FAST | SPREAD }
changedVACUUM
--- 18 +++ 19 beta 4 @@ -2,7 +2,6 @@ where option can be one of: -FULL [ boolean ] FREEZE [ boolean ] VERBOSE [ boolean ] ANALYZE [ boolean ] @@ -16,6 +15,8 @@ SKIP_DATABASE_STATS [ boolean ] ONLY_DATABASE_STATS [ boolean ] BUFFER_USAGE_LIMIT size +FULL [ boolean ] + and table_and_columns is: [ ONLY ] table_name [ * ] [ ( column_name [, ...] ) ]
addedREPACK
--- 18 +++ 19 beta 4 @@ -0,0 +1,11 @@ +REPACK [ ( option [, ...] ) ] [ table_and_columns [ USING INDEX [ index_name ] ] ] +REPACK [ ( option [, ...] ) ] USING INDEX + +where option can be one of: + +VERBOSE [ boolean ] +ANALYZE [ boolean ] +CONCURRENTLY [ boolean ] + +and table_and_columns is: +table_name [ ( column_name [, ...] ) ]