public static ShowResultSet execute(ShowStmt statement, ConnectContext context) {
        return GlobalStateMgr.getCurrentState().getShowExecutor().showExecutorVisitor.visit(statement, context);
    }
@Test
    public void testShowGrants() throws Exception {
        ShowGrantsStmt stmt = new ShowGrantsStmt("root");

        ShowResultSet resultSet = ShowExecutor.execute(stmt, ctx);
        resultSet.getResultRows().forEach(System.out::println);
        String expectString1 = "root, null, GRANT CREATE TABLE, DROP, ALTER, CREATE VIEW, CREATE FUNCTION, " +
                "CREATE MATERIALIZED VIEW, CREATE PIPE ON ALL DATABASES TO ROLE 'root'";
        Assert.assertTrue(resultSet.getResultRows().stream().anyMatch(l ->
                l.toString().contains(expectString1)));
        String expectString2 = "root, null, GRANT DELETE, DROP, INSERT, SELECT, ALTER, EXPORT, " +
                "UPDATE ON ALL TABLES IN ALL DATABASES TO ROLE 'root'";
        Assert.assertTrue(resultSet.getResultRows().stream().anyMatch(l ->
                l.toString().contains(expectString2)));
    }