@Override
    public void doLimit(String sql) throws SQLException {
        if (!enabledLimit) {
            return;
        }
        String trimmedSql = sql.trim();
        if (StringUtils.isEmpty(trimmedSql)) {
            return;
        }
        int firstTokenIndex = trimmedSql.indexOf(" ");
        if (-1 == firstTokenIndex) {
            throwException(trimmedSql);
        }
        String firstToken = trimmedSql.substring(0, firstTokenIndex).toUpperCase();
        if (allowedDmlSqls.contains(firstToken)) {
            return;
        }
        if (!allowedDdlSqls.contains(firstToken)) {
            throwException(trimmedSql);
        }
        checkSqlForSecondToken(firstTokenIndex, trimmedSql);
    }
@Test
    void testDoLimit() {
        List<String> sql = new LinkedList<>();
        sql.add("create table test(id int,name varchar(255))");
        sql.add("select * from test");
        sql.add("CALL SALES.TOTAL_REVENUES();");
        assertThrows(SQLException.class, () -> sqlLimiter.doLimit(sql));
    }