org.apache.hadoop.hive.ql.ppd
Class OpProcFactory

java.lang.Object
  extended by org.apache.hadoop.hive.ql.ppd.OpProcFactory

public class OpProcFactory
extends Object

Operator factory for predicate pushdown processing of operator graph Each operator determines the pushdown predicates by walking the expression tree. Each operator merges its own pushdown predicates with those of its children Finally the TableScan operator gathers all the predicates and inserts a filter operator after itself. TODO: Further optimizations 1) Multi-insert case 2) Create a filter operator for those predicates that couldn't be pushed to the previous operators in the data flow 3) Merge multiple sequential filter predicates into so that plans are more readable 4) Remove predicates from filter operators that have been pushed. Currently these pushed predicates are evaluated twice.


Nested Class Summary
static class OpProcFactory.DefaultPPD
          Default processor which just merges its children
static class OpProcFactory.FilterPPD
          Determines the push down predicates in its where expression and then combines it with the push down predicates that are passed from its children
static class OpProcFactory.JoinPPD
          Determines predicates for which alias can be pushed to it's parents.
static class OpProcFactory.ReduceSinkPPD
          Processor for ReduceSink operator.
static class OpProcFactory.ScriptPPD
          Processor for Script Operator Prevents any predicates being pushed
static class OpProcFactory.TableScanPPD
          Combines predicates of its child into a single expression and adds a filter op as new child
 
Constructor Summary
OpProcFactory()
           
 
Method Summary
protected static Object createFilter(Operator op, ExprWalkerInfo pushDownPreds, OpWalkerInfo owi)
           
static NodeProcessor getDefaultProc()
           
static NodeProcessor getFilterProc()
           
static NodeProcessor getJoinProc()
           
static NodeProcessor getLIMProc()
           
static NodeProcessor getRSProc()
           
static NodeProcessor getSCRProc()
           
static NodeProcessor getTSProc()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OpProcFactory

public OpProcFactory()
Method Detail

createFilter

protected static Object createFilter(Operator op,
                                     ExprWalkerInfo pushDownPreds,
                                     OpWalkerInfo owi)

getFilterProc

public static NodeProcessor getFilterProc()

getJoinProc

public static NodeProcessor getJoinProc()

getRSProc

public static NodeProcessor getRSProc()

getTSProc

public static NodeProcessor getTSProc()

getDefaultProc

public static NodeProcessor getDefaultProc()

getSCRProc

public static NodeProcessor getSCRProc()

getLIMProc

public static NodeProcessor getLIMProc()


Copyright © 2009 The Apache Software Foundation