private boolean isStmtEnd(Token[] tokens, int pos) {
        // only use Div `/` as while in PL stmt and use `;` as delimiter
        if (pos >= tokens.length) {
            return false;
        }
        if (!subPLStack.empty()) {
            return false;
        }

        if (this.state == State.PL_STMT) {
            if (!DEFAULT_SQL_DELIMITER.equals(delimiter)) {
                return matchDelimiterTokens(tokens, pos);
            }
            return tokens[pos].getType() == DEFAULT_PL_END_DELIMITER;
        }
        return matchDelimiterTokens(tokens, pos);
    }
<pre>
`subPLStack` in this function must not be empty because this fuction must be called when state in PL_STMT
`subPLStack` must have been pushed at least once before enter PL_STMT
</pre>
chat2db-server/chat2db-spi/src/main/java/ai/chat2db/spi/util/SqlSplitter.java