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
- Use `ALTER MATERIALIZED VIEW <name> SET CONFIG (...);` instead
- Confirm the object is an MV via `SHOW MATERIALIZED VIEWS LIKE '<name>';`
- 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
- Use ALTER MATERIALIZED VIEW ... SET CONFIG for streaming config changes
- Confirm object type with SHOW MATERIALIZED VIEWS before ALTER
- For plain views use ALTER VIEW ... AS <query> instead
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
- ALTER VIEW SET STREAMING_ENABLE_UNALIGNED_JOIN is not…
- Invalid order key: empty item in
- Invalid order key item
- missing FORMAT ... ENCODE ...
- missing FORMAT ... ENCODE ...
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)