diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java index 16b45dd..77e5894 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java @@ -869,8 +869,14 @@ private VectorExpression getVectorBinaryComparisonFilterExpression(String int inputCol2 = v2.getOutputColumn(); String scalarType = constDesc.getTypeString(); String colType = v2.getOutputType(); - String className = getFilterScalarColumnExpressionClassName(colType, + String className = null; + if (opType.equals(OperatorType.FILTER)) { + className = getFilterColumnScalarExpressionClassName(colType, scalarType, opName); + } else { + className = getScalarColumnExpressionClassName(colType, + scalarType, opName); + } try { expr = (VectorExpression) Class.forName(className). getDeclaredConstructors()[0].newInstance(inputCol2, @@ -950,13 +956,10 @@ private String getFilterColumnScalarExpressionClassName(String colType, String return b.toString(); } - private String getFilterScalarColumnExpressionClassName(String colType, String + private String getScalarColumnExpressionClassName(String colType, String scalarType, String opName) throws HiveException { StringBuilder b = new StringBuilder(); b.append("org.apache.hadoop.hive.ql.exec.vector.expressions.gen."); - if (opType.equals(OperatorType.FILTER)) { - b.append("Filter"); - } b.append(getNormalizedTypeName(scalarType)); b.append("Scalar"); b.append(opName);