This class models a value sub-query. More...
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)|
|virtual AEValueSubQuery *||Clone () 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. |
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):
|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.|
To support "cloning". See Clone() method.
|in_other||The other node to create copy from.|
|virtual void AcceptVisitor||(||AENodeVisitor &||in_visitor||)||
Calls the correct method on the visitor.
|in_visitor||The visiting object.|
|virtual AEValueSubQuery* Clone||(||)|| 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.
See the definition of AENodeType for values defined.
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'.