Class ClientPrepareResult

    • Method Detail

      • parameterParts

        public static ClientPrepareResult parameterParts​(String queryString,
                                                         boolean noBackslashEscapes)
        Separate query in a String list and set flag isQueryMultipleRewritable. The resulting string list is separed by ? that are not in comments. isQueryMultipleRewritable flag is set if query can be rewrite in one query (all case but if using "-- comment"). example for query : "INSERT INTO tableName(id, name) VALUES (?, ?)" result list will be : {"INSERT INTO tableName(id, name) VALUES (", ", ", ")"}
        Parameters:
        queryString - query
        noBackslashEscapes - escape mode
        Returns:
        ClientPrepareResult
      • canAggregateSemiColon

        public static boolean canAggregateSemiColon​(String queryString,
                                                    boolean noBackslashEscapes)
        Valid that query is valid (no ending semi colon, or end-of line comment ).
        Parameters:
        queryString - query
        noBackslashEscapes - escape
        Returns:
        valid flag
      • rewritableParts

        public static ClientPrepareResult rewritableParts​(String queryString,
                                                          boolean noBackslashEscapes)
        Separate query in a String list and set flag isQueryMultiValuesRewritable The parameters "?" (not in comments) emplacements are to be known.

        The only rewritten queries follow these notation: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION (partition_list)] [(col,...)] {VALUES | VALUE} (...) [ ON DUPLICATE KEY UPDATE col=expr [, col=expr] ... ] With expr without parameter.

        Query with LAST_INSERT_ID() will not be rewritten

        INSERT ... SELECT will not be rewritten.

        String list :

        • pre value part
        • After value and first parameter part
        • for each parameters :
          • part after parameter and before last parenthesis
          • Last query part

        example : INSERT INTO TABLE(col1,col2,col3,col4, col5) VALUES (9, ?, 5, ?, 8) ON DUPLICATE KEY UPDATE col2=col2+10

        • pre value part : INSERT INTO TABLE(col1,col2,col3,col4, col5) VALUES
        • after value part : "(9 "
        • part after parameter 1: ", 5," - ", 5," - ",8)"
        • last part : ON DUPLICATE KEY UPDATE col2=col2+10

        With 2 series of parameters, this query will be rewritten like [INSERT INTO TABLE(col1,col2,col3,col4, col5) VALUES][ (9, param0_1, 5, param0_2, 8)][, (9, param1_1, 5, param1_2, 8)][ ON DUPLICATE KEY UPDATE col2=col2+10]

        Parameters:
        queryString - query String
        noBackslashEscapes - must backslash be escaped.
        Returns:
        List of query part.
      • getQueryParts

        public List<byte[]> getQueryParts()
      • isQueryMultiValuesRewritable

        public boolean isQueryMultiValuesRewritable()
      • isQueryMultipleRewritable

        public boolean isQueryMultipleRewritable()
      • isRewriteType

        public boolean isRewriteType()