Impala
Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
com.cloudera.impala.analysis.ValuesStmt Class Reference
Inheritance diagram for com.cloudera.impala.analysis.ValuesStmt:
Collaboration diagram for com.cloudera.impala.analysis.ValuesStmt:

Public Member Functions

 ValuesStmt (List< UnionOperand > operands, ArrayList< OrderByElement > orderByElements, LimitElement limitElement)
 
String toSql ()
 
QueryStmt clone ()
 
List< UnionOperandgetOperands ()
 
List< UnionOperandgetDistinctOperands ()
 
boolean hasDistinctOps ()
 
List< UnionOperandgetAllOperands ()
 
boolean hasAllOps ()
 
AggregateInfo getDistinctAggInfo ()
 
boolean hasAnalyticExprs ()
 
void removeAllOperands ()
 
void analyze (Analyzer analyzer) throws AnalysisException
 
void materializeRequiredSlots (Analyzer analyzer) throws InternalException
 
TupleId getTupleId ()
 
void getMaterializedTupleIds (ArrayList< TupleId > tupleIdList)
 
ArrayList< String > getColLabels ()
 
Analyzer getAnalyzer ()
 
void setWithClause (WithClause withClause)
 
boolean hasWithClause ()
 
WithClause getWithClause ()
 
boolean hasOrderByClause ()
 
boolean hasLimit ()
 
long getLimit ()
 
boolean hasOffset ()
 
long getOffset ()
 
SortInfo getSortInfo ()
 
boolean evaluateOrderBy ()
 
ArrayList< ExprgetResultExprs ()
 
ArrayList< ExprgetBaseTblResultExprs ()
 
void setLimit (long limit) throws AnalysisException
 
ArrayList< OrderByElementcloneOrderByElements ()
 
WithClause cloneWithClause ()
 
void setIsExplain ()
 
boolean isExplain ()
 

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< UnionOperandoperands_
 
final List< UnionOperanddistinctOperands_ = Lists.newArrayList()
 
final List< UnionOperandallOperands_ = Lists.newArrayList()
 
AggregateInfo distinctAggInfo_
 
TupleId tupleId_
 
String toSqlString_ = null
 
WithClause withClause_
 
ArrayList< OrderByElementorderByElements_
 
LimitElement limitElement_
 
ArrayList< ExprresultExprs_ = Lists.newArrayList()
 
ArrayList< ExprbaseTblResultExprs_ = Lists.newArrayList()
 
final ExprSubstitutionMap aliasSmap_ = new ExprSubstitutionMap()
 
final ArrayList< ExprambiguousAliasList_ = Lists.newArrayList()
 
SortInfo sortInfo_
 
boolean evaluateOrderBy_
 
Analyzer analyzer_
 
boolean isExplain_ = false
 

Private Member Functions

void appendSelectList (SelectStmt select, StringBuilder strBuilder)
 

Detailed Description

Representation of a values() statement with a list of constant-expression lists. ValuesStmt is a special case of a UnionStmt with the following restrictions:

  • Operands are only constant selects
  • Operands are connected by UNION ALL
  • No nesting of ValuesStmts

Definition at line 30 of file ValuesStmt.java.

Constructor & Destructor Documentation

com.cloudera.impala.analysis.ValuesStmt.ValuesStmt ( List< UnionOperand operands,
ArrayList< OrderByElement orderByElements,
LimitElement  limitElement 
)
inline

Definition at line 32 of file ValuesStmt.java.

Referenced by com.cloudera.impala.analysis.ValuesStmt.clone().

Member Function Documentation

void com.cloudera.impala.analysis.ValuesStmt.appendSelectList ( SelectStmt  select,
StringBuilder  strBuilder 
)
inlineprivate
ArrayList<OrderByElement> com.cloudera.impala.analysis.QueryStmt.cloneOrderByElements ( )
inlineinherited
void com.cloudera.impala.analysis.QueryStmt.createSortInfo ( Analyzer  analyzer) throws AnalysisException
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().

void com.cloudera.impala.analysis.QueryStmt.createSortTupleInfo ( Analyzer  analyzer)
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().

