public void refreshConnectorTableBasicStatisticsCache(String catalogName, String dbName, String tableName,
                                                          List<String> columns, boolean async) {
        Table table;
        try {
            table = MetaUtils.getTable(catalogName, dbName, tableName);
        } catch (Exception e) {
            return;
        }

        GlobalStateMgr.getCurrentState().getStatisticStorage().expireConnectorTableColumnStatistics(table, columns);
        if (async) {
            GlobalStateMgr.getCurrentState().getStatisticStorage().getConnectorTableStatistics(table, columns);
        } else {
            GlobalStateMgr.getCurrentState().getStatisticStorage().getConnectorTableStatisticsSync(table, columns);
        }
    }
@Test
    public void testRefreshConnectorTableBasicStatisticsCache(@Mocked CachedStatisticStorage cachedStatisticStorage) {
        Table table = connectContext.getGlobalStateMgr().getMetadataMgr().getTable("hive0", "partitioned_db", "t1");
        new Expectations() {
            {
                cachedStatisticStorage.getConnectorTableStatistics(table, ImmutableList.of("c1", "c2"));
                result = ImmutableList.of(
                        new ConnectorTableColumnStats(new ColumnStatistic(0, 10, 0, 20, 5), 5),
                        new ConnectorTableColumnStats(new ColumnStatistic(0, 100, 0, 200, 50), 50)
                );
                minTimes = 1;
            }
        };

        AnalyzeMgr analyzeMgr = new AnalyzeMgr();
        analyzeMgr.refreshConnectorTableBasicStatisticsCache("hive0", "partitioned_db", "t1",
                ImmutableList.of("c1", "c2"), true);

        new Expectations() {
            {
                cachedStatisticStorage.getConnectorTableStatisticsSync(table, ImmutableList.of("c1", "c2"));
                result = ImmutableList.of(
                        new ConnectorTableColumnStats(new ColumnStatistic(0, 10, 0, 20, 5), 5),
                        new ConnectorTableColumnStats(new ColumnStatistic(0, 100, 0, 200, 50), 50)
                );
                minTimes = 1;
            }
        };
        analyzeMgr.refreshConnectorTableBasicStatisticsCache("hive0", "partitioned_db", "t1",
                ImmutableList.of("c1", "c2"), false);

        new MockUp<MetaUtils>() {
            @Mock
            public Table getTable(String catalogName, String dbName, String tableName) {
                throw new RuntimeException("mock get table exception");
            }
        };
        analyzeMgr.refreshConnectorTableBasicStatisticsCache("hive0", "partitioned_db", "t1",
                ImmutableList.of("c1", "c2"), false);
    }