|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.mckoi.database.PatternSearch
public final class PatternSearch
This is a static class that performs the operations to do a pattern search on a given column of a table. The pattern syntax is very simple and follows that of the SQL standard.
It works as follows: The '%' character represents any sequence of characters. The '_' character represents some character.
Therefore, the pattern search 'Toby%' will find all rows that start with the string 'Toby' and end with any sequence of characters. The pattern 'T% Downer%' will find all names starting with T and containing 'Downer' somewhere in the end. The pattern '_at' will find all three letter words ending with 'at'.
NOTE: A 'ab%' type search is faster than a '%bc' type search. If the start of the search pattern is unknown then the entire contents of the column need to be accessed.
Constructor Summary | |
---|---|
PatternSearch()
|
Method Summary | |
---|---|
static boolean |
fullPatternMatch(java.lang.String pattern,
java.lang.String str,
char escape_char)
Matches a pattern against a string and returns true if it matches or false otherwise. |
static void |
main(java.lang.String[] args)
|
static boolean |
patternMatch(java.lang.String pattern,
java.lang.String expression,
char escape_char)
This is the pattern match recurrsive method. |
static boolean |
testSearch(java.lang.String pattern,
java.lang.String expression,
boolean result)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public PatternSearch()
Method Detail |
---|
public static boolean testSearch(java.lang.String pattern, java.lang.String expression, boolean result)
public static void main(java.lang.String[] args)
public static boolean fullPatternMatch(java.lang.String pattern, java.lang.String str, char escape_char)
public static boolean patternMatch(java.lang.String pattern, java.lang.String expression, char escape_char)
Returns true if the pattern matches.
NOTE: That "_%_" will be less efficient than "__%" and will produce the same result. NOTE: It requires that a wild card character is the first character in the expression. ISSUE: Pattern optimiser, we should optimise wild cards of type "%__" to "__%", or "%__%_%_%" to "____%". Optimised forms are identical in result and more efficient. This optimisation could be performed by the client during parsing of the LIKE statement. HACKING ISSUE: Badly formed wild cards may result in hogging of server side resources.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |