Class ClientParser
java.lang.Object
org.mariadb.jdbc.util.ClientParser
- All Implemented Interfaces:
PrepareResult
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final booleanprivate final booleanprivate final booleanprivate final intprivate final byte[]private final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static booleanequalsIgnoreCase(byte b, byte lower) Fast case-insensitive byte comparison for ASCII letters.intbyte[]getQuery()getSql()private static booleanisDelimiter(byte b) Fast check if byte is a delimiter character: ();>invalid input: '<'=-+, Avoids String.indexOf() overheadbooleanisInsert()booleanbooleanprivate static booleanisWhitespace(byte b) Fast check if byte is whitespace: space, \n, \r, \tstatic ClientParserparameterParts(String queryString, boolean noBackslashEscapes) For a givenqueryString, get query - a byte array containing the UTF8 representation of that string paramPositions - the byte positions of any '?' positional parameters inqueryand set the following flags: isInsert - queryString contains 'INSERT' outside of quotes, without one of the characters '();>invalid input: '<'=-+,' immediately preceding or following isInsertDuplicate - isInsert invalid input: '&'invalid input: '&' queryString contains 'DUPLICATE' outside of quotes, without one of the characters '();>invalid input: '<'=-+,' immediately preceding or following isMulti - queryString contains text after the last ';' outside of quotesstatic ClientParserrewritableParts(String queryString, boolean noBackslashEscapes) For a givenqueryString, get the fields and flags fromparameterParts(String, boolean), and valuesBracketPositions - a two-element list containing the positions of the opening and closing parenthesis of the VALUES block
-
Field Details
-
sql
-
query
private final byte[] query -
paramPositions
-
valuesBracketPositions
-
paramCount
private final int paramCount -
isInsert
private final boolean isInsert -
isInsertDuplicate
private final boolean isInsertDuplicate -
isMultiQuery
private final boolean isMultiQuery
-
-
Constructor Details
-
ClientParser
-
-
Method Details
-
parameterParts
For a givenqueryString, get- query - a byte array containing the UTF8 representation of that string
- paramPositions - the byte positions of any '?' positional parameters in
query
- isInsert - queryString contains 'INSERT' outside of quotes, without one of the characters '();>invalid input: '<'=-+,' immediately preceding or following
- isInsertDuplicate - isInsert invalid input: '&'invalid input: '&' queryString contains 'DUPLICATE' outside of quotes, without one of the characters '();>invalid input: '<'=-+,' immediately preceding or following
- isMulti - queryString contains text after the last ';' outside of quotes
- Parameters:
queryString- querynoBackslashEscapes- escape mode- Returns:
- ClientParser
-
rewritableParts
For a givenqueryString, get the fields and flags fromparameterParts(String, boolean), and- valuesBracketPositions - a two-element list containing the positions of the opening and closing parenthesis of the VALUES block
- Parameters:
queryString- querynoBackslashEscapes- escape mode- Returns:
- ClientParser
-
getSql
- Specified by:
getSqlin interfacePrepareResult
-
getQuery
public byte[] getQuery() -
getParamPositions
-
getValuesBracketPositions
-
getParamCount
public int getParamCount()- Specified by:
getParamCountin interfacePrepareResult
-
isInsert
public boolean isInsert() -
isInsertDuplicate
public boolean isInsertDuplicate() -
isMultiQuery
public boolean isMultiQuery() -
isDelimiter
private static boolean isDelimiter(byte b) Fast check if byte is a delimiter character: ();>invalid input: '<'=-+, Avoids String.indexOf() overhead -
isWhitespace
private static boolean isWhitespace(byte b) Fast check if byte is whitespace: space, \n, \r, \t -
equalsIgnoreCase
private static boolean equalsIgnoreCase(byte b, byte lower) Fast case-insensitive byte comparison for ASCII letters. Uses bitwise OR to convert to lowercase before comparison.
-