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 18 → 19 beta 3

Browse PG 19 →

Pre-release documentation. These definitions may change before the final release.

5 added · 0 removed · 28 changed · 0 coverage changes. These are changes in the pinned reference snapshots.

changedCREATE TABLE
--- 18
+++ 19 beta 3
@@ -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 [, ... ] ) ] }
changedALTER TABLE
--- 18
+++ 19 beta 3
@@ -14,6 +14,12 @@
 ATTACH PARTITION partition_name { FOR VALUES partition_bound_spec | DEFAULT }
 ALTER TABLE [ IF EXISTS ] name
 DETACH PARTITION partition_name [ CONCURRENTLY | FINALIZE ]
+ALTER TABLE [ IF EXISTS ] name
+MERGE PARTITIONS (partition_name1, partition_name2 [, ...]) INTO partition_name
+ALTER TABLE [ IF EXISTS ] name
+SPLIT PARTITION partition_name INTO
+(PARTITION partition_name1 { FOR VALUES partition_bound_spec | DEFAULT },
+PARTITION partition_name2 { FOR VALUES partition_bound_spec | DEFAULT } [, ...])
 
 where action is one of:
 
changedCREATE TABLE AS
--- 18
+++ 19 beta 3
@@ -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 3
@@ -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 OPERATOR
--- 18
+++ 19 beta 3
@@ -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 ]
changedGRANT
--- 18
+++ 19 beta 3
@@ -59,6 +59,11 @@
 TO role_specification [, ...] [ WITH GRANT OPTION ]
 [ GRANTED BY role_specification ]
 
+GRANT { SELECT | ALL [ PRIVILEGES ] }
+ON PROPERTY GRAPH graph_name [, ...]
+TO role_specification [, ...] [ WITH GRANT OPTION ]
+[ GRANTED BY role_specification ]
+
 GRANT { { CREATE | USAGE } [, ...] | ALL [ PRIVILEGES ] }
 ON SCHEMA schema_name [, ...]
 TO role_specification [, ...] [ WITH GRANT OPTION ]
changedREVOKE
--- 18
+++ 19 beta 3
@@ -82,6 +82,13 @@
 [ CASCADE | RESTRICT ]
 
 REVOKE [ GRANT OPTION FOR ]
+{ SELECT | ALL [ PRIVILEGES ] }
+ON PROPERTY GRAPH graph_name [, ...]
+FROM role_specification [, ...]
+[ GRANTED BY role_specification ]
+[ CASCADE | RESTRICT ]
+
+REVOKE [ GRANT OPTION FOR ]
 { { CREATE | USAGE } [, ...] | ALL [ PRIVILEGES ] }
 ON SCHEMA schema_name [, ...]
 FROM role_specification [, ...]
changedCREATE GROUP
--- 18
+++ 19 beta 3
@@ -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 3
@@ -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 3
@@ -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 ) ]
changedALTER EXTENSION
--- 18
+++ 19 beta 3
@@ -20,6 +20,7 @@
 OPERATOR FAMILY object_name USING index_method |
 [ PROCEDURAL ] LANGUAGE object_name |
 PROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
+PROPERTY GRAPH object_name |
 ROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
 SCHEMA object_name |
 SEQUENCE object_name |
changedCREATE FOREIGN DATA WRAPPER
--- 18
+++ 19 beta 3
@@ -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 3
@@ -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 3
@@ -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 3
@@ -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 3
@@ -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 3
@@ -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 3
@@ -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 [, ...] ) | * }
changedDELETE
--- 18
+++ 19 beta 3
@@ -1,6 +1,13 @@
 [ WITH [ RECURSIVE ] with_query [, ...] ]
-DELETE FROM [ ONLY ] table_name [ * ] [ [ AS ] alias ]
+DELETE FROM [ ONLY ] table_name [ * ]
+[ FOR PORTION OF range_column_name for_portion_of_target ]
+[ [ AS ] alias ]
 [ USING from_item [, ...] ]
 [ WHERE condition | WHERE CURRENT OF cursor_name ]
 [ RETURNING [ WITH ( { OLD | NEW } AS output_alias [, ...] ) ]
 { * | output_expression [ [ AS ] output_name ] } [, ...] ]
+
+where for_portion_of_target is:
+
+{ FROM start_time TO end_time |
+( portion ) }
changedEXPLAIN
--- 18
+++ 19 beta 3
@@ -12,4 +12,5 @@
 TIMING [ boolean ]
 SUMMARY [ boolean ]
 MEMORY [ boolean ]
+IO [ boolean ]
 FORMAT { TEXT | XML | JSON | YAML }
