org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators
Class POProject

java.lang.Object
  extended by org.apache.pig.impl.plan.Operator<PhyPlanVisitor>
      extended by org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator
          extended by org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator
              extended by org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject
All Implemented Interfaces:
Serializable, Cloneable, Comparable<Operator>

public class POProject
extends ExpressionOperator

Implements the overloaded form of the project operator. Projects the specified column from the input tuple. However, if asked for tuples when the input is a bag, the overloaded form is invoked and the project streams the tuples through instead of the bag.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator
log
 
Fields inherited from class org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator
dummyBag, dummyBool, dummyDBA, dummyDouble, dummyFloat, dummyInt, dummyLong, dummyMap, dummyString, dummyTuple, input, inputAttached, inputs, lineageTracer, outputs, parentPlan, pigLogger, reporter, requestedParallelism, res, resultType
 
Fields inherited from class org.apache.pig.impl.plan.Operator
mKey
 
Constructor Summary
POProject(OperatorKey k)
           
POProject(OperatorKey k, int rp)
           
POProject(OperatorKey k, int rp, ArrayList<Integer> cols)
           
POProject(OperatorKey k, int rp, int col)
           
 
Method Summary
 void attachInput(Tuple t)
          Overridden since the attachment of the new input should cause the old processing to end.
 POProject clone()
          Make a deep copy of this operator.
 int getColumn()
           
 ArrayList<Integer> getColumns()
           
 Result getNext()
          Fetches the input tuple and returns the requested column
 Result getNext(Boolean b)
           
 Result getNext(DataBag db)
           
 Result getNext(DataByteArray ba)
           
 Result getNext(Double d)
           
 Result getNext(Float f)
           
 Result getNext(Integer i)
           
 Result getNext(Long l)
           
 Result getNext(Map m)
           
 Result getNext(String s)
           
 Result getNext(Tuple t)
          Asked for Tuples.
 boolean isOverloaded()
           
 boolean isStar()
           
 String name()
           
 void setColumn(int col)
           
 void setColumns(ArrayList<Integer> cols)
           
 void setOverloaded(boolean overloaded)
           
 void setResultSingleTupleBag(boolean resultSingleTupleBag)
           
 void setStar(boolean star)
           
 boolean supportsMultipleInputs()
          Indicates whether this operator supports multiple inputs.
 boolean supportsMultipleOutputs()
          Indicates whether this operator supports multiple outputs.
 void visit(PhyPlanVisitor v)
          Visit this node with the provided visitor.
 
Methods inherited from class org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator
cloneHelper, detachInput, getInputs, getLogger, getPigLogger, getRequestedParallelism, getResultType, isBlocking, isInputAttached, processInput, setInputs, setLineageTracer, setParentPlan, setPigLogger, setReporter, setRequestedParallelism, setResultType
 
Methods inherited from class org.apache.pig.impl.plan.Operator
compareTo, equals, getOperatorKey, hashCode, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

POProject

public POProject(OperatorKey k)

POProject

public POProject(OperatorKey k,
                 int rp)

POProject

public POProject(OperatorKey k,
                 int rp,
                 int col)

POProject

public POProject(OperatorKey k,
                 int rp,
                 ArrayList<Integer> cols)
Method Detail

name

public String name()
Specified by:
name in class Operator<PhyPlanVisitor>

supportsMultipleInputs

public boolean supportsMultipleInputs()
Description copied from class: Operator
Indicates whether this operator supports multiple inputs.

Specified by:
supportsMultipleInputs in class Operator<PhyPlanVisitor>
Returns:
true if it does, otherwise false.

supportsMultipleOutputs

public boolean supportsMultipleOutputs()
Description copied from class: Operator
Indicates whether this operator supports multiple outputs.

Overrides:
supportsMultipleOutputs in class ExpressionOperator
Returns:
true if it does, otherwise false.

visit

public void visit(PhyPlanVisitor v)
           throws VisitorException
Description copied from class: Operator
Visit this node with the provided visitor. This should only be called by the visitor class itself, never directly.

Specified by:
visit in class ExpressionOperator
Parameters:
v - Visitor to visit with.
Throws:
VisitorException - if the visitor has a problem.

attachInput

public void attachInput(Tuple t)
Overridden since the attachment of the new input should cause the old processing to end.

Overrides:
attachInput in class PhysicalOperator
Parameters:
t - - The tuple that should be used as input

getNext

public Result getNext()
               throws ExecException
Fetches the input tuple and returns the requested column

Returns:
next value.
Throws:
ExecException

getNext

public Result getNext(DataBag db)
               throws ExecException
Overrides:
getNext in class ExpressionOperator
Throws:
ExecException

getNext

public Result getNext(DataByteArray ba)
               throws ExecException
Overrides:
getNext in class PhysicalOperator
Throws:
ExecException

getNext

public Result getNext(Double d)
               throws ExecException
Overrides:
getNext in class PhysicalOperator
Throws:
ExecException

getNext

public Result getNext(Float f)
               throws ExecException
Overrides:
getNext in class PhysicalOperator
Throws:
ExecException

getNext

public Result getNext(Integer i)
               throws ExecException
Overrides:
getNext in class PhysicalOperator
Throws:
ExecException

getNext

public Result getNext(Long l)
               throws ExecException
Overrides:
getNext in class PhysicalOperator
Throws:
ExecException

getNext

public Result getNext(Boolean b)
               throws ExecException
Overrides:
getNext in class PhysicalOperator
Throws:
ExecException

getNext

public Result getNext(Map m)
               throws ExecException
Overrides:
getNext in class PhysicalOperator
Throws:
ExecException

getNext

public Result getNext(String s)
               throws ExecException
Overrides:
getNext in class PhysicalOperator
Throws:
ExecException

getNext

public Result getNext(Tuple t)
               throws ExecException
Asked for Tuples. Check if the input is a bag. If so, stream the tuples in the bag instead of the entire bag.

Overrides:
getNext in class PhysicalOperator
Throws:
ExecException

getColumns

public ArrayList<Integer> getColumns()

getColumn

public int getColumn()
              throws ExecException
Throws:
ExecException

setColumns

public void setColumns(ArrayList<Integer> cols)

setColumn

public void setColumn(int col)

isOverloaded

public boolean isOverloaded()

setOverloaded

public void setOverloaded(boolean overloaded)

isStar

public boolean isStar()

setStar

public void setStar(boolean star)

clone

public POProject clone()
                throws CloneNotSupportedException
Description copied from class: ExpressionOperator
Make a deep copy of this operator. This is declared here to make it possible to call clone on ExpressionOperators.

Overrides:
clone in class ExpressionOperator
Throws:
CloneNotSupportedException
See Also:
Do not use the clone method directly. Operators are cloned when logical plans are cloned using {@link LogicalPlanCloner}

setResultSingleTupleBag

public void setResultSingleTupleBag(boolean resultSingleTupleBag)


Copyright © ${year} The Apache Software Foundation