org.apache.hadoop.hive.ql.exec.vector.expressions
Class VectorExpression

java.lang.Object
  extended by org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AbstractFilterStringColLikeStringScalar, CastDecimalToDecimal, CastDoubleToBooleanViaDoubleToLong, CastDoubleToLong, CastDoubleToTimestampViaDoubleToLong, CastLongToBooleanViaLongToLong, CastLongToDate, CastLongToDouble, CastLongToTimestampViaLongToLong, CastStringToDate, CastStringToDecimal, CastTimestampToDoubleViaLongToDouble, CastTimestampToLongViaLongToLong, ColAndCol, ColOrCol, ConstantVectorExpression, DecimalColAddDecimalColumn, DecimalColAddDecimalScalar, DecimalColDivideDecimalColumn, DecimalColDivideDecimalScalar, DecimalColModuloDecimalColumn, DecimalColModuloDecimalScalar, DecimalColMultiplyDecimalColumn, DecimalColMultiplyDecimalScalar, DecimalColSubtractDecimalColumn, DecimalColSubtractDecimalScalar, DecimalColumnInList, DecimalScalarAddDecimalColumn, DecimalScalarDivideDecimalColumn, DecimalScalarModuloDecimalColumn, DecimalScalarMultiplyDecimalColumn, DecimalScalarSubtractDecimalColumn, DecimalToStringUnaryUDF, DoubleColAddDoubleColumn, DoubleColAddDoubleScalar, DoubleColAddLongColumn, DoubleColAddLongScalar, DoubleColDivideDoubleColumn, DoubleColDivideDoubleScalar, DoubleColDivideLongColumn, DoubleColDivideLongScalar, DoubleColEqualDoubleColumn, DoubleColEqualDoubleScalar, DoubleColEqualLongColumn, DoubleColEqualLongScalar, DoubleColGreaterDoubleColumn, DoubleColGreaterDoubleScalar, DoubleColGreaterEqualDoubleColumn, DoubleColGreaterEqualDoubleScalar, DoubleColGreaterEqualLongColumn, DoubleColGreaterEqualLongScalar, DoubleColGreaterLongColumn, DoubleColGreaterLongScalar, DoubleColLessDoubleColumn, DoubleColLessDoubleScalar, DoubleColLessEqualDoubleColumn, DoubleColLessEqualDoubleScalar, DoubleColLessEqualLongColumn, DoubleColLessEqualLongScalar, DoubleColLessLongColumn, DoubleColLessLongScalar, DoubleColModuloDoubleColumn, DoubleColModuloDoubleScalar, DoubleColModuloLongColumn, DoubleColModuloLongScalar, DoubleColMultiplyDoubleColumn, DoubleColMultiplyDoubleScalar, DoubleColMultiplyLongColumn, DoubleColMultiplyLongScalar, DoubleColNotEqualDoubleColumn, DoubleColNotEqualDoubleScalar, DoubleColNotEqualLongColumn, DoubleColNotEqualLongScalar, DoubleColSubtractDoubleColumn, DoubleColSubtractDoubleScalar, DoubleColSubtractLongColumn, DoubleColSubtractLongScalar, DoubleColumnInList, DoubleColUnaryMinus, DoubleScalarAddDoubleColumn, DoubleScalarAddLongColumn, DoubleScalarDivideDoubleColumn, DoubleScalarDivideLongColumn, DoubleScalarEqualDoubleColumn, DoubleScalarEqualLongColumn, DoubleScalarGreaterDoubleColumn, DoubleScalarGreaterEqualDoubleColumn, DoubleScalarGreaterEqualLongColumn, DoubleScalarGreaterLongColumn, DoubleScalarLessDoubleColumn, DoubleScalarLessEqualDoubleColumn, DoubleScalarLessEqualLongColumn, DoubleScalarLessLongColumn, DoubleScalarModuloDoubleColumn, DoubleScalarModuloLongColumn, DoubleScalarMultiplyDoubleColumn, DoubleScalarMultiplyLongColumn, DoubleScalarNotEqualDoubleColumn, DoubleScalarNotEqualLongColumn, DoubleScalarSubtractDoubleColumn, DoubleScalarSubtractLongColumn, FilterColAndScalar, FilterColOrScalar, FilterDecimalColEqualDecimalColumn, FilterDecimalColEqualDecimalScalar, FilterDecimalColGreaterDecimalColumn, FilterDecimalColGreaterDecimalScalar, FilterDecimalColGreaterEqualDecimalColumn, FilterDecimalColGreaterEqualDecimalScalar, FilterDecimalColLessDecimalColumn, FilterDecimalColLessDecimalScalar, FilterDecimalColLessEqualDecimalColumn, FilterDecimalColLessEqualDecimalScalar, FilterDecimalColNotEqualDecimalColumn, FilterDecimalColNotEqualDecimalScalar, FilterDecimalColumnBetween, FilterDecimalColumnInList, FilterDecimalColumnNotBetween, FilterDecimalScalarEqualDecimalColumn, FilterDecimalScalarGreaterDecimalColumn, FilterDecimalScalarGreaterEqualDecimalColumn, FilterDecimalScalarLessDecimalColumn, FilterDecimalScalarLessEqualDecimalColumn, FilterDecimalScalarNotEqualDecimalColumn, FilterDoubleColEqualDoubleColumn, FilterDoubleColEqualDoubleScalar, FilterDoubleColEqualLongColumn, FilterDoubleColEqualLongScalar, FilterDoubleColGreaterDoubleColumn, FilterDoubleColGreaterDoubleScalar, FilterDoubleColGreaterEqualDoubleColumn, FilterDoubleColGreaterEqualDoubleScalar, FilterDoubleColGreaterEqualLongColumn, FilterDoubleColGreaterEqualLongScalar, FilterDoubleColGreaterLongColumn, FilterDoubleColGreaterLongScalar, FilterDoubleColLessDoubleColumn, FilterDoubleColLessDoubleScalar, FilterDoubleColLessEqualDoubleColumn, FilterDoubleColLessEqualDoubleScalar, FilterDoubleColLessEqualLongColumn, FilterDoubleColLessEqualLongScalar, FilterDoubleColLessLongColumn, FilterDoubleColLessLongScalar, FilterDoubleColNotEqualDoubleColumn, FilterDoubleColNotEqualDoubleScalar, FilterDoubleColNotEqualLongColumn, FilterDoubleColNotEqualLongScalar, FilterDoubleColumnBetween, FilterDoubleColumnInList, FilterDoubleColumnNotBetween, FilterDoubleScalarEqualDoubleColumn, FilterDoubleScalarEqualLongColumn, FilterDoubleScalarGreaterDoubleColumn, FilterDoubleScalarGreaterEqualDoubleColumn, FilterDoubleScalarGreaterEqualLongColumn, FilterDoubleScalarGreaterLongColumn, FilterDoubleScalarLessDoubleColumn, FilterDoubleScalarLessEqualDoubleColumn, FilterDoubleScalarLessEqualLongColumn, FilterDoubleScalarLessLongColumn, FilterDoubleScalarNotEqualDoubleColumn, FilterDoubleScalarNotEqualLongColumn, FilterExprAndExpr, FilterExprOrExpr, FilterLongColEqualDoubleColumn, FilterLongColEqualDoubleScalar, FilterLongColEqualLongColumn, FilterLongColEqualLongScalar, FilterLongColGreaterDoubleColumn, FilterLongColGreaterDoubleScalar, FilterLongColGreaterEqualDoubleColumn, FilterLongColGreaterEqualDoubleScalar, FilterLongColGreaterEqualLongColumn, FilterLongColGreaterEqualLongScalar, FilterLongColGreaterLongColumn, FilterLongColGreaterLongScalar, FilterLongColLessDoubleColumn, FilterLongColLessDoubleScalar, FilterLongColLessEqualDoubleColumn, FilterLongColLessEqualDoubleScalar, FilterLongColLessEqualLongColumn, FilterLongColLessEqualLongScalar, FilterLongColLessLongColumn, FilterLongColLessLongScalar, FilterLongColNotEqualDoubleColumn, FilterLongColNotEqualDoubleScalar, FilterLongColNotEqualLongColumn, FilterLongColNotEqualLongScalar, FilterLongColumnBetween, FilterLongColumnInList, FilterLongColumnNotBetween, FilterLongScalarEqualDoubleColumn, FilterLongScalarEqualLongColumn, FilterLongScalarGreaterDoubleColumn, FilterLongScalarGreaterEqualDoubleColumn, FilterLongScalarGreaterEqualLongColumn, FilterLongScalarGreaterLongColumn, FilterLongScalarLessDoubleColumn, FilterLongScalarLessEqualDoubleColumn, FilterLongScalarLessEqualLongColumn, FilterLongScalarLessLongColumn, FilterLongScalarNotEqualDoubleColumn, FilterLongScalarNotEqualLongColumn, FilterScalarAndColumn, FilterScalarOrColumn, FilterStringColEqualStringColumn, FilterStringColEqualStringScalar, FilterStringColGreaterEqualStringColumn, FilterStringColGreaterEqualStringScalar, FilterStringColGreaterStringColumn, FilterStringColGreaterStringScalar, FilterStringColLessEqualStringColumn, FilterStringColLessEqualStringScalar, FilterStringColLessStringColumn, FilterStringColLessStringScalar, FilterStringColNotEqualStringColumn, FilterStringColNotEqualStringScalar, FilterStringColumnBetween, FilterStringColumnInList, FilterStringColumnNotBetween, FilterStringScalarEqualStringColumn, FilterStringScalarGreaterEqualStringColumn, FilterStringScalarGreaterStringColumn, FilterStringScalarLessEqualStringColumn, FilterStringScalarLessStringColumn, FilterStringScalarNotEqualStringColumn, FuncAbsDecimalToDecimal, FuncAbsDoubleToDouble, FuncAbsLongToLong, FuncACosDoubleToDouble, FuncACosLongToDouble, FuncASinDoubleToDouble, FuncASinLongToDouble, FuncATanDoubleToDouble, FuncATanLongToDouble, FuncCeilDecimalToDecimal, FuncCeilDoubleToLong, FuncCeilLongToLong, FuncCosDoubleToDouble, FuncCosLongToDouble, FuncDecimalToDouble, FuncDecimalToLong, FuncDegreesDoubleToDouble, FuncDegreesLongToDouble, FuncDoubleToDecimal, FuncExpDoubleToDouble, FuncExpLongToDouble, FuncFloorDecimalToDecimal, FuncFloorDoubleToLong, FuncFloorLongToLong, FuncLnDoubleToDouble, FuncLnLongToDouble, FuncLog10DoubleToDouble, FuncLog10LongToDouble, FuncLog2DoubleToDouble, FuncLog2LongToDouble, FuncLongToDecimal, FuncLongToString, FuncNegateDecimalToDecimal, FuncRadiansDoubleToDouble, FuncRadiansLongToDouble, FuncRand, FuncRandNoSeed, FuncRoundDecimalToDecimal, FuncRoundDoubleToDouble, FuncRoundWithNumDigitsDecimalToDecimal, FuncSignDecimalToLong, FuncSignDoubleToDouble, FuncSignLongToDouble, FuncSinDoubleToDouble, FuncSinLongToDouble, FuncSqrtDoubleToDouble, FuncSqrtLongToDouble, FuncTanDoubleToDouble, FuncTanLongToDouble, IdentityExpression, IfExprDoubleColumnDoubleColumn, IfExprDoubleColumnDoubleScalar, IfExprDoubleColumnLongScalar, IfExprDoubleScalarDoubleColumn, IfExprDoubleScalarDoubleScalar, IfExprDoubleScalarLongColumn, IfExprDoubleScalarLongScalar, IfExprLongColumnDoubleScalar, IfExprLongColumnLongColumn, IfExprLongColumnLongScalar, IfExprLongScalarDoubleColumn, IfExprLongScalarDoubleScalar, IfExprLongScalarLongColumn, IfExprLongScalarLongScalar, IfExprStringColumnStringColumn, IfExprStringColumnStringScalar, IfExprStringScalarStringColumn, IfExprStringScalarStringScalar, IsNotNull, IsNull, LongColAddDoubleColumn, LongColAddDoubleScalar, LongColAddLongColumn, LongColAddLongScalar, LongColDivideDoubleColumn, LongColDivideDoubleScalar, LongColDivideLongColumn, LongColDivideLongScalar, LongColEqualDoubleColumn, LongColEqualDoubleScalar, LongColEqualLongColumn, LongColEqualLongScalar, LongColGreaterDoubleColumn, LongColGreaterDoubleScalar, LongColGreaterEqualDoubleColumn, LongColGreaterEqualDoubleScalar, LongColGreaterEqualLongColumn, LongColGreaterEqualLongScalar, LongColGreaterLongColumn, LongColGreaterLongScalar, LongColLessDoubleColumn, LongColLessDoubleScalar, LongColLessEqualDoubleColumn, LongColLessEqualDoubleScalar, LongColLessEqualLongColumn, LongColLessEqualLongScalar, LongColLessLongColumn, LongColLessLongScalar, LongColModuloDoubleColumn, LongColModuloDoubleScalar, LongColModuloLongColumn, LongColModuloLongScalar, LongColMultiplyDoubleColumn, LongColMultiplyDoubleScalar, LongColMultiplyLongColumn, LongColMultiplyLongScalar, LongColNotEqualDoubleColumn, LongColNotEqualDoubleScalar, LongColNotEqualLongColumn, LongColNotEqualLongScalar, LongColSubtractDoubleColumn, LongColSubtractDoubleScalar, LongColSubtractLongColumn, LongColSubtractLongScalar, LongColumnInList, LongColUnaryMinus, LongScalarAddDoubleColumn, LongScalarAddLongColumn, LongScalarDivideDoubleColumn, LongScalarDivideLongColumn, LongScalarEqualDoubleColumn, LongScalarEqualLongColumn, LongScalarGreaterDoubleColumn, LongScalarGreaterEqualDoubleColumn, LongScalarGreaterEqualLongColumn, LongScalarGreaterLongColumn, LongScalarLessDoubleColumn, LongScalarLessEqualDoubleColumn, LongScalarLessEqualLongColumn, LongScalarLessLongColumn, LongScalarModuloDoubleColumn, LongScalarModuloLongColumn, LongScalarMultiplyDoubleColumn, LongScalarMultiplyLongColumn, LongScalarNotEqualDoubleColumn, LongScalarNotEqualLongColumn, LongScalarSubtractDoubleColumn, LongScalarSubtractLongColumn, LongToStringUnaryUDF, MathFuncDoubleToDouble, MathFuncLongToDouble, MathFuncLongToLong, NotCol, SelectColumnIsFalse, SelectColumnIsNotNull, SelectColumnIsNull, SelectColumnIsTrue, StringColEqualStringColumn, StringColEqualStringScalar, StringColGreaterEqualStringColumn, StringColGreaterEqualStringScalar, StringColGreaterStringColumn, StringColGreaterStringScalar, StringColLessEqualStringColumn, StringColLessEqualStringScalar, StringColLessStringColumn, StringColLessStringScalar, StringColNotEqualStringColumn, StringColNotEqualStringScalar, StringColumnInList, StringConcatColCol, StringConcatColScalar, StringConcatScalarCol, StringLength, StringScalarEqualStringColumn, StringScalarGreaterEqualStringColumn, StringScalarGreaterStringColumn, StringScalarLessEqualStringColumn, StringScalarLessStringColumn, StringScalarNotEqualStringColumn, StringSubstrColStart, StringSubstrColStartLen, StringUnaryUDF, StringUnaryUDFDirect, VectorCoalesce, VectorUDFAdaptor, VectorUDFDateAddColCol, VectorUDFDateAddColScalar, VectorUDFDateAddScalarCol, VectorUDFDateDiffColCol, VectorUDFDateDiffColScalar, VectorUDFDateDiffScalarCol, VectorUDFTimestampFieldLong, VectorUDFTimestampFieldString

