Package com.tangosol.util
Class SimpleQueryRecord.PartialResult.Step
- java.lang.Object
-
- com.tangosol.util.SimpleQueryRecord.PartialResult.Step
-
- All Implemented Interfaces:
ExternalizableLite
,PortableObject
,QueryRecord.PartialResult.Step
,Serializable
- Direct Known Subclasses:
SimpleQueryRecord.PartialResult.AbstractRecordableStep
- Enclosing class:
- SimpleQueryRecord.PartialResult
public static class SimpleQueryRecord.PartialResult.Step extends Object implements QueryRecord.PartialResult.Step, ExternalizableLite, PortableObject
Simple QueryRecord.PartialResult.Step implementation.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected long
m_cMillis
The execution time in milliseconds.protected List<SimpleQueryRecord.PartialResult.Step>
m_listSubSteps
The list of child steps.protected int
m_nEfficiency
The estimated cost.protected int
m_nSizeIn
The pre-execution key set size.protected int
m_nSizeOut
The post-execution key set size.protected Set<SimpleQueryRecord.PartialResult.IndexLookupRecord>
m_setIndexLookupRecords
The set of index lookup records.protected String
m_sFilter
The filter description.
-
Constructor Summary
Constructors Constructor Description Step()
Default constructor (necessary for the ExternalizableLite interface).Step(Filter filter)
Construct a step.Step(QueryRecord.PartialResult.Step step)
Copy constructor for a Step.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getDuration()
Get the amount of time (in ms) spent evaluating the filter or applying an index for this query plan step.int
getEfficiency()
Get the calculated cost of applying the filter as defined bycalculateEffectiveness
String
getFilterDescription()
Get a description of the filter that was associated with this step during its creation.Set<? extends QueryRecord.PartialResult.IndexLookupRecord>
getIndexLookupRecords()
Get the recorded information about the index lookups performed during filter evaluation as part of a query record.int
getPostFilterKeySetSize()
Get the size of the key set remaining after evaluating the filter or applying an index.int
getPreFilterKeySetSize()
Get the size of the key set prior to evaluating the filter or applying an index.List<? extends QueryRecord.PartialResult.Step>
getSteps()
Return inner nested steps, may be null if not nested.protected boolean
isMatching(QueryRecord.PartialResult.Step step)
Determine whether or not the given step is capable of being placed in one-to-one correspondence with this step.protected void
merge(QueryRecord.PartialResult.Step step)
Merge the given step with this one.void
readExternal(PofReader in)
Restore the contents of a user type instance by reading its state using the specified PofReader object.void
readExternal(DataInput in)
Restore the contents of this object by loading the object's state from the passed DataInput object.void
writeExternal(PofWriter out)
Save the contents of a POF user type instance by writing its state using the specified PofWriter object.void
writeExternal(DataOutput out)
Save the contents of this object by storing the object's state into the passed DataOutput object.
-
-
-
Field Detail
-
m_sFilter
protected String m_sFilter
The filter description.
-
m_nEfficiency
protected int m_nEfficiency
The estimated cost.
-
m_nSizeIn
protected int m_nSizeIn
The pre-execution key set size.
-
m_nSizeOut
protected int m_nSizeOut
The post-execution key set size.
-
m_cMillis
protected long m_cMillis
The execution time in milliseconds.
-
m_setIndexLookupRecords
protected Set<SimpleQueryRecord.PartialResult.IndexLookupRecord> m_setIndexLookupRecords
The set of index lookup records.
-
m_listSubSteps
protected List<SimpleQueryRecord.PartialResult.Step> m_listSubSteps
The list of child steps.
-
-
Constructor Detail
-
Step
public Step()
Default constructor (necessary for the ExternalizableLite interface).
-
Step
public Step(Filter filter)
Construct a step.- Parameters:
filter
- the filter
-
Step
public Step(QueryRecord.PartialResult.Step step)
Copy constructor for a Step.- Parameters:
step
- the step to copy
-
-
Method Detail
-
getSteps
public List<? extends QueryRecord.PartialResult.Step> getSteps()
Return inner nested steps, may be null if not nested.- Specified by:
getSteps
in interfaceQueryRecord.PartialResult.Step
- Returns:
- the inner nested steps in the order they are applied
-
getFilterDescription
public String getFilterDescription()
Get a description of the filter that was associated with this step during its creation.- Specified by:
getFilterDescription
in interfaceQueryRecord.PartialResult.Step
- Returns:
- the description of the filter
-
getIndexLookupRecords
public Set<? extends QueryRecord.PartialResult.IndexLookupRecord> getIndexLookupRecords()
Get the recorded information about the index lookups performed during filter evaluation as part of a query record.- Specified by:
getIndexLookupRecords
in interfaceQueryRecord.PartialResult.Step
- Returns:
- a set of
QueryRecord.PartialResult.IndexLookupRecord
-
getEfficiency
public int getEfficiency()
Get the calculated cost of applying the filter as defined bycalculateEffectiveness
- Specified by:
getEfficiency
in interfaceQueryRecord.PartialResult.Step
- Returns:
- an effectiveness estimate of how well the associated filter can use any applicable index
-
getPreFilterKeySetSize
public int getPreFilterKeySetSize()
Get the size of the key set prior to evaluating the filter or applying an index. This value can be used together withQueryRecord.PartialResult.Step.getPostFilterKeySetSize()
to calculate an actual effectiveness (reduction of the key set) for this filter step.- Specified by:
getPreFilterKeySetSize
in interfaceQueryRecord.PartialResult.Step
- Returns:
- the size of the key set prior to evaluating the filter or applying an index
-
getPostFilterKeySetSize
public int getPostFilterKeySetSize()
Get the size of the key set remaining after evaluating the filter or applying an index. This value can be used together withQueryRecord.PartialResult.Step.getPreFilterKeySetSize()
to calculate an actual effectiveness (reduction of the key set) for this filter step.- Specified by:
getPostFilterKeySetSize
in interfaceQueryRecord.PartialResult.Step
- Returns:
- the size of the key set after evaluating the filter or applying an index
-
getDuration
public long getDuration()
Get the amount of time (in ms) spent evaluating the filter or applying an index for this query plan step.- Specified by:
getDuration
in interfaceQueryRecord.PartialResult.Step
- Returns:
- the number of milliseconds spent evaluating the filter
-
isMatching
protected boolean isMatching(QueryRecord.PartialResult.Step step)
Determine whether or not the given step is capable of being placed in one-to-one correspondence with this step. Steps are defined to be matching if both steps have equivalent name, index lookup records and owned lists of sub-steps.- Parameters:
step
- the step to check- Returns:
- true iff the given step matches with this step
-
merge
protected void merge(QueryRecord.PartialResult.Step step)
Merge the given step with this one. This method assumes that the given step matches with this one.- Parameters:
step
- the step to merge
-
readExternal
public void readExternal(DataInput in) throws IOException
Restore the contents of this object by loading the object's state from the passed DataInput object.- Specified by:
readExternal
in interfaceExternalizableLite
- Parameters:
in
- the DataInput stream to read data from in order to restore the state of this object- Throws:
IOException
- if an I/O exception occursNotActiveException
- if the object is not in its initial state, and therefore cannot be deserialized into
-
writeExternal
public void writeExternal(DataOutput out) throws IOException
Save the contents of this object by storing the object's state into the passed DataOutput object.- Specified by:
writeExternal
in interfaceExternalizableLite
- Parameters:
out
- the DataOutput stream to write the state of this object to- Throws:
IOException
- if an I/O exception occurs
-
readExternal
public void readExternal(PofReader in) throws IOException
Restore the contents of a user type instance by reading its state using the specified PofReader object.- Specified by:
readExternal
in interfacePortableObject
- Parameters:
in
- the PofReader from which to read the object's state- Throws:
IOException
- if an I/O error occurs
-
writeExternal
public void writeExternal(PofWriter out) throws IOException
Save the contents of a POF user type instance by writing its state using the specified PofWriter object.- Specified by:
writeExternal
in interfacePortableObject
- Parameters:
out
- the PofWriter to which to write the object's state- Throws:
IOException
- if an I/O error occurs
-
-