apache/beam · error · IllegalStateException
Database '' is not empty.
Error message
Database '' is not empty.
What it means
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.
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.
Defensive patterns
Strategy: validation
When it happens
Trigger: 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.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/beam@12126d8942 (2026-09-13).
Data as JSON: /api/errors/a0f249644ee40d38.
Report an issue: GitHub.
Appendix: source
Thrown at sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/catalog/InMemoryCatalog.java:115
checkArgument(databaseExists(database), "Database '%s' does not exist.");
currentDatabase = database;
}
@Override
public @Nullable String currentDatabase() {
return currentDatabase;
}
@Override
public Collection<String> databases() {
return databases;
}
@Override
public boolean dropDatabase(String database, boolean cascade) {
MetaStore metaStore = metaStores.get(database);
if (!cascade && metaStore != null && !metaStore.getTables().isEmpty()) {
throw new IllegalStateException("Database '" + database + "' is not empty.");
}
boolean removed = databases.remove(database);
if (!removed) {
return false;
}
if (database.equals(currentDatabase)) {
currentDatabase = null;
}
metaStores.remove(database);
return true;
}
@Override
public void registerTableProvider(TableProvider provider) {
tableProviders.put(provider.getTableType(), provider);
metaStores.values().forEach(m -> m.registerProvider(provider));
}View on GitHub (pinned to 12126d8942)