changedINSERT
--- 18
+++ 19 beta 3
@@ -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
--- 18
+++ 19 beta 3
@@ -25,6 +25,7 @@
 [ LATERAL ] function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )
 [ LATERAL ] ROWS FROM( function_name ( [ argument [, ...] ] ) [ AS ( column_definition [, ...] ) ] [, ...] )
 [ WITH ORDINALITY ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
+GRAPH_TABLE ( graph_name MATCH graph_pattern COLUMNS ( { expression [ AS name ] } [, ...] ) ) [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
 from_item join_type from_item { ON join_condition | USING ( join_column [, ...] ) [ AS join_using_alias ] }
 from_item NATURAL join_type from_item
 from_item CROSS JOIN from_item
changedUPDATE
--- 18
+++ 19 beta 3
@@ -1,5 +1,7 @@
 [ WITH [ RECURSIVE ] with_query [, ...] ]
-UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
+UPDATE [ ONLY ] table_name [ * ]
+[ FOR PORTION OF range_column_name for_portion_of_target ]
+[ [ AS ] alias ]
 SET { column_name = { expression | DEFAULT } |
 ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) |
 ( column_name [, ...] ) = ( sub-SELECT )
@@ -8,3 +10,8 @@
 [ WHERE condition | WHERE CURRENT OF cursor_name ]
 [ RETURNING [ WITH ( { OLD | NEW } AS output_alias [, ...] ) ]
 { * | output_expression [ [ AS ] output_name ] } [, ...] ]
+
+where for_portion_of_target is:
+
+{ FROM start_time TO end_time |
+( portion ) }
changedSELECT INTO
--- 18
+++ 19 beta 3
@@ -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 FOR
--- 18
+++ 19 beta 3
@@ -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 3
@@ -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 3
@@ -1 +1,6 @@
-CHECKPOINT
+CHECKPOINT [ ( option [, ...] ) ]
+
+where option can be one of:
+
+FLUSH_UNLOGGED [ boolean ]
+MODE { FAST | SPREAD }
changedVACUUM
--- 18
+++ 19 beta 3
@@ -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 [, ...] ) ]
changedCOMMENT
--- 18
+++ 19 beta 3
@@ -24,6 +24,7 @@
 POLICY policy_name ON table_name |
 [ PROCEDURAL ] LANGUAGE object_name |
 PROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
+PROPERTY GRAPH object_name
 PUBLICATION object_name |
 ROLE object_name |
 ROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
addedREPACK
--- 18
+++ 19 beta 3
@@ -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 [, ...] ) ]
addedCREATE PROPERTY GRAPH
--- 18
+++ 19 beta 3
@@ -0,0 +1,20 @@
+CREATE [ TEMP | TEMPORARY ] PROPERTY GRAPH name
+[ {VERTEX|NODE} TABLES ( vertex_table_definition [, ...] ) ]
+[ {EDGE|RELATIONSHIP} TABLES ( edge_table_definition [, ...] ) ]
+
+where vertex_table_definition is:
+vertex_table_name [ AS alias ] [ KEY ( column_name [, ...] ) ] [ element_table_label_and_properties ]
+
+and edge_table_definition is:
+edge_table_name [ AS alias ] [ KEY ( column_name [, ...] ) ]
+SOURCE [ KEY ( column_name [, ...] ) REFERENCES ] source_table [ ( column_name [, ...] ) ]
+DESTINATION [ KEY ( column_name [, ...] ) REFERENCES ] dest_table [ ( column_name [, ...] ) ]
+[ element_table_label_and_properties ]
+
+and element_table_label_and_properties is either:
+
+NO PROPERTIES | PROPERTIES ALL COLUMNS | PROPERTIES ( { expression [ AS property_name ] } [, ...] )
+
+or:
+
+{ { LABEL label_name | DEFAULT LABEL } [ NO PROPERTIES | PROPERTIES ALL COLUMNS | PROPERTIES ( { expression [ AS property_name ] } [, ...] ) ] } [...]
addedALTER PROPERTY GRAPH
--- 18
+++ 19 beta 3
@@ -0,0 +1,29 @@
+ALTER PROPERTY GRAPH name ADD
+[ {VERTEX|NODE} TABLES ( vertex_table_definition [, ...] ) ]
+[ {EDGE|RELATIONSHIP} TABLES ( edge_table_definition [, ...] ) ]
+
+ALTER PROPERTY GRAPH name DROP
+{VERTEX|NODE} TABLES ( vertex_table_alias [, ...] ) [ CASCADE | RESTRICT ]
+
+ALTER PROPERTY GRAPH name DROP
+{EDGE|RELATIONSHIP} TABLES ( edge_table_alias [, ...] ) [ CASCADE | RESTRICT ]
+
+ALTER PROPERTY GRAPH name ALTER
+{VERTEX|NODE|EDGE|RELATIONSHIP} TABLE element_table_alias
+{ ADD LABEL label_name [ NO PROPERTIES | PROPERTIES ALL COLUMNS | PROPERTIES ( { expression [ AS property_name ] } [, ...] ) ] } [ ... ]
+
+ALTER PROPERTY GRAPH name ALTER
+{VERTEX|NODE|EDGE|RELATIONSHIP} TABLE element_table_alias
+DROP LABEL label_name [ CASCADE | RESTRICT ]
+
+ALTER PROPERTY GRAPH name ALTER
+{VERTEX|NODE|EDGE|RELATIONSHIP} TABLE element_table_alias
+ALTER LABEL label_name ADD PROPERTIES ( { expression [ AS property_name ] } [, ...] )
+
+ALTER PROPERTY GRAPH name ALTER
+{VERTEX|NODE|EDGE|RELATIONSHIP} TABLE element_table_alias
+ALTER LABEL label_name DROP PROPERTIES ( property_name [, ...] ) [ CASCADE | RESTRICT ]
+
+ALTER PROPERTY GRAPH name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
+ALTER PROPERTY GRAPH name RENAME TO new_name
+ALTER PROPERTY GRAPH [ IF EXISTS ] name SET SCHEMA new_schema
addedDROP PROPERTY GRAPH
--- 18
+++ 19 beta 3
@@ -0,0 +1 @@
+DROP PROPERTY GRAPH [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]