com.akiban.sql.parser
Class IntersectOrExceptNode

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.IntersectOrExceptNode
All Implemented Interfaces:
Visitable

public class IntersectOrExceptNode
extends SetOperatorNode

A IntersectOrExceptNode represents an INTERSECT or EXCEPT DML statement.


Nested Class Summary
static class IntersectOrExceptNode.OpType
           
 
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
IntersectOrExceptNode()
           
 
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.
 String getOperatorName()
           
 IntersectOrExceptNode.OpType getOpType()
           
 ResultSetNode getRightResultSet()
          Get the rightResultSet from this node.
 void init(Object leftResultSet, Object rightResultSet, Object tableProperties)
          Initializer for a TableOperatorNode.
 void init(Object opType, Object leftResult, Object rightResult, Object all, Object tableProperties)
          Initializer for an IntersectOrExceptNode.
 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)
           
 
Methods inherited from class com.akiban.sql.parser.SetOperatorNode
init, isAll, printSubNodes, toString
 
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

IntersectOrExceptNode

public IntersectOrExceptNode()
Method Detail

init

public void init(Object opType,
                 Object leftResult,
                 Object rightResult,
                 Object all,
                 Object tableProperties)
          throws StandardException
Initializer for an IntersectOrExceptNode.

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 an ALL.
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

getOpType

public IntersectOrExceptNode.OpType getOpType()

getOperatorName

public String getOperatorName()
Returns:
the operator name: "UNION", "INTERSECT", or "EXCEPT"

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.