ETJoin Class Reference

Inherits Simba::SQLEngine::ETBinaryRelationalExpr.

Inherited by ETInnerJoin.

List of all members.

Public Member Functions

virtual ETJoinGetAsJoin ()
 Get this object as an ETJoin object.
virtual void GetBookmark (simba_byte *out_bookmark)
virtual simba_uint16 GetBookmarkSize ()
virtual bool GetDataNeeded (simba_uint16 in_column)
virtual bool GotoBookmark (const simba_byte *in_bookmark)
 Move the cursor to the row identified by the given bookmark.
virtual bool IsJoinExpr ()
 Tests whether this is a Join relational expression.
virtual ~ETJoin ()
 Destructor.

Protected Member Functions

 ETJoin (AutoPtr< ETRelationalExpr > in_leftOperand, AutoPtr< ETRelationalExpr > in_rightOperand)
 Constructor.

Protected Attributes

bool m_bookmarkSizesCached
simba_uint16 m_leftBookmarkSize
simba_uint16 m_rightBookmarkSize

Detailed Description

An abstract join class from which all join execution nodes extends. It mainly provides implementation for bookmark functionalities.


Constructor & Destructor Documentation

virtual ~ETJoin (  )  [inline, virtual]

Destructor.

ETJoin ( AutoPtr< ETRelationalExpr in_leftOperand,
AutoPtr< ETRelationalExpr in_rightOperand 
) [protected]

Constructor.

Parameters:
in_leftOperand The left relational expression. (OWN)
in_rightOperand The right relational expression. (OWN)
Exceptions:
SEInvalidArgumentException when any of the arguments does not contain a required object.

Member Function Documentation

virtual ETJoin* GetAsJoin (  )  [virtual]

Get this object as an ETJoin object.

ETRelationalExpr::IsJoinExpr() should be used to test before calling this method.

Exceptions:
SEInvalidOperationException if this is not an ETJoin object.
Returns:
This object as an ETJoin object.

Reimplemented from ETRelationalExpr.

virtual void GetBookmark ( simba_byte *  out_bookmark  )  [virtual]

Retrieve a bookmark uniquely identifying the current row. The size of the bookmark should always be that of returned by GetBookmarkSize().

Parameters:
out_bookmark The output buffer for the bookmark. The length of the buffer is assumed to be greater than or equal to the bookmark size.
Exceptions:
SEInvalidOperationException if bookmark is not supported.

Implements IBookmarkable.

virtual simba_uint16 GetBookmarkSize (  )  [virtual]

Retrieve the length in bytes of the bookmark on the table. This method can be called before Open() is called.

If one of the operands does not support bookmark, this method returns BOOKMARK_NOT_SUPPORTED.

Returns:
the length in bytes of the bookmark if bookmark is supported, BOOKMARK_NOT_SUPPORTED otherwise.

Implements IBookmarkable.

virtual bool GetDataNeeded ( simba_uint16  in_column  )  [virtual]

Gets the data needed status of the column as set by SetDataNeeded. If SetDataNeeded was not called, the value is assumed to be false.

Parameters:
in_column A zero-based column index.
Exceptions:
SEInvalidArgumentException if in_column is invalid.
Returns:
true if the column is indicated to be needed, false otherwise.

Reimplemented from ETRelationalExpr.

virtual bool GotoBookmark ( const simba_byte *  in_bookmark  )  [virtual]

Move the cursor to the row identified by the given bookmark.

NOTE: The bookmark should have been obtained through GetBookmark() and the size of the bookmark is of that returned by GetBookmarkSize().

Parameters:
in_bookmark The bookmark uniquely identifying a row in the table.
Exceptions:
SEInvalidOperationException if bookmark is not supported.
DSIException if the given bookmark is invalid.
Returns:
true if successfully moved to the bookmarked row, false otherwise.

Implements IBookmarkable.

virtual bool IsJoinExpr (  )  [virtual]

Tests whether this is a Join relational expression.

The implementation here always returns true.

Returns:
true if this expression is a Join, otherwise false.

Reimplemented from ETRelationalExpr.


Member Data Documentation

bool m_bookmarkSizesCached [protected]
simba_uint16 m_leftBookmarkSize [protected]
simba_uint16 m_rightBookmarkSize [protected]

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