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 535e4b3..a78c396 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 @@ -80,6 +80,7 @@ import org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc; import org.apache.hadoop.hive.ql.plan.ExprNodeDesc; import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc; +import org.apache.hadoop.hive.ql.plan.ExprNodeNullDesc; import org.apache.hadoop.hive.ql.udf.SettableUDF; import org.apache.hadoop.hive.ql.udf.UDFConv; import org.apache.hadoop.hive.ql.udf.UDFHex; @@ -323,10 +324,12 @@ public VectorExpression getVectorExpression(ExprNodeDesc exprDesc, Mode mode) th ve = getGenericUdfVectorExpression(expr.getGenericUDF(), childExpressions, mode, exprDesc.getTypeInfo()); } + } else if (exprDesc instanceof ExprNodeNullDesc) { + ve = getConstantVectorExpression(null, exprDesc.getTypeInfo(), mode); } else if (exprDesc instanceof ExprNodeConstantDesc) { ve = getConstantVectorExpression(((ExprNodeConstantDesc) exprDesc).getValue(), exprDesc.getTypeInfo(), mode); - } + } if (ve == null) { throw new HiveException("Could not vectorize expression: "+exprDesc.getName()); } @@ -410,8 +413,8 @@ private TypeInfo getCommonTypeForChildExpressions(GenericUDF genericUdf, List evaluator = ExprNodeEvaluatorFactory.get(exprDesc); - ObjectInspector output = evaluator.initialize(childoi); - Object constant = evaluator.evaluate(null); - Object java = ObjectInspectorUtils.copyToStandardJavaObject(constant, output); - return new ExprNodeConstantDesc(exprDesc.getTypeInfo(), java); - } - - return exprDesc; + ExprNodeDesc evaluateCastOnConstants(ExprNodeDesc exprDesc) throws HiveException { + if (!(exprDesc instanceof ExprNodeGenericFuncDesc)) { + return exprDesc; + } + + if (exprDesc.getChildren() == null || (exprDesc.getChildren().size() != 1) ) { + return exprDesc; + } + + ExprNodeConstantDesc foldedChild = null; + if (!( exprDesc.getChildren().get(0) instanceof ExprNodeConstantDesc)) { + + // try recursive folding + ExprNodeDesc expr = evaluateCastOnConstants(exprDesc.getChildren().get(0)); + if (expr instanceof ExprNodeConstantDesc) { + foldedChild = (ExprNodeConstantDesc) expr; + } + } else { + foldedChild = (ExprNodeConstantDesc) exprDesc.getChildren().get(0); + } + + if (foldedChild == null) { + return exprDesc; + } + + ObjectInspector childoi = foldedChild.getWritableObjectInspector(); + GenericUDF gudf = ((ExprNodeGenericFuncDesc) exprDesc).getGenericUDF(); + + // Only evaluate +ve/-ve or cast on constant or recursive casting. + if (gudf instanceof GenericUDFOPNegative || gudf instanceof GenericUDFOPPositive || + castExpressionUdfs.contains(gudf.getClass()) + || ((gudf instanceof GenericUDFBridge) + && castExpressionUdfs.contains(((GenericUDFBridge) gudf).getUdfClass()))) { + ExprNodeEvaluator evaluator = ExprNodeEvaluatorFactory.get(exprDesc); + ObjectInspector output = evaluator.initialize(childoi); + Object constant = evaluator.evaluate(null); + Object java = ObjectInspectorUtils.copyToStandardJavaObject(constant, output); + return new ExprNodeConstantDesc(exprDesc.getTypeInfo(), java); + } + + return exprDesc; } - - /* Fold simple unary expressions in all members of the input list and return new list + + /* For cast on constant operator in all members of the input list and return new list * containing results. */ - private List foldConstantsForUnaryExprs(List childExpr) - throws HiveException { - List constantFoldedChildren = new ArrayList(); - if (childExpr != null) { - for (ExprNodeDesc expr : childExpr) { - expr = this.foldConstantsForUnaryExpression(expr); - constantFoldedChildren.add(expr); - } - } - return constantFoldedChildren; + private List evaluateCastOnConstants(List childExpr) + throws HiveException { + List evaluatedChildren = new ArrayList(); + if (childExpr != null) { + for (ExprNodeDesc expr : childExpr) { + expr = this.evaluateCastOnConstants(expr); + evaluatedChildren.add(expr); + } + } + return evaluatedChildren; } - + private VectorExpression getConstantVectorExpression(Object constantValue, TypeInfo typeInfo, Mode mode) throws HiveException { String type = typeInfo.getTypeName(); @@ -903,8 +907,9 @@ private VectorExpression instantiateExpression(Class vclass, TypeInfo returnT private VectorExpression getGenericUdfVectorExpression(GenericUDF udf, List childExpr, Mode mode, TypeInfo returnType) throws HiveException { - List constantFoldedChildren = foldConstantsForUnaryExprs(childExpr); - childExpr = constantFoldedChildren; + List castedChildren = evaluateCastOnConstants(childExpr); + childExpr = castedChildren; + //First handle special cases if (udf instanceof GenericUDFBetween) { return getBetweenFilterExpression(childExpr, mode, returnType); @@ -928,15 +933,15 @@ private VectorExpression getGenericUdfVectorExpression(GenericUDF udf, } } else if (udf instanceof GenericUDFToDecimal) { return getCastToDecimal(childExpr, returnType); - } - + } + // Now do a general lookup Class udfClass = udf.getClass(); if (udf instanceof GenericUDFBridge) { udfClass = ((GenericUDFBridge) udf).getUdfClass(); } - VectorExpression ve = getVectorExpressionForUdf(udfClass, constantFoldedChildren, mode, returnType); + VectorExpression ve = getVectorExpressionForUdf(udfClass, castedChildren, mode, returnType); if (ve == null) { throw new HiveException("Udf: "+udf.getClass().getSimpleName()+", is not supported"); @@ -998,7 +1003,7 @@ private VectorExpression getEltExpression(List childExpr, TypeInfo } } } - + /** * Create a filter or boolean-valued expression for column IN ( ) */ @@ -1006,13 +1011,11 @@ private VectorExpression getInExpression(List childExpr, Mode mode throws HiveException { ExprNodeDesc colExpr = childExpr.get(0); - TypeInfo colTypeInfo = colExpr.getTypeInfo(); String colType = colExpr.getTypeString(); // prepare arguments for createVectorExpression - List childrenForInList = - foldConstantsForUnaryExprs(childExpr.subList(1, childExpr.size())); - + List childrenForInList = evaluateCastOnConstants(childExpr.subList(1, childExpr.size())); + /* This method assumes that the IN list has no NULL entries. That is enforced elsewhere, * in the Vectorizer class. If NULL is passed in as a list entry, behavior is not defined. * If in the future, NULL values are allowed in the IN list, be sure to handle 3-valued @@ -1107,16 +1110,116 @@ private VectorExpression getGenericUDFBridgeVectorExpression(GenericUDFBridge ud return getCastToString(childExpr, returnType); } return null; - } - + } + + private Decimal128 castConstantToDecimal(Object scalar, TypeInfo type) throws HiveException { + PrimitiveTypeInfo ptinfo = (PrimitiveTypeInfo) type; + String typename = type.getTypeName(); + Decimal128 d = new Decimal128(); + int scale = HiveDecimalUtils.getScaleForType(ptinfo); + switch (ptinfo.getPrimitiveCategory()) { + case FLOAT: + float floatVal = ((Float) scalar).floatValue(); + d.update(floatVal, (short) scale); + break; + case DOUBLE: + double doubleVal = ((Double) scalar).doubleValue(); + d.update(doubleVal, (short) scale); + break; + case BYTE: + byte byteVal = ((Byte) scalar).byteValue(); + d.update(byteVal, (short) scale); + break; + case SHORT: + short shortVal = ((Short) scalar).shortValue(); + d.update(shortVal, (short) scale); + break; + case INT: + int intVal = ((Integer) scalar).intValue(); + d.update(intVal, (short) scale); + break; + case LONG: + long longVal = ((Long) scalar).longValue(); + d.update(longVal, (short) scale); + break; + case DECIMAL: + HiveDecimal decimalVal = (HiveDecimal) scalar; + d.update(decimalVal.unscaledValue(), (short) scale); + break; + default: + throw new HiveException("Unsupported type "+typename+" for cast to Decimal128"); + } + return d; + } + + private String castConstantToString(Object scalar, TypeInfo type) throws HiveException { + PrimitiveTypeInfo ptinfo = (PrimitiveTypeInfo) type; + String typename = type.getTypeName(); + switch (ptinfo.getPrimitiveCategory()) { + case FLOAT: + case DOUBLE: + case BYTE: + case SHORT: + case INT: + case LONG: + return ((Number) scalar).toString(); + case DECIMAL: + HiveDecimal decimalVal = (HiveDecimal) scalar; + return decimalVal.toString(); + default: + throw new HiveException("Unsupported type "+typename+" for cast to String"); + } + } + + private Double castConstantToDouble(Object scalar, TypeInfo type) throws HiveException { + PrimitiveTypeInfo ptinfo = (PrimitiveTypeInfo) type; + String typename = type.getTypeName(); + switch (ptinfo.getPrimitiveCategory()) { + case FLOAT: + case DOUBLE: + case BYTE: + case SHORT: + case INT: + case LONG: + return ((Number) scalar).doubleValue(); + case DECIMAL: + HiveDecimal decimalVal = (HiveDecimal) scalar; + return decimalVal.doubleValue(); + default: + throw new HiveException("Unsupported type "+typename+" for cast to Double"); + } + } + + private Long castConstantToLong(Object scalar, TypeInfo type) throws HiveException { + PrimitiveTypeInfo ptinfo = (PrimitiveTypeInfo) type; + String typename = type.getTypeName(); + switch (ptinfo.getPrimitiveCategory()) { + case FLOAT: + case DOUBLE: + case BYTE: + case SHORT: + case INT: + case LONG: + return ((Number) scalar).longValue(); + case DECIMAL: + HiveDecimal decimalVal = (HiveDecimal) scalar; + return decimalVal.longValue(); + default: + throw new HiveException("Unsupported type "+typename+" for cast to Long"); + } + } + private VectorExpression getCastToDecimal(List childExpr, TypeInfo returnType) throws HiveException { ExprNodeDesc child = childExpr.get(0); String inputType = childExpr.get(0).getTypeString(); if (child instanceof ExprNodeConstantDesc) { - // Don't do constant folding here. Wait until the optimizer is changed to do it. - // Family of related JIRAs: HIVE-7421, HIVE-7422, and HIVE-7424. - return null; + // Return a constant vector expression + Object constantValue = ((ExprNodeConstantDesc) child).getValue(); + Decimal128 decimalValue = castConstantToDecimal(constantValue, child.getTypeInfo()); + return getConstantVectorExpression(decimalValue, returnType, Mode.PROJECTION); + } else if (child instanceof ExprNodeNullDesc) { + return getConstantVectorExpression(null, returnType, Mode.PROJECTION); } if (isIntFamily(inputType)) { return createVectorExpression(CastLongToDecimal.class, childExpr, Mode.PROJECTION, returnType); @@ -1131,16 +1234,19 @@ private VectorExpression getCastToDecimal(List childExpr, TypeInfo return createVectorExpression(CastTimestampToDecimal.class, childExpr, Mode.PROJECTION, returnType); } throw new HiveException("Unhandled cast input type: " + inputType); - } - + } + private VectorExpression getCastToString(List childExpr, TypeInfo returnType) throws HiveException { ExprNodeDesc child = childExpr.get(0); String inputType = childExpr.get(0).getTypeString(); if (child instanceof ExprNodeConstantDesc) { - // Don't do constant folding here. Wait until the optimizer is changed to do it. - // Family of related JIRAs: HIVE-7421, HIVE-7422, and HIVE-7424. - return null; + // Return a constant vector expression + Object constantValue = ((ExprNodeConstantDesc) child).getValue(); + String strValue = castConstantToString(constantValue, child.getTypeInfo()); + return getConstantVectorExpression(strValue, returnType, Mode.PROJECTION); + } else if (child instanceof ExprNodeNullDesc) { + return getConstantVectorExpression(null, returnType, Mode.PROJECTION); } if (inputType.equals("boolean")) { // Boolean must come before the integer family. It's a special case. @@ -1164,9 +1270,12 @@ private VectorExpression getCastToDoubleExpression(Class udf, List childExpr) // Don't do constant folding here. Wait until the optimizer is changed to do it. // Family of related JIRAs: HIVE-7421, HIVE-7422, and HIVE-7424. return null; + } else if (child instanceof ExprNodeNullDesc) { + return getConstantVectorExpression(null, TypeInfoFactory.booleanTypeInfo, Mode.PROJECTION); } // Long and double are handled using descriptors, string needs to be specially handled. if (inputType.equals("string")) { @@ -1215,9 +1326,12 @@ private VectorExpression getCastToLongExpression(List childExpr) ExprNodeDesc child = childExpr.get(0); String inputType = childExpr.get(0).getTypeString(); if (child instanceof ExprNodeConstantDesc) { - // Don't do constant folding here. Wait until the optimizer is changed to do it. - // Family of related JIRAs: HIVE-7421, HIVE-7422, and HIVE-7424. - return null; + // Return a constant vector expression + Object constantValue = ((ExprNodeConstantDesc) child).getValue(); + Long longValue = castConstantToLong(constantValue, child.getTypeInfo()); + return getConstantVectorExpression(longValue, TypeInfoFactory.longTypeInfo, Mode.PROJECTION); + } else if (child instanceof ExprNodeNullDesc) { + return getConstantVectorExpression(null, TypeInfoFactory.longTypeInfo, Mode.PROJECTION); } // Float family, timestamp are handled via descriptor based lookup, int family needs // special handling. @@ -1281,7 +1395,7 @@ private VectorExpression getBetweenFilterExpression(List childExpr String colType = commonType.getTypeName(); // prepare arguments for createVectorExpression - List childrenAfterNot = foldConstantsForUnaryExprs(castChildren); + List childrenAfterNot = evaluateCastOnConstants(castChildren); // determine class Class cl = null; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ConstantVectorExpression.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ConstantVectorExpression.java index 9fd3853..f521b84 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ConstantVectorExpression.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ConstantVectorExpression.java @@ -187,13 +187,14 @@ public String getTypeString() { public void setTypeString(String typeString) { this.outputType = typeString; - if ("string".equalsIgnoreCase(typeString)) { + if (VectorizationContext.isStringFamily(typeString)) { this.type = Type.BYTES; - } else if ("double".equalsIgnoreCase(typeString)) { + } else if (VectorizationContext.isFloatFamily(typeString)) { this.type = Type.DOUBLE; - } else if (VectorizationContext.decimalTypePattern.matcher(typeString).matches()){ + } else if (VectorizationContext.isDecimalFamily(typeString)){ this.type = Type.DECIMAL; } else { + // everything else that does not belong to string, double, decimal is treated as long. this.type = Type.LONG; } } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java index eeb76d7..c2bc012 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpressionWriterFactory.java @@ -50,25 +50,12 @@ import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableHiveVarcharObjectInspector; import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableIntObjectInspector; import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableLongObjectInspector; -import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableHiveVarcharObjectInspector; import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableTimestampObjectInspector; import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableShortObjectInspector; import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableStringObjectInspector; -import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableTimestampObjectInspector; -import org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo; -import org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo; -import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo; -import org.apache.hadoop.hive.serde2.typeinfo.StructTypeInfo; -import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; -import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory; +import org.apache.hadoop.hive.serde2.objectinspector.primitive.VoidObjectInspector; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils; -import org.apache.hadoop.hive.serde2.typeinfo.UnionTypeInfo; -import org.apache.hadoop.io.BooleanWritable; -import org.apache.hadoop.io.FloatWritable; -import org.apache.hadoop.io.IntWritable; -import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; -import org.apache.hadoop.io.Writable; /** * VectorExpressionWritableFactory helper class for generating VectorExpressionWritable objects. @@ -364,7 +351,6 @@ public Object setValue(Object field, ColumnVector column, int row) throws HiveEx */ public static VectorExpressionWriter genVectorExpressionWritable(ExprNodeDesc nodeDesc) throws HiveException { - String nodeType = nodeDesc.getTypeString(); ObjectInspector objectInspector = nodeDesc.getWritableObjectInspector(); if (null == objectInspector) { objectInspector = TypeInfoUtils @@ -408,6 +394,9 @@ public static VectorExpressionWriter genVectorExpressionWritable( case LONG: return genVectorExpressionWritableLong( (SettableLongObjectInspector) fieldObjInspector); + case VOID: + return genVectorExpressionWritableVoid( + (VoidObjectInspector) fieldObjInspector); case BINARY: return genVectorExpressionWritableBinary( (SettableBinaryObjectInspector) fieldObjInspector); @@ -722,6 +711,39 @@ public Object initValue(Object ignored) { }.init(fieldObjInspector); } + private static VectorExpressionWriter genVectorExpressionWritableVoid( + VoidObjectInspector fieldObjInspector) throws HiveException { + return new VectorExpressionWriterLong() { + private Object obj; + + public VectorExpressionWriter init(VoidObjectInspector objInspector) + throws HiveException { + super.init(objInspector); + this.obj = initValue(null); + return this; + } + + @Override + public Object writeValue(long value) throws HiveException { + return this.obj; + } + + @Override + public Object setValue(Object field, long value) throws HiveException { + if (null == field) { + field = initValue(null); + } + return field; + } + + @Override + public Object initValue(Object ignored) { + return ((VoidObjectInspector) this.objectInspector).copyObject(null); + } + }.init(fieldObjInspector); + } + + private static VectorExpressionWriter genVectorExpressionWritableInt( SettableIntObjectInspector fieldObjInspector) throws HiveException { return new VectorExpressionWriterLong() { diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java index b12d3a8..14e20dd 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagate.java @@ -77,12 +77,6 @@ public ConstantPropagate() {} */ @Override public ParseContext transform(ParseContext pactx) throws SemanticException { - if (pactx.getConf().getBoolVar(ConfVars.HIVE_VECTORIZATION_ENABLED)) { - // Constant propagate is currently conflict with vectorizer, disabling constant propagate - // if the later is enabled. - return pactx; - } - pGraphContext = pactx; opToParseCtxMap = pGraphContext.getOpParseCtx(); diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java index 50ce5b8..16b9782 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java @@ -148,6 +148,7 @@ public Vectorizer() { patternBuilder.append("|float"); patternBuilder.append("|double"); patternBuilder.append("|date"); + patternBuilder.append("|void"); // Decimal types can be specified with different precision and scales e.g. decimal(10,5), // as opposed to other data types which can be represented by constant strings. diff --git ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorizationContext.java ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorizationContext.java index 2329f52..0612647 100644 --- ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorizationContext.java +++ ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorizationContext.java @@ -1189,26 +1189,6 @@ public void testIfConditionalExprs() throws HiveException { children1.set(2, col3Expr); ve = vc.getVectorExpression(exprDesc); assertTrue(ve instanceof IfExprStringScalarStringColumn); - } - - @Test - public void testFoldConstantsForUnaryExpression() throws HiveException { - ExprNodeConstantDesc constDesc = new ExprNodeConstantDesc(new Integer(1)); - GenericUDFToDecimal udf = new GenericUDFToDecimal(); - udf.setTypeInfo(new DecimalTypeInfo(5, 2)); - List children = new ArrayList(); - children.add(constDesc); - ExprNodeGenericFuncDesc exprDesc = new ExprNodeGenericFuncDesc(); - exprDesc.setGenericUDF(udf); - exprDesc.setChildren(children); - exprDesc.setTypeInfo(new DecimalTypeInfo(5, 2)); - Map columnMap = new HashMap(); - columnMap.put("col1", 1); - VectorizationContext vc = new VectorizationContext(columnMap, 1); - ExprNodeDesc constFoldNodeDesc = vc.foldConstantsForUnaryExpression(exprDesc); - assertTrue(constFoldNodeDesc instanceof ExprNodeConstantDesc); - assertTrue(((HiveDecimal) - (((ExprNodeConstantDesc)constFoldNodeDesc).getValue())).toString().equals("1")); } } diff --git ql/src/test/queries/clientpositive/vector_coalesce.q ql/src/test/queries/clientpositive/vector_coalesce.q index 052ab71..7112749 100644 --- ql/src/test/queries/clientpositive/vector_coalesce.q +++ ql/src/test/queries/clientpositive/vector_coalesce.q @@ -7,6 +7,8 @@ SELECT cdouble, cstring1, cint, cfloat, csmallint, coalesce(cdouble, cstring1, c FROM alltypesorc WHERE (cdouble IS NULL) LIMIT 10; +SET hive.optimize.constant.propagation=false; + EXPLAIN SELECT ctinyint, cdouble, cint, coalesce(ctinyint+10, (cdouble+log2(cint)), 0) FROM alltypesorc WHERE (ctinyint IS NULL) LIMIT 10; @@ -15,6 +17,8 @@ SELECT ctinyint, cdouble, cint, coalesce(ctinyint+10, (cdouble+log2(cint)), 0) FROM alltypesorc WHERE (ctinyint IS NULL) LIMIT 10; +SET hive.optimize.constant.propagation=true; + EXPLAIN SELECT cfloat, cbigint, coalesce(cfloat, cbigint, 0) FROM alltypesorc WHERE (cfloat IS NULL AND cbigint IS NULL) LIMIT 10; diff --git ql/src/test/results/clientpositive/vector_between_in.q.out ql/src/test/results/clientpositive/vector_between_in.q.out index 78e340b..bbd23d2 100644 --- ql/src/test/results/clientpositive/vector_between_in.q.out +++ ql/src/test/results/clientpositive/vector_between_in.q.out @@ -21,7 +21,7 @@ STAGE PLANS: alias: decimal_date_test Statistics: Num rows: 12288 Data size: 2467616 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (cdate) IN (CAST( '1969-10-26' AS DATE), CAST( '1969-07-14' AS DATE)) (type: boolean) + predicate: (cdate) IN (1969-10-26, 1969-07-14) (type: boolean) Statistics: Num rows: 6144 Data size: 1233808 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cdate (type: date) @@ -67,7 +67,7 @@ STAGE PLANS: alias: decimal_date_test Statistics: Num rows: 12288 Data size: 2467616 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (not (cdate) IN (CAST( '1969-10-26' AS DATE), CAST( '1969-07-14' AS DATE), CAST( '1970-01-21' AS DATE))) (type: boolean) + predicate: (not (cdate) IN (1969-10-26, 1969-07-14, 1970-01-21)) (type: boolean) Statistics: Num rows: 6144 Data size: 1233808 Basic stats: COMPLETE Column stats: NONE Select Operator Statistics: Num rows: 6144 Data size: 1233808 Basic stats: COMPLETE Column stats: NONE @@ -121,7 +121,7 @@ STAGE PLANS: alias: decimal_date_test Statistics: Num rows: 12288 Data size: 2467616 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (cdecimal1) IN (2365.8945945946, 881.0135135135, (- 3367.6517567568)) (type: boolean) + predicate: (cdecimal1) IN (2365.8945945946, 881.0135135135, -3367.6517567568) (type: boolean) Statistics: Num rows: 6144 Data size: 1233808 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cdecimal1 (type: decimal(20,10)) @@ -167,7 +167,7 @@ STAGE PLANS: alias: decimal_date_test Statistics: Num rows: 12288 Data size: 2467616 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (not (cdecimal1) IN (2365.8945945946, 881.0135135135, (- 3367.6517567568))) (type: boolean) + predicate: (not (cdecimal1) IN (2365.8945945946, 881.0135135135, -3367.6517567568)) (type: boolean) Statistics: Num rows: 6144 Data size: 1233808 Basic stats: COMPLETE Column stats: NONE Select Operator Statistics: Num rows: 6144 Data size: 1233808 Basic stats: COMPLETE Column stats: NONE @@ -221,7 +221,7 @@ STAGE PLANS: alias: decimal_date_test Statistics: Num rows: 12288 Data size: 2467616 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: cdate BETWEEN CAST( '1969-12-30' AS DATE) AND CAST( '1970-01-02' AS DATE) (type: boolean) + predicate: cdate BETWEEN 1969-12-30 AND 1970-01-02 (type: boolean) Statistics: Num rows: 6144 Data size: 1233808 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cdate (type: date) @@ -267,7 +267,7 @@ STAGE PLANS: alias: decimal_date_test Statistics: Num rows: 12288 Data size: 2467616 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: cdate NOT BETWEEN CAST( '1968-05-01' AS DATE) AND CAST( '1971-09-01' AS DATE) (type: boolean) + predicate: cdate NOT BETWEEN 1968-05-01 AND 1971-09-01 (type: boolean) Statistics: Num rows: 6144 Data size: 1233808 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cdate (type: date) @@ -313,7 +313,7 @@ STAGE PLANS: alias: decimal_date_test Statistics: Num rows: 12288 Data size: 2467616 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: cdecimal1 BETWEEN (- 20) AND 45.9918918919 (type: boolean) + predicate: cdecimal1 BETWEEN -20 AND 45.9918918919 (type: boolean) Statistics: Num rows: 6144 Data size: 1233808 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cdecimal1 (type: decimal(20,10)) @@ -359,7 +359,7 @@ STAGE PLANS: alias: decimal_date_test Statistics: Num rows: 12288 Data size: 2467616 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: cdecimal1 NOT BETWEEN (- 2000) AND 4390.1351351351 (type: boolean) + predicate: cdecimal1 NOT BETWEEN -2000 AND 4390.1351351351 (type: boolean) Statistics: Num rows: 6144 Data size: 1233808 Basic stats: COMPLETE Column stats: NONE Select Operator Statistics: Num rows: 6144 Data size: 1233808 Basic stats: COMPLETE Column stats: NONE diff --git ql/src/test/results/clientpositive/vector_cast_constant.q.out ql/src/test/results/clientpositive/vector_cast_constant.q.out index cdb13cb..c8ff278 100644 --- ql/src/test/results/clientpositive/vector_cast_constant.q.out +++ ql/src/test/results/clientpositive/vector_cast_constant.q.out @@ -136,6 +136,7 @@ STAGE PLANS: Map-reduce partition columns: _col0 (type: int) Statistics: Num rows: 1049 Data size: 311170 Basic stats: COMPLETE Column stats: NONE value expressions: _col1 (type: struct), _col2 (type: struct), _col3 (type: struct) + Execution mode: vectorized Reduce Operator Tree: Group By Operator aggregations: avg(VALUE._col0), avg(VALUE._col1), avg(VALUE._col2) diff --git ql/src/test/results/clientpositive/vector_coalesce.q.out ql/src/test/results/clientpositive/vector_coalesce.q.out index 9561d47..35db95e 100644 --- ql/src/test/results/clientpositive/vector_coalesce.q.out +++ ql/src/test/results/clientpositive/vector_coalesce.q.out @@ -21,7 +21,7 @@ STAGE PLANS: predicate: cdouble is null (type: boolean) Statistics: Num rows: 1571 Data size: 188558 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: cdouble (type: double), cstring1 (type: string), cint (type: int), cfloat (type: float), csmallint (type: smallint), COALESCE(cdouble,cstring1,cint,cfloat,csmallint) (type: string) + expressions: null (type: void), cstring1 (type: string), cint (type: int), cfloat (type: float), csmallint (type: smallint), COALESCE(null,cstring1,cint,cfloat,csmallint) (type: string) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 1571 Data size: 188558 Basic stats: COMPLETE Column stats: NONE Limit @@ -153,7 +153,7 @@ STAGE PLANS: predicate: (cfloat is null and cbigint is null) (type: boolean) Statistics: Num rows: 7859 Data size: 94309 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: cfloat (type: float), cbigint (type: bigint), COALESCE(cfloat,cbigint,0) (type: float) + expressions: null (type: void), null (type: void), COALESCE(null,null,0) (type: float) outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 7859 Data size: 94309 Basic stats: COMPLETE Column stats: NONE Limit diff --git ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out index 71a3def..3327c90 100644 --- ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out +++ ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out @@ -46,10 +46,10 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {cdecimal1} - 1 {cdecimal2} {cint} + 1 {cdecimal2} keys: - 0 cint (type: int) - 1 cint (type: int) + 0 6981 (type: int) + 1 6981 (type: int) Stage: Stage-3 Map Reduce @@ -64,15 +64,15 @@ STAGE PLANS: condition map: Inner Join 0 to 1 condition expressions: - 0 {cdecimal1} {cint} - 1 {cdecimal2} {cint} + 0 {cdecimal1} + 1 {cdecimal2} keys: - 0 cint (type: int) - 1 cint (type: int) - outputColumnNames: _col1, _col3, _col8, _col9 + 0 6981 (type: int) + 1 6981 (type: int) + outputColumnNames: _col1, _col8 Statistics: Num rows: 3379 Data size: 595391 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col3 (type: int), _col9 (type: int), _col1 (type: decimal(20,10)), _col8 (type: decimal(23,14)) + expressions: 6981 (type: int), 6981 (type: int), _col1 (type: decimal(20,10)), _col8 (type: decimal(23,14)) outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 3379 Data size: 595391 Basic stats: COMPLETE Column stats: NONE File Output Operator diff --git ql/src/test/results/clientpositive/vector_decimal_math_funcs.q.out ql/src/test/results/clientpositive/vector_decimal_math_funcs.q.out index 717e81a..d60d855 100644 --- ql/src/test/results/clientpositive/vector_decimal_math_funcs.q.out +++ ql/src/test/results/clientpositive/vector_decimal_math_funcs.q.out @@ -95,7 +95,7 @@ STAGE PLANS: alias: decimal_test Statistics: Num rows: 12288 Data size: 2201752 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (((cbigint % 500) = 0) and (sin(cdecimal1) >= (- 1.0))) (type: boolean) + predicate: (((cbigint % 500) = 0) and (sin(cdecimal1) >= -1.0)) (type: boolean) Statistics: Num rows: 2048 Data size: 366958 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cdecimal1 (type: decimal(20,10)), round(cdecimal1, 2) (type: decimal(13,2)), round(cdecimal1) (type: decimal(11,0)), floor(cdecimal1) (type: decimal(11,0)), ceil(cdecimal1) (type: decimal(11,0)), round(exp(cdecimal1), 58) (type: double), ln(cdecimal1) (type: double), log10(cdecimal1) (type: double), log2(cdecimal1) (type: double), log2((cdecimal1 - 15601.0)) (type: double), log(2.0, cdecimal1) (type: double), power(log2(cdecimal1), 2.0) (type: double), power(log2(cdecimal1), 2.0) (type: double), sqrt(cdecimal1) (type: double), abs(cdecimal1) (type: decimal(38,18)), sin(cdecimal1) (type: double), asin(cdecimal1) (type: double), cos(cdecimal1) (type: double), acos(cdecimal1) (type: double), atan(cdecimal1) (type: double), degrees(cdecimal1) (type: double), radians(cdecimal1) (type: double), cdecimal1 (type: decimal(20,10)), (- cdecimal1) (type: decimal(20,10)), sign(cdecimal1) (type: int), cos(((- sin(log(cdecimal1))) + 3.14159)) (type: double) diff --git ql/src/test/results/clientpositive/vector_elt.q.out ql/src/test/results/clientpositive/vector_elt.q.out index ea0af62..d96fde5 100644 --- ql/src/test/results/clientpositive/vector_elt.q.out +++ ql/src/test/results/clientpositive/vector_elt.q.out @@ -102,7 +102,7 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 0 Data size: 377237 Basic stats: PARTIAL Column stats: COMPLETE Select Operator - expressions: elt(2, 'abc', 'defg') (type: string), elt(3, 'aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg') (type: string), elt('1', 'abc', 'defg') (type: string), elt(2, 'aa', UDFToByte('2')) (type: string), elt(2, 'aa', UDFToShort('12345')) (type: string), elt(2, 'aa', UDFToLong('123456789012')) (type: string), elt(2, 'aa', UDFToFloat(1.25)) (type: string), elt(2, 'aa', 16.0) (type: string), elt(0, 'abc', 'defg') (type: string), elt(3, 'abc', 'defg') (type: string) + expressions: 'defg' (type: string), 'cc' (type: string), 'abc' (type: string), '2' (type: string), '12345' (type: string), '123456789012' (type: string), '1.25' (type: string), '16.0' (type: string), null (type: void), null (type: void) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9 Statistics: Num rows: 0 Data size: 377237 Basic stats: PARTIAL Column stats: COMPLETE Limit diff --git ql/src/test/results/clientpositive/vectorization_14.q.out ql/src/test/results/clientpositive/vectorization_14.q.out index 3992bb1..bd9d227 100644 --- ql/src/test/results/clientpositive/vectorization_14.q.out +++ ql/src/test/results/clientpositive/vectorization_14.q.out @@ -77,7 +77,7 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 1779 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: ((((ctinyint <= cbigint) and ((cint <= cdouble) or (ctimestamp2 < ctimestamp1))) and (cdouble < ctinyint)) and ((cbigint > (- 257)) or (cfloat < cint))) (type: boolean) + predicate: ((((ctinyint <= cbigint) and ((cint <= cdouble) or (ctimestamp2 < ctimestamp1))) and (cdouble < ctinyint)) and ((cbigint > -257) or (cfloat < cint))) (type: boolean) Statistics: Num rows: 86 Data size: 18236 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: ctimestamp1 (type: timestamp), cfloat (type: float), cstring1 (type: string), cboolean1 (type: boolean), cdouble (type: double) @@ -104,7 +104,7 @@ STAGE PLANS: outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 Statistics: Num rows: 43 Data size: 9118 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: timestamp), _col1 (type: float), _col2 (type: string), _col3 (type: boolean), _col4 (type: double), ((- 26.28) + _col4) (type: double), (- ((- 26.28) + _col4)) (type: double), _col5 (type: double), (_col1 * (- 26.28)) (type: double), _col6 (type: float), (- _col1) (type: float), (- _col6) (type: float), ((- ((- 26.28) + _col4)) / 10.175) (type: double), _col7 (type: double), _col8 (type: bigint), (- ((- ((- 26.28) + _col4)) / 10.175)) (type: double), ((- 1.389) % _col5) (type: double), (_col1 - _col4) (type: double), _col9 (type: double), (_col9 % 10.175) (type: double), _col10 (type: double), (- (_col1 - _col4)) (type: double) + expressions: _col0 (type: timestamp), _col1 (type: float), _col2 (type: string), _col3 (type: boolean), _col4 (type: double), (-26.28 + _col4) (type: double), (- (-26.28 + _col4)) (type: double), _col5 (type: double), (_col1 * -26.28) (type: double), _col6 (type: float), (- _col1) (type: float), (- _col6) (type: float), ((- (-26.28 + _col4)) / 10.175) (type: double), _col7 (type: double), _col8 (type: bigint), (- ((- (-26.28 + _col4)) / 10.175)) (type: double), (-1.389 % _col5) (type: double), (_col1 - _col4) (type: double), _col9 (type: double), (_col9 % 10.175) (type: double), _col10 (type: double), (- (_col1 - _col4)) (type: double) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21 Statistics: Num rows: 43 Data size: 9118 Basic stats: COMPLETE Column stats: NONE File Output Operator diff --git ql/src/test/results/clientpositive/vectorization_15.q.out ql/src/test/results/clientpositive/vectorization_15.q.out index 1f48fea..1e99f51 100644 --- ql/src/test/results/clientpositive/vectorization_15.q.out +++ ql/src/test/results/clientpositive/vectorization_15.q.out @@ -73,7 +73,7 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 1407 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (((cstring2 like '%ss%') or (cstring1 like '10%')) or ((cint >= (- 75)) and ((ctinyint = csmallint) and (cdouble >= (- 3728))))) (type: boolean) + predicate: (((cstring2 like '%ss%') or (cstring1 like '10%')) or ((cint >= -75) and ((ctinyint = csmallint) and (cdouble >= -3728)))) (type: boolean) Statistics: Num rows: 1407 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cfloat (type: float), cboolean1 (type: boolean), cdouble (type: double), cstring1 (type: string), ctinyint (type: tinyint), cint (type: int), ctimestamp1 (type: timestamp) @@ -100,7 +100,7 @@ STAGE PLANS: outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12 Statistics: Num rows: 703 Data size: 188484 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: float), _col1 (type: boolean), _col2 (type: double), _col3 (type: string), _col4 (type: tinyint), _col5 (type: int), _col6 (type: timestamp), _col7 (type: double), ((- 26.28) - _col5) (type: double), _col8 (type: double), (_col2 * 79.553) (type: double), (33 % _col0) (type: float), _col9 (type: double), _col10 (type: double), ((- 23) % _col2) (type: double), (- _col4) (type: tinyint), _col11 (type: double), (_col5 - _col0) (type: float), ((- 23) % _col4) (type: int), (- ((- 26.28) - _col5)) (type: double), _col12 (type: double) + expressions: _col0 (type: float), _col1 (type: boolean), _col2 (type: double), _col3 (type: string), _col4 (type: tinyint), _col5 (type: int), _col6 (type: timestamp), _col7 (type: double), (-26.28 - _col5) (type: double), _col8 (type: double), (_col2 * 79.553) (type: double), (33 % _col0) (type: float), _col9 (type: double), _col10 (type: double), (-23 % _col2) (type: double), (- _col4) (type: tinyint), _col11 (type: double), (_col5 - _col0) (type: float), (-23 % _col4) (type: int), (- (-26.28 - _col5)) (type: double), _col12 (type: double) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20 Statistics: Num rows: 703 Data size: 188484 Basic stats: COMPLETE Column stats: NONE File Output Operator diff --git ql/src/test/results/clientpositive/vectorization_16.q.out ql/src/test/results/clientpositive/vectorization_16.q.out index 38596e6..4b83845 100644 --- ql/src/test/results/clientpositive/vectorization_16.q.out +++ ql/src/test/results/clientpositive/vectorization_16.q.out @@ -50,7 +50,7 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 1521 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: ((cstring2 like '%b%') and ((cdouble >= (- 1.389)) or (cstring1 < 'a'))) (type: boolean) + predicate: ((cstring2 like '%b%') and ((cdouble >= -1.389) or (cstring1 < 'a'))) (type: boolean) Statistics: Num rows: 506 Data size: 125497 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cstring1 (type: string), cdouble (type: double), ctimestamp1 (type: timestamp) @@ -77,7 +77,7 @@ STAGE PLANS: outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 253 Data size: 62748 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: string), _col1 (type: double), _col2 (type: timestamp), (_col1 - 9763215.5639) (type: double), (- (_col1 - 9763215.5639)) (type: double), _col3 (type: bigint), _col4 (type: double), (- _col4) (type: double), (_col4 * _col3) (type: double), _col5 (type: double), (9763215.5639 / _col1) (type: double), (_col3 / (- 1.389)) (type: double), _col4 (type: double) + expressions: _col0 (type: string), _col1 (type: double), _col2 (type: timestamp), (_col1 - 9763215.5639) (type: double), (- (_col1 - 9763215.5639)) (type: double), _col3 (type: bigint), _col4 (type: double), (- _col4) (type: double), (_col4 * _col3) (type: double), _col5 (type: double), (9763215.5639 / _col1) (type: double), (_col3 / -1.389) (type: double), _col4 (type: double) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12 Statistics: Num rows: 253 Data size: 62748 Basic stats: COMPLETE Column stats: NONE File Output Operator diff --git ql/src/test/results/clientpositive/vectorization_9.q.out ql/src/test/results/clientpositive/vectorization_9.q.out index c757b1f..075e344 100644 --- ql/src/test/results/clientpositive/vectorization_9.q.out +++ ql/src/test/results/clientpositive/vectorization_9.q.out @@ -50,7 +50,7 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 1521 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: ((cstring2 like '%b%') and ((cdouble >= (- 1.389)) or (cstring1 < 'a'))) (type: boolean) + predicate: ((cstring2 like '%b%') and ((cdouble >= -1.389) or (cstring1 < 'a'))) (type: boolean) Statistics: Num rows: 506 Data size: 125497 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cstring1 (type: string), cdouble (type: double), ctimestamp1 (type: timestamp) @@ -77,7 +77,7 @@ STAGE PLANS: outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 253 Data size: 62748 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: string), _col1 (type: double), _col2 (type: timestamp), (_col1 - 9763215.5639) (type: double), (- (_col1 - 9763215.5639)) (type: double), _col3 (type: bigint), _col4 (type: double), (- _col4) (type: double), (_col4 * _col3) (type: double), _col5 (type: double), (9763215.5639 / _col1) (type: double), (_col3 / (- 1.389)) (type: double), _col4 (type: double) + expressions: _col0 (type: string), _col1 (type: double), _col2 (type: timestamp), (_col1 - 9763215.5639) (type: double), (- (_col1 - 9763215.5639)) (type: double), _col3 (type: bigint), _col4 (type: double), (- _col4) (type: double), (_col4 * _col3) (type: double), _col5 (type: double), (9763215.5639 / _col1) (type: double), (_col3 / -1.389) (type: double), _col4 (type: double) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12 Statistics: Num rows: 253 Data size: 62748 Basic stats: COMPLETE Column stats: NONE File Output Operator diff --git ql/src/test/results/clientpositive/vectorization_div0.q.out ql/src/test/results/clientpositive/vectorization_div0.q.out index b2321b4..9363edc 100644 --- ql/src/test/results/clientpositive/vectorization_div0.q.out +++ ql/src/test/results/clientpositive/vectorization_div0.q.out @@ -341,7 +341,7 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 23577 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: ((cdouble >= (- 500)) and (cdouble < (- 199))) (type: boolean) + predicate: ((cdouble >= -500) and (cdouble < -199)) (type: boolean) Statistics: Num rows: 2619 Data size: 41904 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: (cdouble + 200.0) (type: double), (cbigint / (cdouble + 200.0)) (type: double), ((cdouble + 200.0) / (cdouble + 200.0)) (type: double), (3 / (cdouble + 200.0)) (type: double), (1.2 / (cdouble + 200.0)) (type: double) diff --git ql/src/test/results/clientpositive/vectorization_short_regress.q.out ql/src/test/results/clientpositive/vectorization_short_regress.q.out index 5b23850..d420343 100644 --- ql/src/test/results/clientpositive/vectorization_short_regress.q.out +++ ql/src/test/results/clientpositive/vectorization_short_regress.q.out @@ -143,7 +143,7 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 1347 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: ((((762 = cbigint) or ((csmallint < cfloat) and ((ctimestamp2 > (- 10669)) and (cdouble <> cint)))) or (cstring1 = 'a')) or ((cbigint <= (- 1.389)) and ((cstring2 <> 'a') and ((79.553 <> cint) and (cboolean2 <> cboolean1))))) (type: boolean) + predicate: ((((762 = cbigint) or ((csmallint < cfloat) and ((ctimestamp2 > -10669) and (cdouble <> cint)))) or (cstring1 = 'a')) or ((cbigint <= -1.389) and ((cstring2 <> 'a') and ((79.553 <> cint) and (cboolean2 <> cboolean1))))) (type: boolean) Statistics: Num rows: 1347 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cint (type: int), cdouble (type: double), csmallint (type: smallint), cfloat (type: float), ctinyint (type: tinyint) @@ -166,7 +166,7 @@ STAGE PLANS: outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 Statistics: Num rows: 1 Data size: 68 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: double), (_col0 + (- 3728)) (type: double), (- (_col0 + (- 3728))) (type: double), (- (- (_col0 + (- 3728)))) (type: double), ((- (- (_col0 + (- 3728)))) * (_col0 + (- 3728))) (type: double), _col1 (type: double), (- _col0) (type: double), _col2 (type: double), (((- (- (_col0 + (- 3728)))) * (_col0 + (- 3728))) * (- (- (_col0 + (- 3728))))) (type: double), _col3 (type: double), (- _col2) (type: double), (_col2 - (- (- (_col0 + (- 3728))))) (type: double), ((_col2 - (- (- (_col0 + (- 3728))))) * _col2) (type: double), _col4 (type: double), _col5 (type: double), (10.175 - _col4) (type: double), (- (10.175 - _col4)) (type: double), ((- _col2) / (- 563)) (type: double), _col6 (type: double), (- ((- _col2) / (- 563))) (type: double), (_col0 / _col1) (type: double), _col7 (type: tinyint), _col8 (type: bigint), (_col7 / ((- _col2) / (- 563))) (type: double), (- (_col0 / _col1)) (type: double) + expressions: _col0 (type: double), (_col0 + -3728) (type: double), (- (_col0 + -3728)) (type: double), (- (- (_col0 + -3728))) (type: double), ((- (- (_col0 + -3728))) * (_col0 + -3728)) (type: double), _col1 (type: double), (- _col0) (type: double), _col2 (type: double), (((- (- (_col0 + -3728))) * (_col0 + -3728)) * (- (- (_col0 + -3728)))) (type: double), _col3 (type: double), (- _col2) (type: double), (_col2 - (- (- (_col0 + -3728)))) (type: double), ((_col2 - (- (- (_col0 + -3728)))) * _col2) (type: double), _col4 (type: double), _col5 (type: double), (10.175 - _col4) (type: double), (- (10.175 - _col4)) (type: double), ((- _col2) / -563) (type: double), _col6 (type: double), (- ((- _col2) / -563)) (type: double), (_col0 / _col1) (type: double), _col7 (type: tinyint), _col8 (type: bigint), (_col7 / ((- _col2) / -563)) (type: double), (- (_col0 / _col1)) (type: double) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24 Statistics: Num rows: 1 Data size: 68 Basic stats: COMPLETE Column stats: NONE File Output Operator @@ -349,7 +349,7 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 1626 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (((((cbigint <= 197) and (cint < cbigint)) or ((cdouble >= (- 26.28)) and (csmallint > cdouble))) or ((ctinyint > cfloat) and (cstring1 rlike '.*ss.*'))) or ((cfloat > 79.553) and (cstring2 like '10%'))) (type: boolean) + predicate: (((((cbigint <= 197) and (cint < cbigint)) or ((cdouble >= -26.28) and (csmallint > cdouble))) or ((ctinyint > cfloat) and (cstring1 rlike '.*ss.*'))) or ((cfloat > 79.553) and (cstring2 like '10%'))) (type: boolean) Statistics: Num rows: 902 Data size: 209266 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cint (type: int), cbigint (type: bigint), csmallint (type: smallint), cdouble (type: double), ctinyint (type: tinyint) @@ -372,7 +372,7 @@ STAGE PLANS: outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: int), (_col0 / (- 3728)) (type: double), (_col0 * (- 3728)) (type: int), _col1 (type: double), (- (_col0 * (- 3728))) (type: int), _col2 (type: double), ((- 563) % (_col0 * (- 3728))) (type: int), (_col1 / _col2) (type: double), (- _col2) (type: double), _col3 (type: double), _col4 (type: double), (_col2 - 10.175) (type: double), _col5 (type: int), ((_col0 * (- 3728)) % (_col2 - 10.175)) (type: double), (- _col3) (type: double), _col6 (type: double), (_col3 % (- 26.28)) (type: double), _col7 (type: double), (- (_col0 / (- 3728))) (type: double), ((- (_col0 * (- 3728))) % ((- 563) % (_col0 * (- 3728)))) (type: int), ((_col0 / (- 3728)) - _col4) (type: double), (- (_col0 * (- 3728))) (type: int), _col8 (type: double) + expressions: _col0 (type: int), (_col0 / -3728) (type: double), (_col0 * -3728) (type: int), _col1 (type: double), (- (_col0 * -3728)) (type: int), _col2 (type: double), (-563 % (_col0 * -3728)) (type: int), (_col1 / _col2) (type: double), (- _col2) (type: double), _col3 (type: double), _col4 (type: double), (_col2 - 10.175) (type: double), _col5 (type: int), ((_col0 * -3728) % (_col2 - 10.175)) (type: double), (- _col3) (type: double), _col6 (type: double), (_col3 % -26.28) (type: double), _col7 (type: double), (- (_col0 / -3728)) (type: double), ((- (_col0 * -3728)) % (-563 % (_col0 * -3728))) (type: int), ((_col0 / -3728) - _col4) (type: double), (- (_col0 * -3728)) (type: int), _col8 (type: double) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22 Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: NONE File Output Operator @@ -569,7 +569,7 @@ STAGE PLANS: outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 Statistics: Num rows: 1 Data size: 56 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: double), (- _col0) (type: double), (_col0 - (- _col0)) (type: double), _col1 (type: bigint), (_col1 % 79.553) (type: double), _col2 (type: tinyint), (_col1 - (- _col0)) (type: double), (- (- _col0)) (type: double), ((- 1) % (- _col0)) (type: double), _col1 (type: bigint), (- _col1) (type: bigint), _col3 (type: double), (- (- (- _col0))) (type: double), (762 * (- _col1)) (type: bigint), _col4 (type: int), (_col2 + (762 * (- _col1))) (type: bigint), ((- _col0) + _col4) (type: double), _col5 (type: double), ((- _col1) % _col1) (type: bigint), _col6 (type: bigint), _col7 (type: double), ((- 3728) % (_col2 + (762 * (- _col1)))) (type: bigint) + expressions: _col0 (type: double), (- _col0) (type: double), (_col0 - (- _col0)) (type: double), _col1 (type: bigint), (_col1 % 79.553) (type: double), _col2 (type: tinyint), (_col1 - (- _col0)) (type: double), (- (- _col0)) (type: double), (-1 % (- _col0)) (type: double), _col1 (type: bigint), (- _col1) (type: bigint), _col3 (type: double), (- (- (- _col0))) (type: double), (762 * (- _col1)) (type: bigint), _col4 (type: int), (_col2 + (762 * (- _col1))) (type: bigint), ((- _col0) + _col4) (type: double), _col5 (type: double), ((- _col1) % _col1) (type: bigint), _col6 (type: bigint), _col7 (type: double), (-3728 % (_col2 + (762 * (- _col1)))) (type: bigint) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21 Statistics: Num rows: 1 Data size: 56 Basic stats: COMPLETE Column stats: NONE File Output Operator @@ -745,7 +745,7 @@ STAGE PLANS: outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 1 Data size: 44 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: double), (_col0 + 6981) (type: double), ((_col0 + 6981) + _col0) (type: double), _col1 (type: bigint), (((_col0 + 6981) + _col0) / _col0) (type: double), (- (_col0 + 6981)) (type: double), _col2 (type: double), (_col0 % (- (_col0 + 6981))) (type: double), _col3 (type: double), _col4 (type: double), (- _col1) (type: bigint), ((- _col1) / _col2) (type: double), _col5 (type: float), (_col4 * (- 26.28)) (type: double) + expressions: _col0 (type: double), (_col0 + 6981) (type: double), ((_col0 + 6981) + _col0) (type: double), _col1 (type: bigint), (((_col0 + 6981) + _col0) / _col0) (type: double), (- (_col0 + 6981)) (type: double), _col2 (type: double), (_col0 % (- (_col0 + 6981))) (type: double), _col3 (type: double), _col4 (type: double), (- _col1) (type: bigint), ((- _col1) / _col2) (type: double), _col5 (type: float), (_col4 * -26.28) (type: double) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13 Statistics: Num rows: 1 Data size: 44 Basic stats: COMPLETE Column stats: NONE File Output Operator @@ -902,10 +902,10 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 1193 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (((((cstring1 rlike 'a.*') and (cstring2 like '%ss%')) or ((1 <> cboolean2) and ((csmallint < 79.553) and ((- 257) <> ctinyint)))) or ((cdouble > ctinyint) and (cfloat >= cint))) or ((cint < cbigint) and (ctinyint > cbigint))) (type: boolean) + predicate: (((((cstring1 rlike 'a.*') and (cstring2 like '%ss%')) or ((1 <> cboolean2) and ((csmallint < 79.553) and (-257 <> ctinyint)))) or ((cdouble > ctinyint) and (cfloat >= cint))) or ((cint < cbigint) and (ctinyint > cbigint))) (type: boolean) Statistics: Num rows: 959 Data size: 303244 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: cint (type: int), cdouble (type: double), ctimestamp2 (type: timestamp), cstring1 (type: string), cboolean2 (type: boolean), ctinyint (type: tinyint), cfloat (type: float), ctimestamp1 (type: timestamp), csmallint (type: smallint), cbigint (type: bigint), ((- 3728) * cbigint) (type: bigint), (- cint) (type: int), ((- 863.257) - cint) (type: double), (- csmallint) (type: smallint), (csmallint - (- csmallint)) (type: smallint), ((csmallint - (- csmallint)) + (- csmallint)) (type: smallint), (cint / cint) (type: double), (((- 863.257) - cint) - (- 26.28)) (type: double), (- cfloat) (type: float), (cdouble * (- 89010)) (type: double), (ctinyint / 988888) (type: double), (- ctinyint) (type: tinyint), (79.553 / ctinyint) (type: double) + expressions: cint (type: int), cdouble (type: double), ctimestamp2 (type: timestamp), cstring1 (type: string), cboolean2 (type: boolean), ctinyint (type: tinyint), cfloat (type: float), ctimestamp1 (type: timestamp), csmallint (type: smallint), cbigint (type: bigint), (-3728 * cbigint) (type: bigint), (- cint) (type: int), (-863.257 - cint) (type: double), (- csmallint) (type: smallint), (csmallint - (- csmallint)) (type: smallint), ((csmallint - (- csmallint)) + (- csmallint)) (type: smallint), (cint / cint) (type: double), ((-863.257 - cint) - -26.28) (type: double), (- cfloat) (type: float), (cdouble * -89010) (type: double), (ctinyint / 988888) (type: double), (- ctinyint) (type: tinyint), (79.553 / ctinyint) (type: double) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22 Statistics: Num rows: 959 Data size: 303244 Basic stats: COMPLETE Column stats: NONE File Output Operator @@ -2311,7 +2311,7 @@ STAGE PLANS: predicate: (((((197.0 > ctinyint) and (cint = cbigint)) or (cbigint = 359)) or (cboolean1 < 0)) or ((cstring1 like '%ss') and (cfloat <= ctinyint))) (type: boolean) Statistics: Num rows: 1347 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: cint (type: int), cbigint (type: bigint), cstring1 (type: string), cboolean1 (type: boolean), cfloat (type: float), cdouble (type: double), ctimestamp2 (type: timestamp), csmallint (type: smallint), cstring2 (type: string), cboolean2 (type: boolean), (cint / cbigint) (type: double), (cbigint % 79.553) (type: double), (- (cint / cbigint)) (type: double), (10.175 % cfloat) (type: double), (- cfloat) (type: float), (cfloat - (- cfloat)) (type: float), ((cfloat - (- cfloat)) % (- 6432)) (type: float), (cdouble * csmallint) (type: double), (- cdouble) (type: double), (- cbigint) (type: bigint), (cfloat - (cint / cbigint)) (type: double), (- csmallint) (type: smallint), (3569 % cbigint) (type: bigint), (359 - cdouble) (type: double), (- csmallint) (type: smallint) + expressions: cint (type: int), cbigint (type: bigint), cstring1 (type: string), cboolean1 (type: boolean), cfloat (type: float), cdouble (type: double), ctimestamp2 (type: timestamp), csmallint (type: smallint), cstring2 (type: string), cboolean2 (type: boolean), (cint / cbigint) (type: double), (cbigint % 79.553) (type: double), (- (cint / cbigint)) (type: double), (10.175 % cfloat) (type: double), (- cfloat) (type: float), (cfloat - (- cfloat)) (type: float), ((cfloat - (- cfloat)) % -6432) (type: float), (cdouble * csmallint) (type: double), (- cdouble) (type: double), (- cbigint) (type: bigint), (cfloat - (cint / cbigint)) (type: double), (- csmallint) (type: smallint), (3569 % cbigint) (type: bigint), (359 - cdouble) (type: double), (- csmallint) (type: smallint) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24 Statistics: Num rows: 1347 Data size: 377237 Basic stats: COMPLETE Column stats: NONE File Output Operator @@ -2490,10 +2490,10 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 1347 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (((((csmallint > (- 26.28)) and (cstring2 like 'ss')) or ((cdouble <= cbigint) and ((cstring1 >= 'ss') and (cint <> cdouble)))) or (ctinyint = (- 89010))) or ((cbigint <= cfloat) and ((- 26.28) <= csmallint))) (type: boolean) + predicate: (((((csmallint > -26.28) and (cstring2 like 'ss')) or ((cdouble <= cbigint) and ((cstring1 >= 'ss') and (cint <> cdouble)))) or (ctinyint = -89010)) or ((cbigint <= cfloat) and (-26.28 <= csmallint))) (type: boolean) Statistics: Num rows: 1195 Data size: 334668 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: cint (type: int), cstring1 (type: string), cboolean2 (type: boolean), ctimestamp2 (type: timestamp), cdouble (type: double), cfloat (type: float), cbigint (type: bigint), csmallint (type: smallint), cboolean1 (type: boolean), (cint + csmallint) (type: int), (cbigint - ctinyint) (type: bigint), (- cbigint) (type: bigint), (- cfloat) (type: float), ((cbigint - ctinyint) + cbigint) (type: bigint), (cdouble / cdouble) (type: double), (- cdouble) (type: double), ((cint + csmallint) * (- cbigint)) (type: bigint), ((- cdouble) + cbigint) (type: double), ((- 1.389) / ctinyint) (type: double), (cbigint % cdouble) (type: double), (- csmallint) (type: smallint), (csmallint + (cint + csmallint)) (type: int) + expressions: cint (type: int), cstring1 (type: string), cboolean2 (type: boolean), ctimestamp2 (type: timestamp), cdouble (type: double), cfloat (type: float), cbigint (type: bigint), csmallint (type: smallint), cboolean1 (type: boolean), (cint + csmallint) (type: int), (cbigint - ctinyint) (type: bigint), (- cbigint) (type: bigint), (- cfloat) (type: float), ((cbigint - ctinyint) + cbigint) (type: bigint), (cdouble / cdouble) (type: double), (- cdouble) (type: double), ((cint + csmallint) * (- cbigint)) (type: bigint), ((- cdouble) + cbigint) (type: double), (-1.389 / ctinyint) (type: double), (cbigint % cdouble) (type: double), (- csmallint) (type: smallint), (csmallint + (cint + csmallint)) (type: int) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21 Statistics: Num rows: 1195 Data size: 334668 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator @@ -3252,10 +3252,10 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 1386 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (((((- 1.389) >= cint) and ((csmallint < ctinyint) and ((- 6432) > csmallint))) or ((cdouble >= cfloat) and (cstring2 <= 'a'))) or ((cstring1 like 'ss%') and (10.175 > cbigint))) (type: boolean) + predicate: ((((-1.389 >= cint) and ((csmallint < ctinyint) and (-6432 > csmallint))) or ((cdouble >= cfloat) and (cstring2 <= 'a'))) or ((cstring1 like 'ss%') and (10.175 > cbigint))) (type: boolean) Statistics: Num rows: 436 Data size: 118669 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: ctimestamp1 (type: timestamp), cstring2 (type: string), (cdouble * 10.175) (type: double), (((- 6432) * cfloat) / cfloat) (type: double), (- cfloat) (type: float), (cint % csmallint) (type: int), (cdouble * (- cdouble)) (type: double), cdouble (type: double), cfloat (type: float), cbigint (type: bigint), csmallint (type: smallint), (cbigint / 3569) (type: double), ((- 257) - csmallint) (type: int), ((- 6432) * cfloat) (type: float), (- cdouble) (type: double) + expressions: ctimestamp1 (type: timestamp), cstring2 (type: string), (cdouble * 10.175) (type: double), ((-6432 * cfloat) / cfloat) (type: double), (- cfloat) (type: float), (cint % csmallint) (type: int), (cdouble * (- cdouble)) (type: double), cdouble (type: double), cfloat (type: float), cbigint (type: bigint), csmallint (type: smallint), (cbigint / 3569) (type: double), (-257 - csmallint) (type: int), (-6432 * cfloat) (type: float), (- cdouble) (type: double) outputColumnNames: _col0, _col1, _col10, _col11, _col12, _col13, _col15, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9 Statistics: Num rows: 436 Data size: 118669 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator @@ -4070,7 +4070,7 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 13472 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: ((csmallint >= (- 257)) and (((- 6432) = csmallint) or ((cint >= cdouble) and (ctinyint <= cint)))) (type: boolean) + predicate: ((csmallint >= -257) and ((-6432 = csmallint) or ((cint >= cdouble) and (ctinyint <= cint)))) (type: boolean) Statistics: Num rows: 2743 Data size: 76808 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: csmallint (type: smallint), cbigint (type: bigint), ctinyint (type: tinyint) @@ -4097,7 +4097,7 @@ STAGE PLANS: outputColumnNames: _col0, _col1, _col2, _col3, _col4 Statistics: Num rows: 1371 Data size: 38389 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: smallint), (_col0 % (- 75)) (type: int), _col1 (type: double), ((- 1.389) / _col0) (type: double), _col2 (type: bigint), ((_col0 % (- 75)) / _col2) (type: double), (- (_col0 % (- 75))) (type: int), _col3 (type: double), (- (- (_col0 % (- 75)))) (type: int), _col4 (type: bigint), (_col4 - (- 89010)) (type: bigint) + expressions: _col0 (type: smallint), (_col0 % -75) (type: int), _col1 (type: double), (-1.389 / _col0) (type: double), _col2 (type: bigint), ((_col0 % -75) / _col2) (type: double), (- (_col0 % -75)) (type: int), _col3 (type: double), (- (- (_col0 % -75))) (type: int), _col4 (type: bigint), (_col4 - -89010) (type: bigint) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 Statistics: Num rows: 1371 Data size: 38389 Basic stats: COMPLETE Column stats: NONE File Output Operator @@ -5707,23 +5707,23 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 13472 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: ((cdouble > 2563.58) and ((((cbigint >= cint) and ((csmallint < cint) and (cfloat < (- 5638.15)))) or false) or ((cdouble <= cbigint) and ((- 5638.15) > cbigint)))) (type: boolean) - Statistics: Num rows: 2909 Data size: 81456 Basic stats: COMPLETE Column stats: NONE + predicate: ((cdouble > 2563.58) and (((cbigint >= cint) and ((csmallint < cint) and (cfloat < -5638.15))) or ((cdouble <= cbigint) and (-5638.15 > cbigint)))) (type: boolean) + Statistics: Num rows: 664 Data size: 18593 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cdouble (type: double), cfloat (type: float) outputColumnNames: cdouble, cfloat - Statistics: Num rows: 2909 Data size: 81456 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 664 Data size: 18593 Basic stats: COMPLETE Column stats: NONE Group By Operator aggregations: var_samp(cdouble), count(cfloat), sum(cfloat), var_pop(cdouble), stddev_pop(cdouble), sum(cdouble) keys: cdouble (type: double) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6 - Statistics: Num rows: 2909 Data size: 81456 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 664 Data size: 18593 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: double) sort order: + Map-reduce partition columns: _col0 (type: double) - Statistics: Num rows: 2909 Data size: 81456 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 664 Data size: 18593 Basic stats: COMPLETE Column stats: NONE value expressions: _col1 (type: struct), _col2 (type: bigint), _col3 (type: double), _col4 (type: struct), _col5 (type: struct), _col6 (type: double) Execution mode: vectorized Reduce Operator Tree: @@ -5732,11 +5732,11 @@ STAGE PLANS: keys: KEY._col0 (type: double) mode: mergepartial outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6 - Statistics: Num rows: 1454 Data size: 40713 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 332 Data size: 9296 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: double), _col1 (type: double), _col5 (type: double), (_col0 + _col1) (type: double), (_col0 * 762) (type: double), _col6 (type: double), ((- 863.257) % (_col0 * 762)) (type: double), (2563.58 * _col1) (type: double), (- _col1) (type: double), _col2 (type: bigint), ((2563.58 * _col1) + (- 5638.15)) (type: double), ((- _col1) * ((2563.58 * _col1) + (- 5638.15))) (type: double), _col3 (type: double), _col4 (type: double), (_col0 - (- _col1)) (type: double) + expressions: _col0 (type: double), _col1 (type: double), _col5 (type: double), (_col0 + _col1) (type: double), (_col0 * 762) (type: double), _col6 (type: double), (-863.257 % (_col0 * 762)) (type: double), (2563.58 * _col1) (type: double), (- _col1) (type: double), _col2 (type: bigint), ((2563.58 * _col1) + -5638.15) (type: double), ((- _col1) * ((2563.58 * _col1) + -5638.15)) (type: double), _col3 (type: double), _col4 (type: double), (_col0 - (- _col1)) (type: double) outputColumnNames: _col0, _col1, _col10, _col11, _col12, _col13, _col14, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9 - Statistics: Num rows: 1454 Data size: 40713 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 332 Data size: 9296 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false table: @@ -5751,16 +5751,16 @@ STAGE PLANS: Reduce Output Operator key expressions: _col0 (type: double) sort order: + - Statistics: Num rows: 1454 Data size: 40713 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 332 Data size: 9296 Basic stats: COMPLETE Column stats: NONE value expressions: _col1 (type: double), _col2 (type: double), _col3 (type: double), _col4 (type: bigint), _col5 (type: double), _col6 (type: double), _col7 (type: double), _col8 (type: double), _col9 (type: double), _col10 (type: double), _col11 (type: double), _col12 (type: double), _col13 (type: double), _col14 (type: double) Reduce Operator Tree: Select Operator expressions: KEY.reducesinkkey0 (type: double), VALUE._col0 (type: double), VALUE._col1 (type: double), VALUE._col2 (type: double), VALUE._col3 (type: bigint), VALUE._col4 (type: double), VALUE._col5 (type: double), VALUE._col6 (type: double), VALUE._col7 (type: double), VALUE._col8 (type: double), VALUE._col9 (type: double), VALUE._col10 (type: double), VALUE._col11 (type: double), VALUE._col12 (type: double), VALUE._col13 (type: double), VALUE._col12 (type: double) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15 - Statistics: Num rows: 1454 Data size: 40713 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 332 Data size: 9296 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false - Statistics: Num rows: 1454 Data size: 40713 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 332 Data size: 9296 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat @@ -5960,7 +5960,7 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 1209 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: ((ctimestamp1 <> 0) and ((((((((- 257) <> ctinyint) and cboolean2 is not null) and ((cstring1 rlike '.*ss') and ((- 10669) < ctimestamp1))) or (ctimestamp2 = (- 10669))) or ((ctimestamp1 < 0) and (cstring2 like '%b%'))) or (cdouble = cint)) or (cboolean1 is null and (cfloat < cint)))) (type: boolean) + predicate: ((ctimestamp1 <> 0) and (((((((-257 <> ctinyint) and cboolean2 is not null) and ((cstring1 rlike '.*ss') and (-10669 < ctimestamp1))) or (ctimestamp2 = -10669)) or ((ctimestamp1 < 0) and (cstring2 like '%b%'))) or (cdouble = cint)) or (cboolean1 is null and (cfloat < cint)))) (type: boolean) Statistics: Num rows: 1209 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: ctimestamp1 (type: timestamp), cstring1 (type: string), cint (type: int), csmallint (type: smallint), ctinyint (type: tinyint), cfloat (type: float), cdouble (type: double) @@ -5987,7 +5987,7 @@ STAGE PLANS: outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14 Statistics: Num rows: 604 Data size: 188462 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: timestamp), _col1 (type: string), _col2 (type: double), (_col2 * 10.175) (type: double), (- _col2) (type: double), _col3 (type: double), (- _col2) (type: double), ((- 26.28) - _col2) (type: double), _col4 (type: bigint), (- _col4) (type: bigint), (((- 26.28) - _col2) * (- _col2)) (type: double), _col5 (type: tinyint), ((((- 26.28) - _col2) * (- _col2)) * (- _col4)) (type: double), (- (_col2 * 10.175)) (type: double), _col6 (type: double), (_col6 + ((((- 26.28) - _col2) * (- _col2)) * (- _col4))) (type: double), (- (- _col2)) (type: double), ((- _col4) / _col2) (type: double), _col7 (type: double), (10.175 / _col3) (type: double), _col8 (type: double), _col9 (type: double), ((_col6 + ((((- 26.28) - _col2) * (- _col2)) * (- _col4))) - ((((- 26.28) - _col2) * (- _col2)) * (- _col4))) (type: double), (- (- (_col2 * 10.175))) (type: double), _col10 (type: double), (((_col6 + ((((- 26.28) - _col2) * (- _col2)) * (- _col4))) - ((((- 26.28) - _col2) * (- _col2)) * (- _col4))) * 10.175) (type: double), (10.175 % (10.175 / _col3)) (type: double), (- _col5) (type: tinyint), _col11 (type: double), _col12 (type: double), (- (((- 26.28) - _col2) * (- _col2))) (type: double), ((- _col2) % _col10) (type: double), ((- 26.28) / (- _col5)) (type: double), _col13 (type: double), _col14 (type: bigint), ((_col6 + ((((- 26.28) - _col2) * (- _col2)) * (- _col4))) / _col7) (type: double), (- (- _col4)) (type: bigint), _col4 (type: bigint), ((_col6 + ((((- 26.28) - _col2) * (- _col2)) * (- _col4))) % (- 26.28)) (type: double) + expressions: _col0 (type: timestamp), _col1 (type: string), _col2 (type: double), (_col2 * 10.175) (type: double), (- _col2) (type: double), _col3 (type: double), (- _col2) (type: double), (-26.28 - _col2) (type: double), _col4 (type: bigint), (- _col4) (type: bigint), ((-26.28 - _col2) * (- _col2)) (type: double), _col5 (type: tinyint), (((-26.28 - _col2) * (- _col2)) * (- _col4)) (type: double), (- (_col2 * 10.175)) (type: double), _col6 (type: double), (_col6 + (((-26.28 - _col2) * (- _col2)) * (- _col4))) (type: double), (- (- _col2)) (type: double), ((- _col4) / _col2) (type: double), _col7 (type: double), (10.175 / _col3) (type: double), _col8 (type: double), _col9 (type: double), ((_col6 + (((-26.28 - _col2) * (- _col2)) * (- _col4))) - (((-26.28 - _col2) * (- _col2)) * (- _col4))) (type: double), (- (- (_col2 * 10.175))) (type: double), _col10 (type: double), (((_col6 + (((-26.28 - _col2) * (- _col2)) * (- _col4))) - (((-26.28 - _col2) * (- _col2)) * (- _col4))) * 10.175) (type: double), (10.175 % (10.175 / _col3)) (type: double), (- _col5) (type: tinyint), _col11 (type: double), _col12 (type: double), (- ((-26.28 - _col2) * (- _col2))) (type: double), ((- _col2) % _col10) (type: double), (-26.28 / (- _col5)) (type: double), _col13 (type: double), _col14 (type: bigint), ((_col6 + (((-26.28 - _col2) * (- _col2)) * (- _col4))) / _col7) (type: double), (- (- _col4)) (type: bigint), _col4 (type: bigint), ((_col6 + (((-26.28 - _col2) * (- _col2)) * (- _col4))) % -26.28) (type: double) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24, _col25, _col26, _col27, _col28, _col29, _col30, _col31, _col32, _col33, _col34, _col35, _col36, _col37, _col38 Statistics: Num rows: 604 Data size: 188462 Basic stats: COMPLETE Column stats: NONE File Output Operator @@ -6463,7 +6463,7 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 1347 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (cboolean1 is not null and (((((cdouble < csmallint) and ((cboolean2 = cboolean1) and (cbigint <= (- 863.257)))) or ((cint >= (- 257)) and (cstring1 is not null and (cboolean1 >= 1)))) or (cstring2 rlike 'b')) or ((csmallint >= ctinyint) and ctimestamp2 is null))) (type: boolean) + predicate: (cboolean1 is not null and (((((cdouble < csmallint) and ((cboolean2 = cboolean1) and (cbigint <= -863.257))) or ((cint >= -257) and (cstring1 is not null and (cboolean1 >= 1)))) or (cstring2 rlike 'b')) or ((csmallint >= ctinyint) and ctimestamp2 is null))) (type: boolean) Statistics: Num rows: 523 Data size: 146469 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cboolean1 (type: boolean), cfloat (type: float), cbigint (type: bigint), cint (type: int), cdouble (type: double), ctinyint (type: tinyint), csmallint (type: smallint) @@ -6490,7 +6490,7 @@ STAGE PLANS: outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10 Statistics: Num rows: 261 Data size: 73094 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: boolean), _col1 (type: float), ((_col2 - 10.175) + _col3) (type: double), _col5 (type: bigint), _col6 (type: double), (- (10.175 + (- _col1))) (type: double), (79.553 / _col6) (type: double), (_col3 % (79.553 / _col6)) (type: double), _col7 (type: bigint), _col8 (type: double), ((- 1.389) * _col5) (type: double), (- _col1) (type: float), (_col7 - ((- 1.389) * _col5)) (type: double), _col9 (type: double), (- (_col7 - ((- 1.389) * _col5))) (type: double), _col10 (type: double), (- _col10) (type: double), (_col10 * _col7) (type: double), ((- 26.28) / _col1) (type: double), _col2 (type: bigint), (_col2 - 10.175) (type: double), _col3 (type: double), (_col3 % _col1) (type: double), (10.175 + (- _col1)) (type: double), _col4 (type: double) + expressions: _col0 (type: boolean), _col1 (type: float), ((_col2 - 10.175) + _col3) (type: double), _col5 (type: bigint), _col6 (type: double), (- (10.175 + (- _col1))) (type: double), (79.553 / _col6) (type: double), (_col3 % (79.553 / _col6)) (type: double), _col7 (type: bigint), _col8 (type: double), (-1.389 * _col5) (type: double), (- _col1) (type: float), (_col7 - (-1.389 * _col5)) (type: double), _col9 (type: double), (- (_col7 - (-1.389 * _col5))) (type: double), _col10 (type: double), (- _col10) (type: double), (_col10 * _col7) (type: double), (-26.28 / _col1) (type: double), _col2 (type: bigint), (_col2 - 10.175) (type: double), _col3 (type: double), (_col3 % _col1) (type: double), (10.175 + (- _col1)) (type: double), _col4 (type: double) outputColumnNames: _col0, _col1, _col10, _col11, _col12, _col13, _col14, _col15, _col17, _col18, _col19, _col2, _col20, _col21, _col22, _col23, _col24, _col25, _col3, _col4, _col5, _col6, _col7, _col8, _col9 Statistics: Num rows: 261 Data size: 73094 Basic stats: COMPLETE Column stats: NONE File Output Operator diff --git ql/src/test/results/clientpositive/vectorized_math_funcs.q.out ql/src/test/results/clientpositive/vectorized_math_funcs.q.out index 181ab51..c5eecd3 100644 --- ql/src/test/results/clientpositive/vectorized_math_funcs.q.out +++ ql/src/test/results/clientpositive/vectorized_math_funcs.q.out @@ -118,7 +118,7 @@ STAGE PLANS: alias: alltypesorc Statistics: Num rows: 11788 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (((cbigint % 500) = 0) and (sin(cfloat) >= (- 1.0))) (type: boolean) + predicate: (((cbigint % 500) = 0) and (sin(cfloat) >= -1.0)) (type: boolean) Statistics: Num rows: 1964 Data size: 62851 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: cdouble (type: double), round(cdouble, 2) (type: double), floor(cdouble) (type: bigint), ceil(cdouble) (type: bigint), rand() (type: double), rand(98007) (type: double), exp(ln(cdouble)) (type: double), ln(cdouble) (type: double), ln(cfloat) (type: double), log10(cdouble) (type: double), log2(cdouble) (type: double), log2((cdouble - 15601.0)) (type: double), log2(cfloat) (type: double), log2(cbigint) (type: double), log2(cint) (type: double), log2(csmallint) (type: double), log2(ctinyint) (type: double), log(2.0, cdouble) (type: double), power(log2(cdouble), 2.0) (type: double), power(log2(cdouble), 2.0) (type: double), sqrt(cdouble) (type: double), sqrt(cbigint) (type: double), bin(cbigint) (type: string), hex(cdouble) (type: string), conv(cbigint, 10, 16) (type: string), abs(cdouble) (type: double), abs(ctinyint) (type: int), (cint pmod 3) (type: int), sin(cdouble) (type: double), asin(cdouble) (type: double), cos(cdouble) (type: double), acos(cdouble) (type: double), atan(cdouble) (type: double), degrees(cdouble) (type: double), radians(cdouble) (type: double), cdouble (type: double), cbigint (type: bigint), (- cdouble) (type: double), sign(cdouble) (type: double), sign(cbigint) (type: double), cos(((- sin(log(cdouble))) + 3.14159)) (type: double) diff --git ql/src/test/results/clientpositive/vectorized_parquet.q.out ql/src/test/results/clientpositive/vectorized_parquet.q.out index 2e459a8..2b22814 100644 --- ql/src/test/results/clientpositive/vectorized_parquet.q.out +++ ql/src/test/results/clientpositive/vectorized_parquet.q.out @@ -70,7 +70,7 @@ STAGE PLANS: predicate: (cint = 528534767) (type: boolean) Statistics: Num rows: 6144 Data size: 36864 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: cint (type: int), ctinyint (type: tinyint), csmallint (type: smallint), cfloat (type: float), cdouble (type: double), cstring1 (type: string) + expressions: 528534767 (type: int), ctinyint (type: tinyint), csmallint (type: smallint), cfloat (type: float), cdouble (type: double), cstring1 (type: string) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 Statistics: Num rows: 6144 Data size: 36864 Basic stats: COMPLETE Column stats: NONE Limit