org.apache.pig.impl.logicalLayer.optimizer
Class PushDownForeachFlatten

java.lang.Object
  extended by org.apache.pig.impl.plan.optimizer.Transformer<LogicalOperator,LogicalPlan>
      extended by org.apache.pig.impl.logicalLayer.optimizer.LogicalTransformer
          extended by org.apache.pig.impl.logicalLayer.optimizer.PushDownForeachFlatten

public class PushDownForeachFlatten
extends LogicalTransformer

A visitor to discover if a foreach with flatten(s) can be pushed as low down the tree as possible.


Field Summary
 
Fields inherited from class org.apache.pig.impl.plan.optimizer.Transformer
mPlan
 
Constructor Summary
PushDownForeachFlatten(LogicalPlan plan)
           
 
Method Summary
 boolean check(List<LogicalOperator> nodes)
          check if the transform should be done.
 Map<Integer,Integer> getFlattenedColumnMap()
           
 boolean getInsertBetween()
           
 boolean getSwap()
           
 void reset()
          Reset any internal state after the transformation.
 void transform(List<LogicalOperator> nodes)
          Transform the tree
 
Methods inherited from class org.apache.pig.impl.logicalLayer.optimizer.LogicalTransformer
fixUpContainedPlans, insertAfter, insertBetween, rebuildProjectionMaps, rebuildSchemas
 
Methods inherited from class org.apache.pig.impl.plan.optimizer.Transformer
getPlan
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PushDownForeachFlatten

public PushDownForeachFlatten(LogicalPlan plan)
Method Detail

getSwap

public boolean getSwap()
Returns:
true if the foreach has to swapped; false otherwise

getInsertBetween

public boolean getInsertBetween()
Returns:
true if the foreach has to be inserted after its successor; false otherwise

getFlattenedColumnMap

public Map<Integer,Integer> getFlattenedColumnMap()
Returns:
a map of old column position in the foreach to the column position in foreach's successor

check

public boolean check(List<LogicalOperator> nodes)
              throws OptimizerException
Description copied from class: Transformer
check if the transform should be done. If this is being called then the pattern matches, but there may be other criteria that must be met as well.

Specified by:
check in class Transformer<LogicalOperator,LogicalPlan>
Parameters:
nodes - - List of nodes declared in transform ($1 = nodes[0], etc.) Remember that somes entries in node[] may be NULL since they may not be created until after the transform.
Returns:
true if the transform should be done.
Throws:
OptimizerException

transform

public void transform(List<LogicalOperator> nodes)
               throws OptimizerException
Description copied from class: Transformer
Transform the tree

Specified by:
transform in class Transformer<LogicalOperator,LogicalPlan>
Parameters:
nodes - - List of nodes declared in transform ($1 = nodes[0], etc.) This call must destruct any nodes that are being removed as part of the transform and remove them from the nodes vector and construct any that are being created as part of the transform and add them at the appropriate point to the nodes vector.
Throws:
OptimizerException

reset

public void reset()
Description copied from class: Transformer
Reset any internal state after the transformation.

Overrides:
reset in class LogicalTransformer


Copyright © ${year} The Apache Software Foundation