AECrossJoin Class Reference

A class that models a relational CROSS JOIN operation. More...

Inherits Simba::SQLEngine::AEBinaryRelationalExpr.

List of all members.

Public Member Functions

virtual void AcceptVisitor (AENodeVisitor &in_visitor)
 Calls the correct method on the visitor.
 AECrossJoin (const AECrossJoin &in_other)
 Copy constructor.
 AECrossJoin (AutoPtr< AERelationalExpr > in_leftOperand, AutoPtr< AERelationalExpr > in_rightOperand)
 Constructor.
virtual AECrossJoinClone () const
 Creates a clone of this node object.
virtual void EvaluateUseCaching ()
 Evaluate if this node, or children nodes, should use caching.
virtual bool FindQColumn (const AEQColumnName &in_qColName, bool in_unquotedCaseSensitive, bool in_quotedCaseSensitive, AEColumnInfo &out_colInfo)
 Finds the qualified column.
virtual const AECrossJoinGetAsCrossJoin () const
 Gets the object as an AECrossJoin object.
virtual AECrossJoinGetAsCrossJoin ()
 Gets the object as an AECrossJoin object.
virtual Simba::DSI::IColumnGetColumn (simba_uint16 in_columnNum)
 Gets the column metadata for the given column.
virtual simba_uint16 GetColumnCount ()
 Returns the number of columns in this query operation.
virtual simba_wstring GetLogString () const
 Returns a string name for this node for the purpose of logging.
virtual AENodeType GetNodeType () const
 Returns an integer that uniquely identifies the node class. See the definition of AENodeType for values defined.
virtual void SetDataNeeded (simba_uint16 in_column, bool in_isNeeded)
 Indicates whether RetrieveData(...) might be called on the given column. This applies to any subsequent Move(...) calls.
virtual void Validate ()
 Validates the node. If the function successfully returns, then the node is valid.
virtual ~AECrossJoin ()
 Destructor.

Detailed Description

A class that models a relational CROSS JOIN operation.

This class models the standard product relational operation: R1 R2. In the SQL-92 Spec, this matches exactly to the construct <table reference> CROSS JOIN <table reference>. In other words, the following two semantically identical SQL queries can be translated to an AECrossJoin operation directly.

A CROSS JOIN B

SELECT A.*, B.* FROM A, B

Will always have two children (GetChildCount() returns 2):


Constructor & Destructor Documentation

AECrossJoin ( AutoPtr< AERelationalExpr in_leftOperand,
AutoPtr< AERelationalExpr in_rightOperand 
)

Constructor.

Parameters:
in_leftOperand The left operand.
in_rightOperand The right operand.
AECrossJoin ( const AECrossJoin in_other  ) 

Copy constructor.

To support "cloning". See Clone() method.

Parameters:
in_other The other node to create copy from.
virtual ~AECrossJoin (  )  [virtual]

Destructor.


Member Function Documentation

virtual void AcceptVisitor ( AENodeVisitor in_visitor  )  [virtual]

Calls the correct method on the visitor.

Parameters:
in_visitor The visiting object.

Implements AENode.

virtual AECrossJoin* Clone (  )  const [virtual]

Creates a clone of this node object.

Returns:
A clone of this node object. (OWN)

Implements AEBinaryRelationalExpr.

virtual void EvaluateUseCaching (  )  [virtual]

Evaluate if this node, or children nodes, should use caching.

Reimplemented from AERelationalExpr.

virtual bool FindQColumn ( const AEQColumnName in_qColName,
bool  in_unquotedCaseSensitive,
bool  in_quotedCaseSensitive,
AEColumnInfo out_colInfo 
) [virtual]

Finds the qualified column.

Parameters:
in_qColName The qualified column name to find.
in_unquotedCaseSensitive True if unquoted column names are case sensitive; false otherwise.
in_quotedCaseSensitive Whether quoted columns should be case sensitive
out_colInfo The output column info if the column if found, untouched otherwise. Specifically, m_namedRelExpr and m_columnNum will be set if found. m_qsResolved and m_isOuterRef will _NOT_ be set.
Exceptions:
SEInvalidArgumentException when column name in in_qColName is empty.
SEInvalidOperationException if the operation does not apply on one of the operands.
Returns:
true if the qualified column is found, false otherwise.

Reimplemented from AERelationalExpr.

virtual const AECrossJoin* GetAsCrossJoin (  )  const [virtual]

Gets the object as an AECrossJoin object.

Overrides the method defined in AERelationalExpr.

Returns:
this object as an AECrossJoin object. (NOT OWN)

Reimplemented from AERelationalExpr.

virtual AECrossJoin* GetAsCrossJoin (  )  [virtual]

Gets the object as an AECrossJoin object.

Overrides the method defined in AERelationalExpr.

Returns:
this object as an AECrossJoin object. (NOT OWN)

Reimplemented from AERelationalExpr.

virtual Simba::DSI::IColumn* GetColumn ( simba_uint16  in_columnNum  )  [virtual]

Gets the column metadata for the given column.

Parameters:
in_columnNum The zero-base column index.
Exceptions:
SEInvalidArgumentException when the given column number is invalid
AEInvalidAetException when either of the operands is NULL
Returns:
the column metadata for the given column. (NOT OWN)

Implements AEQueryOperation.

virtual simba_uint16 GetColumnCount (  )  [virtual]

Returns the number of columns in this query operation.

Exceptions:
AEInvalidAetException when either of the operands is NULL
Returns:
The number of columns in this query operation.

Implements AEQueryOperation.

virtual simba_wstring GetLogString (  )  const [virtual]

Returns a string name for this node for the purpose of logging.

Returns:
A string representation of this node for logging purposes.

Implements AENode.

virtual AENodeType GetNodeType (  )  const [virtual]

Returns an integer that uniquely identifies the node class. See the definition of AENodeType for values defined.

Returns:
The ID that uniquely identifies this type of nodes.

Implements AENode.

virtual void SetDataNeeded ( simba_uint16  in_column,
bool  in_isNeeded 
) [virtual]

Indicates whether RetrieveData(...) might be called on the given column. This applies to any subsequent Move(...) calls.

Parameters:
in_column A zero-based column index.
in_isNeeded Indicates whether data may be retrieved from the given column by the ODBC layer or not.
Exceptions:
SEInvalidArgumentException if in_column is invalid.

Implements AERelationalExpr.

virtual void Validate (  )  [virtual]

Validates the node. If the function successfully returns, then the node is valid.

Exceptions:
AEInvalidAetException if the node is not valid.

Reimplemented from AENode.


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

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