AEUnion Class Reference

This class models the standard union relational operation: R1 U R2. More...

Inherits Simba::SQLEngine::AESetOperation.

List of all members.

Public Member Functions

virtual void AcceptVisitor (AENodeVisitor &in_visitor)
 Calls the correct method on the visitor.
 AEUnion (const AEUnion &in_other)
 Copy constructor.
 AEUnion (ICoercionHandler *in_coercionHandler, AutoPtr< AERelationalExpr > in_leftOperand, AutoPtr< AERelationalExpr > in_rightOperand, bool in_isAllOptPresent=false)
 Constructor.
virtual AEUnionClone () const
 Creates a clone of this node object.
virtual const AEUnionGetAsUnion () const
 Get the object as an AEUnion object.
virtual AEUnionGetAsUnion ()
 Get the object as an AEUnion object.
virtual Simba::DSI::IColumnGetColumn (simba_uint16 in_columnNum)
 Get 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 ~AEUnion ()
 Destructor.

Detailed Description

This class models the standard union relational operation: R1 U R2.

Semantically, an AEUnion object represents a <query expression> UNION [ALL] <query term> construct (UNION construct hereafter) in the SQL-92 Spec. In practice, it differs from the construct in a subtle way. It has been observed that Microsoft SQL Server applies coercion to the attributes of R1 and R2 automatically when the data types of the corresponding attributes of R1 and R2 are different. For example, if the data type of the attribute 1 of R1 is SQL_INTEGER and that of R2 is SQL_CHAR, the data type of attribute 1 of R1 U R2 is SQL_INTEGER. That is, when constructing an AEUnion expression tree from a UNION construct, the rules for data type coercion have to be applied during the query statement preparation. It has also observed that the order of R1 and R2 does not change the coercion rule.

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


Constructor & Destructor Documentation

AEUnion ( ICoercionHandler in_coercionHandler,
AutoPtr< AERelationalExpr in_leftOperand,
AutoPtr< AERelationalExpr in_rightOperand,
bool  in_isAllOptPresent = false 
)

Constructor.

Parameters:
in_coercionHandler The ICoercionHandler for handling custom coercions. (NOT OWN)
in_leftOperand The left operand.
in_rightOperand The right operand.
in_isAllOptPresent Indicates if the ALL keyword is present.
AEUnion ( const AEUnion in_other  ) 

Copy constructor.

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

Parameters:
in_other The other node to create copy from.
virtual ~AEUnion (  )  [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 AEUnion* Clone (  )  const [virtual]

Creates a clone of this node object.

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

Implements AESetOperation.

virtual const AEUnion* GetAsUnion (  )  const [virtual]

Get the object as an AEUnion object.

Overrides the method defined in AERelationalExpr.

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

Reimplemented from AERelationalExpr.

virtual AEUnion* GetAsUnion (  )  [virtual]

Get the object as an AEUnion object.

Overrides the method defined in AERelationalExpr.

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

Reimplemented from AERelationalExpr.

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

Get the column metadata for the given column.

Parameters:
in_columnNum The zero-base column index.
Exceptions:
SEInvalidArgumentException when the given column number is invalid
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.

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.


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

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