You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2018/07/24 19:40:29 UTC
[09/11] hive git commit: HIVE-20082: HiveDecimal to string conversion
doesn't format the decimal correctly (Jason Dere,
reviewed by Ashutosh Chauhan)
HIVE-20082: HiveDecimal to string conversion doesn't format the decimal correctly (Jason Dere, reviewed by Ashutosh Chauhan)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/26f4d8ea
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/26f4d8ea
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/26f4d8ea
Branch: refs/heads/master-txnstats
Commit: 26f4d8ea422eda39c2d24c2cce99f74686a40f48
Parents: 87b9f64
Author: Jason Dere <jd...@hortonworks.com>
Authored: Tue Jul 24 10:30:15 2018 -0700
Committer: Jason Dere <jd...@hortonworks.com>
Committed: Tue Jul 24 10:30:15 2018 -0700
----------------------------------------------------------------------
.../predicate/TestAccumuloRangeGenerator.java | 7 +-
.../DTIColumnArithmeticDTIColumnNoConvert.txt | 1 -
.../DTIScalarArithmeticDTIColumnNoConvert.txt | 1 -
.../hadoop/hive/ql/exec/FunctionRegistry.java | 7 +-
.../ql/exec/vector/VectorizationContext.java | 26 +--
.../vector/expressions/CastDecimalToString.java | 2 +-
.../hive/ql/index/IndexPredicateAnalyzer.java | 2 +
.../calcite/translator/RexNodeConverter.java | 4 +-
.../hive/ql/optimizer/physical/Vectorizer.java | 3 +-
.../apache/hadoop/hive/ql/udf/UDFToString.java | 181 -------------------
.../hive/ql/udf/generic/GenericUDFToString.java | 79 ++++++++
.../vector/expressions/TestVectorTypeCasts.java | 6 +-
.../clientpositive/autoColumnStats_6.q.out | 2 +-
.../clientpositive/bucket_map_join_spark1.q.out | 4 +-
.../clientpositive/bucket_map_join_spark2.q.out | 4 +-
.../clientpositive/bucket_map_join_spark3.q.out | 4 +-
.../results/clientpositive/bucketmapjoin5.q.out | 4 +-
.../clientpositive/bucketmapjoin_negative.q.out | 2 +-
.../bucketmapjoin_negative2.q.out | 2 +-
.../bucketsortoptimize_insert_3.q.out | 2 +-
.../clientpositive/char_pad_convert.q.out | 4 +-
.../column_pruner_multiple_children.q.out | 2 +-
.../test/results/clientpositive/decimal_2.q.out | 4 +-
.../test/results/clientpositive/groupby12.q.out | 2 +-
.../test/results/clientpositive/groupby5.q.out | 2 +-
.../clientpositive/groupby5_noskew.q.out | 2 +-
.../results/clientpositive/groupby7_map.q.out | 4 +-
.../groupby7_map_multi_single_reducer.q.out | 4 +-
.../clientpositive/groupby7_map_skew.q.out | 4 +-
.../clientpositive/groupby7_noskew.q.out | 4 +-
.../groupby7_noskew_multi_single_reducer.q.out | 4 +-
.../test/results/clientpositive/groupby8.q.out | 8 +-
.../results/clientpositive/groupby8_map.q.out | 4 +-
.../clientpositive/groupby8_map_skew.q.out | 4 +-
.../clientpositive/groupby8_noskew.q.out | 4 +-
.../test/results/clientpositive/groupby9.q.out | 20 +-
.../clientpositive/groupby_cube_multi_gby.q.out | 2 +-
.../clientpositive/groupby_position.q.out | 8 +-
.../clientpositive/groupby_sort_1_23.q.out | 2 +-
.../clientpositive/groupby_sort_skew_1_23.q.out | 4 +-
.../infer_bucket_sort_dyn_part.q.out | 2 +-
.../infer_bucket_sort_grouping_operators.q.out | 6 +-
.../infer_bucket_sort_map_operators.q.out | 6 +-
.../infer_bucket_sort_num_buckets.q.out | 2 +-
.../results/clientpositive/input_part10.q.out | 2 +-
.../clientpositive/llap/bucketmapjoin1.q.out | 4 +-
.../clientpositive/llap/bucketmapjoin2.q.out | 6 +-
.../clientpositive/llap/bucketmapjoin3.q.out | 4 +-
.../clientpositive/llap/bucketmapjoin4.q.out | 4 +-
.../llap/default_constraint.q.out | 4 +-
.../llap/dynamic_partition_pruning.q.out | 16 +-
.../llap/insert_into_default_keyword.q.out | 20 +-
.../llap/materialized_view_rewrite_6.q.out | 4 +-
.../llap/multi_insert_lateral_view.q.out | 32 ++--
.../clientpositive/llap/orc_merge1.q.out | 6 +-
.../clientpositive/llap/orc_merge10.q.out | 6 +-
.../clientpositive/llap/orc_merge2.q.out | 2 +-
.../clientpositive/llap/orc_merge_diff_fs.q.out | 6 +-
.../clientpositive/llap/rcfile_merge2.q.out | 2 +-
.../llap/schema_evol_text_nonvec_part.q.out | 4 +-
...hema_evol_text_nonvec_part_all_complex.q.out | 16 +-
...l_text_nonvec_part_all_complex_llap_io.q.out | 16 +-
.../schema_evol_text_nonvec_part_llap_io.q.out | 4 +-
.../llap/schema_evol_text_vec_part.q.out | 4 +-
.../schema_evol_text_vec_part_all_complex.q.out | 16 +-
.../llap/schema_evol_text_vecrow_part.q.out | 4 +-
...hema_evol_text_vecrow_part_all_complex.q.out | 16 +-
.../results/clientpositive/llap/stats11.q.out | 4 +-
.../clientpositive/llap/subquery_multi.q.out | 6 +-
.../llap/tez_union_multiinsert.q.out | 30 +--
.../results/clientpositive/llap/union6.q.out | 2 +-
.../clientpositive/llap/unionDistinct_1.q.out | 18 +-
.../clientpositive/llap/unionDistinct_3.q.out | 10 +-
.../llap/vector_case_when_1.q.out | 10 +-
.../llap/vector_char_mapjoin1.q.out | 6 +-
.../clientpositive/llap/vector_decimal_1.q.out | 2 +-
.../clientpositive/llap/vector_decimal_2.q.out | 8 +-
.../llap/vector_decimal_expressions.q.out | 28 +--
.../llap/vector_string_concat.q.out | 2 +-
.../clientpositive/llap/vector_udf1.q.out | 6 +-
.../llap/vector_varchar_mapjoin1.q.out | 6 +-
.../clientpositive/llap/vectorized_casts.q.out | 2 +-
.../vectorized_dynamic_partition_pruning.q.out | 16 +-
.../clientpositive/multi_insert_mixed.q.out | 4 +-
.../results/clientpositive/orc_merge1.q.out | 6 +-
.../results/clientpositive/orc_merge10.q.out | 6 +-
.../results/clientpositive/orc_merge2.q.out | 2 +-
.../clientpositive/orc_merge_diff_fs.q.out | 6 +-
.../clientpositive/perf/spark/query36.q.out | 6 +-
.../clientpositive/perf/spark/query70.q.out | 6 +-
.../clientpositive/perf/spark/query86.q.out | 6 +-
.../clientpositive/perf/tez/query36.q.out | 4 +-
.../clientpositive/perf/tez/query70.q.out | 4 +-
.../clientpositive/perf/tez/query86.q.out | 4 +-
.../results/clientpositive/show_functions.q.out | 1 -
.../results/clientpositive/smb_mapjoin_20.q.out | 12 +-
.../spark/bucket_map_join_spark1.q.out | 4 +-
.../spark/bucket_map_join_spark2.q.out | 4 +-
.../spark/bucket_map_join_spark3.q.out | 4 +-
.../clientpositive/spark/bucketmapjoin1.q.out | 4 +-
.../clientpositive/spark/bucketmapjoin2.q.out | 6 +-
.../clientpositive/spark/bucketmapjoin3.q.out | 4 +-
.../clientpositive/spark/bucketmapjoin4.q.out | 4 +-
.../clientpositive/spark/bucketmapjoin5.q.out | 4 +-
.../spark/bucketmapjoin_negative.q.out | 2 +-
.../spark/bucketmapjoin_negative2.q.out | 2 +-
.../spark/dynamic_rdd_cache.q.out | 8 +-
.../results/clientpositive/spark/groupby5.q.out | 2 +-
.../clientpositive/spark/groupby5_noskew.q.out | 2 +-
.../clientpositive/spark/groupby7_map.q.out | 4 +-
.../groupby7_map_multi_single_reducer.q.out | 4 +-
.../spark/groupby7_map_skew.q.out | 4 +-
.../clientpositive/spark/groupby7_noskew.q.out | 4 +-
.../groupby7_noskew_multi_single_reducer.q.out | 4 +-
.../results/clientpositive/spark/groupby8.q.out | 8 +-
.../clientpositive/spark/groupby8_map.q.out | 4 +-
.../spark/groupby8_map_skew.q.out | 4 +-
.../clientpositive/spark/groupby8_noskew.q.out | 4 +-
.../results/clientpositive/spark/groupby9.q.out | 20 +-
.../clientpositive/spark/groupby_position.q.out | 8 +-
.../spark/groupby_sort_1_23.q.out | 2 +-
.../spark/groupby_sort_skew_1_23.q.out | 4 +-
.../spark/infer_bucket_sort_map_operators.q.out | 6 +-
.../spark/multi_insert_lateral_view.q.out | 32 ++--
.../spark/multi_insert_mixed.q.out | 4 +-
.../clientpositive/spark/smb_mapjoin_20.q.out | 12 +-
.../spark/spark_dynamic_partition_pruning.q.out | 44 ++---
...k_vectorized_dynamic_partition_pruning.q.out | 44 ++---
.../results/clientpositive/spark/stats1.q.out | 2 +-
.../clientpositive/spark/subquery_multi.q.out | 6 +-
.../results/clientpositive/spark/union17.q.out | 8 +-
.../results/clientpositive/spark/union18.q.out | 2 +-
.../results/clientpositive/spark/union19.q.out | 4 +-
.../results/clientpositive/spark/union20.q.out | 4 +-
.../results/clientpositive/spark/union32.q.out | 4 +-
.../results/clientpositive/spark/union33.q.out | 4 +-
.../results/clientpositive/spark/union6.q.out | 2 +-
.../clientpositive/spark/union_remove_19.q.out | 4 +-
.../spark/vector_string_concat.q.out | 2 +-
ql/src/test/results/clientpositive/stats1.q.out | 2 +-
.../results/clientpositive/tablevalues.q.out | 2 +-
ql/src/test/results/clientpositive/udf3.q.out | 2 +-
.../results/clientpositive/udf_string.q.out | 9 +-
.../test/results/clientpositive/union17.q.out | 6 +-
.../test/results/clientpositive/union18.q.out | 2 +-
.../test/results/clientpositive/union19.q.out | 4 +-
.../test/results/clientpositive/union20.q.out | 4 +-
.../test/results/clientpositive/union32.q.out | 4 +-
.../test/results/clientpositive/union33.q.out | 4 +-
ql/src/test/results/clientpositive/union6.q.out | 2 +-
.../clientpositive/union_remove_19.q.out | 4 +-
.../clientpositive/vector_case_when_1.q.out | 10 +-
.../clientpositive/vector_char_mapjoin1.q.out | 4 +-
.../clientpositive/vector_decimal_1.q.out | 2 +-
.../vector_decimal_expressions.q.out | 28 +--
.../clientpositive/vector_string_concat.q.out | 2 +-
.../vector_varchar_mapjoin1.q.out | 4 +-
.../clientpositive/vectorized_casts.q.out | 2 +-
.../PrimitiveObjectInspectorConverter.java | 3 +-
.../PrimitiveObjectInspectorUtils.java | 3 +-
.../TestObjectInspectorConverters.java | 46 ++++-
.../TestPrimitiveObjectInspectorUtils.java | 14 ++
162 files changed, 648 insertions(+), 695 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/accumulo-handler/src/test/org/apache/hadoop/hive/accumulo/predicate/TestAccumuloRangeGenerator.java
----------------------------------------------------------------------
diff --git a/accumulo-handler/src/test/org/apache/hadoop/hive/accumulo/predicate/TestAccumuloRangeGenerator.java b/accumulo-handler/src/test/org/apache/hadoop/hive/accumulo/predicate/TestAccumuloRangeGenerator.java
index 9df2aad..4975fa0 100644
--- a/accumulo-handler/src/test/org/apache/hadoop/hive/accumulo/predicate/TestAccumuloRangeGenerator.java
+++ b/accumulo-handler/src/test/org/apache/hadoop/hive/accumulo/predicate/TestAccumuloRangeGenerator.java
@@ -38,7 +38,7 @@ import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc;
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.udf.UDFToString;
+import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToString;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPAnd;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPEqual;
@@ -388,12 +388,11 @@ public class TestAccumuloRangeGenerator {
ExprNodeGenericFuncDesc addition = new ExprNodeGenericFuncDesc(TypeInfoFactory.intTypeInfo, plus, Arrays.asList(fourty, fifty));
// cast(.... as string)
- UDFToString stringCast = new UDFToString();
- GenericUDFBridge stringCastBridge = new GenericUDFBridge("cast", false, stringCast.getClass().getName());
+ GenericUDFToString stringCast = new GenericUDFToString();
// cast (40 + 50 as string)
ExprNodeGenericFuncDesc cast = new ExprNodeGenericFuncDesc(TypeInfoFactory.stringTypeInfo,
- stringCastBridge, "cast", Collections.<ExprNodeDesc> singletonList(addition));
+ stringCast, "cast", Collections.<ExprNodeDesc> singletonList(addition));
ExprNodeDesc key = new ExprNodeColumnDesc(TypeInfoFactory.stringTypeInfo, "key", null,
false);
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt b/ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt
index bfccf2a..5307d33 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIColumnNoConvert.txt
@@ -18,7 +18,6 @@
package org.apache.hadoop.hive.ql.exec.vector.expressions.gen;
-import org.apache.hadoop.hive.ql.udf.UDFToString;
import org.apache.hadoop.hive.ql.exec.vector.expressions.StringExpr;
import org.apache.hadoop.io.LongWritable;
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt b/ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt
index 514f3f9..f8cfa57 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt
@@ -18,7 +18,6 @@
package org.apache.hadoop.hive.ql.exec.vector.expressions.gen;
-import org.apache.hadoop.hive.ql.udf.UDFToString;
import org.apache.hadoop.hive.ql.exec.vector.expressions.StringExpr;
import org.apache.hadoop.io.LongWritable;
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
index 3d5506f..4459184 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
@@ -109,7 +109,6 @@ import org.apache.hadoop.hive.ql.udf.UDFToFloat;
import org.apache.hadoop.hive.ql.udf.UDFToInteger;
import org.apache.hadoop.hive.ql.udf.UDFToLong;
import org.apache.hadoop.hive.ql.udf.UDFToShort;
-import org.apache.hadoop.hive.ql.udf.UDFToString;
import org.apache.hadoop.hive.ql.udf.UDFType;
import org.apache.hadoop.hive.ql.udf.UDFUUID;
import org.apache.hadoop.hive.ql.udf.UDFUnbase64;
@@ -402,12 +401,11 @@ public final class FunctionRegistry {
system.registerUDF(serdeConstants.BIGINT_TYPE_NAME, UDFToLong.class, false, UDFToLong.class.getSimpleName());
system.registerUDF(serdeConstants.FLOAT_TYPE_NAME, UDFToFloat.class, false, UDFToFloat.class.getSimpleName());
system.registerUDF(serdeConstants.DOUBLE_TYPE_NAME, UDFToDouble.class, false, UDFToDouble.class.getSimpleName());
- system.registerUDF(serdeConstants.STRING_TYPE_NAME, UDFToString.class, false, UDFToString.class.getSimpleName());
// following mapping is to enable UDFName to UDF while generating expression for default value (in operator tree)
// e.g. cast(4 as string) is serialized as UDFToString(4) into metastore, to allow us to generate appropriate UDF for
// UDFToString we need the following mappings
// Rest of the types e.g. DATE, CHAR, VARCHAR etc are already registered
- system.registerUDF(UDFToString.class.getSimpleName(), UDFToString.class, false, UDFToString.class.getSimpleName());
+ // TODO: According to vgarg, these function mappings are no longer necessary as the default value logic has changed.
system.registerUDF(UDFToBoolean.class.getSimpleName(), UDFToBoolean.class, false, UDFToBoolean.class.getSimpleName());
system.registerUDF(UDFToDouble.class.getSimpleName(), UDFToDouble.class, false, UDFToDouble.class.getSimpleName());
system.registerUDF(UDFToFloat.class.getSimpleName(), UDFToFloat.class, false, UDFToFloat.class.getSimpleName());
@@ -416,6 +414,7 @@ public final class FunctionRegistry {
system.registerUDF(UDFToShort.class.getSimpleName(), UDFToShort.class, false, UDFToShort.class.getSimpleName());
system.registerUDF(UDFToByte.class.getSimpleName(), UDFToByte.class, false, UDFToByte.class.getSimpleName());
+ system.registerGenericUDF(serdeConstants.STRING_TYPE_NAME, GenericUDFToString.class);
system.registerGenericUDF(serdeConstants.DATE_TYPE_NAME, GenericUDFToDate.class);
system.registerGenericUDF(serdeConstants.TIMESTAMP_TYPE_NAME, GenericUDFTimestamp.class);
system.registerGenericUDF(serdeConstants.TIMESTAMPLOCALTZ_TYPE_NAME, GenericUDFToTimestampLocalTZ.class);
@@ -1626,7 +1625,7 @@ public final class FunctionRegistry {
return udfClass == UDFToBoolean.class || udfClass == UDFToByte.class ||
udfClass == UDFToDouble.class || udfClass == UDFToFloat.class ||
udfClass == UDFToInteger.class || udfClass == UDFToLong.class ||
- udfClass == UDFToShort.class || udfClass == UDFToString.class ||
+ udfClass == UDFToShort.class || udfClass == GenericUDFToString.class ||
udfClass == GenericUDFToVarchar.class || udfClass == GenericUDFToChar.class ||
udfClass == GenericUDFTimestamp.class || udfClass == GenericUDFToBinary.class ||
udfClass == GenericUDFToDate.class || udfClass == GenericUDFToDecimal.class ||
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
index 5631347..20cc894 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
@@ -440,6 +440,7 @@ public class VectorizationContext {
// Set of UDF classes for type casting data types in row-mode.
private static Set<Class<?>> castExpressionUdfs = new HashSet<Class<?>>();
static {
+ castExpressionUdfs.add(GenericUDFToString.class);
castExpressionUdfs.add(GenericUDFToDecimal.class);
castExpressionUdfs.add(GenericUDFToBinary.class);
castExpressionUdfs.add(GenericUDFToDate.class);
@@ -454,7 +455,6 @@ public class VectorizationContext {
castExpressionUdfs.add(UDFToBoolean.class);
castExpressionUdfs.add(UDFToDouble.class);
castExpressionUdfs.add(UDFToFloat.class);
- castExpressionUdfs.add(UDFToString.class);
castExpressionUdfs.add(UDFToInteger.class);
castExpressionUdfs.add(UDFToLong.class);
castExpressionUdfs.add(UDFToShort.class);
@@ -1139,7 +1139,7 @@ public class VectorizationContext {
udfClass = new UDFToDouble();
break;
case STRING:
- udfClass = new UDFToString();
+ genericUdf = new GenericUDFToString();
break;
case CHAR:
genericUdf = new GenericUDFToChar();
@@ -1207,11 +1207,7 @@ public class VectorizationContext {
|| udfClass.equals(UDFConv.class)
|| udfClass.equals(UDFFromUnixTime.class) && isIntFamily(arg0Type(expr))
|| isCastToIntFamily(udfClass) && isStringFamily(arg0Type(expr))
- || isCastToFloatFamily(udfClass) && isStringFamily(arg0Type(expr))
- || udfClass.equals(UDFToString.class) &&
- (arg0Type(expr).equals("timestamp")
- || arg0Type(expr).equals("double")
- || arg0Type(expr).equals("float"))) {
+ || isCastToFloatFamily(udfClass) && isStringFamily(arg0Type(expr))) {
return true;
}
} else if ((gudf instanceof GenericUDFTimestamp && isStringFamily(arg0Type(expr)))
@@ -1229,16 +1225,13 @@ public class VectorizationContext {
|| gudf instanceof GenericUDFCase
|| gudf instanceof GenericUDFWhen) {
return true;
- } else if (gudf instanceof GenericUDFToChar &&
+ } else if ((gudf instanceof GenericUDFToString
+ || gudf instanceof GenericUDFToChar
+ || gudf instanceof GenericUDFToVarchar) &&
(arg0Type(expr).equals("timestamp")
|| arg0Type(expr).equals("double")
|| arg0Type(expr).equals("float"))) {
return true;
- } else if (gudf instanceof GenericUDFToVarchar &&
- (arg0Type(expr).equals("timestamp")
- || arg0Type(expr).equals("double")
- || arg0Type(expr).equals("float"))) {
- return true;
} else if (gudf instanceof GenericUDFBetween && (mode == VectorExpressionDescriptor.Mode.PROJECTION)) {
// between has 4 args here, but can be vectorized like this
return true;
@@ -2061,6 +2054,8 @@ public class VectorizationContext {
} else if (udf instanceof GenericUDFBridge) {
ve = getGenericUDFBridgeVectorExpression((GenericUDFBridge) udf, childExpr, mode,
returnType);
+ } else if (udf instanceof GenericUDFToString) {
+ ve = getCastToString(childExpr, returnType);
} else if (udf instanceof GenericUDFToDecimal) {
ve = getCastToDecimal(childExpr, returnType);
} else if (udf instanceof GenericUDFToChar) {
@@ -2508,8 +2503,6 @@ public class VectorizationContext {
ve = getCastToBoolean(childExpr);
} else if (isCastToFloatFamily(cl)) {
ve = getCastToDoubleExpression(cl, childExpr, returnType);
- } else if (cl.equals(UDFToString.class)) {
- ve = getCastToString(childExpr, returnType);
}
if (ve == null && childExpr instanceof ExprNodeGenericFuncDesc) {
ve = getCustomUDFExpression((ExprNodeGenericFuncDesc) childExpr, mode);
@@ -2585,7 +2578,8 @@ public class VectorizationContext {
return ((Number) scalar).toString();
case DECIMAL:
HiveDecimal decimalVal = (HiveDecimal) scalar;
- return decimalVal.toString();
+ DecimalTypeInfo decType = (DecimalTypeInfo) type;
+ return decimalVal.toFormatString(decType.getScale());
default:
throw new HiveException("Unsupported type "+typename+" for cast to String");
}
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToString.java
index a3a0e9d..77bfe13 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToString.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToString.java
@@ -60,7 +60,7 @@ public class CastDecimalToString extends DecimalToStringUnaryUDF {
@Override
protected void func(BytesColumnVector outV, DecimalColumnVector inV, int i) {
HiveDecimalWritable decWritable = inV.vector[i];
- final int byteIndex = decWritable.toBytes(scratchBuffer);
+ final int byteIndex = decWritable.toFormatBytes(inV.scale, scratchBuffer);
assign(outV, i, scratchBuffer, byteIndex, HiveDecimal.SCRATCH_BUFFER_LEN_TO_BYTES - byteIndex);
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/java/org/apache/hadoop/hive/ql/index/IndexPredicateAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/index/IndexPredicateAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/index/IndexPredicateAnalyzer.java
index 6a3f3b4..da31f4d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/index/IndexPredicateAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/index/IndexPredicateAnalyzer.java
@@ -49,6 +49,7 @@ import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToBinary;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToChar;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToDate;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToDecimal;
+import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToString;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToUnixTimeStamp;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToUtcTimestamp;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToVarchar;
@@ -194,6 +195,7 @@ public class IndexPredicateAnalyzer {
GenericUDF udf = funcDesc.getGenericUDF();
// check if its a simple cast expression.
if ((udf instanceof GenericUDFBridge || udf instanceof GenericUDFToBinary
+ || udf instanceof GenericUDFToString
|| udf instanceof GenericUDFToChar || udf instanceof GenericUDFToVarchar
|| udf instanceof GenericUDFToDecimal || udf instanceof GenericUDFToDate
|| udf instanceof GenericUDFToUnixTimeStamp || udf instanceof GenericUDFToUtcTimestamp)
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/RexNodeConverter.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/RexNodeConverter.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/RexNodeConverter.java
index 0a9ab2b..f544f58 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/RexNodeConverter.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/RexNodeConverter.java
@@ -84,6 +84,7 @@ import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToBinary;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToChar;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToDate;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToDecimal;
+import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToString;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToTimestampLocalTZ;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToUnixTimeStamp;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFToVarchar;
@@ -376,7 +377,7 @@ public class RexNodeConverter {
if (udfClassName.equals("UDFToBoolean") || udfClassName.equals("UDFToByte")
|| udfClassName.equals("UDFToDouble") || udfClassName.equals("UDFToInteger")
|| udfClassName.equals("UDFToLong") || udfClassName.equals("UDFToShort")
- || udfClassName.equals("UDFToFloat") || udfClassName.equals("UDFToString"))
+ || udfClassName.equals("UDFToFloat"))
castExpr = true;
}
}
@@ -392,6 +393,7 @@ public class RexNodeConverter {
if (childRexNodeLst != null && childRexNodeLst.size() == 1) {
GenericUDF udf = func.getGenericUDF();
if ((udf instanceof GenericUDFToChar) || (udf instanceof GenericUDFToVarchar)
+ || (udf instanceof GenericUDFToString)
|| (udf instanceof GenericUDFToDecimal) || (udf instanceof GenericUDFToDate)
|| (udf instanceof GenericUDFTimestamp) || (udf instanceof GenericUDFToTimestampLocalTZ)
|| (udf instanceof GenericUDFToBinary) || castExprUsingUDFBridge(udf)) {
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
index 40bd075..eb5b1a8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
@@ -206,7 +206,6 @@ import org.apache.hadoop.hive.ql.udf.UDFToFloat;
import org.apache.hadoop.hive.ql.udf.UDFToInteger;
import org.apache.hadoop.hive.ql.udf.UDFToLong;
import org.apache.hadoop.hive.ql.udf.UDFToShort;
-import org.apache.hadoop.hive.ql.udf.UDFToString;
import org.apache.hadoop.hive.ql.udf.UDFWeekOfYear;
import org.apache.hadoop.hive.ql.udf.UDFYear;
import org.apache.hadoop.hive.ql.udf.generic.*;
@@ -488,7 +487,7 @@ public class Vectorizer implements PhysicalPlanResolver {
supportedGenericUDFs.add(UDFToBoolean.class);
supportedGenericUDFs.add(UDFToFloat.class);
supportedGenericUDFs.add(UDFToDouble.class);
- supportedGenericUDFs.add(UDFToString.class);
+ supportedGenericUDFs.add(GenericUDFToString.class);
supportedGenericUDFs.add(GenericUDFTimestamp.class);
supportedGenericUDFs.add(GenericUDFToDecimal.class);
supportedGenericUDFs.add(GenericUDFToDate.class);
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java
deleted file mode 100755
index a16d429..0000000
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.hive.ql.udf;
-
-import org.apache.hadoop.hive.ql.exec.UDF;
-import org.apache.hadoop.hive.serde2.ByteStream;
-import org.apache.hadoop.hive.serde2.io.ByteWritable;
-import org.apache.hadoop.hive.serde2.io.DateWritableV2;
-import org.apache.hadoop.hive.serde2.io.DoubleWritable;
-import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
-import org.apache.hadoop.hive.serde2.io.ShortWritable;
-import org.apache.hadoop.hive.serde2.io.TimestampLocalTZWritable;
-import org.apache.hadoop.hive.serde2.io.TimestampWritableV2;
-import org.apache.hadoop.hive.serde2.lazy.LazyInteger;
-import org.apache.hadoop.hive.serde2.lazy.LazyLong;
-import org.apache.hadoop.io.BooleanWritable;
-import org.apache.hadoop.io.BytesWritable;
-import org.apache.hadoop.io.FloatWritable;
-import org.apache.hadoop.io.IntWritable;
-import org.apache.hadoop.io.LongWritable;
-import org.apache.hadoop.io.NullWritable;
-import org.apache.hadoop.io.Text;
-
-/**
- * UDFToString.
- *
- */
-public class UDFToString extends UDF {
- private final Text t = new Text();
- private final ByteStream.Output out = new ByteStream.Output();
-
- public UDFToString() {
- }
-
- public Text evaluate(NullWritable i) {
- return null;
- }
-
- private final byte[] trueBytes = {'T', 'R', 'U', 'E'};
- private final byte[] falseBytes = {'F', 'A', 'L', 'S', 'E'};
-
- public Text evaluate(BooleanWritable i) {
- if (i == null) {
- return null;
- } else {
- t.clear();
- t.set(i.get() ? trueBytes : falseBytes);
- return t;
- }
- }
-
- public Text evaluate(ByteWritable i) {
- if (i == null) {
- return null;
- } else {
- out.reset();
- LazyInteger.writeUTF8NoException(out, i.get());
- t.set(out.getData(), 0, out.getLength());
- return t;
- }
- }
-
- public Text evaluate(ShortWritable i) {
- if (i == null) {
- return null;
- } else {
- out.reset();
- LazyInteger.writeUTF8NoException(out, i.get());
- t.set(out.getData(), 0, out.getLength());
- return t;
- }
- }
-
- public Text evaluate(IntWritable i) {
- if (i == null) {
- return null;
- } else {
- out.reset();
- LazyInteger.writeUTF8NoException(out, i.get());
- t.set(out.getData(), 0, out.getLength());
- return t;
- }
- }
-
- public Text evaluate(LongWritable i) {
- if (i == null) {
- return null;
- } else {
- out.reset();
- LazyLong.writeUTF8NoException(out, i.get());
- t.set(out.getData(), 0, out.getLength());
- return t;
- }
- }
-
- public Text evaluate(FloatWritable i) {
- if (i == null) {
- return null;
- } else {
- t.set(i.toString());
- return t;
- }
- }
-
- public Text evaluate(DoubleWritable i) {
- if (i == null) {
- return null;
- } else {
- t.set(i.toString());
- return t;
- }
- }
-
- public Text evaluate(Text i) {
- if (i == null) {
- return null;
- }
- i.set(i.toString());
- return i;
- }
-
- public Text evaluate(DateWritableV2 d) {
- if (d == null) {
- return null;
- } else {
- t.set(d.toString());
- return t;
- }
- }
-
- public Text evaluate(TimestampWritableV2 i) {
- if (i == null) {
- return null;
- } else {
- t.set(i.toString());
- return t;
- }
- }
-
- public Text evaluate(TimestampLocalTZWritable i) {
- if (i == null) {
- return null;
- } else {
- t.set(i.toString());
- return t;
- }
- }
-
- public Text evaluate(HiveDecimalWritable i) {
- if (i == null) {
- return null;
- } else {
- t.set(i.toString());
- return t;
- }
- }
-
- public Text evaluate (BytesWritable bw) {
- if (null == bw) {
- return null;
- }
- t.set(bw.getBytes(),0,bw.getLength());
- return t;
- }
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToString.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToString.java
new file mode 100644
index 0000000..d576441
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToString.java
@@ -0,0 +1,79 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.ql.udf.generic;
+
+import org.apache.hadoop.hive.ql.exec.Description;
+import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorConverter.TextConverter;
+import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Description(name = "string",
+value = "CAST(<value> as STRING) - Converts the argument to a string value.",
+extended = "Example:\n "
++ " > SELECT CAST(1234 AS string) FROM src LIMIT 1;\n"
++ " '1234'")
+public class GenericUDFToString extends GenericUDF {
+ private static final Logger LOG = LoggerFactory.getLogger(GenericUDFToString.class.getName());
+
+ private transient PrimitiveObjectInspector argumentOI;
+ private transient TextConverter converter;
+
+ public GenericUDFToString() {
+ }
+
+ @Override
+ public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException {
+ if (arguments.length != 1) {
+ throw new UDFArgumentException("STRING cast requires a value argument");
+ }
+ try {
+ argumentOI = (PrimitiveObjectInspector) arguments[0];
+ } catch (ClassCastException e) {
+ throw new UDFArgumentException(
+ "The function STRING takes only primitive types");
+ }
+
+ converter = new TextConverter(argumentOI);
+ return PrimitiveObjectInspectorFactory.writableStringObjectInspector;
+ }
+
+ @Override
+ public Object evaluate(DeferredObject[] arguments) throws HiveException {
+ Object o0 = arguments[0].get();
+ if (o0 == null) {
+ return null;
+ }
+
+ return converter.convert(o0);
+ }
+
+ @Override
+ public String getDisplayString(String[] children) {
+ assert (children.length == 1);
+ StringBuilder sb = new StringBuilder();
+ sb.append("CAST( ");
+ sb.append(children[0]);
+ sb.append(" AS STRING)");
+ return sb.toString();
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java
index 4ed087e..e9be8c1 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java
@@ -435,18 +435,18 @@ public class TestVectorTypeCasts {
BytesColumnVector r = (BytesColumnVector) b.cols[1];
// As of HIVE-8745, these decimal values should be trimmed of trailing zeros.
- byte[] v = toBytes("1.1");
+ byte[] v = toBytes("1.10");
assertTrue(((Integer) v.length).toString() + " " + r.length[0], v.length == r.length[0]);
Assert.assertEquals(0,
StringExpr.compare(v, 0, v.length,
r.vector[0], r.start[0], r.length[0]));
- v = toBytes("-2.2");
+ v = toBytes("-2.20");
Assert.assertEquals(0,
StringExpr.compare(v, 0, v.length,
r.vector[1], r.start[1], r.length[1]));
- v = toBytes("9999999999999999");
+ v = toBytes("9999999999999999.00");
Assert.assertEquals(0,
StringExpr.compare(v, 0, v.length,
r.vector[2], r.start[2], r.length[2]));
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/autoColumnStats_6.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/autoColumnStats_6.q.out b/ql/src/test/results/clientpositive/autoColumnStats_6.q.out
index 70788fd..98b5bc0 100644
--- a/ql/src/test/results/clientpositive/autoColumnStats_6.q.out
+++ b/ql/src/test/results/clientpositive/autoColumnStats_6.q.out
@@ -54,7 +54,7 @@ STAGE PLANS:
serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
name: default.orcfile_merge2a
Select Operator
- expressions: _col0 (type: int), _col1 (type: string), '1' (type: string), UDFToString(_col2) (type: string), UDFToString(_col3) (type: string)
+ expressions: _col0 (type: int), _col1 (type: string), '1' (type: string), CAST( _col2 AS STRING) (type: string), CAST( _col3 AS STRING) (type: string)
outputColumnNames: key, value, one, two, three
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
Group By Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out b/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out
index 7764706..6da9934 100644
--- a/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out
+++ b/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out
@@ -233,7 +233,7 @@ STAGE PLANS:
Position of Big Table: 1
Statistics: Num rows: 163 Data size: 63932 Basic stats: PARTIAL Column stats: NONE
Select Operator
- expressions: UDFToString(_col0) (type: string), _col1 (type: string), _col3 (type: string)
+ expressions: CAST( _col0 AS STRING) (type: string), _col1 (type: string), _col3 (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 163 Data size: 63932 Basic stats: PARTIAL Column stats: NONE
File Output Operator
@@ -684,7 +684,7 @@ STAGE PLANS:
Position of Big Table: 1
Statistics: Num rows: 163 Data size: 63932 Basic stats: PARTIAL Column stats: NONE
Select Operator
- expressions: UDFToString(_col0) (type: string), _col1 (type: string), _col3 (type: string)
+ expressions: CAST( _col0 AS STRING) (type: string), _col1 (type: string), _col3 (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 163 Data size: 63932 Basic stats: PARTIAL Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out b/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out
index 090a0db..b086c0e 100644
--- a/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out
+++ b/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out
@@ -217,7 +217,7 @@ STAGE PLANS:
Position of Big Table: 0
Statistics: Num rows: 163 Data size: 63932 Basic stats: PARTIAL Column stats: NONE
Select Operator
- expressions: UDFToString(_col0) (type: string), _col1 (type: string), _col3 (type: string)
+ expressions: CAST( _col0 AS STRING) (type: string), _col1 (type: string), _col3 (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 163 Data size: 63932 Basic stats: PARTIAL Column stats: NONE
File Output Operator
@@ -668,7 +668,7 @@ STAGE PLANS:
Position of Big Table: 0
Statistics: Num rows: 163 Data size: 63932 Basic stats: PARTIAL Column stats: NONE
Select Operator
- expressions: UDFToString(_col0) (type: string), _col1 (type: string), _col3 (type: string)
+ expressions: CAST( _col0 AS STRING) (type: string), _col1 (type: string), _col3 (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 163 Data size: 63932 Basic stats: PARTIAL Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out b/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out
index 692b8e7..bd91b44 100644
--- a/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out
+++ b/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out
@@ -217,7 +217,7 @@ STAGE PLANS:
Position of Big Table: 1
Statistics: Num rows: 163 Data size: 63932 Basic stats: PARTIAL Column stats: NONE
Select Operator
- expressions: UDFToString(_col0) (type: string), _col1 (type: string), _col3 (type: string)
+ expressions: CAST( _col0 AS STRING) (type: string), _col1 (type: string), _col3 (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 163 Data size: 63932 Basic stats: PARTIAL Column stats: NONE
File Output Operator
@@ -668,7 +668,7 @@ STAGE PLANS:
Position of Big Table: 1
Statistics: Num rows: 163 Data size: 63932 Basic stats: PARTIAL Column stats: NONE
Select Operator
- expressions: UDFToString(_col0) (type: string), _col1 (type: string), _col3 (type: string)
+ expressions: CAST( _col0 AS STRING) (type: string), _col1 (type: string), _col3 (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 163 Data size: 63932 Basic stats: PARTIAL Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/bucketmapjoin5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin5.q.out b/ql/src/test/results/clientpositive/bucketmapjoin5.q.out
index 79da333..a4d5e4e 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin5.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin5.q.out
@@ -239,7 +239,7 @@ STAGE PLANS:
Statistics: Num rows: 327 Data size: 127864 Basic stats: PARTIAL Column stats: NONE
BucketMapJoin: true
Select Operator
- expressions: UDFToString(_col0) (type: string), _col1 (type: string), _col6 (type: string)
+ expressions: CAST( _col0 AS STRING) (type: string), _col1 (type: string), _col6 (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 327 Data size: 127864 Basic stats: PARTIAL Column stats: NONE
File Output Operator
@@ -843,7 +843,7 @@ STAGE PLANS:
Statistics: Num rows: 171 Data size: 67364 Basic stats: PARTIAL Column stats: NONE
BucketMapJoin: true
Select Operator
- expressions: UDFToString(_col0) (type: string), _col1 (type: string), _col6 (type: string)
+ expressions: CAST( _col0 AS STRING) (type: string), _col1 (type: string), _col6 (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 171 Data size: 67364 Basic stats: PARTIAL Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/bucketmapjoin_negative.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin_negative.q.out b/ql/src/test/results/clientpositive/bucketmapjoin_negative.q.out
index 1a53c37..10c91cd 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin_negative.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin_negative.q.out
@@ -180,7 +180,7 @@ STAGE PLANS:
Position of Big Table: 0
Statistics: Num rows: 154 Data size: 46200 Basic stats: PARTIAL Column stats: NONE
Select Operator
- expressions: UDFToString(_col0) (type: string), _col1 (type: string), _col6 (type: string)
+ expressions: CAST( _col0 AS STRING) (type: string), _col1 (type: string), _col6 (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 154 Data size: 46200 Basic stats: PARTIAL Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/bucketmapjoin_negative2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin_negative2.q.out b/ql/src/test/results/clientpositive/bucketmapjoin_negative2.q.out
index 426b051..3009c47 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin_negative2.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin_negative2.q.out
@@ -244,7 +244,7 @@ STAGE PLANS:
Statistics: Num rows: 171 Data size: 67364 Basic stats: PARTIAL Column stats: NONE
BucketMapJoin: true
Select Operator
- expressions: UDFToString(_col0) (type: string), _col1 (type: string), _col6 (type: string)
+ expressions: CAST( _col0 AS STRING) (type: string), _col1 (type: string), _col6 (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 171 Data size: 67364 Basic stats: PARTIAL Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/bucketsortoptimize_insert_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketsortoptimize_insert_3.q.out b/ql/src/test/results/clientpositive/bucketsortoptimize_insert_3.q.out
index b798fa2..6db8bfb 100644
--- a/ql/src/test/results/clientpositive/bucketsortoptimize_insert_3.q.out
+++ b/ql/src/test/results/clientpositive/bucketsortoptimize_insert_3.q.out
@@ -179,7 +179,7 @@ STAGE PLANS:
value expressions: _col0 (type: int), _col1 (type: string)
Reduce Operator Tree:
Select Operator
- expressions: UDFToString(VALUE._col0) (type: string), UDFToInteger(VALUE._col1) (type: int)
+ expressions: CAST( VALUE._col0 AS STRING) (type: string), UDFToInteger(VALUE._col1) (type: int)
outputColumnNames: _col0, _col1
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/char_pad_convert.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/char_pad_convert.q.out b/ql/src/test/results/clientpositive/char_pad_convert.q.out
index b63dc25..df3348f 100644
--- a/ql/src/test/results/clientpositive/char_pad_convert.q.out
+++ b/ql/src/test/results/clientpositive/char_pad_convert.q.out
@@ -134,7 +134,7 @@ POSTHOOK: query: select lpad(f, 4, ' '),
POSTHOOK: type: QUERY
POSTHOOK: Input: default@over1k_n6
#### A masked pattern was here ####
-74.7 42 zzzzzTRUE 20 ddd45.4 yard du
+74.7 42 zzzzzTRUE 20 dd45.40 yard du
26.4 37 zzzzzTRUE 20 dd29.62 history
96.9 18 zzzzFALSE 20 dd27.32 history
13.0 34 zzzzFALSE 20 dd23.91 topolog
@@ -180,7 +180,7 @@ POSTHOOK: query: select rpad(f, 4, ' '),
POSTHOOK: type: QUERY
POSTHOOK: Input: default@over1k_n6
#### A masked pattern was here ####
-74.7 42 TRUEzzzzz 20 45.4ddd yard du
+74.7 42 TRUEzzzzz 20 45.40dd yard du
26.4 37 TRUEzzzzz 20 29.62dd history
96.9 18 FALSEzzzz 20 27.32dd history
13.0 34 FALSEzzzz 20 23.91dd topolog
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/column_pruner_multiple_children.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/column_pruner_multiple_children.q.out b/ql/src/test/results/clientpositive/column_pruner_multiple_children.q.out
index 4b0aaab..cd0c969 100644
--- a/ql/src/test/results/clientpositive/column_pruner_multiple_children.q.out
+++ b/ql/src/test/results/clientpositive/column_pruner_multiple_children.q.out
@@ -56,7 +56,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 1 Data size: 9 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 1 Data size: 9 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/decimal_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/decimal_2.q.out b/ql/src/test/results/clientpositive/decimal_2.q.out
index 22f4c33..aeebf9e 100644
--- a/ql/src/test/results/clientpositive/decimal_2.q.out
+++ b/ql/src/test/results/clientpositive/decimal_2.q.out
@@ -100,7 +100,7 @@ POSTHOOK: query: select cast(t as string) from decimal_2_n1
POSTHOOK: type: QUERY
POSTHOOK: Input: default@decimal_2_n1
#### A masked pattern was here ####
-17.29
+17.290000000
PREHOOK: query: insert overwrite table decimal_2_n1
select cast('3404045.5044003' as decimal(18,9)) from src tablesample (1 rows)
PREHOOK: type: QUERY
@@ -183,7 +183,7 @@ POSTHOOK: query: select cast(t as string) from decimal_2_n1
POSTHOOK: type: QUERY
POSTHOOK: Input: default@decimal_2_n1
#### A masked pattern was here ####
-3404045.5044003
+3404045.504400300
PREHOOK: query: select cast(3.14 as decimal(4,2)) from decimal_2_n1
PREHOOK: type: QUERY
PREHOOK: Input: default@decimal_2_n1
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby12.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby12.q.out b/ql/src/test/results/clientpositive/groupby12.q.out
index 7317c4e..43fdf6a 100644
--- a/ql/src/test/results/clientpositive/groupby12.q.out
+++ b/ql/src/test/results/clientpositive/groupby12.q.out
@@ -45,7 +45,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col1) (type: int), UDFToString(_col2) (type: string)
+ expressions: UDFToInteger(_col1) (type: int), CAST( _col2 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby5.q.out b/ql/src/test/results/clientpositive/groupby5.q.out
index b3c2da2..7e9d928 100644
--- a/ql/src/test/results/clientpositive/groupby5.q.out
+++ b/ql/src/test/results/clientpositive/groupby5.q.out
@@ -77,7 +77,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby5_noskew.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby5_noskew.q.out b/ql/src/test/results/clientpositive/groupby5_noskew.q.out
index 5307bc7..8a7b1aa 100644
--- a/ql/src/test/results/clientpositive/groupby5_noskew.q.out
+++ b/ql/src/test/results/clientpositive/groupby5_noskew.q.out
@@ -50,7 +50,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby7_map.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby7_map.q.out b/ql/src/test/results/clientpositive/groupby7_map.q.out
index 5b4b9af..c27f02e 100644
--- a/ql/src/test/results/clientpositive/groupby7_map.q.out
+++ b/ql/src/test/results/clientpositive/groupby7_map.q.out
@@ -81,7 +81,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -176,7 +176,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby7_map_multi_single_reducer.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby7_map_multi_single_reducer.q.out b/ql/src/test/results/clientpositive/groupby7_map_multi_single_reducer.q.out
index 00d26b9..294d2ec 100644
--- a/ql/src/test/results/clientpositive/groupby7_map_multi_single_reducer.q.out
+++ b/ql/src/test/results/clientpositive/groupby7_map_multi_single_reducer.q.out
@@ -61,7 +61,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -94,7 +94,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby7_map_skew.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby7_map_skew.q.out b/ql/src/test/results/clientpositive/groupby7_map_skew.q.out
index 089a14e..10a3ae4 100644
--- a/ql/src/test/results/clientpositive/groupby7_map_skew.q.out
+++ b/ql/src/test/results/clientpositive/groupby7_map_skew.q.out
@@ -108,7 +108,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -228,7 +228,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby7_noskew.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby7_noskew.q.out b/ql/src/test/results/clientpositive/groupby7_noskew.q.out
index ec83bb6..aaa09b8 100644
--- a/ql/src/test/results/clientpositive/groupby7_noskew.q.out
+++ b/ql/src/test/results/clientpositive/groupby7_noskew.q.out
@@ -70,7 +70,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -160,7 +160,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby7_noskew_multi_single_reducer.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby7_noskew_multi_single_reducer.q.out b/ql/src/test/results/clientpositive/groupby7_noskew_multi_single_reducer.q.out
index c844e51..abe4ff9 100644
--- a/ql/src/test/results/clientpositive/groupby7_noskew_multi_single_reducer.q.out
+++ b/ql/src/test/results/clientpositive/groupby7_noskew_multi_single_reducer.q.out
@@ -101,7 +101,7 @@ STAGE PLANS:
Number of rows: 10
Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -192,7 +192,7 @@ STAGE PLANS:
Number of rows: 10
Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby8.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby8.q.out b/ql/src/test/results/clientpositive/groupby8.q.out
index 2d8ea6f..ceb8a5b 100644
--- a/ql/src/test/results/clientpositive/groupby8.q.out
+++ b/ql/src/test/results/clientpositive/groupby8.q.out
@@ -98,7 +98,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -235,7 +235,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -1049,7 +1049,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -1186,7 +1186,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby8_map.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby8_map.q.out b/ql/src/test/results/clientpositive/groupby8_map.q.out
index cf3ade6..529970c 100644
--- a/ql/src/test/results/clientpositive/groupby8_map.q.out
+++ b/ql/src/test/results/clientpositive/groupby8_map.q.out
@@ -60,7 +60,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -93,7 +93,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby8_map_skew.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby8_map_skew.q.out b/ql/src/test/results/clientpositive/groupby8_map_skew.q.out
index 86598aa..f5bcc5a 100644
--- a/ql/src/test/results/clientpositive/groupby8_map_skew.q.out
+++ b/ql/src/test/results/clientpositive/groupby8_map_skew.q.out
@@ -107,7 +107,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -226,7 +226,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby8_noskew.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby8_noskew.q.out b/ql/src/test/results/clientpositive/groupby8_noskew.q.out
index a3d3656..ed6c3a5 100644
--- a/ql/src/test/results/clientpositive/groupby8_noskew.q.out
+++ b/ql/src/test/results/clientpositive/groupby8_noskew.q.out
@@ -60,7 +60,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -88,7 +88,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby9.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby9.q.out b/ql/src/test/results/clientpositive/groupby9.q.out
index 8d97bdf..98d437f 100644
--- a/ql/src/test/results/clientpositive/groupby9.q.out
+++ b/ql/src/test/results/clientpositive/groupby9.q.out
@@ -80,7 +80,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -174,7 +174,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), UDFToString(_col2) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), CAST( _col2 AS STRING) (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -953,7 +953,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -1047,7 +1047,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col1) (type: int), _col0 (type: string), UDFToString(_col2) (type: string)
+ expressions: UDFToInteger(_col1) (type: int), _col0 (type: string), CAST( _col2 AS STRING) (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -1826,7 +1826,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -1920,7 +1920,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), UDFToString(_col2) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), CAST( _col2 AS STRING) (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -2701,7 +2701,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -2796,7 +2796,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), UDFToString(_col2) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), CAST( _col2 AS STRING) (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -3575,7 +3575,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -3669,7 +3669,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col1) (type: int), _col0 (type: string), UDFToString(_col2) (type: string)
+ expressions: UDFToInteger(_col1) (type: int), _col0 (type: string), CAST( _col2 AS STRING) (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby_cube_multi_gby.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_cube_multi_gby.q.out b/ql/src/test/results/clientpositive/groupby_cube_multi_gby.q.out
index 5f08df6..caa031b 100644
--- a/ql/src/test/results/clientpositive/groupby_cube_multi_gby.q.out
+++ b/ql/src/test/results/clientpositive/groupby_cube_multi_gby.q.out
@@ -84,7 +84,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: _col0 (type: string), UDFToString(_col2) (type: string)
+ expressions: _col0 (type: string), CAST( _col2 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby_position.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_position.q.out b/ql/src/test/results/clientpositive/groupby_position.q.out
index 5678bd5..86a2dcb 100644
--- a/ql/src/test/results/clientpositive/groupby_position.q.out
+++ b/ql/src/test/results/clientpositive/groupby_position.q.out
@@ -78,7 +78,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -172,7 +172,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), UDFToString(_col2) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), CAST( _col2 AS STRING) (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -357,7 +357,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col0) (type: int), UDFToString(_col1) (type: string)
+ expressions: UDFToInteger(_col0) (type: int), CAST( _col1 AS STRING) (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -451,7 +451,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(_col1) (type: int), _col0 (type: string), UDFToString(_col2) (type: string)
+ expressions: UDFToInteger(_col1) (type: int), _col0 (type: string), CAST( _col2 AS STRING) (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out b/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out
index aaf89ae..033d00b 100644
--- a/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out
+++ b/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out
@@ -3733,7 +3733,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToString(_col0) (type: string), _col1 (type: bigint)
+ expressions: CAST( _col0 AS STRING) (type: string), _col1 (type: bigint)
outputColumnNames: _col0, _col1
Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out b/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out
index e8a1143..1eddcf5 100644
--- a/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out
+++ b/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out
@@ -3149,7 +3149,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToInteger(UDFToString(_col0)) (type: int), UDFToInteger(_col1) (type: int)
+ expressions: UDFToInteger(CAST( _col0 AS STRING)) (type: int), UDFToInteger(_col1) (type: int)
outputColumnNames: _col0, _col1
Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -4083,7 +4083,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: UDFToString(_col0) (type: string), _col1 (type: bigint)
+ expressions: CAST( _col0 AS STRING) (type: string), _col1 (type: bigint)
outputColumnNames: _col0, _col1
Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/infer_bucket_sort_dyn_part.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/infer_bucket_sort_dyn_part.q.out b/ql/src/test/results/clientpositive/infer_bucket_sort_dyn_part.q.out
index fd9e553..aceb845 100644
--- a/ql/src/test/results/clientpositive/infer_bucket_sort_dyn_part.q.out
+++ b/ql/src/test/results/clientpositive/infer_bucket_sort_dyn_part.q.out
@@ -454,7 +454,7 @@ STAGE PLANS:
outputColumnNames: _col0, _col1
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
Select Operator
- expressions: _col0 (type: string), UDFToString(_col1) (type: string), if(((UDFToDouble(_col0) % 100.0D) = 0.0D), '11', '12') (type: string)
+ expressions: _col0 (type: string), CAST( _col1 AS STRING) (type: string), if(((UDFToDouble(_col0) % 100.0D) = 0.0D), '11', '12') (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
File Output Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/26f4d8ea/ql/src/test/results/clientpositive/infer_bucket_sort_grouping_operators.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/infer_bucket_sort_grouping_operators.q.out b/ql/src/test/results/clientpositive/infer_bucket_sort_grouping_operators.q.out
index 50cc4dc..cfd190f 100644
--- a/ql/src/test/results/clientpositive/infer_bucket_sort_grouping_operators.q.out
+++ b/ql/src/test/results/clientpositive/infer_bucket_sort_grouping_operators.q.out
@@ -59,7 +59,7 @@ STAGE PLANS:
Statistics: Num rows: 750 Data size: 7968 Basic stats: COMPLETE Column stats: NONE
pruneGroupingSetId: true
Select Operator
- expressions: _col0 (type: string), _col1 (type: string), UDFToString(_col3) (type: string)
+ expressions: _col0 (type: string), _col1 (type: string), CAST( _col3 AS STRING) (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 750 Data size: 7968 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -1540,7 +1540,7 @@ STAGE PLANS:
Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE
pruneGroupingSetId: true
Select Operator
- expressions: _col0 (type: string), _col1 (type: string), UDFToString(_col3) (type: string)
+ expressions: _col0 (type: string), _col1 (type: string), CAST( _col3 AS STRING) (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE
File Output Operator
@@ -1767,7 +1767,7 @@ STAGE PLANS:
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
pruneGroupingSetId: true
Select Operator
- expressions: _col0 (type: string), _col1 (type: string), UDFToString(_col3) (type: string)
+ expressions: _col0 (type: string), _col1 (type: string), CAST( _col3 AS STRING) (type: string)
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
File Output Operator