public class ClientPrepareResult extends java.lang.Object implements PrepareResult
Modifier and Type | Class and Description |
---|---|
(package private) static class |
ClientPrepareResult.LexState |
Modifier and Type | Field and Description |
---|---|
private boolean |
isQueryMultipleRewritable |
private boolean |
isQueryMultiValuesRewritable |
private int |
paramCount |
private java.util.List<byte[]> |
queryParts |
private boolean |
rewriteType |
private java.lang.String |
sql |
Modifier | Constructor and Description |
---|---|
private |
ClientPrepareResult(java.lang.String sql,
java.util.List<byte[]> queryParts,
boolean isQueryMultiValuesRewritable,
boolean isQueryMultipleRewritable,
boolean rewriteType) |
Modifier and Type | Method and Description |
---|---|
static boolean |
canAggregateSemiColon(java.lang.String queryString,
boolean noBackslashEscapes)
Valid that query is valid (no ending semi colon, or end-of line comment ).
|
int |
getParamCount() |
java.util.List<byte[]> |
getQueryParts() |
java.lang.String |
getSql() |
boolean |
isQueryMultipleRewritable() |
boolean |
isQueryMultiValuesRewritable() |
boolean |
isRewriteType() |
static ClientPrepareResult |
parameterParts(java.lang.String queryString,
boolean noBackslashEscapes)
Separate query in a String list and set flag isQueryMultipleRewritable.
|
static ClientPrepareResult |
rewritableParts(java.lang.String queryString,
boolean noBackslashEscapes)
Separate query in a String list and set flag isQueryMultiValuesRewritable
The parameters "?" (not in comments) emplacements are to be known.
|
private final java.lang.String sql
private final java.util.List<byte[]> queryParts
private final boolean rewriteType
private final int paramCount
private boolean isQueryMultiValuesRewritable
private boolean isQueryMultipleRewritable
private ClientPrepareResult(java.lang.String sql, java.util.List<byte[]> queryParts, boolean isQueryMultiValuesRewritable, boolean isQueryMultipleRewritable, boolean rewriteType)
public static ClientPrepareResult parameterParts(java.lang.String queryString, boolean noBackslashEscapes)
queryString
- querynoBackslashEscapes
- escape modepublic static boolean canAggregateSemiColon(java.lang.String queryString, boolean noBackslashEscapes)
queryString
- querynoBackslashEscapes
- escapepublic static ClientPrepareResult rewritableParts(java.lang.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 :
example : INSERT INTO TABLE(col1,col2,col3,col4, col5) VALUES (9, ?, 5, ?, 8) 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]
queryString
- query StringnoBackslashEscapes
- must backslash be escaped.public java.lang.String getSql()
getSql
in interface PrepareResult
public java.util.List<byte[]> getQueryParts()
public boolean isQueryMultiValuesRewritable()
public boolean isQueryMultipleRewritable()
public boolean isRewriteType()
public int getParamCount()
getParamCount
in interface PrepareResult