mirror of https://github.com/citusdata/citus.git
Add support for SET ACCESS METHOD in altering a distributed table (#6525)
Co-authored-by: TsinghuaLucky912 <postgres@localhost.localdomain>pull/6526/head
parent
c2193608c9
commit
29f0196fdf
|
@ -2992,6 +2992,9 @@ ErrorIfUnsupportedAlterTableStmt(AlterTableStmt *alterTableStatement)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if PG_VERSION_NUM >= PG_VERSION_15
|
||||||
|
case AT_SetAccessMethod:
|
||||||
|
#endif
|
||||||
case AT_SetNotNull:
|
case AT_SetNotNull:
|
||||||
case AT_ReplicaIdentity:
|
case AT_ReplicaIdentity:
|
||||||
case AT_ChangeOwner:
|
case AT_ChangeOwner:
|
||||||
|
@ -3007,6 +3010,7 @@ ErrorIfUnsupportedAlterTableStmt(AlterTableStmt *alterTableStatement)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* We will not perform any special check for:
|
* We will not perform any special check for:
|
||||||
|
* ALTER TABLE .. SET ACCESS METHOD ..
|
||||||
* ALTER TABLE .. ALTER COLUMN .. SET NOT NULL
|
* ALTER TABLE .. ALTER COLUMN .. SET NOT NULL
|
||||||
* ALTER TABLE .. REPLICA IDENTITY ..
|
* ALTER TABLE .. REPLICA IDENTITY ..
|
||||||
* ALTER TABLE .. VALIDATE CONSTRAINT ..
|
* ALTER TABLE .. VALIDATE CONSTRAINT ..
|
||||||
|
|
|
@ -1456,6 +1456,36 @@ NOTICE: drop cascades to 2 other objects
|
||||||
CREATE DATABASE db_with_oid OID 987654;
|
CREATE DATABASE db_with_oid OID 987654;
|
||||||
NOTICE: Citus partially supports CREATE DATABASE for distributed databases
|
NOTICE: Citus partially supports CREATE DATABASE for distributed databases
|
||||||
DROP DATABASE db_with_oid;
|
DROP DATABASE db_with_oid;
|
||||||
|
-- SET ACCESS METHOD
|
||||||
|
-- Create a heap2 table am handler with heapam handler
|
||||||
|
CREATE ACCESS METHOD heap2 TYPE TABLE HANDLER heap_tableam_handler;
|
||||||
|
SELECT run_command_on_workers($$CREATE ACCESS METHOD heap2 TYPE TABLE HANDLER heap_tableam_handler$$);
|
||||||
|
run_command_on_workers
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
(localhost,57637,t,"CREATE ACCESS METHOD")
|
||||||
|
(localhost,57638,t,"CREATE ACCESS METHOD")
|
||||||
|
(2 rows)
|
||||||
|
|
||||||
|
CREATE TABLE mx_ddl_table2 (
|
||||||
|
key int primary key,
|
||||||
|
value int
|
||||||
|
);
|
||||||
|
SELECT create_distributed_table('mx_ddl_table2', 'key', 'hash', shard_count=> 4);
|
||||||
|
create_distributed_table
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
ALTER TABLE mx_ddl_table2 SET ACCESS METHOD heap2;
|
||||||
|
DROP TABLE mx_ddl_table2;
|
||||||
|
DROP ACCESS METHOD heap2;
|
||||||
|
SELECT run_command_on_workers($$DROP ACCESS METHOD heap2$$);
|
||||||
|
run_command_on_workers
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
(localhost,57637,t,"DROP ACCESS METHOD")
|
||||||
|
(localhost,57638,t,"DROP ACCESS METHOD")
|
||||||
|
(2 rows)
|
||||||
|
|
||||||
-- Clean up
|
-- Clean up
|
||||||
\set VERBOSITY terse
|
\set VERBOSITY terse
|
||||||
SET client_min_messages TO ERROR;
|
SET client_min_messages TO ERROR;
|
||||||
|
|
|
@ -924,6 +924,21 @@ DROP SERVER foreign_server CASCADE;
|
||||||
CREATE DATABASE db_with_oid OID 987654;
|
CREATE DATABASE db_with_oid OID 987654;
|
||||||
DROP DATABASE db_with_oid;
|
DROP DATABASE db_with_oid;
|
||||||
|
|
||||||
|
-- SET ACCESS METHOD
|
||||||
|
-- Create a heap2 table am handler with heapam handler
|
||||||
|
CREATE ACCESS METHOD heap2 TYPE TABLE HANDLER heap_tableam_handler;
|
||||||
|
SELECT run_command_on_workers($$CREATE ACCESS METHOD heap2 TYPE TABLE HANDLER heap_tableam_handler$$);
|
||||||
|
CREATE TABLE mx_ddl_table2 (
|
||||||
|
key int primary key,
|
||||||
|
value int
|
||||||
|
);
|
||||||
|
SELECT create_distributed_table('mx_ddl_table2', 'key', 'hash', shard_count=> 4);
|
||||||
|
ALTER TABLE mx_ddl_table2 SET ACCESS METHOD heap2;
|
||||||
|
|
||||||
|
DROP TABLE mx_ddl_table2;
|
||||||
|
DROP ACCESS METHOD heap2;
|
||||||
|
SELECT run_command_on_workers($$DROP ACCESS METHOD heap2$$);
|
||||||
|
|
||||||
-- Clean up
|
-- Clean up
|
||||||
\set VERBOSITY terse
|
\set VERBOSITY terse
|
||||||
SET client_min_messages TO ERROR;
|
SET client_min_messages TO ERROR;
|
||||||
|
|
Loading…
Reference in New Issue