@Override
    public void refreshTable(String srDbName, Table table, List<String> partitionNames, boolean onlyCachedPartitions) {
        OdpsTableName odpsTableName = OdpsTableName.of(srDbName, table.getName());
        tableCache.invalidate(odpsTableName);
        get(tableCache, odpsTableName);
        if (!table.isUnPartitioned()) {
            partitionCache.invalidate(odpsTableName);
            get(partitionCache, odpsTableName);
        }
    }
@Test
    public void testRefreshTable() {
        Table odpsTable = odpsMetadata.getTable("project", "tableName");
        // mock schema change
        when(table.getSchema()).thenReturn(new TableSchema());

        Table cacheTable = odpsMetadata.getTable("project", "tableName");
        Assert.assertTrue(cacheTable.getColumns().size() > 0);

        odpsMetadata.refreshTable("project", odpsTable, null, false);
        Table refreshTable = odpsMetadata.getTable("project", "tableName");
        Assert.assertTrue(refreshTable.getColumns().size() == 0);
    }