{"record":{"id":"a0f249644ee40d38","repo":"apache/beam","slug":"database-is-not-empty","errorCode":null,"errorMessage":"Database '' is not empty.","messagePattern":"Database '' is not empty\\.","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/catalog/InMemoryCatalog.java","lineNumber":115,"sourceCode":"    checkArgument(databaseExists(database), \"Database '%s' does not exist.\");\n    currentDatabase = database;\n  }\n\n  @Override\n  public @Nullable String currentDatabase() {\n    return currentDatabase;\n  }\n\n  @Override\n  public Collection<String> databases() {\n    return databases;\n  }\n\n  @Override\n  public boolean dropDatabase(String database, boolean cascade) {\n    MetaStore metaStore = metaStores.get(database);\n    if (!cascade && metaStore != null && !metaStore.getTables().isEmpty()) {\n      throw new IllegalStateException(\"Database '\" + database + \"' is not empty.\");\n    }\n\n    boolean removed = databases.remove(database);\n    if (!removed) {\n      return false;\n    }\n    if (database.equals(currentDatabase)) {\n      currentDatabase = null;\n    }\n    metaStores.remove(database);\n    return true;\n  }\n\n  @Override\n  public void registerTableProvider(TableProvider provider) {\n    tableProviders.put(provider.getTableType(), provider);\n    metaStores.values().forEach(m -> m.registerProvider(provider));\n  }","sourceCodeStart":97,"sourceCodeEnd":133,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/catalog/InMemoryCatalog.java#L97-L133","documentation":"InMemoryCatalog.dropDatabase refuses to drop a database that still contains tables when cascade=false. The guard checks the database's MetaStore for non-empty tables and throws IllegalStateException, protecting against accidental loss of tables; use cascade=true to drop them along with the database.","triggerScenarios":"Thrown at sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/catalog/InMemoryCatalog.java:115 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Drop or empty the tables in the database first, then retry dropDatabase.","Call dropDatabase with cascade=true to remove the database and all its tables in one step."],"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"}