org.apache.hadoop.hive.ql.parse
Class TypeCheckProcFactory

java.lang.Object
  extended by org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory

public final class TypeCheckProcFactory
extends Object

The Factory for creating typecheck processors. The typecheck processors are used to processes the syntax trees for expressions and convert them into expression Node Descriptor trees. They also introduce the correct conversion functions to do proper implicit conversion.


Nested Class Summary
static class TypeCheckProcFactory.BoolExprProcessor
          Processor for boolean constants.
static class TypeCheckProcFactory.ColumnExprProcessor
          Processor for table columns.
static class TypeCheckProcFactory.DateExprProcessor
          Processor for date constants.
static class TypeCheckProcFactory.DefaultExprProcessor
          The default processor for typechecking.
static class TypeCheckProcFactory.NullExprProcessor
          Processor for processing NULL expression.
static class TypeCheckProcFactory.NumExprProcessor
          Processor for processing numeric constants.
static class TypeCheckProcFactory.StrExprProcessor
          Processor for processing string constants.
static class TypeCheckProcFactory.SubQueryExprProcessor
          Processor for subquery expressions..
 
Method Summary
static Map<ASTNode,ExprNodeDesc> genExprNode(ASTNode expr, TypeCheckCtx tcCtx)
           
static TypeCheckProcFactory.BoolExprProcessor getBoolExprProcessor()
          Factory method to get BoolExprProcessor.
static TypeCheckProcFactory.ColumnExprProcessor getColumnExprProcessor()
          Factory method to get ColumnExprProcessor.
static TypeCheckProcFactory.DateExprProcessor getDateExprProcessor()
          Factory method to get DateExprProcessor.
static TypeCheckProcFactory.DefaultExprProcessor getDefaultExprProcessor()
          Factory method to get DefaultExprProcessor.
static TypeCheckProcFactory.NullExprProcessor getNullExprProcessor()
          Factory method to get NullExprProcessor.
static TypeCheckProcFactory.NumExprProcessor getNumExprProcessor()
          Factory method to get NumExprProcessor.
static TypeCheckProcFactory.StrExprProcessor getStrExprProcessor()
          Factory method to get StrExprProcessor.
static TypeCheckProcFactory.SubQueryExprProcessor getSubQueryExprProcessor()
          Factory method to get SubQueryExprProcessor.
static ExprNodeDesc processGByExpr(Node nd, Object procCtx)
          Function to do groupby subexpression elimination.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

processGByExpr

public static ExprNodeDesc processGByExpr(Node nd,
                                          Object procCtx)
                                   throws SemanticException
Function to do groupby subexpression elimination. This is called by all the processors initially. As an example, consider the query select a+b, count(1) from T group by a+b; Then a+b is already precomputed in the group by operators key, so we substitute a+b in the select list with the internal column name of the a+b expression that appears in the in input row resolver.

Parameters:
nd - The node that is being inspected.
procCtx - The processor context.
Returns:
exprNodeColumnDesc.
Throws:
SemanticException

genExprNode

public static Map<ASTNode,ExprNodeDesc> genExprNode(ASTNode expr,
                                                    TypeCheckCtx tcCtx)
                                             throws SemanticException
Throws:
SemanticException

getNullExprProcessor

public static TypeCheckProcFactory.NullExprProcessor getNullExprProcessor()
Factory method to get NullExprProcessor.

Returns:
NullExprProcessor.

getNumExprProcessor

public static TypeCheckProcFactory.NumExprProcessor getNumExprProcessor()
Factory method to get NumExprProcessor.

Returns:
NumExprProcessor.

getStrExprProcessor

public static TypeCheckProcFactory.StrExprProcessor getStrExprProcessor()
Factory method to get StrExprProcessor.

Returns:
StrExprProcessor.

getBoolExprProcessor

public static TypeCheckProcFactory.BoolExprProcessor getBoolExprProcessor()
Factory method to get BoolExprProcessor.

Returns:
BoolExprProcessor.

getDateExprProcessor

public static TypeCheckProcFactory.DateExprProcessor getDateExprProcessor()
Factory method to get DateExprProcessor.

Returns:
DateExprProcessor.

getColumnExprProcessor

public static TypeCheckProcFactory.ColumnExprProcessor getColumnExprProcessor()
Factory method to get ColumnExprProcessor.

Returns:
ColumnExprProcessor.

getDefaultExprProcessor

public static TypeCheckProcFactory.DefaultExprProcessor getDefaultExprProcessor()
Factory method to get DefaultExprProcessor.

Returns:
DefaultExprProcessor.

getSubQueryExprProcessor

public static TypeCheckProcFactory.SubQueryExprProcessor getSubQueryExprProcessor()
Factory method to get SubQueryExprProcessor.

Returns:
DateExprProcessor.


Copyright © 2014 The Apache Software Foundation. All rights reserved.