risingwavelabs/risingwave · error

ALTER TABLE SET PARALLELISM is not supported for iceberg…

Error message

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

What it means

Changing streaming parallelism (`ALTER TABLE ... SET PARALLELISM`) is rejected for Iceberg-backed tables. Iceberg table DDL on RisingWave does not support parallelism adjustment on the underlying streaming job.

Solutions

  1. Recreate the table and Iceberg sink with the desired parallelism option in the DDL.
  2. Tune parallelism on the Iceberg side/external compute if applicable, not via RisingWave ALTER TABLE.
  3. Skip the SET PARALLELISM statement for Iceberg tables in automation scripts.

Example fix

// before
ALTER TABLE iceberg_t SET PARALLELISM = 8;
// after
-- recreate: CREATE TABLE ... WITH (parallelism = 8) plus Iceberg sink
Defensive patterns

Strategy: validation

Validate before calling

-- Skip SET PARALLELISM for iceberg-backed tables
SELECT relation_kind FROM rw_catalog.rw_relations WHERE name = 't';
-- only issue SET PARALLELISM for non-iceberg tables

Type guard

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

Try / catch

match client.alter_table_set_parallelism(table, p).await {
    Err(e) if e.message().contains("SET PARALLELISM is not supported for iceberg") => {
        // recreate table/sink with desired parallelism if needed
    }
    other => other?,
}

Prevention

When it happens

Trigger: Executing `ALTER TABLE <iceberg_table> SET PARALLELISM ...` where the table is backed by an Iceberg sink.

Common situations: Tuning throughput after increased load; copy-pasted parallelism tuning scripts applied to all tables including Iceberg ones.

Related errors


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

Appendix: source

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

        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
            );
        }
        AlterTableOperation::RefreshSchema => {
            bail!(
                "ALTER TABLE REFRESH SCHEMA is not supported for iceberg table: {}.{}",
                schema_name,
                table_name
            );

View on GitHub (pinned to 6469eb736d)