boolean com.cloudera.impala.analysis.QueryStmt.evaluateOrderBy ( )
inlineinherited
List<UnionOperand> com.cloudera.impala.analysis.UnionStmt.getAllOperands ( )
inlineinherited
Analyzer com.cloudera.impala.analysis.QueryStmt.getAnalyzer ( )
inlineinherited
ArrayList<String> com.cloudera.impala.analysis.UnionStmt.getColLabels ( )
inlineinherited
AggregateInfo com.cloudera.impala.analysis.UnionStmt.getDistinctAggInfo ( )
inlineinherited
List<UnionOperand> com.cloudera.impala.analysis.UnionStmt.getDistinctOperands ( )
inlineinherited
Expr com.cloudera.impala.analysis.QueryStmt.getFirstAmbiguousAlias ( List< Expr exprs)
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().

long com.cloudera.impala.analysis.QueryStmt.getLimit ( )
inlineinherited

Definition at line 274 of file QueryStmt.java.

Referenced by com.cloudera.impala.analysis.QueryStmt.setLimit().

void com.cloudera.impala.analysis.UnionStmt.getMaterializedTupleIds ( ArrayList< TupleId tupleIdList)
inlineinherited
long com.cloudera.impala.analysis.QueryStmt.getOffset ( )
inlineinherited

Definition at line 276 of file QueryStmt.java.

List<UnionOperand> com.cloudera.impala.analysis.UnionStmt.getOperands ( )
inlineinherited

Definition at line 131 of file UnionStmt.java.

References com.cloudera.impala.analysis.UnionStmt.operands_.

SortInfo com.cloudera.impala.analysis.QueryStmt.getSortInfo ( )
inlineinherited

Definition at line 277 of file QueryStmt.java.

References com.cloudera.impala.analysis.QueryStmt.sortInfo_.

TupleId com.cloudera.impala.analysis.UnionStmt.getTupleId ( )
inlineinherited

Definition at line 459 of file UnionStmt.java.

References com.cloudera.impala.analysis.UnionStmt.tupleId_.

WithClause com.cloudera.impala.analysis.QueryStmt.getWithClause ( )
inlineinherited
boolean com.cloudera.impala.analysis.UnionStmt.hasAllOps ( )
inlineinherited

Definition at line 135 of file UnionStmt.java.

boolean com.cloudera.impala.analysis.UnionStmt.hasAnalyticExprs ( )
inlineinherited
boolean com.cloudera.impala.analysis.UnionStmt.hasDistinctOps ( )
inlineinherited

Definition at line 133 of file UnionStmt.java.

boolean com.cloudera.impala.analysis.QueryStmt.hasOffset ( )
inlineinherited
boolean com.cloudera.impala.analysis.QueryStmt.hasOrderByClause ( )
inlineinherited
boolean com.cloudera.impala.analysis.QueryStmt.hasWithClause ( )
inlineinherited
boolean com.cloudera.impala.analysis.StatementBase.isExplain ( )
inlineinherited
void com.cloudera.impala.analysis.QueryStmt.materializeSlots ( Analyzer  analyzer,
List< Expr exprs 
)
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().

String com.cloudera.impala.analysis.ValuesStmt.queryStmtToSql ( QueryStmt  queryStmt)
inlineprotected
void com.cloudera.impala.analysis.UnionStmt.removeAllOperands ( )
inlineinherited
void com.cloudera.impala.analysis.StatementBase.setIsExplain ( )
inlineinherited
void com.cloudera.impala.analysis.QueryStmt.setWithClause ( WithClause  withClause)
inlineinherited

Definition at line 269 of file QueryStmt.java.

void com.cloudera.impala.analysis.QueryStmt.substituteOrdinals ( List< Expr exprs,
String  errorPrefix,
Analyzer  analyzer 
) throws AnalysisException
inlineprotectedinherited
String com.cloudera.impala.analysis.ValuesStmt.toSql ( )
inline

Member Data Documentation

final ExprSubstitutionMap com.cloudera.impala.analysis.QueryStmt.aliasSmap_ = new ExprSubstitutionMap()
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().

final List<UnionOperand> com.cloudera.impala.analysis.UnionStmt.allOperands_ = Lists.newArrayList()
protectedinherited
final ArrayList<Expr> com.cloudera.impala.analysis.QueryStmt.ambiguousAliasList_ = Lists.newArrayList()
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().

Analyzer com.cloudera.impala.analysis.QueryStmt.analyzer_
protectedinherited
ArrayList<Expr> com.cloudera.impala.analysis.QueryStmt.baseTblResultExprs_ = Lists.newArrayList()
protectedinherited
final List<UnionOperand> com.cloudera.impala.analysis.UnionStmt.distinctOperands_ = Lists.newArrayList()
protectedinherited
String com.cloudera.impala.analysis.UnionStmt.toSqlString_ = null
protectedinherited

The documentation for this class was generated from the following file: