{"record":{"id":"cb3d791887e0134e","repo":"beekeeper-studio/beekeeper-studio","slug":"dynamodb-does-not-support-materialized-views","errorCode":null,"errorMessage":"DynamoDB does not support materialized views","messagePattern":"DynamoDB does not support materialized views","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"info","filePath":"apps/studio/src-commercial/backend/lib/db/clients/dynamodb.ts","lineNumber":883,"sourceCode":"\n  async createDatabase(): Promise<string> {\n    throw new Error('DynamoDB does not support creating databases');\n  }\n\n  async createDatabaseSQL(): Promise<string> {\n    throw new Error('DynamoDB does not support generating SQL');\n  }\n\n  async getTableCreateScript(): Promise<string> {\n    throw new Error('DynamoDB does not expose CREATE TABLE SQL');\n  }\n\n  async getViewCreateScript(): Promise<string[]> {\n    throw new Error('DynamoDB does not support views');\n  }\n\n  async getMaterializedViewCreateScript(): Promise<string[]> {\n    throw new Error('DynamoDB does not support materialized views');\n  }\n\n  async getRoutineCreateScript(): Promise<string[]> {\n    throw new Error('DynamoDB does not support routines');\n  }\n\n  async setElementName(): Promise<void> {\n    throw new Error('DynamoDB does not support renaming tables');\n  }\n\n  async setElementNameSql(): Promise<string> {\n    throw new Error('DynamoDB does not support renaming tables');\n  }\n\n  async setTableDescription(): Promise<string> {\n    throw new Error('DynamoDB does not support table descriptions');\n  }\n","sourceCodeStart":865,"sourceCodeEnd":901,"githubUrl":"https://github.com/beekeeper-studio/beekeeper-studio/blob/4e3e03e3223b2b71a1af8926d455f533b80af837/apps/studio/src-commercial/backend/lib/db/clients/dynamodb.ts#L865-L901","documentation":"DynamoDBClient.getMaterializedViewCreateScript() always throws. Materialized views are a SQL/warehouse concept (e.g. Postgres, Redshift) with no DynamoDB equivalent, so the method is an explicit unsupported stub.","triggerScenarios":"Calling DynamoDBClient.getMaterializedViewCreateScript(name), typically from a 'copy materialized view definition' flow.","commonSituations":"Tools that generically enumerate materialized views across all supported databases.","solutions":["Skip materialized-view handling entirely for DynamoDB connections","Check client capabilities before offering the action","Catch and display 'materialized views are not supported on DynamoDB'"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"const supportsMatViews = !isDynamoDBClient(client);\nif (!supportsMatViews) return null;","typeGuard":"const supportsMatViews = (c: unknown): c is Exclude<typeof c, DynamoDBClient> => !(c instanceof DynamoDBClient);","tryCatchPattern":"try {\n  return await client.getMaterializedViewCreateScript(name);\n} catch (e) {\n  if (e.message.includes('materialized views')) return null;\n  throw e;\n}","preventionTips":["Only expose materialized-view UI for SQL clients that implement it","Keep a capability flags object per client","Test UI actions against each connection type"],"tags":["dynamodb","nosql","unsupported-operation","materialized-views"],"backgroundTag":"unsupported-dynamodb-operation","analyzedSha":"4e3e03e3223b2b71a1af8926d455f533b80af837","analyzedAt":"2026-08-31T23:21:23.379Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T05:18:18.240Z"}