public Ha3PreparedStatement()

in src/main/java/com/aliyun/ha3engine/jdbc/Ha3PreparedStatement.java [61:90]


    public Ha3PreparedStatement(Ha3Connection ha3Connection, CloudClient cloudClient, String sql)
        throws SQLException {
        super(ha3Connection, cloudClient);
        preparedSql = sql.trim();
        preparedSql = preparedSql.replaceAll("\r", " ").replaceAll("\n", " ");
        String sqlNorm = preparedSql.trim().toLowerCase();
        if (sqlNorm.startsWith("query=")) {
            sqlNorm = sqlNorm.replaceFirst("query=", "");
        }
        int startOfStmtPos = findStartOfStatement(sqlNorm);
        firstStmtChar = Character.toUpperCase(sqlNorm.charAt(startOfStmtPos));
        String fromIndex = null;
        String[] sqlParts = preparedSql.trim().split(" ");
        for (int i = 0; i < sqlParts.length; i++) {
            if (firstStmtChar == 'S') {
                if ("from".equals(sqlParts[i].toLowerCase())) {
                    fromIndex = sqlParts[i + 1];
                    ha3Connection.setSchema(fromIndex);
                    break;
                }
            } else {
                throw new SQLException(
                    "Provided query type '" + firstStmtChar + "' is not supported!");
            }

        }

        String[] parts = (sql + ";").split("\\?");
        this.sqlAndParams = new Object[parts.length];
    }