AEValueSubQuery Class Reference

This class models a value sub-query. More...

Inherits AEUnaryExprT< AEValueExpr, AERelationalExpr >.

List of all members.

Public Member Functions

virtual void AcceptVisitor (AENodeVisitor &in_visitor)
 Calls the correct method on the visitor.
 AEValueSubQuery (const AEValueSubQuery &in_other)
 Copy constructor.
 AEValueSubQuery (AutoPtr< AERelationalExpr > in_queryExpr, bool in_isCorrelated)
 Constructor.
virtual AEValueSubQueryClone () const
 Creates a clone of this node object.
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.
bool IsCorrelated () const
 Tells whether this value sub-query's query scope contains any columns that are not in the query scope's table symbols but are in the table symbols of the parent query scope.
virtual ~AEValueSubQuery ()
 Destructor.

Detailed Description

This class models a value sub-query.

Value sub-queries can appear as a right operand for a comparison predicate, or in a value list of value expression. A value sub-query is a value expression and is treated as such.

The most important difference between an AEValueSubQuery an a relational AESubQuery is that an AEValueSubQuery returns exactly 1 value, and as such is treated like a value expression. An AESubQuery returns a result set of more than >= 1 value. Another difference is that a relational sub-query can be renamed, as specified by an optional [AS corname] clause. An AEValueSubQuery cannot be renamed.

Will have one child (GetChildCount() returns 1):


Constructor & Destructor Documentation

AEValueSubQuery ( AutoPtr< AERelationalExpr in_queryExpr,
bool  in_isCorrelated 
)

Constructor.

Parameters:
in_queryExpr The query expression for this SubQuery. (OWN)
in_isCorrelated True if this value sub-query is correlated to the outer query, False if it is uncorrelated.
AEValueSubQuery ( const AEValueSubQuery in_other  ) 

Copy constructor.

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

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

Creates a clone of this node object.

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

Implements AEValueExpr.

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.

bool IsCorrelated (  )  const

Tells whether this value sub-query's query scope contains any columns that are not in the query scope's table symbols but are in the table symbols of the parent query scope.

If this is the case, the current query scope is associated with a query that is correlated to the outer query (AKA 'correlated sub-query'). If this value sub-query's query scope does not contain any table symbols that are not in the query scope but are in the parent query scope, then it is an 'uncorrelated sub-query'.

Returns:
True if this value sub-query is correlated to the outer query; False if it is uncorrelated to the outer query.

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