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

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.PartitionFilterOptimizer

public class PartitionFilterOptimizer
extends LogicalTransformer

When the load statement in a pig script is loading a table from a meta data system (like owl), the load can be followed by a filter which can contain conditions on partition columns. This filter can also contain conditions on non partition columns. This optimizer looks at the logical plan and checks if there is a load followed by such a filter which has conditions on partition columns. If so, it extracts the conditions on partition columns out of the filter.


Field Summary
 
Fields inherited from class org.apache.pig.impl.plan.optimizer.Transformer
mPlan
 
Constructor Summary
protected PartitionFilterOptimizer(LogicalPlan plan)
           
 
Method Summary
 boolean check(List<LogicalOperator> nodes)
          check if the transform should be done.
 void transform(List<LogicalOperator> nodes)
          Transform the tree
 
Methods inherited from class org.apache.pig.impl.logicalLayer.optimizer.LogicalTransformer
fixUpContainedPlans, insertAfter, insertBetween, rebuildProjectionMaps, rebuildSchemas, reset
 
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

PartitionFilterOptimizer

protected PartitionFilterOptimizer(LogicalPlan plan)
Method Detail

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


Copyright © ${year} The Apache Software Foundation