{"record":{"id":"c0242922d0796e70","repo":"risingwavelabs/risingwave","slug":"not-supported-0-nhint-1","errorCode":null,"errorMessage":"Not supported: {0}\\nHINT: {1}","messagePattern":"Not supported: (.+?)\\\\nHINT: (.+?)","errorType":"error_code","errorClass":"ErrorCode::NotSupported","httpStatus":null,"severity":"error","filePath":"src/frontend/src/error.rs","lineNumber":61,"sourceCode":"    #[error(\"internal error: {0}\")]\n    InternalError(String),\n    // TODO: unify with the above\n    #[error(transparent)]\n    Uncategorized(\n        #[from]\n        #[backtrace]\n        anyhow::Error,\n    ),\n    #[error(\"connector error: {0}\")]\n    ConnectorError(\n        #[source]\n        #[backtrace]\n        BoxedError,\n    ),\n    #[error(transparent)]\n    NotImplemented(#[from] NotImplemented),\n    // Tips: Use this only if it's intended to reject the query\n    #[error(\"Not supported: {0}\\nHINT: {1}\")]\n    NotSupported(String, String),\n    #[error(transparent)]\n    NoFunction(#[from] NoFunction),\n    #[error(transparent)]\n    IoError(#[from] std::io::Error),\n    #[error(\"Storage error: {0}\")]\n    StorageError(\n        #[backtrace]\n        #[source]\n        BoxedError,\n    ),\n    #[error(\"Expr error: {0}\")]\n    ExprError(\n        #[source]\n        #[backtrace]\n        BoxedError,\n    ),\n    // TODO(error-handling): there's a limitation that `#[transparent]` can't be used with `#[backtrace]` if no `#[from]`","sourceCodeStart":43,"sourceCodeEnd":79,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/frontend/src/error.rs#L43-L79","documentation":"`ErrorCode::NotSupported` reports a feature or SQL construct that RisingWave intentionally does not support. It is thrown only when the query is meant to be rejected, and the second `String` field is a HINT suggesting what to do instead.","triggerScenarios":"Frontend binder/planner explicitly rejects: e.g. unsupported DDL combinations, operations invalid for materialized views (certain UPDATE/DELETE targets, unsupported time travel), or features gated behind flags.","commonSituations":"Migrating SQL from Postgres that uses syntax RisingWave hasn't implemented, attempting mutations or session features not valid on streaming objects, or using a deprecated option.","solutions":["Read the HINT portion of the message — it states the supported alternative","Rewrite the query per the hint (e.g. use a different clause or object type)","Check RisingWave docs/release notes for the feature's availability","If support is needed, upvote/open a feature request with the statement"],"exampleFix":"-- before\nALTER MATERIALIZED VIEW mv RENAME COLUMN a TO b;\n-- after (per typical hint: recreate the MV)\nCREATE MATERIALIZED VIEW mv2 AS SELECT a AS b, ... FROM ...;","handlingStrategy":"validation","validationCode":"// validate statement against supported feature matrix before submitting\n// e.g. check docs: is ALTER MATERIALIZED VIEW ... RENAME supported?","typeGuard":"fn is_not_supported(e: &RwError) -> bool { matches!(e.get_code(), ErrorCode::NotSupported(_, _)) }","tryCatchPattern":"match err.get_code() { ErrorCode::NotSupported(what, hint) => { apply_hint(hint); }, _ => propagate }","preventionTips":["Read the HINT embedded in the message before changing code","Check RisingWave docs for feature support per version","Test migrations from Postgres against RisingWave in staging","Track release notes for newly supported operations"],"tags":["unsupported","sql","frontend"],"backgroundTag":"unsupported-operation","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}