public synchronized void replayEraseTable(List<Long> tableIds) {
        List<RecycleTableInfo> removedTableInfos = removeTableFromRecycleBin(tableIds);
        for (RecycleTableInfo info : removedTableInfos) {
            info.table.deleteFromRecycleBin(info.dbId, true);
        }
        LOG.info("Finished replay erase tables. table id list: {}", StringUtils.join(tableIds, ","));
    }
@Test
    public void testReplayEraseTable() {
        CatalogRecycleBin bin = new CatalogRecycleBin();
        Table table = new Table(1L, "tbl", Table.TableType.HIVE, Lists.newArrayList());
        bin.recycleTable(11, table, true);
        bin.recycleTable(12, table, true);

        List<Table> tables = bin.getTables(11L);
        Assert.assertEquals(1, tables.size());

        bin.replayEraseTable(Collections.singletonList(2L));
        tables = bin.getTables(11);
        Assert.assertEquals(1, tables.size());

        bin.replayEraseTable(Collections.singletonList(1L));
        tables = bin.getTables(11);
        Assert.assertEquals(0, tables.size());
    }