com.akiban.sql.parser
Class UnionNode

java.lang.Object
  extended by com.akiban.sql.parser.QueryTreeNode
      extended by com.akiban.sql.parser.ResultSetNode
          extended by com.akiban.sql.parser.FromTable
              extended by com.akiban.sql.parser.SetOperatorNode
                  extended by com.akiban.sql.parser.UnionNode
All Implemented Interfaces:
Visitable

public class UnionNode
extends SetOperatorNode

A UnionNode represents a UNION in a DML statement. It contains a boolean telling whether the union operation should eliminate duplicate rows.


Field Summary
protected  ResultSetNode leftResultSet
           
protected  ResultSetNode rightResultSet
           
 
Fields inherited from class com.akiban.sql.parser.FromTable
correlationName, origTableName, tableProperties
 
Fields inherited from class com.akiban.sql.parser.QueryTreeNode
AUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX
 
Constructor Summary
UnionNode()
           
 
Method Summary
 void copyFrom(QueryTreeNode node)
          Fill this node with a deep copy of the given node.
 String getExposedName()
          Return the exposed name for this table, which is the name that can be used to refer to this table in the rest of the query.
 ResultSetNode getLeftmostResultSet()
           
 ResultSetNode getLeftResultSet()
          Get the leftResultSet from this node.
 ResultSetNode getRightResultSet()
          Get the rightResultSet from this node.
 void init(Object leftResultSet, Object rightResultSet, Object tableProperties)
          Initializer for a TableOperatorNode.
 void init(Object leftResult, Object rightResult, Object all, Object tableConstructor, Object tableProperties)
          Initializer for a UnionNode.
 void markTopTableConstructor()
          Mark this as the top node of a table constructor.
 void setLeftmostResultSet(ResultSetNode newLeftResultSet)
           
 void setLeftResultSet(ResultSetNode leftResultSet)
           
 void setNestedInParens(boolean nestedInParens)
          Mark whether or not this node is nested in parens.
 void setRightResultSet(ResultSetNode rightResultSet)
           
 String toString()
          Convert this object to a String.
 
Methods inherited from class com.akiban.sql.parser.SetOperatorNode
init, isAll, printSubNodes
 
Methods inherited from class com.akiban.sql.parser.FromTable
getCorrelationName, getOrigTableName, getTableName, init, setCorrelationName, setOrigTableName
 
Methods inherited from class com.akiban.sql.parser.ResultSetNode
getResultColumns, setInsertSource, setResultColumns
 
Methods inherited from class com.akiban.sql.parser.QueryTreeNode
accept, convertDefaultNode, debugFlush, debugPrint, formatNodeString, getBeginOffset, getDebugOutput, getEndOffset, getNodeFactory, getNodeType, getNullNode, getParserContext, getStatementType, getUserData, init, init, init, init, init, init, init, init, init, init, isInstanceOf, makeTableName, makeTableName, nodeHeader, printLabel, setBeginOffset, setDebugOutput, setEndOffset, setNodeType, setParserContext, setUserData, stackPrint, treePrint, treePrint, treePrint
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

leftResultSet

protected ResultSetNode leftResultSet

rightResultSet

protected ResultSetNode rightResultSet
Constructor Detail

UnionNode

public UnionNode()
Method Detail

init

public void init(Object leftResult,
                 Object rightResult,
                 Object all,
                 Object tableConstructor,
                 Object tableProperties)
          throws StandardException
Initializer for a UnionNode.

Overrides:
init in class QueryTreeNode
Parameters:
leftResult - The ResultSetNode on the left side of this union
rightResult - The ResultSetNode on the right side of this union
all - Whether or not this is a UNION ALL.
tableConstructor - Whether or not this is from a table constructor.
tableProperties - Properties list associated with the table
Throws:
StandardException - Thrown on error

copyFrom

public void copyFrom(QueryTreeNode node)
              throws StandardException
Fill this node with a deep copy of the given node.

Overrides:
copyFrom in class SetOperatorNode
Throws:
StandardException

markTopTableConstructor

public void markTopTableConstructor()
Mark this as the top node of a table constructor.


toString

public String toString()
Convert this object to a String. See comments in QueryTreeNode.java for how this should be done for tree printing.

Overrides:
toString in class SetOperatorNode
Returns:
This object as a String

init

public void init(Object leftResultSet,
                 Object rightResultSet,
                 Object tableProperties)
          throws StandardException
Initializer for a TableOperatorNode.

Overrides:
init in class QueryTreeNode
Parameters:
leftResultSet - The ResultSetNode on the left side of this node
rightResultSet - The ResultSetNode on the right side of this node
tableProperties - Properties list associated with the table
Throws:
StandardException - Thrown on error

getLeftResultSet

public ResultSetNode getLeftResultSet()
Get the leftResultSet from this node.

Returns:
ResultSetNode The leftResultSet from this node.

getRightResultSet

public ResultSetNode getRightResultSet()
Get the rightResultSet from this node.

Returns:
ResultSetNode The rightResultSet from this node.

setLeftResultSet

public void setLeftResultSet(ResultSetNode leftResultSet)

setRightResultSet

public void setRightResultSet(ResultSetNode rightResultSet)

getLeftmostResultSet

public ResultSetNode getLeftmostResultSet()

setLeftmostResultSet

public void setLeftmostResultSet(ResultSetNode newLeftResultSet)

getExposedName

public String getExposedName()
Return the exposed name for this table, which is the name that can be used to refer to this table in the rest of the query.

Overrides:
getExposedName in class FromTable
Returns:
The exposed name for this table.

setNestedInParens

public void setNestedInParens(boolean nestedInParens)
Mark whether or not this node is nested in parens. (Useful to parser since some trees get created left deep and others right deep.) The resulting state of this cal was never used so its field was removed to save runtimespace for this node. Further cleanup can be done including parser changes if this call is really nor required.

Parameters:
nestedInParens - Whether or not this node is nested in parens.


Copyright © 2013 Akiban Technologies, Inc. All rights reserved.