public abstract class VectorExpression
extends Object
implements Serializable

Base class for expressions.

See Also:
Serialized Form

Nested Class Summary
static class VectorExpression.Type
           
 
Field Summary
protected  VectorExpression[] childExpressions
          Child expressions are evaluated post order.
protected  VectorExpression.Type[] inputTypes
          More detailed input types, such as date and timestamp.
protected  String outputType
          Output type of the expression.
 
Constructor Summary
VectorExpression()
           
 
Method Summary
abstract  void evaluate(VectorizedRowBatch batch)
          This is the primary method to implement expression logic.
protected  void evaluateChildren(VectorizedRowBatch vrg)
          Evaluate the child expressions on the given input batch.
 VectorExpression[] getChildExpressions()
           
abstract  VectorExpressionDescriptor.Descriptor getDescriptor()
           
 VectorExpression.Type[] getInputTypes()
           
abstract  int getOutputColumn()
          Returns the index of the output column in the array of column vectors.
 String getOutputType()
          Returns type of the output column.
 void setChildExpressions(VectorExpression[] ve)
          Initialize the child expressions.
 void setInputTypes(VectorExpression.Type... inputTypes)
          Set more detailed types to distinguish certain types that is represented in same VectorExpressionDescriptor.ArgumentTypes.
 void setOutputType(String type)
          Set type of the output column.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

