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

java.lang.Object
  extended by org.apache.pig.impl.plan.PlanVisitor<O,P>
      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.TypeCastInserter

public class TypeCastInserter
extends LogicalTransformer

A visitor to discover if any schema has been specified for a file being loaded. If so, a projection will be injected into the plan to cast the data being loaded to the appropriate types. The optimizer can then come along and move those casts as far down as possible, or in some cases remove them altogether. This visitor does not handle finding the schemas for the file, that has already been done as part of parsing.


Field Summary
 
Fields inherited from class org.apache.pig.impl.plan.PlanVisitor
mCurrentWalker, mPlan
 
Constructor Summary
TypeCastInserter(LogicalPlan plan, String operatorClassName)
           
 
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, rebuildSchemas, removeFromChain
 
Methods inherited from class org.apache.pig.impl.plan.PlanVisitor
getPlan, popWalker, pushWalker, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TypeCastInserter

public TypeCastInserter(LogicalPlan plan,
                        String operatorClassName)
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