DSIExtSeekCondition Class Reference

A class that represents a key for an index. This class is used to seek into an. More...

List of all members.

Public Member Functions

AutoPtr< DSIExtSeekConditionClone () const
 Makes a deep copy of this object.
 DSIExtSeekCondition (const IUseableIndexMetadata &in_indexMeta, simba_uint16 in_equalityPrefixSize, AutoPtr< DSIExtColumnCondition > in_lastColumnCondition)
 Constructor.
const std::vector
< DSIExtKeySegment > & 
GetEqualitySegments () const
 Get the data for the equality segments.
DSIExtColumnConditionGetLastColumnCondition ()
 Get the condition on the last column.
const DSIExtColumnConditionGetLastColumnCondition () const
 Get the condition on the last column.
bool HasLastColumnCondition () const
 Whether this seek condition has a (non-equality) condition on the 'last' column.
void SetLastColumnCondition (AutoPtr< DSIExtColumnCondition > in_lastColumnCondition)
 Set a last column condition on this object.
void SetSegment (simba_uint16 in_segment, const DSIExtKeySegment &in_segmentData, bool in_mustCopy=false)
 Set data for the given segment. Used to fill this seek condition with data for the seek.
AutoPtr< DSIExtColumnConditionTakeLastColumnCondition ()
 Remove the last column condition and relinquish ownership of it.
 ~DSIExtSeekCondition ()
 Destructor.

Detailed Description

A class that represents a key for an index. This class is used to seek into an.

An abstract class which defines a condition for a column in a seek.

See also:

It is used to define a condition for the 'last' column in a DSIExtSeekCondition. 'last' means the first column that the index is indexed on, which is not used in an equality condition.

For example, let's say that there is an index I which is indexed on columns (C1, C2, C3). If we instantiate the seek condition with in_equalityPrefixSize = 2, than C1 and C2 would have equality conditions placed on them, and C3 would be the 'last' column.

On the other hand, for in_equalityPrefixSize = 1, C2 is the last column, and for in_equalityPrefixSize = 0, C1 is the last column. If in_equalityPrefixSize = 3, there is no 'last' column to place a non-equality condition on.


Constructor & Destructor Documentation

DSIExtSeekCondition ( const IUseableIndexMetadata in_indexMeta,
simba_uint16  in_equalityPrefixSize,
AutoPtr< DSIExtColumnCondition in_lastColumnCondition 
)

Constructor.

Initially, all segments hold NULL data (i.e, GetEqualitySegments() will return a vector full of 'null' DSIExtKeySegments).

Parameters:
in_indexMeta Metadata for the index this object will be used to seek in.
in_equalityPrefixSize The number of columns which will have an equality constraint placed on them for this seek condition. This is unambiguous because a prefix of the index columns are always used.
in_lastColumnCondition The condition for the last column, in_equalityPrefixSize + 1. NULL if there is none.
Exceptions:
SEInvalidArgumentException If there are no conditions in the seek (in other words, in_equalityPrefixSize == 0 and in_lastColumnCondition == NULL.
SEInvalidArgumentException If in_equalityPrefixSize >= number of indexed columns in the index.
SEInvalidArgumentException If the condition type of in_lastColumnCondition is not supported by the index.

Destructor.


Member Function Documentation

AutoPtr<DSIExtSeekCondition> Clone (  )  const

Makes a deep copy of this object.

Returns:
A deep copy of this object.
const std::vector<DSIExtKeySegment>& GetEqualitySegments (  )  const

Get the data for the equality segments.

Returns:
The data for the equality segments.
DSIExtColumnCondition& GetLastColumnCondition (  ) 

Get the condition on the last column.

Exceptions:
SEInvalidOperationException If this seek condition doesn't have a last column condition.
Returns:
The condition on the last column.
const DSIExtColumnCondition& GetLastColumnCondition (  )  const

Get the condition on the last column.

Exceptions:
SEInvalidOperationException If this seek condition doesn't have a last column condition.
Returns:
The condition on the last column.
bool HasLastColumnCondition (  )  const

Whether this seek condition has a (non-equality) condition on the 'last' column.

Returns:
Whether this seek condition has a (non-equality) condition on the 'last' column.
void SetLastColumnCondition ( AutoPtr< DSIExtColumnCondition in_lastColumnCondition  ) 

Set a last column condition on this object.

Parameters:
in_lastColumnCondition The last column condition to set on this object.
Exceptions:
SEInvalidArgumentException If in_lastColumnCondition is NULL.
SEInvalidOperationException If there is already a last column condition set on this object.
void SetSegment ( simba_uint16  in_segment,
const DSIExtKeySegment in_segmentData,
bool  in_mustCopy = false 
)

Set data for the given segment. Used to fill this seek condition with data for the seek.

Parameters:
in_segment Which segment is being modified.
in_segmentData What to set the segment to.
in_mustCopy Whether the data in in_segment must be copied to an OWNed buffer or if it can just cache the pointer to return later in GetEqualitySegments()
Exceptions:
SEInvalidArgumentException If in_segment is not in the range [0, numEqualitySegments - 1]
AutoPtr<DSIExtColumnCondition> TakeLastColumnCondition (  ) 

Remove the last column condition and relinquish ownership of it.

Exceptions:
SEInvalidOperationException If this object does not have a last column condition.
Returns:
This object's last column condition.

The documentation for this class was generated from the following file:

Generated on Wed May 17 14:21:18 2017 for SimbaEngine 10.1.3.1011 by simba