public abstract class DBObjectSearchPlan extends SearchPlan
Modifier and Type | Field and Description |
---|---|
static int |
MAX_JOINS
maximum number of tables to JOIN
|
static java.lang.String |
RESOLUTION_ARCHIVE_CACHE
The search was resolved by using archive cache.
|
static java.lang.String |
RESOLUTION_DB_SEARCH
The query was resolved by doing a DB scan.
|
static java.lang.String |
RESOLUTION_FIELD_CACHE
The query was handled by the field cache
|
static java.lang.String |
RESOLUTION_FIELD_CACHE_IN
The query was handled by the field cache
|
static java.lang.String |
RESOLUTION_FULL_SEARCH
The query was resolved by doing a full scan.
|
static java.lang.String |
RESOLUTION_LINKAGE_CACHE
the query was resolved by using linkage cache
|
static java.lang.String |
RESOLUTION_LOAD_CACHE_IN
The query was handled by the load cache
|
static java.lang.String |
RESOLUTION_REVERSED
The query was resolved by reversing the clause.
|
static java.lang.String |
RESOLUTION_SPLIT_SEARCH
The query was resolved by doing a SPLIT scan.
|
ALWAYS_LOAD_FIELD_CACHE_LIMIT, DEFAULT_TIMEOUT, maxFullListInsteadOfAffirmativeRestriction, maxFullRecordScan, query, RESOLUTION_KNOWN_TO_FAIL, RESOLUTION_UNKOWN
Constructor and Description |
---|
DBObjectSearchPlan(DBQuery query)
Creates a new Search plan
|
Modifier and Type | Method and Description |
---|---|
abstract void |
addTranslateMap(java.util.Map<java.lang.String,TranslateClause> translateMap)
Add the list of items
|
abstract java.lang.String[] |
listSqlUsed()
List the SQL statements used.
|
abstract PossibleRowsHolder |
tryKeyWord()
key word searches.
|
abstract PossibleRowsHolder |
tryReverseSearch(DBClause usedClause,
long currentLoadRows)
Try to resolve the search by reversing the clauses.
|
abstract PossibleRowsHolder |
trySplitOR()
Split up OR clauses.
|
abstract PossibleRowsHolder |
trySplitSearch()
deal with OR clauses
|
abstract boolean |
useClauseInsteadOfFullScan(long estimatedClauseRows)
only do this search if we are going to limit loading of records.
|
abstract boolean |
useFullSearch()
Should we try the full search option ?
|
abstract boolean |
useLinkageCache()
Should we use linkageCache for this search ?
|
addClauseUsed, archiveSearch, checkThirdPhase, checkTimeout, cleanCriteria, doLayerSearch, getBottomLayer, getCriteria, getDataBase, getEstimatedDatabaseRows, getEstimatedMatchRows, getEstimatedMatchRows, getFirstClausedUsed, getMaxFullListInsteadOfAffirmativeRestriction, getMaxFullRecordScan, getMaximumRequiredRows, getQuery, getResolution, getSecondClausedUsed, getStartTime, getThirdClausedUsed, getTopLayer, isLayerExcluded, setForcePhaseThree, setMasterPlan, setMaxFullListInsteadOfAffirmativeRestriction, setMaxFullRecordScan, setMaximumRequiredRows, setResolution, tryPlanCache, useCache, willSearchFail
public static final int MAX_JOINS
public static final java.lang.String RESOLUTION_REVERSED
public static final java.lang.String RESOLUTION_FULL_SEARCH
public static final java.lang.String RESOLUTION_LINKAGE_CACHE
public static final java.lang.String RESOLUTION_DB_SEARCH
public static final java.lang.String RESOLUTION_SPLIT_SEARCH
public static final java.lang.String RESOLUTION_FIELD_CACHE
public static final java.lang.String RESOLUTION_FIELD_CACHE_IN
public static final java.lang.String RESOLUTION_LOAD_CACHE_IN
public static final java.lang.String RESOLUTION_ARCHIVE_CACHE
public DBObjectSearchPlan(@Nonnull DBQuery query)
query
- The querypublic abstract void addTranslateMap(java.util.Map<java.lang.String,TranslateClause> translateMap)
translateMap
- the map of aliaspublic abstract java.lang.String[] listSqlUsed()
public abstract PossibleRowsHolder tryReverseSearch(DBClause usedClause, long currentLoadRows) throws java.lang.Exception
SELECT * FROM Dilution WHERE instrument.ric like 'A%' | | V Step 1 ------- SELECT id FROM Asset WHERE ric like 'A%' Step 2 ------- SELECT * FROM Dilution WHERE instrument IS IN ( 1@10~10 ....)
usedClause
- the clause has been used.currentLoadRows
- current estimatejava.lang.Exception
- A serious problempublic abstract PossibleRowsHolder trySplitSearch() throws java.lang.Exception
java.lang.Exception
- a serious problempublic abstract PossibleRowsHolder trySplitOR() throws java.lang.Exception
java.lang.Exception
- A serious problempublic abstract PossibleRowsHolder tryKeyWord() throws java.lang.Exception
java.lang.Exception
- a serious problem.public abstract boolean useLinkageCache()
public abstract boolean useFullSearch() throws java.lang.Exception
java.lang.Exception
- A serious problempublic abstract boolean useClauseInsteadOfFullScan(long estimatedClauseRows)
estimatedClauseRows
- the estimate of the rows for this clause.stSoftware Copyright © 2001-2014 stSoftware All Rights Reserved.