{"record":{"id":"b94eb2d4844de20b","repo":"apache/beam","slug":"cannot-write-to-show-databases","errorCode":null,"errorMessage":"Cannot write to SHOW DATABASES","messagePattern":"Cannot write to SHOW DATABASES","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/SystemTables.java","lineNumber":129,"sourceCode":"    public PCollection<Row> buildIOReader(PBegin begin) {\n      Collection<String> databases;\n      if (currentOnly) {\n        @Nullable String currentDb = catalog.currentDatabase();\n        databases = currentDb != null ? Collections.singleton(currentDb) : Collections.emptyList();\n      } else {\n        databases = catalog.databases();\n      }\n      List<Row> rows =\n          databases.stream()\n              .map(db -> Row.withSchema(SCHEMA).addValues(db).build())\n              .collect(Collectors.toList());\n\n      return begin.apply(Create.of(rows).withRowSchema(SCHEMA));\n    }\n\n    @Override\n    public POutput buildIOWriter(PCollection<Row> input) {\n      throw new UnsupportedOperationException(\"Cannot write to SHOW DATABASES\");\n    }\n\n    @Override\n    public PCollection.IsBounded isBounded() {\n      return PCollection.IsBounded.BOUNDED;\n    }\n\n    @Override\n    public Schema getSchema() {\n      return SCHEMA;\n    }\n  }\n\n  public static class TablesMetaTable extends BaseBeamTable {\n    private final Catalog catalog;\n    private final String dbName;\n    private static final Schema SCHEMA =\n        Schema.builder().addStringField(\"NAME\").addStringField(\"TYPE\").build();","sourceCodeStart":111,"sourceCodeEnd":147,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/SystemTables.java#L111-L147","documentation":"The SHOW DATABASES system table is read-only: its buildIOWriter is a fixed guard that throws whenever a write is attempted against the databases metadata view. It reflects that Beam SQL metadata tables never accept writes.","triggerScenarios":"Thrown at sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/SystemTables.java:129 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Treat SHOW DATABASES as query-only and remove any DML targeting it.","Create or drop databases via catalog API operations rather than writing to the metadata table."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}