|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.apache.derby.iapi.types.Like
public class Like
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 | |
|---|---|
private static boolean |
checkEquality(char[] val,
int vLoc,
char[] pat,
int pLoc,
java.text.RuleBasedCollator collator)
If the character in val matches the character in pat, then it does not matter if the database is UCS_BASIC or territory based, we simply return TRUE from the method. |
(package private) static java.lang.Boolean |
checkLengths(int vLoc,
int vEnd,
int pLoc,
char[] pat,
int pEnd)
checkLengths 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 |
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,
int maxWidth)
Return the substring from the pattern for the optimization >= clause. |
static java.lang.String |
greaterEqualStringFromParameter(java.lang.String pattern,
int maxWidth)
|
static java.lang.String |
greaterEqualStringFromParameterWithEsc(java.lang.String pattern,
java.lang.String escape,
int maxWidth)
|
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,
java.lang.String escape,
int maxWidth)
Return the substring from the pattern for the < clause. |
static java.lang.String |
lessThanStringFromParameter(java.lang.String pattern,
int maxWidth)
|
static java.lang.String |
lessThanStringFromParameterWithEsc(java.lang.String pattern,
java.lang.String escape,
int maxWidth)
|
static java.lang.Boolean |
like(char[] val,
int valLength,
char[] pat,
int patLength,
char[] escape,
int escapeLength,
java.text.RuleBasedCollator collator)
This method gets called for UCS_BASIC and territory based character string types to look for a pattern in a value string. |
static java.lang.Boolean |
like(char[] value,
int valueLength,
char[] pattern,
int patternLength,
java.text.RuleBasedCollator collator)
|
private static java.lang.Boolean |
like(char[] val,
int vLoc,
int vEnd,
char[] pat,
int pLoc,
int pEnd,
char[] escape,
int escapeLength,
java.text.RuleBasedCollator collator)
|
private static java.lang.String |
padWithNulls(java.lang.String string,
int len)
Pad a string with null characters, in order to make it > and < comparable with SQLChar. |
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 |
|---|
private static final char anyChar
private static final char anyString
private static final java.lang.String SUPER_STRING
| Constructor Detail |
|---|
private Like()
| Method Detail |
|---|
public static java.lang.Boolean like(char[] val,
int valLength,
char[] pat,
int patLength,
char[] escape,
int escapeLength,
java.text.RuleBasedCollator collator)
throws StandardException
val - value to compare. if null, result is null.valLength - length of valpat - pattern to compare. if null, result is null.patLength - length of patescape - escape character. Must be 1 char long.
if null, no escape character is used.escapeLength - length of escapecollator - null if we are dealing with UCS_BASIC
character string types. If not null, then we use it to
get collation elements for characters in val and
non-metacharacters in pat to do the comparison.
StandardException - thrown if data invalid
private static java.lang.Boolean like(char[] val,
int vLoc,
int vEnd,
char[] pat,
int pLoc,
int pEnd,
char[] escape,
int escapeLength,
java.text.RuleBasedCollator collator)
throws StandardException
StandardException
private static boolean checkEquality(char[] val,
int vLoc,
char[] pat,
int pLoc,
java.text.RuleBasedCollator collator)
val - value to compare.vLoc - character position in val.pat - pattern to look for in val.pLoc - character position in pat.collator - null if we are dealing with UCS_BASIC character string
types. If not null, then we use it to determine the equality of the
2 characters in pat and val if they are not same.
static int getMinLen(char[] pattern,
int pStart,
int pEnd,
boolean haveEsc,
char escChar)
static java.lang.Boolean checkLengths(int vLoc,
int vEnd,
int pLoc,
char[] pat,
int pEnd)
vLoc - current index into char[] valvEnd - end index or our valuepLoc - current index into our char[] patternpat - pattern char []pEnd - end index of our pattern []
public static java.lang.Boolean like(char[] value,
int valueLength,
char[] pattern,
int patternLength,
java.text.RuleBasedCollator collator)
throws StandardException
StandardExceptionpublic static boolean isOptimizable(java.lang.String pattern)
pattern - The right side of the LIKE
public static java.lang.String greaterEqualStringFromParameter(java.lang.String pattern,
int maxWidth)
throws StandardException
StandardException
public static java.lang.String greaterEqualStringFromParameterWithEsc(java.lang.String pattern,
java.lang.String escape,
int maxWidth)
throws StandardException
StandardException
public static java.lang.String greaterEqualString(java.lang.String pattern,
java.lang.String escape,
int maxWidth)
throws StandardException
pattern - The right side of the LIKEescape - The escape clausemaxWidth - Maximum length of column, for null padding
StandardException
private static java.lang.String greaterEqualString(java.lang.String pattern,
char escChar)
throws StandardException
pattern - like pattern to build fromescChar - the escape character in the pattern
StandardException
public static java.lang.String stripEscapesNoPatternChars(java.lang.String pattern,
char escChar)
throws StandardException
pattern - pattern String to searchescChar - the escape character
StandardException - thrown if data invalid
public static java.lang.String lessThanStringFromParameter(java.lang.String pattern,
int maxWidth)
throws StandardException
StandardException
public static java.lang.String lessThanStringFromParameterWithEsc(java.lang.String pattern,
java.lang.String escape,
int maxWidth)
throws StandardException
StandardException
public static java.lang.String lessThanString(java.lang.String pattern,
java.lang.String escape,
int maxWidth)
throws StandardException
pattern - The right side of the LIKEescape - The escape clausemaxWidth - Maximum length of column, for null padding
StandardException - thrown if data invalidpublic static boolean isLikeComparisonNeeded(java.lang.String pattern)
pattern - The right side of the LIKE
private static java.lang.String padWithNulls(java.lang.String string,
int len)
string - The string to padlen - Max number of characters to pad to
|
Built on Wed 2013-06-12 15:21:56+0000, from revision ??? | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||