Impala
Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.
|
Public Member Functions | |
WindowGroup (AnalyticExpr analyticExpr, SlotDescriptor logicalOutputSlot, SlotDescriptor logicalIntermediateSlot) | |
boolean | isCompatible (AnalyticExpr analyticExpr) |
void | add (AnalyticExpr analyticExpr, SlotDescriptor logicalOutputSlot, SlotDescriptor logicalIntermediateSlot) |
void | init (Analyzer analyzer, String tupleName) |
Public Attributes | |
final List< Expr > | partitionByExprs |
final List< OrderByElement > | orderByElements |
final AnalyticWindow | window |
final List< AnalyticExpr > | analyticExprs = Lists.newArrayList() |
final List< Expr > | analyticFnCalls = Lists.newArrayList() |
final List< SlotDescriptor > | logicalOutputSlots = Lists.newArrayList() |
final List< SlotDescriptor > | logicalIntermediateSlots = Lists.newArrayList() |
TupleDescriptor | physicalOutputTuple |
TupleDescriptor | physicalIntermediateTuple |
final ExprSubstitutionMap | logicalToPhysicalSmap = new ExprSubstitutionMap() |
Static Private Member Functions | |
static boolean | requiresIndependentEval (AnalyticExpr analyticExpr) |
Collection of AnalyticExprs that share the same partition-by/order-by/window specification. The AnalyticExprs are stored broken up into their constituent parts.
Definition at line 481 of file AnalyticPlanner.java.
|
inline |
|
inline |
Adds the given analytic expr and its logical slots to this window group. Assumes the corresponding analyticExpr is compatible with 'this'.
Definition at line 544 of file AnalyticPlanner.java.
References com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.isCompatible().
|
inline |
Creates the physical output and intermediate tuples as well as the logical to physical smap for this window group. Computes the mem layout for the tuple descriptors.
Definition at line 558 of file AnalyticPlanner.java.
References com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.analyticExprs, com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.analyticFnCalls, com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.logicalIntermediateSlots, com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.logicalOutputSlots, com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.physicalIntermediateTuple, and com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.physicalOutputTuple.
|
inline |
True if the partition exprs and ordering elements and the window of analyticExpr match ours.
Definition at line 525 of file AnalyticPlanner.java.
References com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.analyticExprs, com.cloudera.impala.analysis.Expr.equalSets(), com.cloudera.impala.analysis.AnalyticExpr.getOrderByElements(), com.cloudera.impala.analysis.AnalyticExpr.getPartitionExprs(), com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.orderByElements, com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.partitionByExprs, com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.requiresIndependentEval(), and com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.window.
Referenced by com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.add().
|
inlinestaticprivate |
True if this analytic function must be evaluated in its own WindowGroup.
Definition at line 516 of file AnalyticPlanner.java.
References com.cloudera.impala.analysis.AnalyticExpr.FIRST_VALUE_REWRITE.
Referenced by com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.isCompatible().
final List<AnalyticExpr> com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.analyticExprs = Lists.newArrayList() |
Definition at line 489 of file AnalyticPlanner.java.
Referenced by com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.init(), and com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.isCompatible().
final List<Expr> com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.analyticFnCalls = Lists.newArrayList() |
Definition at line 491 of file AnalyticPlanner.java.
Referenced by com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.init().
final List<SlotDescriptor> com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.logicalIntermediateSlots = Lists.newArrayList() |
Definition at line 493 of file AnalyticPlanner.java.
Referenced by com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.init().
final List<SlotDescriptor> com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.logicalOutputSlots = Lists.newArrayList() |
Definition at line 492 of file AnalyticPlanner.java.
Referenced by com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.init().
final ExprSubstitutionMap com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.logicalToPhysicalSmap = new ExprSubstitutionMap() |
Definition at line 500 of file AnalyticPlanner.java.
Referenced by com.cloudera.impala.planner.AnalyticPlanner.createSortGroupPlan().
final List<OrderByElement> com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.orderByElements |
Definition at line 483 of file AnalyticPlanner.java.
Referenced by com.cloudera.impala.planner.AnalyticPlanner.createSortGroupPlan(), com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.isCompatible(), com.cloudera.impala.planner.AnalyticPlanner.SortGroup.isCompatible(), and com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.WindowGroup().
final List<Expr> com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.partitionByExprs |
TupleDescriptor com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.physicalIntermediateTuple |
Definition at line 499 of file AnalyticPlanner.java.
Referenced by com.cloudera.impala.planner.AnalyticPlanner.createSortGroupPlan(), and com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.init().
TupleDescriptor com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.physicalOutputTuple |
final AnalyticWindow com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.window |
Definition at line 484 of file AnalyticPlanner.java.
Referenced by com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.isCompatible(), and com.cloudera.impala.planner.AnalyticPlanner.WindowGroup.WindowGroup().