{"record":{"id":"71fbe769ad9ccadf","repo":"apache/cassandra","slug":"materialized-views-are-disabled-enable-in-cassand","errorCode":null,"errorMessage":"Materialized views are disabled. Enable in cassandra.yaml to use.","messagePattern":"Materialized views are disabled\\. Enable in cassandra\\.yaml to use\\.","errorType":"validation","errorClass":"InvalidRequestException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/cql3/statements/schema/CreateViewStatement.java","lineNumber":125,"sourceCode":"        this.viewName = viewName;\n\n        this.rawColumns = rawColumns;\n        this.partitionKeyColumns = partitionKeyColumns;\n        this.clusteringColumns = clusteringColumns;\n\n        this.whereClause = whereClause;\n\n        this.clusteringOrder = clusteringOrder;\n        this.attrs = attrs;\n\n        this.ifNotExists = ifNotExists;\n    }\n\n    @Override\n    public void validate(ClientState state)\n    {\n        if (!DatabaseDescriptor.getMaterializedViewsEnabled())\n            throw ire(\"Materialized views are disabled. Enable in cassandra.yaml to use.\");\n\n        super.validate(state);\n\n        // save the query state to use it for guardrails validation in #apply\n        this.state = state;\n    }\n\n    @Override\n    public boolean compatibleWith(ClusterMetadata metadata)\n    {\n        return metadata.directory.commonSerializationVersion.isAtLeast(Version.V0);\n    }\n\n    @Override\n    public Keyspaces apply(ClusterMetadata metadata)\n    {\n        /*\n         * Basic dependency validations","sourceCodeStart":107,"sourceCodeEnd":143,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/cql3/statements/schema/CreateViewStatement.java#L107-L143","documentation":"Guard in CreateViewStatement.validate() thrown when a CREATE MATERIALIZED VIEW statement is submitted while materialized views are turned off cluster-wide. DatabaseDescriptor.getMaterializedViewsEnabled() reflects the materialized_views_enabled setting in cassandra.yaml, so any MV creation request fails with InvalidRequestException during client-state validation, before schema coordination.","triggerScenarios":"Thrown at src/java/org/apache/cassandra/cql3/statements/schema/CreateViewStatement.java:125 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Enable materialized views by setting materialized_views_enabled: true in cassandra.yaml on every node and restarting; use SASI or manually maintained denormalized tables as an alternative if MVs should stay disabled; contact the cluster operator if the setting is managed externally."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}