childExpressions

protected VectorExpression[] childExpressions
Child expressions are evaluated post order.


inputTypes

protected VectorExpression.Type[] inputTypes
More detailed input types, such as date and timestamp.


outputType

protected String outputType
Output type of the expression.

Constructor Detail

VectorExpression

public VectorExpression()
Method Detail

evaluate

public abstract void evaluate(VectorizedRowBatch batch)
This is the primary method to implement expression logic.

Parameters:
batch -

getOutputColumn

public abstract int getOutputColumn()
Returns the index of the output column in the array of column vectors. If not applicable, -1 is returned.

Returns:
Index of the output column

getOutputType

public String getOutputType()
Returns type of the output column.


setOutputType

public void setOutputType(String type)
Set type of the output column.


setChildExpressions

public void setChildExpressions(VectorExpression[] ve)
Initialize the child expressions.


getChildExpressions

public VectorExpression[] getChildExpressions()

getDescriptor

public abstract VectorExpressionDescriptor.Descriptor getDescriptor()

evaluateChildren

protected final void evaluateChildren(VectorizedRowBatch vrg)
Evaluate the child expressions on the given input batch.

Parameters:
vrg - VectorizedRowBatch

setInputTypes

public void setInputTypes(VectorExpression.Type... inputTypes)
Set more detailed types to distinguish certain types that is represented in same VectorExpressionDescriptor.ArgumentTypes. For example, date and timestamp will be in LongColumnVector but they need to be distinguished.

Parameters:
inputTypes -

getInputTypes

public VectorExpression.Type[] getInputTypes()

toString

public String toString()
Overrides:
toString in class Object


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