org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators
Class POFilter

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.relationalOperators.POFilter
All Implemented Interfaces:
Serializable, Cloneable, Comparable<Operator>, Illustrable

public class POFilter
extends PhysicalOperator

This is an implementation of the Filter operator. It has an Expression Plan that decides whether the input tuple should be filtered or passed through. To avoid many function calls, the filter operator, stores the Comparison Operator that is the root of the Expression Plan and uses its getNext directly. Since the filter is supposed to return tuples only, getNext is not supported on any other data type.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator
alias, dummyBag, dummyBool, dummyDBA, dummyDouble, dummyFloat, dummyInt, dummyLong, dummyMap, dummyString, dummyTuple, illustrator, input, inputAttached, inputs, lineageTracer, outputs, parentPlan, pigLogger, reporter, requestedParallelism, res, resultType
 
Fields inherited from class org.apache.pig.impl.plan.Operator
mKey
 
Constructor Summary
POFilter(OperatorKey k)
           
POFilter(OperatorKey k, int rp)
           
POFilter(OperatorKey k, int rp, List<PhysicalOperator> inputs)
           
POFilter(OperatorKey k, List<PhysicalOperator> inputs)
           
 
Method Summary
 Result getNext(Tuple t)
          Attaches the proccesed input tuple to the expression plan and checks if comparison operator returns a true.
 PhysicalPlan getPlan()
           
 Tuple illustratorMarkup(Object in, Object out, int eqClassIndex)
          input tuple mark up to be illustrate-able
 String name()
           
 void setPlan(PhysicalPlan plan)
           
 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
attachInput, clone, cloneHelper, detachInput, getAlias, getAliasString, getDummy, getIllustrator, getInputs, getLogger, getNext, getNext, getNext, getNext, getNext, getNext, getNext, getNext, getNext, getNext, getPigLogger, getRequestedParallelism, getResultType, isAccumStarted, isAccumulative, isBlocking, isInputAttached, processInput, reset, setAccumEnd, setAccumStart, setAccumulative, setAlias, setIllustrator, setInputs, setParentPlan, setPigLogger, setReporter, setRequestedParallelism, setResultType
 
Methods inherited from class org.apache.pig.impl.plan.Operator
compareTo, equals, getOperatorKey, getProjectionMap, hashCode, regenerateProjectionMap, rewire, toString, unsetProjectionMap
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

POFilter

public POFilter(OperatorKey k)

POFilter

public POFilter(OperatorKey k,
                int rp)

POFilter

public POFilter(OperatorKey k,
                List<PhysicalOperator> inputs)

POFilter

public POFilter(OperatorKey k,
                int rp,
                List<PhysicalOperator> inputs)
Method Detail

getNext

public Result getNext(Tuple t)
               throws ExecException
Attaches the proccesed input tuple to the expression plan and checks if comparison operator returns a true. If so the tuple is not filtered and let to pass through. Else, further input is processed till a tuple that can be passed through is found or EOP is reached.

Overrides:
getNext in class PhysicalOperator
Throws:
ExecException

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.

Specified by:
supportsMultipleOutputs in class Operator<PhyPlanVisitor>
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 PhysicalOperator
Parameters:
v - Visitor to visit with.
Throws:
VisitorException - if the visitor has a problem.

setPlan

public void setPlan(PhysicalPlan plan)

getPlan

public PhysicalPlan getPlan()

illustratorMarkup

public Tuple illustratorMarkup(Object in,
                               Object out,
                               int eqClassIndex)
Description copied from interface: Illustrable
input tuple mark up to be illustrate-able

Parameters:
in - input tuple
out - output tuple before wrapped in ExampleTuple
eqClassIndex - index into equivalence classes in illustrator
Returns:
tuple


Copyright © ${year} The Apache Software Foundation