risingwavelabs/risingwave · error

SET CONFIG is only supported for materialized views

Error message

SET CONFIG is only supported for materialized views

What it means

`ALTER ... SET CONFIG` adjusts streaming configuration of a streaming job, which only materialized views have. When the altered object is a plain view (not materialized), the handler rejects the operation.

Solutions

  1. Use `ALTER MATERIALIZED VIEW <name> SET CONFIG (...);` instead
  2. Confirm the object is an MV via `SHOW MATERIALIZED VIEWS LIKE '<name>';`
  3. For plain views, change the underlying query definition with `ALTER VIEW <name> AS <query>` instead

Example fix

// before
ALTER VIEW my_v SET CONFIG (streaming_use_fetch_operator = true);
// after
ALTER MATERIALIZED VIEW my_mv SET CONFIG (streaming_use_fetch_operator = true);
Defensive patterns

Strategy: validation

Validate before calling

SELECT name FROM rw_catalog.rw_mviews WHERE name = 'my_object';
-- only proceed with ALTER ... SET CONFIG if a row exists

Prevention

When it happens

Trigger: Running `ALTER VIEW <name> SET CONFIG (<key> = <value>)` where `<name>` is a regular VIEW created via `CREATE VIEW`.

Common situations: Mixing up `ALTER VIEW` and `ALTER MATERIALIZED VIEW` syntax; copy-pasting tuning commands between views and MVs.

Related errors


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

Appendix: source

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

                        bail!(
                            "ALTER VIEW SET STREAMING_ENABLE_UNALIGNED_JOIN is not supported. Only supported for materialized views"
                        );
                    }
                    alter_streaming_enable_unaligned_join::handle_alter_streaming_enable_unaligned_join(handler_args, name, enable).await
                }
                AlterViewOperation::AsQuery { query } => {
                    if !materialized {
                        bail_not_implemented!("ALTER VIEW AS QUERY");
                    }
                    // `ALTER MATERIALIZED VIEW AS QUERY` is only available in development build now.
                    if !cfg!(debug_assertions) {
                        bail_not_implemented!("ALTER MATERIALIZED VIEW AS QUERY");
                    }
                    alter_mv::handle_alter_mv(handler_args, name, query).await
                }
                AlterViewOperation::SetConfig { entries } => {
                    if !materialized {
                        bail!("SET CONFIG is only supported for materialized views");
                    }
                    alter_streaming_config::handle_alter_streaming_set_config(
                        handler_args,
                        name,
                        entries,
                        statement_type,
                    )
                    .await
                }
                AlterViewOperation::ResetConfig { keys } => {
                    if !materialized {
                        bail!("RESET CONFIG is only supported for materialized views");
                    }
                    alter_streaming_config::handle_alter_streaming_reset_config(
                        handler_args,
                        name,
                        keys,
                        statement_type,

View on GitHub (pinned to 6469eb736d)