Impala
Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.
|
Protected Member Functions | |
String | queryStmtToSql (QueryStmt queryStmt) |
void | createSortInfo (Analyzer analyzer) throws AnalysisException |
void | createSortTupleInfo (Analyzer analyzer) |
Expr | getFirstAmbiguousAlias (List< Expr > exprs) |
void | substituteOrdinals (List< Expr > exprs, String errorPrefix, Analyzer analyzer) throws AnalysisException |
void | materializeSlots (Analyzer analyzer, List< Expr > exprs) |
Protected Attributes | |
final List< UnionOperand > | operands_ |
final List< UnionOperand > | distinctOperands_ = Lists.newArrayList() |
final List< UnionOperand > | allOperands_ = Lists.newArrayList() |
AggregateInfo | distinctAggInfo_ |
TupleId | tupleId_ |
String | toSqlString_ = null |
WithClause | withClause_ |
ArrayList< OrderByElement > | orderByElements_ |
LimitElement | limitElement_ |
ArrayList< Expr > | resultExprs_ = Lists.newArrayList() |
ArrayList< Expr > | baseTblResultExprs_ = Lists.newArrayList() |
final ExprSubstitutionMap | aliasSmap_ = new ExprSubstitutionMap() |
final ArrayList< Expr > | ambiguousAliasList_ = Lists.newArrayList() |
SortInfo | sortInfo_ |
boolean | evaluateOrderBy_ |
Analyzer | analyzer_ |
boolean | isExplain_ = false |
Private Member Functions | |
void | appendSelectList (SelectStmt select, StringBuilder strBuilder) |
Representation of a values() statement with a list of constant-expression lists. ValuesStmt is a special case of a UnionStmt with the following restrictions:
Definition at line 30 of file ValuesStmt.java.
|
inline |
Definition at line 32 of file ValuesStmt.java.
Referenced by com.cloudera.impala.analysis.ValuesStmt.clone().
|
inlineinherited |
Propagates DISTINCT from left to right, and checks that all union operands are union compatible, adding implicit casts if necessary.
Implements com.cloudera.impala.analysis.ParseNode.
Definition at line 149 of file UnionStmt.java.
References com.cloudera.impala.analysis.QueryStmt.baseTblResultExprs_, com.cloudera.impala.analysis.UnionStmt.createMetadata(), com.cloudera.impala.analysis.QueryStmt.createSortInfo(), com.cloudera.impala.analysis.QueryStmt.createSortTupleInfo(), com.cloudera.impala.analysis.QueryStmt.evaluateOrderBy_, com.cloudera.impala.analysis.UnionStmt.hasAnalyticExprs_, com.cloudera.impala.analysis.UnionStmt.operands_, com.cloudera.impala.analysis.UnionStmt.propagateDistinct(), com.cloudera.impala.analysis.UnionStmt.queryStmtToSql(), com.cloudera.impala.analysis.QueryStmt.resultExprs_, com.cloudera.impala.analysis.UnionStmt.toSql(), com.cloudera.impala.analysis.UnionStmt.toSqlString_, and com.cloudera.impala.analysis.UnionStmt.unnestOperands().
|
inlineprivate |
Definition at line 67 of file ValuesStmt.java.
Referenced by com.cloudera.impala.analysis.ValuesStmt.queryStmtToSql(), and com.cloudera.impala.analysis.ValuesStmt.toSql().
|
inline |
Definition at line 76 of file ValuesStmt.java.
References com.cloudera.impala.analysis.LimitElement.clone(), com.cloudera.impala.analysis.QueryStmt.cloneOrderByElements(), com.cloudera.impala.analysis.QueryStmt.cloneWithClause(), com.cloudera.impala.analysis.QueryStmt.limitElement_, com.cloudera.impala.analysis.UnionStmt.operands_, and com.cloudera.impala.analysis.ValuesStmt.ValuesStmt().
|
inlineinherited |
Definition at line 311 of file QueryStmt.java.
References com.cloudera.impala.analysis.QueryStmt.orderByElements_.
Referenced by com.cloudera.impala.analysis.ValuesStmt.clone(), com.cloudera.impala.analysis.UnionStmt.clone(), and com.cloudera.impala.analysis.SelectStmt.clone().
|
inlineinherited |
Definition at line 315 of file QueryStmt.java.
References com.cloudera.impala.analysis.QueryStmt.withClause_.
Referenced by com.cloudera.impala.analysis.ValuesStmt.clone(), com.cloudera.impala.analysis.UnionStmt.clone(), and com.cloudera.impala.analysis.SelectStmt.clone().
|
inlineprotectedinherited |
Creates sortInfo by resolving aliases and ordinals in the orderingExprs. If the query stmt is an inline view/union operand, then order-by with no limit with offset is not allowed, since that requires a sort and merging-exchange, and subsequent query execution would occur on a single machine. Sets evaluateOrderBy_ to false for ignored order-by w/o limit/offset in nested queries.
Definition at line 115 of file QueryStmt.java.
References com.cloudera.impala.analysis.QueryStmt.aliasSmap_, com.cloudera.impala.analysis.QueryStmt.clone(), com.cloudera.impala.analysis.QueryStmt.evaluateOrderBy_, com.cloudera.impala.analysis.QueryStmt.getFirstAmbiguousAlias(), com.cloudera.impala.analysis.QueryStmt.hasLimit(), com.cloudera.impala.analysis.QueryStmt.hasOffset(), com.cloudera.impala.analysis.QueryStmt.orderByElements_, com.cloudera.impala.analysis.QueryStmt.sortInfo_, com.cloudera.impala.analysis.QueryStmt.substituteOrdinals(), com.cloudera.impala.analysis.StatementBase.toSql(), and com.cloudera.impala.analysis.Expr.toSql().
Referenced by com.cloudera.impala.analysis.SelectStmt.analyze(), and com.cloudera.impala.analysis.UnionStmt.analyze().
|
inlineprotectedinherited |
Create a tuple descriptor for the single tuple that is materialized, sorted and output by the exec node implementing the sort. Done by materializing slot refs in the order-by and result expressions. Those SlotRefs in the ordering and result exprs are substituted with SlotRefs into the new tuple. This simplifies sorting logic for total (no limit) sorts. Done after analyzeAggregation() since ordering and result exprs may refer to the outputs of aggregation. Invoked for UnionStmt as well since TODO: We could do something more sophisticated than simply copying input slotrefs - e.g. compute some order-by expressions.
Definition at line 185 of file QueryStmt.java.
References com.cloudera.impala.analysis.QueryStmt.evaluateOrderBy_, and com.cloudera.impala.analysis.QueryStmt.resultExprs_.
Referenced by com.cloudera.impala.analysis.SelectStmt.analyze(), and com.cloudera.impala.analysis.UnionStmt.analyze().
|
inlineinherited |
Definition at line 278 of file QueryStmt.java.
References com.cloudera.impala.analysis.QueryStmt.evaluateOrderBy_.
|
inlineinherited |
Definition at line 134 of file UnionStmt.java.
References com.cloudera.impala.analysis.UnionStmt.allOperands_.
|
inlineinherited |
Definition at line 83 of file QueryStmt.java.
References com.cloudera.impala.analysis.QueryStmt.analyzer_.
Referenced by com.cloudera.impala.planner.SingleNodePlanner.createInlineViewPlan(), and com.cloudera.impala.analysis.StmtRewriter.rewrite().
|
inlineinherited |
Definition at line 280 of file QueryStmt.java.
References com.cloudera.impala.analysis.QueryStmt.baseTblResultExprs_.
Referenced by com.cloudera.impala.analysis.CreateOrAlterViewStmtBase.createColumnAndViewDefs(), com.cloudera.impala.analysis.UnionStmt.createMetadata(), com.cloudera.impala.planner.SingleNodePlanner.createSingleNodePlan(), and com.cloudera.impala.analysis.UnionStmt.materializeRequiredSlots().
|
inlineinherited |
Definition at line 523 of file UnionStmt.java.
Referenced by com.cloudera.impala.analysis.UnionStmt.createMetadata().
|
inlineinherited |
Definition at line 136 of file UnionStmt.java.
References com.cloudera.impala.analysis.UnionStmt.distinctAggInfo_.
|
inlineinherited |
Definition at line 132 of file UnionStmt.java.
References com.cloudera.impala.analysis.UnionStmt.distinctOperands_.
|
inlineprotectedinherited |
Return the first expr in exprs that is a non-unique alias. Return null if none of exprs is an ambiguous alias.
Definition at line 219 of file QueryStmt.java.
References com.cloudera.impala.analysis.QueryStmt.ambiguousAliasList_.
Referenced by com.cloudera.impala.analysis.SelectStmt.analyzeAggregation(), and com.cloudera.impala.analysis.QueryStmt.createSortInfo().
|
inlineinherited |
Definition at line 274 of file QueryStmt.java.
Referenced by com.cloudera.impala.analysis.QueryStmt.setLimit().
|
inlineinherited |
Definition at line 462 of file UnionStmt.java.
References com.cloudera.impala.analysis.QueryStmt.evaluateOrderBy_, and com.cloudera.impala.analysis.UnionStmt.tupleId_.
|
inlineinherited |
Definition at line 276 of file QueryStmt.java.
|
inlineinherited |
Definition at line 131 of file UnionStmt.java.
References com.cloudera.impala.analysis.UnionStmt.operands_.
|
inlineinherited |
Definition at line 279 of file QueryStmt.java.
References com.cloudera.impala.analysis.QueryStmt.resultExprs_.
Referenced by com.cloudera.impala.analysis.UnionStmt.setOperandSmap(), com.cloudera.impala.analysis.AnalyzeStmtsTest.testSlotRefPath(), and com.cloudera.impala.analysis.AnalyzeStmtsTest.TestStar().
|
inlineinherited |
Definition at line 277 of file QueryStmt.java.
References com.cloudera.impala.analysis.QueryStmt.sortInfo_.
|
inlineinherited |
Definition at line 459 of file UnionStmt.java.
References com.cloudera.impala.analysis.UnionStmt.tupleId_.
|
inlineinherited |
Definition at line 271 of file QueryStmt.java.
References com.cloudera.impala.analysis.QueryStmt.withClause_.
|
inlineinherited |
Definition at line 135 of file UnionStmt.java.
|
inlineinherited |
Definition at line 137 of file UnionStmt.java.
References com.cloudera.impala.analysis.UnionStmt.hasAnalyticExprs_.
|
inlineinherited |
Definition at line 133 of file UnionStmt.java.
|
inlineinherited |
Definition at line 273 of file QueryStmt.java.
Referenced by com.cloudera.impala.analysis.SelectStmt.analyze(), com.cloudera.impala.analysis.StmtRewriter.canRewriteCorrelatedSubquery(), com.cloudera.impala.analysis.QueryStmt.createSortInfo(), com.cloudera.impala.analysis.QueryStmt.setLimit(), and com.cloudera.impala.analysis.UnionStmt.toSql().
|
inlineinherited |
Definition at line 275 of file QueryStmt.java.
Referenced by com.cloudera.impala.analysis.QueryStmt.createSortInfo(), and com.cloudera.impala.analysis.UnionStmt.toSql().
|
inlineinherited |
Definition at line 272 of file QueryStmt.java.
References com.cloudera.impala.analysis.QueryStmt.orderByElements_.
Referenced by com.cloudera.impala.analysis.QueryStmt.analyzeLimit(), and com.cloudera.impala.analysis.UnionStmt.toSql().
|
inlineinherited |
Definition at line 270 of file QueryStmt.java.
References com.cloudera.impala.analysis.QueryStmt.withClause_.
Referenced by com.cloudera.impala.analysis.QueryStmt.analyze().
|
inlineinherited |
Definition at line 43 of file StatementBase.java.
References com.cloudera.impala.analysis.StatementBase.isExplain_.
|
inlineinherited |
Marks the baseTblResultExprs of its operands as materialized, based on which of the output slots have been marked. Calls materializeRequiredSlots() on the operands themselves.
Definition at line 221 of file UnionStmt.java.
References com.cloudera.impala.analysis.UnionStmt.distinctAggInfo_, com.cloudera.impala.analysis.UnionStmt.distinctOperands_, com.cloudera.impala.analysis.QueryStmt.evaluateOrderBy_, com.cloudera.impala.analysis.QueryStmt.getBaseTblResultExprs(), com.cloudera.impala.analysis.TupleDescriptor.getSlots(), com.cloudera.impala.analysis.SlotDescriptor.isMaterialized(), com.cloudera.impala.analysis.QueryStmt.materializeSlots(), com.cloudera.impala.analysis.UnionStmt.operands_, and com.cloudera.impala.analysis.UnionStmt.tupleId_.
|
inlineprotectedinherited |
Mark slots referenced in exprs as materialized.
Definition at line 303 of file QueryStmt.java.
Referenced by com.cloudera.impala.analysis.UnionStmt.materializeRequiredSlots(), and com.cloudera.impala.analysis.SelectStmt.materializeRequiredSlots().
|
inlineprotected |
Definition at line 38 of file ValuesStmt.java.
References com.cloudera.impala.analysis.ValuesStmt.appendSelectList().
|
inlineinherited |
Definition at line 139 of file UnionStmt.java.
References com.cloudera.impala.analysis.UnionStmt.allOperands_.
|
inlineinherited |
Definition at line 42 of file StatementBase.java.
References com.cloudera.impala.analysis.StatementBase.isExplain_.
|
inlineinherited |
Definition at line 281 of file QueryStmt.java.
References com.cloudera.impala.catalog.Type.BIGINT, com.cloudera.impala.analysis.QueryStmt.getLimit(), com.cloudera.impala.analysis.QueryStmt.hasLimit(), and com.cloudera.impala.analysis.QueryStmt.limitElement_.
Referenced by com.cloudera.impala.analysis.StmtRewriter.mergeExpr().
|
inlineinherited |
Definition at line 269 of file QueryStmt.java.
|
inlineprotectedinherited |
Substitute exprs of the form "<number>" with the corresponding expressions.
Definition at line 230 of file QueryStmt.java.
References com.cloudera.impala.analysis.Expr.getType(), com.cloudera.impala.analysis.QueryStmt.resultExprs_, and com.cloudera.impala.analysis.Expr.toSql().
Referenced by com.cloudera.impala.analysis.SelectStmt.analyzeAggregation(), and com.cloudera.impala.analysis.QueryStmt.createSortInfo().
|
inline |
Implements com.cloudera.impala.analysis.ParseNode.
Definition at line 47 of file ValuesStmt.java.
References com.cloudera.impala.analysis.ValuesStmt.appendSelectList(), com.cloudera.impala.analysis.UnionStmt.operands_, and com.cloudera.impala.analysis.QueryStmt.withClause_.
|
protectedinherited |
Map of expression substitutions for replacing aliases in "order by" or "group by" clauses with their corresponding result expr.
Definition at line 62 of file QueryStmt.java.
Referenced by com.cloudera.impala.analysis.SelectStmt.analyzeAggregation(), com.cloudera.impala.analysis.UnionStmt.createMetadata(), and com.cloudera.impala.analysis.QueryStmt.createSortInfo().
|
protectedinherited |
Definition at line 112 of file UnionStmt.java.
Referenced by com.cloudera.impala.analysis.UnionStmt.getAllOperands(), com.cloudera.impala.analysis.UnionStmt.removeAllOperands(), and com.cloudera.impala.analysis.UnionStmt.unnestOperands().
|
protectedinherited |
Select list item alias does not have to be unique. This list contains all the non-unique aliases. For example, select int_col a, string_col a from alltypessmall; Both columns are using the same alias "a".
Definition at line 70 of file QueryStmt.java.
Referenced by com.cloudera.impala.analysis.QueryStmt.getFirstAmbiguousAlias().
|
protectedinherited |
Definition at line 81 of file QueryStmt.java.
Referenced by com.cloudera.impala.analysis.QueryStmt.getAnalyzer(), and com.cloudera.impala.analysis.SelectStmt.getTableAliasGenerator().
|
protectedinherited |
|
protectedinherited |
Definition at line 114 of file UnionStmt.java.
Referenced by com.cloudera.impala.analysis.UnionStmt.getDistinctAggInfo(), com.cloudera.impala.analysis.UnionStmt.materializeRequiredSlots(), and com.cloudera.impala.analysis.UnionStmt.unnestOperands().
|
protectedinherited |
Definition at line 107 of file UnionStmt.java.
Referenced by com.cloudera.impala.analysis.UnionStmt.getDistinctOperands(), com.cloudera.impala.analysis.UnionStmt.materializeRequiredSlots(), and com.cloudera.impala.analysis.UnionStmt.unnestOperands().
|
protectedinherited |
Definition at line 78 of file QueryStmt.java.
Referenced by com.cloudera.impala.analysis.SelectStmt.analyze(), com.cloudera.impala.analysis.UnionStmt.analyze(), com.cloudera.impala.analysis.QueryStmt.createSortInfo(), com.cloudera.impala.analysis.QueryStmt.createSortTupleInfo(), com.cloudera.impala.analysis.QueryStmt.evaluateOrderBy(), com.cloudera.impala.analysis.UnionStmt.getMaterializedTupleIds(), com.cloudera.impala.analysis.SelectStmt.getMaterializedTupleIds(), com.cloudera.impala.analysis.UnionStmt.materializeRequiredSlots(), and com.cloudera.impala.analysis.SelectStmt.materializeRequiredSlots().
|
protectedinherited |
|
protectedinherited |
Definition at line 45 of file QueryStmt.java.
Referenced by com.cloudera.impala.analysis.QueryStmt.analyzeLimit(), com.cloudera.impala.analysis.ValuesStmt.clone(), com.cloudera.impala.analysis.UnionStmt.clone(), com.cloudera.impala.analysis.SelectStmt.clone(), com.cloudera.impala.analysis.QueryStmt.QueryStmt(), com.cloudera.impala.analysis.SelectStmt.returnsSingleRow(), and com.cloudera.impala.analysis.QueryStmt.setLimit().
|
protectedinherited |
Definition at line 103 of file UnionStmt.java.
Referenced by com.cloudera.impala.analysis.UnionStmt.analyze(), com.cloudera.impala.analysis.ValuesStmt.clone(), com.cloudera.impala.analysis.UnionStmt.clone(), com.cloudera.impala.analysis.UnionStmt.createMetadata(), com.cloudera.impala.analysis.UnionStmt.getOperands(), com.cloudera.impala.analysis.UnionStmt.materializeRequiredSlots(), com.cloudera.impala.analysis.UnionStmt.propagateDistinct(), com.cloudera.impala.analysis.ValuesStmt.toSql(), com.cloudera.impala.analysis.UnionStmt.toSql(), and com.cloudera.impala.analysis.UnionStmt.unnestOperands().
|
protectedinherited |
Definition at line 44 of file QueryStmt.java.
Referenced by com.cloudera.impala.analysis.SelectStmt.analyzeAggregation(), com.cloudera.impala.analysis.QueryStmt.cloneOrderByElements(), com.cloudera.impala.analysis.UnionStmt.createMetadata(), com.cloudera.impala.analysis.QueryStmt.createSortInfo(), com.cloudera.impala.analysis.QueryStmt.hasOrderByClause(), com.cloudera.impala.analysis.QueryStmt.QueryStmt(), and com.cloudera.impala.analysis.SelectStmt.toSql().
|
protectedinherited |
Definition at line 52 of file QueryStmt.java.
Referenced by com.cloudera.impala.analysis.SelectStmt.analyze(), com.cloudera.impala.analysis.UnionStmt.analyze(), com.cloudera.impala.analysis.SelectStmt.analyzeAggregation(), com.cloudera.impala.analysis.SelectStmt.analyzeAnalytics(), com.cloudera.impala.analysis.SelectStmt.createAggInfo(), com.cloudera.impala.analysis.UnionStmt.createMetadata(), com.cloudera.impala.analysis.QueryStmt.createSortTupleInfo(), com.cloudera.impala.analysis.QueryStmt.getResultExprs(), com.cloudera.impala.analysis.SelectStmt.resolveInlineViewRefs(), com.cloudera.impala.analysis.QueryStmt.substituteOrdinals(), and com.cloudera.impala.analysis.UnionStmt.unnestOperands().
|
protectedinherited |
Definition at line 72 of file QueryStmt.java.
Referenced by com.cloudera.impala.analysis.SelectStmt.analyze(), com.cloudera.impala.analysis.SelectStmt.analyzeAggregation(), com.cloudera.impala.analysis.SelectStmt.analyzeAnalytics(), com.cloudera.impala.analysis.QueryStmt.createSortInfo(), com.cloudera.impala.analysis.QueryStmt.getSortInfo(), and com.cloudera.impala.analysis.QueryStmt.QueryStmt().
|
protectedinherited |
Definition at line 120 of file UnionStmt.java.
Referenced by com.cloudera.impala.analysis.UnionStmt.analyze(), and com.cloudera.impala.analysis.UnionStmt.toSql().
|
protectedinherited |
Definition at line 117 of file UnionStmt.java.
Referenced by com.cloudera.impala.analysis.UnionStmt.createMetadata(), com.cloudera.impala.analysis.UnionStmt.getMaterializedTupleIds(), com.cloudera.impala.analysis.UnionStmt.getTupleId(), com.cloudera.impala.analysis.UnionStmt.materializeRequiredSlots(), com.cloudera.impala.analysis.UnionStmt.setOperandSmap(), and com.cloudera.impala.analysis.UnionStmt.unnestOperands().
|
protectedinherited |
Definition at line 42 of file QueryStmt.java.
Referenced by com.cloudera.impala.analysis.QueryStmt.cloneWithClause(), com.cloudera.impala.analysis.QueryStmt.getWithClause(), com.cloudera.impala.analysis.QueryStmt.hasWithClause(), com.cloudera.impala.analysis.ValuesStmt.toSql(), com.cloudera.impala.analysis.UnionStmt.toSql(), and com.cloudera.impala.analysis.SelectStmt.toSql().