public void dropDatabase()

in aws-glue-datacatalog-client-common/src/main/java/com/amazonaws/glue/catalog/metastore/GlueMetastoreClientDelegate.java [246:284]


  public void dropDatabase(String name, boolean deleteData, boolean ignoreUnknownDb, boolean cascade) throws TException {
    checkArgument(StringUtils.isNotEmpty(name), "name cannot be null or empty");

    String dbLocation;
    try {
      List<String> tables = getTables(name, MATCH_ALL);
      boolean isEmptyDatabase = tables.isEmpty();

      org.apache.hadoop.hive.metastore.api.Database db = getDatabase(name);
      dbLocation = db.getLocationUri();

      // TODO: handle cascade
      if (isEmptyDatabase || cascade) {
        glueMetastore.deleteDatabase(name);
      } else {
        throw new InvalidOperationException("Database " + name + " is not empty.");
      }
    } catch (NoSuchObjectException e) {
      if (ignoreUnknownDb) {
        return;
      } else {
        throw e;
      }
    } catch (AmazonServiceException e) {
      throw CatalogToHiveConverter.wrapInHiveException(e);
    } catch (Exception e){
      String msg = "Unable to drop database: ";
      logger.error(msg, e);
      throw new MetaException(msg + e);
    }

    if (deleteData) {
      try {
        wh.deleteDir(new Path(dbLocation), true);
      } catch (Exception e) {
        logger.error("Unable to remove database directory " + dbLocation, e);
      }
    }
  }