public class ParseInfo
extends java.lang.Object
Constructor and Description |
---|
ParseInfo(java.lang.String sql,
Session session,
java.lang.String encoding) |
ParseInfo(java.lang.String sql,
Session session,
java.lang.String encoding,
boolean buildRewriteInfo) |
Modifier and Type | Method and Description |
---|---|
protected static boolean |
canRewrite(java.lang.String sql,
boolean isOnDuplicateKeyUpdate,
int locationOfOnDuplicateKeyUpdate,
int statementStartPos) |
boolean |
canRewriteAsMultiValueInsertAtSqlLevel() |
boolean |
containsOnDuplicateKeyUpdateInSQL() |
static char |
firstCharOfStatementUc(java.lang.String sql,
boolean noBackslashEscapes) |
char |
getFirstStmtChar() |
int |
getLocationOfOnDuplicateKeyUpdate() |
int |
getNumberOfQueries() |
static int |
getOnDuplicateKeyLocation(java.lang.String sql,
boolean dontCheckOnDuplicateKeyUpdateInSQL,
boolean rewriteBatchedStatements,
boolean noBackslashEscapes) |
ParseInfo |
getParseInfoForBatch(int numBatch)
Returns a ParseInfo for a multi-value INSERT for a batch of size numBatch (without parsing!).
|
QueryReturnType |
getQueryReturnType() |
static QueryReturnType |
getQueryReturnType(java.lang.String sql,
boolean noBackslashEscapes)
Returns the type of return that can be expected from executing the given query.
|
java.lang.String |
getSqlForBatch()
Used for filling in the SQL for getPreparedSql() - for debugging
|
java.lang.String |
getSqlForBatch(int numBatch)
Returns a preparable SQL string for the number of batched parameters; used by server-side prepared statements
when re-writing batch INSERTs.
|
byte[][] |
getStaticSql() |
java.lang.String |
getValuesClause() |
static int |
indexOfStartOfStatement(java.lang.String sql,
boolean noBackslashEscapes) |
static int |
indexOfStatementKeyword(java.lang.String sql,
boolean noBackslashEscapes) |
boolean |
isLoadData() |
static boolean |
isReadOnlySafeQuery(java.lang.String sql,
boolean noBackslashEscapes)
Checks whether the given query is safe to run in a read-only session.
|
public ParseInfo(java.lang.String sql, Session session, java.lang.String encoding)
public ParseInfo(java.lang.String sql, Session session, java.lang.String encoding, boolean buildRewriteInfo)
public int getNumberOfQueries()
public byte[][] getStaticSql()
public java.lang.String getValuesClause()
public int getLocationOfOnDuplicateKeyUpdate()
public QueryReturnType getQueryReturnType()
public boolean canRewriteAsMultiValueInsertAtSqlLevel()
public boolean containsOnDuplicateKeyUpdateInSQL()
public ParseInfo getParseInfoForBatch(int numBatch)
numBatch
- number of batched parametersParseInfo
public java.lang.String getSqlForBatch(int numBatch) throws java.io.UnsupportedEncodingException
numBatch
- number of batched parametersjava.io.UnsupportedEncodingException
- if an error occurspublic java.lang.String getSqlForBatch() throws java.io.UnsupportedEncodingException
java.io.UnsupportedEncodingException
- if an error occurspublic boolean isLoadData()
public char getFirstStmtChar()
public static int indexOfStartOfStatement(java.lang.String sql, boolean noBackslashEscapes)
public static int indexOfStatementKeyword(java.lang.String sql, boolean noBackslashEscapes)
public static char firstCharOfStatementUc(java.lang.String sql, boolean noBackslashEscapes)
public static boolean isReadOnlySafeQuery(java.lang.String sql, boolean noBackslashEscapes)
sql
- the SQL to checknoBackslashEscapes
- whether backslash escapes are disabled or nottrue
if the query is read-only safe, false
otherwise.public static QueryReturnType getQueryReturnType(java.lang.String sql, boolean noBackslashEscapes)
sql
- the SQL to checknoBackslashEscapes
- whether backslash escapes are disabled or notQueryReturnType
.public static int getOnDuplicateKeyLocation(java.lang.String sql, boolean dontCheckOnDuplicateKeyUpdateInSQL, boolean rewriteBatchedStatements, boolean noBackslashEscapes)
protected static boolean canRewrite(java.lang.String sql, boolean isOnDuplicateKeyUpdate, int locationOfOnDuplicateKeyUpdate, int statementStartPos)