2.1. Limitations of Shardman

2.1.1. ALTER TABLE Limitations
2.1.2. CREATE TABLE Limitations
2.1.3. DROP TABLE Limitations
2.1.4. Limitations of Managing Global Roles
2.1.5. ALTER SCHEMA Limitations
2.1.6. DROP SERVER Limitations
2.1.7. Other Limitations

To ensure consistency of a sharded database, Shardman imposes some restrictions on SQL commands executed.

2.1.1. ALTER TABLE Limitations

  • ALTER TABLE is prohibited for partitions of sharded tables.

  • All forms of ALTER TABLE are prohibited for sharded or global tables except these:

    • ALTER TABLE OWNER is allowed. For sharded table it also changes the owner of table partitions.

    • ADD COLUMN and DROP COLUMN are allowed except adding columns of serial types.

    • Adding or dropping table-wide unique constraints and checks is allowed. For global tables dropping primary key constraint or dropping columns, participating in primary key, is forbidden.

    • SET/DROP NOT NULL is allowed.

    • Setting storage options is allowed for global tables.

2.1.2. CREATE TABLE Limitations

  • All limitations for ALTER TABLE apply.

  • A temporary table cannot be created as sharded.

2.1.3. DROP TABLE Limitations

  • Sharded tables and local tables cannot be dropped in the same statement.

  • Partitions of a sharded table cannot be dropped.

2.1.4. Limitations of Managing Global Roles

  • Global roles cannot be renamed.

  • Global and local roles cannot be dropped in the same statement.

  • GRANT to a local and global role in the same statement is prohibited.

  • REVOKE from a local and global role in the same statement is prohibited.

2.1.5. ALTER SCHEMA Limitations

  • Schemas containing global or sharded tables cannot be renamed. Shardman service schemas (shardman and shardman_internal) cannot be renamed or dropped.

2.1.6. DROP SERVER Limitations

  • Shardman cluster servers cannot be dropped. Use Shardman tools to remove servers from the cluster.

2.1.7. Other Limitations