{"record":{"id":"8dbdda7431216db9","repo":"apache/beam","slug":"cannot-write-to-show-catalogs","errorCode":null,"errorMessage":"Cannot write to SHOW CATALOGS","messagePattern":"Cannot write to SHOW CATALOGS","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":86,"sourceCode":"    }\n\n    @Override\n    public PCollection<Row> buildIOReader(PBegin begin) {\n      Collection<Catalog> catalogs =\n          currentOnly\n              ? ImmutableList.of(catalogManager.currentCatalog())\n              : catalogManager.catalogs();\n      List<Row> rows =\n          catalogs.stream()\n              .map(cat -> Row.withSchema(SCHEMA).addValues(cat.name(), cat.type()).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 CATALOGS\");\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 DatabasesMetaTable extends BaseBeamTable {\n    private final Catalog catalog;\n    private final boolean currentOnly;\n    private static final Schema SCHEMA = Schema.builder().addStringField(\"NAME\").build();\n","sourceCodeStart":68,"sourceCodeEnd":104,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/SystemTables.java#L68-L104","documentation":"SystemTables' SHOW CATALOGS pseudo-table is read-only by design: its buildIOWriter is a sentinel guard that always throws because catalog metadata views in Beam SQL cannot be written to. Any INSERT/UPDATE targeting SHOW CATALOGS reaches this throw.","triggerScenarios":"Thrown at sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/SystemTables.java:86 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Do not write to metadata views; query SHOW CATALOGS only.","To change the catalog set, use catalog management operations (CREATE/DROP CATALOG) instead of writing to the system 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"}