|
|||||||||
| Home >> All >> org >> apache >> derby >> iapi >> [ types overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
org.apache.derby.iapi.types
Class Like

java.lang.Objectorg.apache.derby.iapi.types.Like
- public class Like
- extends java.lang.Object
Like matching algorithm. Not too speedy for %s. SQL92 says the escape character can only and must be followed by itself, %, or _. So if you choose % or _ as the escape character, you can no longer do that sort of matching. Not the most recent Like -- missing the unit tests
| Field Summary | |
private static char |
anyChar
|
private static char |
anyString
|
private static java.lang.String |
SUPER_STRING
|
| Constructor Summary | |
private |
Like()
|
| Method Summary | |
(package private) static java.lang.Boolean |
checkLengths(int vLoc,
int vEnd,
int pLoc,
char[] pat,
int pEnd)
checkLengths -- non-national chars Returns null if we are not done. |
(package private) static java.lang.Boolean |
checkLengths(int vLoc,
int vEnd,
int pLoc,
int[] pat,
int pEnd,
int[] anyStringInts)
checkLengths -- national chars Returns null if we are not done. |
(package private) static int |
getMinLen(char[] pattern,
int pStart,
int pEnd,
boolean haveEsc,
char escChar)
Calculate the shortest length string that could match this pattern for non-national chars |
(package private) static int |
getMinLen(int[] pattern,
int pStart,
int pEnd,
boolean haveEsc,
int[] escCharInts,
int[] anyStringInts)
Calculate the shortest length string that could match this pattern for national chars |
private static java.lang.String |
greaterEqualString(java.lang.String pattern,
char escChar)
greaterEqualString -- for Escape clause only Walk the pattern character by character |
static java.lang.String |
greaterEqualString(java.lang.String pattern,
java.lang.String escape)
Return the substring from the pattern for the optimization >= clause. |
static java.lang.String |
greaterEqualStringFromParameter(java.lang.String pattern)
|
static java.lang.String |
greaterEqualStringFromParameterWithEsc(java.lang.String pattern,
java.lang.String escape)
|
static boolean |
isLikeComparisonNeeded(java.lang.String pattern)
Return whether or not the like comparison is still needed after performing the like transformation on a constant string. |
static boolean |
isOptimizable(java.lang.String pattern)
Determine whether or not this LIKE can be transformed into optimizable clauses. |
static java.lang.String |
lessThanString(java.lang.String pattern)
Return the substring from the pattern for the < clause. |
static java.lang.String |
lessThanString(java.lang.String pattern,
java.lang.String escape)
Return the substring from the pattern for the < clause. |
static java.lang.String |
lessThanStringFromParameter(java.lang.String pattern)
|
static java.lang.String |
lessThanStringFromParameterWithEsc(java.lang.String pattern,
java.lang.String escape)
|
static java.lang.Boolean |
like(char[] value,
int valueLength,
char[] pattern,
int patternLength)
|
static java.lang.Boolean |
like(char[] val,
int valLength,
char[] pat,
int patLength,
char[] escape,
int escapeLength)
|
private static java.lang.Boolean |
like(char[] val,
int vLoc,
int vEnd,
char[] pat,
int pLoc,
int pEnd,
char[] escape,
int escapeLength)
|
static java.lang.Boolean |
like(int[] val,
int valLength,
int[] pat,
int patLength,
int[] escape,
int escapeLength,
java.text.RuleBasedCollator collator)
For national chars. |
static java.lang.Boolean |
like(int[] value,
int valueLength,
int[] pattern,
int patternLength,
java.text.RuleBasedCollator collator)
|
private static java.lang.Boolean |
like(int[] val,
int vLoc,
int vEnd,
int[] pat,
int pLoc,
int pEnd,
int[] escape,
int escapeLength,
java.text.RuleBasedCollator collator)
|
private static boolean |
matchSpecial(int[] pat,
int patStart,
int patEnd,
int[] specialInts)
matchSpecial check the pattern against the various special character arrays. |
static java.lang.String |
stripEscapesNoPatternChars(java.lang.String pattern,
char escChar)
stripEscapesNoPatternChars |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
anyChar
private static final char anyChar
- See Also:
- Constant Field Values
anyString
private static final char anyString
- See Also:
- Constant Field Values
SUPER_STRING
private static final java.lang.String SUPER_STRING
- See Also:
- Constant Field Values
| Constructor Detail |
Like
private Like()
| Method Detail |
like
public static java.lang.Boolean like(char[] val, int valLength, char[] pat, int patLength, char[] escape, int escapeLength) throws org.apache.derby.iapi.error.StandardException
like
public static java.lang.Boolean like(int[] val, int valLength, int[] pat, int patLength, int[] escape, int escapeLength, java.text.RuleBasedCollator collator) throws org.apache.derby.iapi.error.StandardException
- For national chars.
like
private static java.lang.Boolean like(char[] val, int vLoc, int vEnd, char[] pat, int pLoc, int pEnd, char[] escape, int escapeLength) throws org.apache.derby.iapi.error.StandardException
like
private static java.lang.Boolean like(int[] val, int vLoc, int vEnd, int[] pat, int pLoc, int pEnd, int[] escape, int escapeLength, java.text.RuleBasedCollator collator) throws org.apache.derby.iapi.error.StandardException
getMinLen
static int getMinLen(char[] pattern,
int pStart,
int pEnd,
boolean haveEsc,
char escChar)
- Calculate the shortest length string that could match this pattern for non-national chars
getMinLen
static int getMinLen(int[] pattern,
int pStart,
int pEnd,
boolean haveEsc,
int[] escCharInts,
int[] anyStringInts)
- Calculate the shortest length string that could match this pattern for national chars
checkLengths
static java.lang.Boolean checkLengths(int vLoc, int vEnd, int pLoc, char[] pat, int pEnd)
- checkLengths -- non-national chars
Returns null if we are not done.
Returns true if we are at the end of our value and pattern
Returns false if there is more pattern left but out of input value
checkLengths
static java.lang.Boolean checkLengths(int vLoc, int vEnd, int pLoc, int[] pat, int pEnd, int[] anyStringInts)
- checkLengths -- national chars
Returns null if we are not done.
Returns true if we are at the end of our value and pattern
Returns false if there is more pattern left but out of input value
matchSpecial
private static boolean matchSpecial(int[] pat,
int patStart,
int patEnd,
int[] specialInts)
- matchSpecial
check the pattern against the various special character arrays.
The array can be anyStringInts, anyCharInts or anyEscChars (always 1)
like
public static java.lang.Boolean like(char[] value, int valueLength, char[] pattern, int patternLength) throws org.apache.derby.iapi.error.StandardException
like
public static java.lang.Boolean like(int[] value, int valueLength, int[] pattern, int patternLength, java.text.RuleBasedCollator collator) throws org.apache.derby.iapi.error.StandardException
isOptimizable
public static boolean isOptimizable(java.lang.String pattern)
- Determine whether or not this LIKE can be transformed into optimizable
clauses. It can if the pattern is non-null, of length > 0 and
the first character is not a wild card.
greaterEqualStringFromParameter
public static java.lang.String greaterEqualStringFromParameter(java.lang.String pattern) throws org.apache.derby.iapi.error.StandardException
greaterEqualStringFromParameterWithEsc
public static java.lang.String greaterEqualStringFromParameterWithEsc(java.lang.String pattern, java.lang.String escape) throws org.apache.derby.iapi.error.StandardException
greaterEqualString
public static java.lang.String greaterEqualString(java.lang.String pattern, java.lang.String escape) throws org.apache.derby.iapi.error.StandardException
- Return the substring from the pattern for the optimization >= clause.
greaterEqualString
private static java.lang.String greaterEqualString(java.lang.String pattern, char escChar) throws org.apache.derby.iapi.error.StandardException
- greaterEqualString -- for Escape clause only
Walk the pattern character by character
stripEscapesNoPatternChars
public static java.lang.String stripEscapesNoPatternChars(java.lang.String pattern, char escChar) throws org.apache.derby.iapi.error.StandardException
- stripEscapesNoPatternChars
lessThanString
public static java.lang.String lessThanString(java.lang.String pattern) throws org.apache.derby.iapi.error.StandardException
- Return the substring from the pattern for the < clause.
(NOTE: This may be null in the degenerate case where the
last char before the first wild card can't be incremented.)
Optimized for ESCAPE
This function uses the greaterThanString, and bumps its last
character by one. This string has no escape characters, they
were stripped out, and ends just before any real pattern chars or
at the end of the pattern literal. See LikeEscapeOp*Node.preprocess.
lessThanStringFromParameter
public static java.lang.String lessThanStringFromParameter(java.lang.String pattern) throws org.apache.derby.iapi.error.StandardException
lessThanStringFromParameterWithEsc
public static java.lang.String lessThanStringFromParameterWithEsc(java.lang.String pattern, java.lang.String escape) throws org.apache.derby.iapi.error.StandardException
lessThanString
public static java.lang.String lessThanString(java.lang.String pattern, java.lang.String escape) throws org.apache.derby.iapi.error.StandardException
- Return the substring from the pattern for the < clause.
(NOTE: This may be null in the degenerate case where the
last char before the first wild card can't be incremented.)
This is unoptimized for ESCAPE.
isLikeComparisonNeeded
public static boolean isLikeComparisonNeeded(java.lang.String pattern)
- Return whether or not the like comparison is still needed after
performing the like transformation on a constant string. The
comparison is not needed if the constant string is of the form:
CONSTANT% (constant followed by a trailing %)
|
|||||||||
| Home >> All >> org >> apache >> derby >> iapi >> [ types overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC
org.apache.derby.iapi.types.Like