/** * {@inheritDoc} * @see #dropTable(String, String, boolean, boolean, EnvironmentContext) */ @Override public void dropTable(String dbname, String name, boolean deleteData, boolean ignoreUnknownTab) throws MetaException, TException, NoSuchObjectException, UnsupportedOperationException { dropTable(dbname, name, deleteData, ignoreUnknownTab, null); }
/** * @see #dropTable(String, String, boolean, boolean, EnvironmentContext) */ @Override public void dropTable(String dbname, String name) throws NoSuchObjectException, MetaException, TException { dropTable(dbname, name, true, true, null); }
/** * Drop the table and choose whether to save the data in the trash. * @param ifPurge completely purge the table (skipping trash) while removing * data from warehouse * @see #dropTable(String, String, boolean, boolean, EnvironmentContext) */ @Override public void dropTable(String dbname, String name, boolean deleteData, boolean ignoreUnknownTab, boolean ifPurge) throws MetaException, TException, NoSuchObjectException, UnsupportedOperationException { //build new environmentContext with ifPurge; EnvironmentContext envContext = null; if(ifPurge){ Map<String, String> warehouseOptions; warehouseOptions = new HashMap<>(); warehouseOptions.put("ifPurge", "TRUE"); envContext = new EnvironmentContext(warehouseOptions); } dropTable(dbname, name, deleteData, ignoreUnknownTab, envContext); }
@Override public void dropDatabase(String name, boolean deleteData, boolean ignoreUnknownDb, boolean cascade) throws NoSuchObjectException, InvalidOperationException, MetaException, TException { try { getDatabase(name); } catch (NoSuchObjectException e) { if (!ignoreUnknownDb) { throw e; } return; } if (cascade) { List<String> tableList = getAllTables(name); for (String table : tableList) { try { // Subclasses can override this step (for example, for temporary tables) dropTable(name, table, deleteData, true); } catch (UnsupportedOperationException e) { // Ignore Index tables, those will be dropped with parent tables } } } client.drop_database(name, deleteData, cascade); }