risingwavelabs/risingwave · error

ALTER TABLE RENAME is not supported for iceberg table: {}.{}

Error message

ALTER TABLE RENAME is not supported for iceberg table: {}.{}

What it means

Renaming an Iceberg table via `ALTER TABLE ... RENAME` is not supported. The name of an Iceberg-backed table is tied to its sink definition, so renaming it in RisingWave alone would break the association with the external Iceberg table.

Source

Thrown at src/frontend/src/handler/mod.rs:1767

                    "ALTER TABLE {} is not supported for iceberg table without auto schema change sink: {}.{}",
                    operation,
                    schema_name,
                    table_name
                );
            }
        }
        AlterTableOperation::RenameColumn { .. }
        | AlterTableOperation::ChangeColumn { .. }
        | AlterTableOperation::AlterColumn { .. } => {
            bail!(
                "ALTER TABLE {} is not supported for iceberg table: {}.{}. Existing column schema mutation is not supported currently",
                operation,
                schema_name,
                table_name
            );
        }
        AlterTableOperation::RenameTable { .. } => {
            bail!(
                "ALTER TABLE RENAME is not supported for iceberg table: {}.{}",
                schema_name,
                table_name
            );
        }
        AlterTableOperation::SetParallelism { .. } => {
            bail!(
                "ALTER TABLE SET PARALLELISM is not supported for iceberg table: {}.{}",
                schema_name,
                table_name
            );
        }
        AlterTableOperation::SetBackfillParallelism { .. } => {
            bail!(
                "ALTER TABLE SET BACKFILL PARALLELISM is not supported for iceberg table: {}.{}",
                schema_name,
                table_name
            );

View on GitHub (pinned to 6469eb736d)

Solutions

  1. Do not rename the Iceberg table; instead create a new table/sink with the desired name and migrate data.
  2. If only a RisingWave alias is needed, create a non-Iceberg view or a new table and drop the old one.
  3. Rename on the Iceberg catalog side if the external tooling supports it, then rebuild the sink.

Example fix

// before
ALTER TABLE iceberg_t RENAME TO new_name;
// after
-- create new sink/table with desired name, migrate, then DROP the old one
Defensive patterns

Strategy: validation

Validate before calling

-- Do not rename iceberg-backed tables
SELECT relation_kind FROM rw_catalog.rw_relations WHERE name = 't';
-- if iceberg-backed, create a new table/sink instead of RENAME

Type guard

fn is_rename(op: &AlterTableOperation) -> bool {
    matches!(op, AlterTableOperation::RenameTable {..})
}

Try / catch

match client.alter_table_rename(table, new_name).await {
    Err(e) if e.message().contains("RENAME is not supported for iceberg table") => {
        // create new table + sink, migrate, drop old
    }
    other => other?,
}

Prevention

When it happens

Trigger: Executing `ALTER TABLE <iceberg_table> RENAME TO ...` on a table backed by an Iceberg sink.

Common situations: Reorganizing table names/namespaces; renaming conventions during migrations; generic rename scripts run across all tables.

Related errors


AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11). Data as JSON: /api/errors/a90138ed6d13e70d. Report an issue: GitHub.